Product: | Syniti Replicate (a.k.a Syniti Data Replication, DBMoto) |
Version: | All |
ID: | 1584 |
Summary: | How to manage and avoid errors caused by a missing transaction ID in the Oracle Redo Log |
The following error occurs when a Syniti Replicate mirroring process checks for a transaction ID in the Redo Log that is not available. Typically, this happens when the Oracle logs are too small to contain all the transaction IDs needed.
ORA-01293: time or SCN range not fully contained in the listed logfiles.
Oracle logs its transactions in circular fashion, that is, it uses the redo log files in sequence. When the current file reaches its maximum size, Oracle will set its status to inactive and will keep writing to the next file. If the next file already contains data, it could be overwritten.
If all online log files have changed sequence number (i.e. the writing sequence of each specific log file) in the period between one Syniti Replicate read and the next (Read Interval setting in Syniti Replicate), the log files may be under-dimensioned, considering the amount of transactions to log, or there may be too few log files. Check with your Oracle system administrator to make sure the size and number of log files is optimized for your environment.
If you allow the log files to fill up and begin overwriting, Syniti Replicate may not be able to locate the next transaction to process. If this occurs, you need to perform a full refresh replication before resuming the mirroring.
You can also modify Syniti Replicate behavior to resolve this problem:
- Set the Read Interval in Syniti Replicate to read the logs and mirror data more frequently. The default read interval is 60 seconds:
- Disable the replication by selecting it in the Metadata Explorer (Management Center), and clicking the Enable Replication menu item to remove the checkmark.
- Select the replication in the Metadata Explorer.
- From the right mouse button menu, choose Replication Properties.
- In the Replication Properties dialog, go to the Preferences tab.
- Set the value of the Read Interval field lower than the current value. The value is displayed in seconds. The value you choose depends on your environment and how often you want to check the log for new transactions. You may need to try several different settings until you find one that works..
- Click OK to close the Replication Properties dialog.
- Enable the replication by selecting it in the Metadata Explorer, and clicking the Enable Replication menu item so that it displays a checkmark.
- Check the Read Archived Logs option in the Setup Info dialog available from the Connection Properties dialog of the source connection. This approach is useful only if your Oracle database uses ARCHIVELOG mode. It enables Syniti Replicate to search archived redo logs if transactions cannot be found in the online redo logs.
- Disable the replication by selecting it in the Metadata Explorer, and clicking the Enable Replication menu item to remove the checkmark.
- Select the source connection in the Metadata Explorer.
- From the right mouse button menu, choose Connection Properties.
- In the Connection Properties dialog, scroll to the Transactional Support section.
- Click on the value for the Transaction Log Type field.
- Click the ellipsis button.
- In the Setup Info dialog, click to open the Change Log Settings dialog.
- Check the option Read Archived Logs.
- Click OK to close the Change Log Settings dialog.
- Click OK to close the Setup Info dialog.
- Click OK to close the Connection Properties dialog.
- Enable the replication by selecting it in the Metadata Explorer, and clicking the Enable Replication menu item so that it displays a checkmark.