Oracle Database File System (DBFS) in 11gR2

January 13, 2010

Files are an integral part of modern database applications. You can keep files synched with the relational data stored in the database, by storing business data files in the database. You also get transactional consistency, unified security, backup, and search.

Oracle Database File System (DBFS) provides file system interface to files stored in the database tables. DBFS enables existing file based tools to access database files through familiar pathnames, directories, and links. Files in DBFS are either kept in a dedicated file store , or existing application tables.

DBFS provides unified data and file backups, Disaster Recovery, and management of both relational data as well as files. DBFS also add advanced features of compression, deduplication and encryption to files.

The DBFS Content Store allows each database user to create one or more file systems that can be mounted by clients. Each file system has its own dedicated tables that hold the file system content. The DBFS Content API is the PL/SQL interface in the Oracle RDBMS

How it works?

DBFS is a shared file system like NFS and consists of a server (Oracle Database) and a client (dbfs_client in Linux or internal DB client). The dbfs_client provides a command interface to allow files to be easily copied in and out of the database from any host on the network. On Linux platforms the dbfs_client can be used to mount the database file system on a regular mount point. This is done using the “Filesystem in Userspace” (FUSE) module. This allows Linux machines to access DBFS like any other physical file system.

Application makes file calls. Linux FUSE module receives these calls, and forwards them on to the dbfs_client exectutable. DBFS_client makes remote calls to DBFS content store in the database. DBFS_client makes OCI, LOB and SQL calls to database.

High Availability

DBFS Linux client offers HA by leverging RAC technology. The failure of a database instance is detected based on FAN notification. You will have to configure an extra service for failover. dbfs_client transparently redirects file acces to surviving RAC instances on node failures. Any outstanding transaction is replayed to surviving RAC instance.

DBFS Limitations

  • does not support aync IOs.
  • cannot be used when database is NOT running.
  • DBFS does not support exporting NFS exports.
Related Links

Advertisement

3 Responses to “Oracle Database File System (DBFS) in 11gR2”

  1. Kevin Jernigan Says:

    Full Disclosure: I am the Product Manager for DBFS, SecureFiles, Total Recall, and other database performance-related features and products at Oracle.

    1. There is a typo in the “DBFS Limitations” section: it should say that DBFS cannot be used when the database is NOT running.

    2. DBFS is a feature of Oracle Database 11 Release 2, available on all platforms / OS ports. The DBFS client can be used in command-line mode on all platforms, and can be used to mount DBFS file systems only on Linux. For example, you could set up an Oracle 11g Release 2 database on Solaris, create DBFS file systems in that database, and then use Linux clients to mount those DBFS file systems.

    3. DBFS is designed to meet or exceed the performance of traditional file systems, and to scale – in terms of the number and size of files – well beyond the limits of file systems.

    4. DBFS in combination with Oracle Total Recall gives the ability to recover deleted or incorrectly modified files without having to restore from a backup. The user simply uses a query with the “AS OF” or “VERSIONS BETWEEN” syntax to find older versions of files in a DBFS file system.

    As always, more details are available at http://www.oracle.com.


  2. [...] Oracle Database File System (DBFS) in 11gR2 [...]


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Connecting to %s

Follow

Get every new post delivered to your Inbox.