Adding Datafiles to Primary Database

Normally, Oracle does not propagate the adding of datafiles on the primary database to the standby database. This must be done manually on the standby database.

Dbvisit Standby will automatically add the datafile to the standby database. Dbvisit Standby version 6.0.26 and later, will attempt to generate a new name for a standby datafile, in case the primary name cannot be used due to different storage type (ASM and non-ASM) or different database file structure between the primary and standby.

There are some restrictions to automatically adding the datafiles to the standby database.

Note 1: There must be sufficient space on the standby server for Dbvisit Standby to add the datafile. If there is not sufficient space, then Oracle will generate an error message which will be captured by Dbvisit Standby and an alert will be sent.

Note 2: This feature is independent of the Oracle parameter STANDBY_FILE_MANAGEMENT. Dbvisit Standby will detect if STANDBY_FILE_MANAGEMENT has added the datafile to the standby database, and if so, Dbvisit Standby will not add the datafile.

Note 3: STANDBY_FILE_MANAGEMENT can only be used in Enterprise Edition and should not be set in Standard Edition.

Note 4: Version 6.0.40 and earlier do not support adding more than one datafile per dbvisit run. so if multiple datafiles are to be added then it should be done as follows:
1. Add datafile
2. Run Dbvisit Standby on the primary
3. Add the second datafile
4. Run Dbvisit Standby on the primary again
5. Repeat process for each additional datafile to be added


Every time Dbvisit Standby runs on the primary, it takes a snapshot of primary datafile ids and names and saves it in the repository.

It detects if new data files have been added to the primary since the last run. If so Dbvisit Standby creates a new text file "datafiles_ORACLE_SID_DEST.txt" and ships it to the standby server to the location specified by parameter LOGDIR_DR, before proceeding with transferring redo logs.

Every time Dbvisit Standby runs on the standby, it reads the file datafiles_ORACLE_SID_DEST.txt and uses the primary datafile names to work out the location and name of a new standby datafile should one has to be added to the standby database. Actions related to recreating of a new standby control file are logged to Dbvisit Standby output and trace file.

This approach has certain limitations and Dbvisit may fail to obtain the primary name for a new standby datafile, if a delay lag is set for the standby, or if the datafile(s) have been dropped and added to the primary in between two consequent Dbvisit runs and Oracle happened to reuse file ids.

To deal with this limitation Dbvisit first attempts to obtain the primary name for the new standby datafile from the datafiles_ORACLE_SID_DEST.txt file. If that fails, Dbvisit looks for Oracle error message ORA-01274 that contains the primary name of the new datafile. If the error message is not present in sqlplus output, Dbvisit will attempt to create a new standby datafile as an OMF file, but only if the creation of OMF files is enabled on the standby. This functionality can be turned off by setting the global ADD_DATAFILE_FORCE_OMF to N (default Y).


Dbvisit Standby can by default only add a maximum of 10 data files per session.  This is controlled by the MAX_DATAFILES_TO_ADD parameter that can be set in the Dbvisit Database Configuration File (DDC)


When Using ASM

If the Standby database is making use of ASM, using OMF (Oracle Managed Files) is recommended.  

Important

If ASM is used on the standby database for database storage, datafiles on the standby database will be created as Oracle Managed Files (OMF).


If a new datafile was added to the primary database the same process will be followed as mentioned above where the "datafiles_ORACLE_SID_DEST.txt" file is used, but if the standby database is making use of ASM and OMF is enabled - db_create_file_dest is set to a specific disk group - the standby database datafiles will be added as OMF files.  (Aliases will not be used).