You are on page 1of 32

Daniel Hillinger

Database Administrator

Comparison of
ACFS and DBFS

Value Transformation Services


Daniel Hillinger

Index Exadata Backup Clone


Solaris Performance Tuning Patching TAF
DBA Grid Infrastructur ONS Database Vault
Redhat NFS Partitioning Clusterware Client Linux
ZFS RAC FAN Security Dataguard ACFS
Disaster Recovery ASM Replication
High Availability Restore DBFS

Value Transformation Services


1
Agenda
• Architectural Overview
• Presentation to the Client
• Presentation to the Server/DB
• High Availability and Disaster Recovery
• Extended Architecture
• Setup / Installation
• Tests
• Use cases
• Perspective 12c

Value Transformation Services


2
Architectural Overview - ACFS
Server

NFS
NFS Server Client

DB ACFS

ADVM

ASM Storage/
Disks

Value Transformation Services


3
Architectural Overview - DBFS
Server Client
SQL Net
FUSE

Oracle
DB Client

DBFS

ASM Storage/
Disks

Value Transformation Services


4
Presentation to the Client - ACFS
• Standard NFS mount

$ mount
<IP>:/acfs on /acfs type nfs
(rw,bg,hard,nointr,rsize=32768,wsize=32768,tcp,actimeo=0,nfsvers
=3,timeo=600,addr=<IP>)
$ df –hTt nfs
<IP>:/acfs nfs 170G 16G 154G 10% /acfs

Value Transformation Services


5
Presentation to the Client - DBFS
• DBFS is based on FUSE (Filesystem in USErspace)
• Oracle Client required

$ mount
dbfs-@DBFS_DBFS:/ on /dbfs type fuse
(rw,nosuid,nodev,max_read=1048576,default_permissions,allow_othe
r)
$ df -hTt fuse
dbfs-@DBFS_DBFS:/ fuse 4.5G 313M 4.2G 7% /dbfs

Restrictions:
ioctl, locking, asynchronous I/O, O_DIRECT file opens,
hard links, pipes, and other special file modes
Value Transformation Services
6
Oracle Client

Value Transformation Services


7
FUSE
Filesystem in UserSpace
• Usable by non privileged users
• Availible on Linux and Solaris 11

my_script
ls /my_file libfuse
glibc glibc
userspace
kernel
FUSE
VFS
NFS, EXT3, …

Value Transformation Services


8
Presentation to the Server - ACFS
ASM Dynamic Volume Manager (ADVM)
provides a block device in /dev/asm
Mounted as standard Linux filesystem
$ df –hTt acfs
Filesystem Type Size Used Avail Use% Mounted on
/dev/asm/lv_acfs-46 acfs 170G 16G 154G 10% /acfs

$ lsmod
oracleacfs 2001119 3
oracleadvm 250040 7
oracleoks 427736 2 oracleacfs,oracleadvm

Value Transformation Services


9
Presentation to the DB - ACFS
Can be accessed with

• External Tables
• UTL_FILE
• Datapump
• …

Value Transformation Services


10
Presentation to the Server / DB - DBFS
Server:
Not visible for the server
But could be configured as client

DB:
Access via SQL
SELECT UTL_RAW.cast_to_varchar2(filedata) AS filedata
FROM dbfs_content
WHERE path = '/dbfs/test1';

Value Transformation Services


11
High Availability and Disaster Recovery
High Availability(HA):
automated solution in order to conceal the failure of a
component

Disaster Recovery(DR):
steps to restore a minimum operation after a major
failure, usually manually

Value Transformation Services


12
High Availability and Desaster Recovery
ACFS DBFS
High Availability
without interruption None RAC
with interruption Failover NFS Server Failover DB

Desaster Recovery
without dataloss None Dataguard
with dataloss ACFS Replication/Rsync Rsync

Backup Filesystem RMAN/Filesystem

Value Transformation Services


13
Extended Architecture - ACFS
Client
NFS

Server1 Server2 Server3


NFS NFS
DB DB DB
ACFS ACFS ACFS
ADVM ADVM ACFS ADVM
Rep.
ASM ASM ASM

Storage/Disks Storage/Disks
Value Transformation Services
14
Extended Architecture - DBFS
Client
SQL Net
Oracle
Client

Server1 Server2 Server3

DG
DB_1 DB_2 DB_3
DBFS DBFS DBFS

ASM ASM ASM

Storage/Disks Storage/Disks
Value Transformation Services
15
Setup / Installation - ACFS
Supported on Linux, Solaris, AIX and Windows

Requires ASM

Diskgroup can be shared

ACFS1 ACFS2
LV Logical Volume
Diskgroup

Disk1 Disk2 Disk3 Disk4

Value Transformation Services


16
Setup / Installation - DBFS
Dedicated Tablespace

Dedicated user with create session, table, view,


procedure privileges and granted dbfs_role

Filesystem creation with script:


$ORACLE_HOME/rdbms/admin/dbfs_create_filesystem.sql

Files are stored as LOBs in a table called as the


filesystem name

Value Transformation Services


17
Setup / Installation - DBFS
SQL> desc mydbfs
Name Null? Type
--------------------- -------- -----------------
...
PATHNAME NOT NULL VARCHAR2(1024)
FILEDATA BLOB
POSIX_MODE NUMBER(38)
POSIX_UID NUMBER(38)
POSIX_GID NUMBER(38)
...

Value Transformation Services


18
HA Tests - ACFS
1. Shutdown server hosting NFS server
NFS server switched to another node
2. Kill NFS server
NFS server was restarted
3. Umount ACFS
Umount hanging – not possible

The FS was always available for the client!

Value Transformation Services


19
HA Tests - DBFS
1. Shutdown one server
session failover to other instance
2. Kill one instance
session failover to other instance
3. Kill listener
sessions are established only during the mount
4. Client: Kill dbfs_client process
FS is umounted and all open IOs are lost
The FS was always available for the client!

Value Transformation Services


20
Remote Filesystems
Local Local
touch test touch test
Kernel Kernel
NFS Protocol
TCP,IP,Ethernet

Remote
TCP,IP,Ethernet
NFS
Kernel
driver driver

Disk Disk

Value Transformation Services


21
Performance Tests
100%
90%
80%
70%
60%
50%
40%
30%
20%
10%
0%
local 10 B local 100 B local 1 M remote 10 B remote 100 B remote 1 M
Local 3600 34300 1400000 0 0 0
ACFS 1500 14600 1800000 902 8200 104000
DBFS 0 0 0 159 1300 113000

Value Transformation Services


22
Use cases
ACFS DBFS
Database related Files
DB Files(redo,datafiles,...) Not supported Not supported
Exports(datapump) + -
DB logs + Not supported
Shared, DB and Application
external tables,etc + +
Application Files
Large + +
Small + -

Value Transformation Services


23
Perspective12c - ACFS
High Availible NFS (HANFS)

Supports all database files

Supported on Exadata

unlimited expansions

Value Transformation Services


24
Perspective12c - DBFS
New ways to access DBFS:
• http/https
• ftp
• WebDAV

Based on Enterprise Manager Database Express

Value Transformation Services


25
SecureFiles
SecureFile is an storage option for LOBs and was
introduced in 11g

LOBs can be stored as BasicFile or SecureFile

Advantages of SecureFiles:
• Compression
• Deduplication
• Encryption

Value Transformation Services


26
SecureFiles
$ sqlplus @dbfs_create_filesystem_advanced
tablespace_name file_systemname
[compress-high|compress-medium|compress-low|nocompress]
[deduplicate | nodeduplicate]
[encrypt | noencrypt]
[partition | non-partition]

Value Transformation Services


27
SecureFiles
The Parameter DB_SECUREFILE specifies whether
LOBs stored as BasicFiles or SecureFiles.

Value Transformation Services


28
Extended Architecture Support - DBFS
Server

NFS
NFS Server Client

DBFS
DB
NO SUPPORT

ASM Storage/
Disks

Value Transformation Services


29
dbfs_client as CLI
All DBFS paths must be absolute and preceded by
“dbfs:”.

All commands are ls, cp, rm, mkdir.

$ dbfs_client db_user@db_server --command command


[switches] [arguments]

$ dbfs_client db_user@db_server --command ls dbfs:/mydbfs

Value Transformation Services


30
References
Dbfs doku 12c
https://docs.oracle.com/database/121/ADLOB/adlob_client.htm#ADLOB46011
Dbfs doku 11g
http://docs.oracle.com/cd/E11882_01/appdev.112/e18294/adlob_client.htm
Acsf doku 12c

DBFS
https://oracle-base.com/articles/11g/dbfs-apis-11gr2

Value Transformation Services


31

You might also like