Create symbolic link on CIFS share under Linux

Oracle archive logs can be put under flash recover area when one of log archive destination parameter (by default it is log_archive_dest_10) is set to “LOCATION=USE_DB_RECOVERY_FILE_DEST“. Then Oracle will use the directory specified by the parameter db_recovery_file_dest to hold files like backup, archivelog, flashback log etc.

However sometimes you want to put archive logs somewhere else for performance reason because the backup location usually is on a slower disk or like in my case, the customer can only provide a CIFS share instead of a NFS share because they don’t have a NFS license for their NAS. Unfortunately Oracle doesn’t support data files and archive logs on CIFS share on Linux — Oracle does not support CIFS protocol in general because CIFS does not guarantee atomic write of 512 byte (Oracle log block size) like NFS can (with wsize parameter). So in case of power failure, it is possible to corrupt Oracle archived logs. You will get ORA-01119 & ORA-27040 errors when a CIFS share is used for data files or archive logs.

So the solution is to put archive logs somewhere else but the advantage of using FRA — archive logs are managed by OMF and organized by date — is lost. If FRA is used for archive logs, there will be a sub-directory using date as name and archive logs generated on that date will be put under that directory:

<Your_FRA_Location>/<SID>/ARCHIVELOG/<date>/<Oracle_Managed_File_Name>

LOG_ARCHIVE_FORMAT can only be used to specify log name. All archive logs will be put under whatever directory is chosen.

To put archive logs out of FRA, but still use the FRA’s directory structure, a workaround is to use symbolic link under FRA to point to a different location. For a CIFS share, the mount option “mfsymlinks” is needed or you will get the error when creating a symbolic link:

ln: failed to create symbolic link ‘archivelog’: Operation not supported

Below are the options I’ve used for my CIFS share for Oracle backup:

//192.168.1.10/CIFS01  /dbbackup cifs    _netdev,username=cifs_user,password=JustAdemo,domain=MYDOMIAN,uid=54321,gid=54322,forceuid,forcegid,rw,rsize=32768,wsize=32768,noserverino,mfsymlinks      0       0

Reference:

Write To CIFS Filesystem on Linux Fails ( ORA-01119, ORA-27040 ) (Doc ID 1417168.1)
Is use of CIFS Protocol for RMAN backups supported? (Doc ID 444809.1)

One thought on “Create symbolic link on CIFS share under Linux

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