Redo and archive log setup

NoteThe Mirror Replication Agent for Oracle must be installed on a machine where it can directly access the Oracle redo log and archive log files.

You can access both online and archive logs by default. If you want to access only the online logs, the Mirror Replication Agent can be configured to do so, but it requires that you turn auto-archiving off and that you set Mirror Replication Agent to issue manual archive log commands to Oracle.

Accessing archive logs

When the default is used and archive log files are to be accessed, configure the Mirror Replication Agent to use the directory path where the archive log files are located. To prevent conflicts with other archive file processes, you may want to configure Oracle to produce archive log files into an additional directory used only for replication. Mirror Replication Agent can be configured to remove archive log files when they are no longer needed. Sybase recommends that you only configure the Mirror Replication Agent to remove archive log files if an additional directory is used.

To enable redo log archiving:

alter database ARCHIVELOG;

To verify that log archiving is enabled:

select log_mode from v$database;

If ARCHIVELOG (ARCHIVELOG or MANUAL in Oracle 10g) is returned, then log archiving is enabled.

Accessing archive log files from a remote site

Since archive log files are always files, not raw devices, you must be careful to ensure the disk replication system and file system at the remote site allows the archive logs to be accessed from the remote site. If the disk replication system or remote file system does not provide a means to have access to archived log files from the primary site, the archive log files must be provided to the remote site outside of disk replication.As an example, if the file system on the remote site does not recognize files replicated using disk replication, you can write a copy of the archive log files directly from the primary to a remote system's device, using a remote mount. To do this, make a remote site device mountable to the primary system and mount that device at the primary site. Then, configure Oracle to write an additional copy of the archive log files to this remote device (see Oracle command "alter system" and parameter "log_archive_dest" for details on adding additional archive log destinations to your Oracle environment).

In the Mirror Replication Agent, set configuration property pdb_archive_path to the remote device location. You can also set Mirror Replication Agent configuration parameter pdb_remove_archives to true, to allow the Replication Agent to remove these archive log files when they are no longer needed to support replication.

Setting archiving for Mirror Replication Agent

When pdb_include_archives is set to true (the default) the Mirror Replication Agent does not do archiving and Sybase recommends that you configure Oracle to do automatic archiving of redo logs.

When the configuration parameter pdb_include_archives is set to false, Mirror Replication Agent for Oracle requires that automatic archiving of Oracle redo logs be disabled. Archiving is performed manually by the Mirror Replication Agent as the data in the redo log files is replicated.

Mirror Replication Agent for Oracle requires the following settings in your Oracle database depending on the Oracle version when configuration parameter pdb_include_archives is set to false, disabling usage or archived redo logs.

For Oracle 10g

StepsTo disable automatic archiving

  1. Enter the following:

    alter database ARCHIVELOG MANUAL;
    
  2. Verify that log archiving is disabled:

    select log_mode from v$database;
    

    If MANUAL is returned, then automatic log archiving is disabled.

For Oracle 9i

StepsTo disable automatic archiving

  1. To change the LOG_ARCHIVE_START parameter, you can manually edit the server’s start-up parameter file or use the following Oracle command:

    alter system set log_archive_start=false scope=spfile;
    
  2. Check the setting of the LOG_ARCHIVE_START parameter:

    select value from v$system_parameter where name = 'log_archive_start';
    
  3. If false is returned, the value in the server parameter file has been correctly modified to prevent automatic archiving when you re-start the Oracle server. For more information about the LOG_ARCHIVE_START parameter or the ALTER SYSTEM commands, see the Oracle Database Reference Guide.

  4. Automatic archiving must be disabled in the active server when you re-start the Oracle server. To stop automatic archiving in the active server:

    alter system archive log stop;
    
  5. To disable automatic archiving when you re-start the Oracle server, change the value of the server’s LOG_ARCHIVE_START parameter to false.

    NoteThis note applies only when pdb_include_archives is set to false. For redo log file processing after Mirror Replication Agent for Oracle is initialized, automatic archiving must never be enabled, even temporarily. If automatic archiving is re-enabled or manual archiving is performed, causing a redo log file not yet processed by the Mirror Replication Agent to be overwritten, then the data in the lost redo log file will not be replicated. To recover from this situation, reconfigure the Mirror Replication Agent to access archive log files. Set pdb_include_archives to true, set pdb_archive_path to the directory location that contains the archive of the file that has been overwritten, and resume. After catching up, suspend the Mirror Replication Agent, reset pdb_include_archives to false, and “resume” the Mirror Replication Agent.

Forced logging of all database changes

You can enable the forced logging of all database changes to the Oracle redo log file. Sybase recommends setting this option to insure that all data that should be replicated is logged. To enable the force logging command, execute the following statement on the primary database:

alter database FORCE LOGGING;

To verify the current setting of the force logging command, execute the following statement on the primary database:

select force_logging from v$database;