Configuring the DBFS file system
To replicate DBFS file system operations, use a configuration that is similar to the standard bi-directional configuration for DML.
Some guidelines to follow while configuring Oracle GoldenGate for DBFS are:
-
Use matched pairs of identically structured tables.
-
Allow each database to have write privileges to opposite tables in a set, and set the other one in the set to read-only. For example:
-
Node1 writes to local table
t1and these changes are replicated tot1on Node2. -
Node2 writes to local table
t2and these changes are replicated tot2on Node1. -
On Node1,
t2is read-only. On Node2,t1is read-only.
-
DBFS file systems make this kind of table pairing simple because:
-
The tables that underlie the DBFS file systems have the same structure.
-
These tables are modified by simple, conventional DML during higher-level file system operations.
-
The DBFS ContentAPI provides a way of unifying the namespace of the individual DBFS stores by means of mount points that can be qualified as read-write or read-only.
The following steps create two DBFS file systems (in this case named FS1 and FS2) and set them to be read-write or read, as appropriate.
Example 10-3
declare
dbms_dbfs_sfs.createfile system('FS1');
dbms_dbfs_sfs.createfile system('FS2');
dbms_dbfs_content.registerStore('FS1',
'posix', 'DBMS_DBFS_SFS');
dbms_dbfs_content.registerStore('FS2',
'posix', 'DBMS_DBFS_SFS');
commit;
end;
/
Example 10-4 Node 1
declare
dbms_dbfs_content.mountStore('FS1', 'local');
dbms_dbfs_content.mountStore('FS2', 'remote',
read_only => true);
commit;
end;
/Example 10-5 Node 2
declare
dbms_dbfs_content.mountStore('FS1', 'remote',
read_only => true);
dbms_dbfs_content.mountStore('FS2', 'local');
commit;
end;
/