Attach Network File Storage to Autonomous Database on Dedicated Exadata Infrastructure
You can attach your Network File Storage (NFS) share to your Autonomous Database, provided the database and the file system are in the same private network. Depending on the version of the Network File System you want to access, both NFSv3 and NFSv4 are supported.
- Load highly sensitive data from other databases to Autonomous Database on Exadata Cloud@Customer in a highly secure manner.
- Move data in and out from multiple Exadata Cloud@Customer deployments to facilitate vendor data, export dumps, and other business processes.
- Clone database created from cloning an Autonomous Database with NFS mount points.
- Standby database that assumes the primary role after a failover or switchover operation in an Autonomous Data Guard setup where the primary database was attached to an NFS share.
- Network File System Requirements
- Attach Network File System
- Query DBA_CLOUD_FILE_SYSTEMS
- Detach Network File System
Parent topic: Attach External Storage to Autonomous Database
Network File System Requirements
- The Autonomous Database version is 19.18 or later to use NFSv3 and 19.23 or later for NFSv4.
- The customer-provided NFS is network accessible from Autonomous VM Cluster nodes.
- The NFS-mounted file system is readable and writable by the
oracle
operating system user on all the Autonomous VM cluster nodes. - If permissions are being controlled at the user level, then the uid:gid of the
oracle
user for the Autonomous VM cluster is 1001:1001.
Attach Network File System
DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEM
to attach a file system to a directory in your Autonomous Database.
The
DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEM
procedure can only attach a private File Storage Service when the Autonomous Database instance is on a private endpoint.
-
Create a directory or use an existing directory to attach the external file system in your Autonomous Database. You must have
WRITE
privilege on the directory object on your Autonomous Database instance to attach a file system to a directory location in the database.For example, the following command creates the database directory namedNFS_DIR
and creates the file system directorynfs
:CREATE DIRECTORY NFS_DIR AS ‘nfs’;
See Create a Directory for more information.
-
Run
DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEM
to attach a file system to a directory in your Autonomous Database. To run this procedure, you must be logged in as the ADMIN user or haveEXECUTE
privilege onDBMS_CLOUD_ADMIN
.-
By default,
DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEM
uses NFSv3. However, you can choose to explicitly use theparams
parameter and specify thenfs_version
with value 3 to specify NFSv3.BEGIN DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEM ( file_system_name => 'NFS', file_system_location => 'myhost.sub000445.myvcn.oraclevcn.com:/results', directory_name => 'NFS_DIR', description => 'Source NFS for sales data' );END; /
-
To use NFSv4, include the
params
parameter withDBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEM
and specify thenfs_version
with value 4 to specify NFSv4.BEGIN DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEM ( file_system_name => 'NFS', file_system_location => 'myhost.sub000445.myvcn.oraclevcn.com:/results', directory_name => 'NFS_DIR', description => 'Source NFS for sales data', params => JSON_OBJECT('nfs_version' value 4) ); END; /
The examples shown above attach the network file system specified in the
file_system_name
parameter to the Autonomous Database.The
file_system_location
parameter specifies the location of the file system. The value you supply withfile_system_location
consists of a Fully Qualified Domain Name (FQDN) and a file path in the form: FQDN:
file_path.For example:- FQDN:
myhost.sub000445.myvcn.oraclevcn.com
- File Path:
/results
The
directory_name
parameter specifies the directory name in the Autonomous Database where you want to attach the file system. This is the directory you created in Step 1, or another directory you previously created.The
description
parameter specifies the description for the task.The
params
parameter is a JSON value that specifies an additional attributenfs_version
, whose value can be either 3 or 4 (NFSv3 or NFSv4). -
DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEM
:
-
Oracle Cloud Infrastructure File Storage uses NFSv3 to share. See Overview of File Storage for more information.
-
If you attach to non-Oracle Cloud Infrastructure File Storage systems, the procedure supports NFSv3 and NFSv4.
-
If you have an attached NFS server that uses NFSv3 and the NFS version is updated to NFSv4 in the NFS server, you must run
DBMS_CLOUD_ADMIN.DETACH_FILE_SYSTEM
and thenDBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEM
(using theparams
parameter withnfs_version
set to 4. This attaches NFS with the matching protocol so that Autonomous Database can access the NFSv4 Server. Without detaching and then reattaching, the NFS server will be inaccessible and you may see an error such as:"Protocol not supported"
.
Query DBA_CLOUD_FILE_SYSTEMS
After you attach a file system you can query the DBA_CLOUD_FILE_SYSTEMS
view to retrieve information about the attached file system.
SELECT file_system_name, file_system_location, directory_path
FROM dba_cloud_file_systems
WHERE file_system_name = 'FSS';
This query returns details for the FSS
file system name. See DBMS_CLOUD_FILE_SYSTEMS View for more information.
With an attached file system you can read and write to files on an attached file system using any PL/SQL API that accepts a directory name. For example, you can use any of the following methods to work with an attached FSS directory:
-
The
UTL_FILE
package. -
Data Pump Export and Import utilities.
-
The
DBMS_CLOUD
APIs that work with directories such asDBMS_CLOUD.LIST_FILES
andDBMS_CLOUD.PUT_OBJECT
.
UTL_FILE
:DECLARE
l_file UTL_FILE.FILE_TYPE;
l_location VARCHAR2(100) := 'FSS_DIR';
l_filename VARCHAR2(100) := 'test.csv';
BEGIN
-- Open the file.
l_file := UTL_FILE.FOPEN(l_location, l_filename, 'w');
UTL_FILE.PUT(l_file, 'Scott, male, 1000');
-- Close the file.
UTL_FILE.FCLOSE(l_file);
END;
/
UTL_FILE
:DECLARE
l_file UTL_FILE.FILE_TYPE;
l_location VARCHAR2(100) := 'FSS_DIR';
l_filename VARCHAR2(100) := 'test.csv';
l_text VARCHAR2(32767);
BEGIN
-- Open the file.
l_file := UTL_FILE.FOPEN(l_location, l_filename, 'r');
UTL_FILE.GET_LINE(l_file, l_text, 32767);
-- Close the file.
UTL_FILE.FCLOSE(l_file);
END;
/
DBMS_CLOUD.LIST_FILES
:SELECT object_name FROM DBMS_CLOUD.LIST_FILES('FSS_DIR');
DBMS_CLOUD_FILE_SYSTEMS View
DBA_CLOUD_FILE_SYSTEMS
view lists the information about the external file system attached to a directory location in the database.
Column | Data Type | Description |
---|---|---|
FILE_SYSTEM_NAME |
VARCHAR2(128) |
File system name |
FILE_SYSTEM_LOCATION |
VARCHAR2(4000) |
File system location |
DIRECTORY_NAME |
VARCHAR2(128) |
Attached directory name |
DIRECTORY_PATH |
VARCHAR2(4000) |
Attached directory path |
NFS_VERSION |
NUMBER |
The NFS version |
DESCRIPTION |
VARCHAR2(4000) |
The value provided for the description parameter when you run DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEM |
CREATION_TIME |
TIMESTAMP(6) WITH TIME ZONE |
Creation timestamp |
UPDATE_TIME |
TIMESTAMP(6) WITH TIME ZONE |
Update timestamp |
Detach Network File System
DBMS_CLOUD_ADMIN.DETACH_FILE_SYSTEM
procedure to detach a file system from a directory in your Autonomous Database.
The
DBMS_CLOUD_ADMIN.DETACH_FILE_SYSTEM
procedure can only detach a private File Storage Service from the databases that are on private endpoints.
You must have the WRITE
privilege on the directory object to detach a file system from a directory location.
DBMS_CLOUD_ADMIN.DETACH_FILE_SYSTEM
procedure to detach a file system from a directory location in your Autonomous Database. To run this procedure, you must be logged in as the ADMIN user or have the EXECUTE
privilege on DBMS_CLOUD_ADMIN
.BEGIN
DBMS_CLOUD_ADMIN.DETACH_FILE_SYSTEM (
file_system_name => 'NFS'
);END;
/
This example detaches the network file system specified in the file_system_name
parameter from the Autonomous Database. You must provide a value for this parameter. The information about this file system is removed from the DBA_CLOUD_FILE_SYSTEMS
view.
See DETACH_FILE_SYSTEM Procedure for more information.