8.2 Opening a Standby Database for Read-Only or Read/Write Access
When a standby database is open for read-only access, users can query the standby database but cannot update
it. Thus, you can reduce the load on the primary database by using the standby database for reporting purposes. You can periodically open the standby database for read-only access and perform ad hoc queries to verify Redo Apply is updating the standby database
correctly. (Note that for distributed queries, you must first issue theALTER DATABASE SET TRANSACTION READ ONLY
statement before you can issue a query on the read-only database.)
当备库是以只读方式打开时,用户只能在备库上查询而不能更新它。那么你可以为主库减轻负载而在备库上出报表,你可以定期的以只读方式打开备库,查询验证重做应用是否正确的更新到备库。针对分布式查询,你必须在只读数据库查询之前发出ALTER DATABASE SET TRANSACTION READ ONLY语句。
Figure 8-1 shows a standby database open for read-only access.
See Also:
A physical standby database can be opened temporarily in read/write mode for development, reporting, or testing purposes, and then flashed back to a point in the past to be reverted back to a physical standby database. When the database is flashed back, Data Guard automatically synchronizes the standby database with the primary database, without the need to re-create the physical standby database from a backup copy of the primary database.
物理备库可以暂时打开以读/写模式用来开发,报告或测试的目的,然后闪回到过去一个点来恢复到一个物理备用数据库。当数据库闪回以后,Data Guard自动同步主库与备库之间的数据,而不需要从主数据库的备份副本重新创建物理备用数据库。
See Also:
Section 12.6 for a scenario that describes activating a physical standby database as a read/write reporting database, and then resynchronizing the database with the primary database8.2.1 Assessing Whether or Not to Open a Standby Database
As you decide whether or not to open a physical standby database for read-only or read/write access, consider the following:
决定是否要以只读方式或者读写方式打开物理备库,可以考虑如下:
-
Opening the physical standby database read-only may lengthen the time it takes to recover from a failure or outage, because the database must be restarted after a failover.
以只读方式打开物理备库可以延长失败或中断恢复的时间,因为数据库必须在故障切换后重新启动。
-
As long as the physical standby database has not been opened read-only since the last time it was started, a restart is unnecessary after failover, thus increasing system availability.
只要物理备库自从上次启动没有以只读方式打开,在故障切换后,重启是必须的,那么就会增加系统的可用性。
-
-
While a standby database is open for read-only or read/write access, it does not apply redo data received from the primary database, thus it is not kept transactionally consistent with the primary database.
当备库是以只读方式打开或者读写方式打开,就不会应用来自主库的重做数据,那么就不能与主库保持一致性的事务。
-
When a physical standby database is open, redo data from the primary database is received by the standby database, but the log files are not applied. At some point, you need to resume Redo Apply on the standby database, and apply the archived redo log files to resynchronize the standby database with the primary database. Because of the additional time required to apply any accumulated archived redo log files, having a standby database open for read-only access can increase the time required to complete failovers or switchovers.
当物理备库是打开时,来自主库的重做数据被备库接收,但是不会被应用。在有点伤,你需要在备库上重新应用重做数据,应用归档日志来同步备库和主库之间的数据。因为应用任何所需的额外时间累积的归档重做日志文件,因为需要申请任何累计归档重做日志文件,有一个备用数据库只读访问打开会增加完成故障切换或换药所需的额外时间。
You can use a physical standby database for reporting purposes or as a clone database while also maintaining the ability to complete a failover or switchover quickly if you configure more than one standby database on the standby system.
如果你的备用系统上配置多个备用数据库,你可以使用一个物理备用数据库进行报表用途或克隆一个数据库,同时还保持了完整的故障切换或正常切换。
For example, based on your business requirements, you might:
例如,基于你的业务需求,你可以:
-
Configure two physical standby databases with one standby database always performing Redo Apply to be as current as possible with the primary database and the other standby database open in read-only mode during business hours for reporting purposes.
配置两个物理备库,其中一个备库尽可能经常用来执行重做应用主库的日志,另外一个则以只读方式打开在业务期间达到出报表的目的。
-
-
Configure a physical standby database to maintain a copy of the primary database for disaster recovery purposes and also configure a logical standby database to off-load reporting tasks that require access to the latest data from the primary database.
配置物理备库来维护主库的副本来达到灾难恢复的目的,配置逻辑备库来卸载报表任务,这需要访问到主库最新的数据。
-
When configuring more than one standby database on the same system, consider using the DEPENDENCY
attribute of the LOG_ARCHIVE_DEST_
n
initialization
parameter to define one archival destination to receive redo data on behalf of all of the destinations, rather than transmitting redo data to each individual destination. See Section
5.7.5 for more information.
8.2.2 Opening a Physical Standby Database for Read-Only Access
You can alternate between having a physical standby database open for read-only access and performing Redo Apply using the following procedures.
你可以使用以下过程在物理备库只读方式打开访问和执行重做应用来轮流切换。
To open a standby database for read-only access when it is currently shut down:
当备库是关闭状态,直接使用STARTUP命令来以只读方式打开备库:
Start, mount, and open the database for read-only access using the following statement:
To open a standby database for read-only access when it is currently performing Redo Apply:
当目前正在执行重做应用,以只读方式打开备库来访问:(首先取消重做应用,然后再打开数据库)
-
Cancel Redo Apply:
-
Open the database for read-only access:
SQL> ALTER DATABASE OPEN;######################################################################################SYS@PRODSTD>alter database open;Database altered.SYS@PRODSTD>select OPEN_MODE from v$database;OPEN_MODE----------READ ONLYSYS@PRODSTD>------------------------------------------------------------------------------------------------------------------Sat Mar 29 13:22:29 2014alter database openSat Mar 29 13:22:29 2014SMON: enabling cache recoverySat Mar 29 13:22:30 2014Database Characterset is AL32UTF8replication_dependency_tracking turned off (no async multimaster replication found)Physical standby database opened for read only access.Completed: alter database open########################################################################################
You do not need to shut down the instance to open it for read-only access.
Note:
By default, theALTER DATABASE OPEN
statement opens physical standby databases in read-only mode. The Oracle database determines if this is a physical standby database based on information in the control file.ALTER DATABASE OPEN
这条语句是以只读凡是打开物理备库。oracle数据库是以控制文件里的信息是否是物理备库来决定的。
To change the standby database from being open for read-only access to performing Redo Apply:
切换备库从只读访问到重做应用:
-
Terminate all active user sessions on the standby database.
1.终止备库上所有活跃的用户会话。
-
Restart Redo Apply. To start Redo Apply, issue the following statement:
2.重启重做应用,发出以下语句可以启用重做应用:
To enable real-time apply, include the
USING CURRENT LOGFILE
clause:实时应用,需要包含USING CURRENT LOGFILE子句:
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE2> USING CURRENT LOGFILE;
You do not need to shut down the instance to start either of these apply modes.
你不需要关闭数据库然后再启用这些应用模式。