快照备用数据库:架构
物理备库转换为快照备库后,重做应用不再应用重做数据。
使用定义的传输方法(SYNC 或者 ASYNC)继续接收重做数据,但在快照备用数据库转换回物理备用数据库之前不会应用它。
快照备用数据库:概述
快照备用数据库是通过将物理备用数据库转换为快照备用数据库而创建的完全可更新的备用数据库。
快照备用数据库从主数据库接收和归档(但不应用)重做数据。
在丢弃对快照备用数据库的所有本地更新后,当快照备用数据库转换回物理备用数据库时,应用从主数据库接收的重做数据。
我们可以使用 DGMGRL 命令或者 SQL 命令创建快照备用数据库。
当备用数据库转换为快照备用数据库时,会创建一个隐式保证还原点并启用闪回数据库。
对快照备用数据库执行操作后,我们可以将其转换回物理备用数据库。
本类稍后将讨论闪回数据库。
Data Guard 隐式地将数据库闪回到有保证的还原点,并自动应用快照备用数据库自创建以来存档的主数据库重做。
此过程完成后,保证的还原点将被删除。
激活快照备用数据库:问题和注意事项
激活快照备用数据库时请记住以下几点:
日志文件损坏时潜在的数据丢失
快照备用数据库接受重做日志文件但不应用它们。
如果快照备用数据库中存在损坏的重做日志文件,则在将数据库转换回物理备用数据库并启动托管恢复过程 (MRP) 之前,不会发现该文件。
如果当时主数据库不可用,则无法检索该日志。
此外,闪回日志文件的丢失或者损坏可能会阻止转换回物理备用数据库。
快照备用数据库到主数据库的漫长转换
在主数据库出现故障的情况下,快照备用数据库可以在主数据库出现故障的情况下,快照备用数据库可以转换回物理备用数据库。
然后可以应用收到的重做,并且可以将数据库转换为主数据库。
如果快照备库远远落后于主库,应用收到的重做并将其转换到主库可能需要很长时间。
将快照备用数据库转换为物理备用数据库
要将物理备用数据库转换为快照备用数据库:
- 在 Oracle Real Applications Cluster (Oracle RAC) 数据库上,关闭除一个实例之外的所有实例。
- 确保数据库已装入但未打开 确保数据库已装入但未打开。
- 发出以下 SQL 语句以执行转换:
SQL> ALTER DATABASE CONVERT TO PHYSICAL STANDBY;
使用 CONVERT DATABASE 命令将数据库转换回物理备用数据库。
快照数据库必须至少以读写模式打开一次,然后才能转换回物理备用;否则返回以下错误:
SQL> alter database convert to physical standby; alter database convert to physical standby * ERROR at line 1:ORA-16433: The database or pluggable database must be opened in read/write mode.
注意:上述错误是由于在打开快照备用数据库之前尝试立即转换回物理备用数据库而产生的。
如果快照备用当前处于打开状态,则必须将其关闭并在 MOUNT 模式下重新启动以转换回物理备用。
否则会出现以下错误:
ORA-01126: database must be mounted in this instance and not open in any instance
将物理备库转换为快照备库
要将物理备用数据库转换为快照备用数据库:
- 如果它处于活动状态,则停止重做应用。
- 确保数据库已装入,但未打开。
- 确保已配置快速恢复区 确保已配置快速恢复区。
- 发出以下 SQL 语句以执行转换:
SQL&> ALTER DATABASE CONVERT TO SNAPSHOT STANDBY;
- 以读写方式打开快照备用数据库。
SQL> ALTER DATABASE OPEN;
上述步骤是将物理备库转换为快照备库所必需的。
在转换备用数据库之前,如果它正在运行,则必须停止重做应用。
如果重做应用正在运行,将返回以下错误消息:
SQL> alter database convert to snapshot standby; alter database convert to snapshot standby * ERROR at line 1: ORA-38784: Cannot create restore point 'SNAPSHOT STANDBY RE _ _ QUIRED 08 _ / / 16 2013 16:25:49'. ORA-01153: an incompatible media recovery is active
查看快照备库信息
V$DATABASE 视图的 DATABASE_ROLE 列指示该数据库是快照备用数据库。
通过查询 V$DATABASE 查看数据库角色:
SQL> SELECT database_role FROM v$database; DATABASE_ROLE --------------- SNAPSHOT STANDBY
快照备用数据库:目标限制
当我们将物理备用数据库转换为快照备用数据库时,如果配置处于最大保护模式,则它不能是配置中唯一的备用数据库。
此外,在转换为会造成这种情况的快照备用数据库后,我们不能对配置进行更改。
本类稍后将讨论保护模式。
我们不能切换到快照备用数据库。
快照备用数据库不能配置为快速启动故障转移目标。
总之,快照备用数据库不能:
- 最大保护配置中唯一的备用数据库
- 切换目标 切换目标
- 快速启动故障转移目标
快照备用空间要求
监控启用快照备用的空间需求:
SQL> select file_type, number_of_files, percent_space_used from v$recovery_area_usage; FILE_TYPE NUMBER_OF_FILES PERCENT_SPACE_USED ------------------ --------------- --------------- CONTROL FILE 0 0 REDO LOG 0 0 ARCHIVED LOG 106 41.81 BACKUP PIECE 1 .17 IMAGE COPY 0 0 FLASHBACK LOG 2 .98 FOREIGN ARCHIVED LOG 0 0 AUXILIARY DATAFILE COPY 0 0
无需启用闪回数据库即可发出将物理备用数据库转换为快照数据库的命令;但是,必须配置闪回恢复区。
该命令将自动启用闪回数据库并创建一个有保证的还原点。
这将导致在闪回恢复区中创建闪回日志。
如果闪回恢复区没有足够的空间来创建闪回日志,则会发生错误并将错误消息写入警报日志。
备库处于快照模式的时间越长,闪回日志就会变得越大。
有必要使用上面幻灯片中显示的 SQL 语句来监视此空间使用情况。
上述查询监控闪回恢复区的整体空间使用情况。
要确定创建的保证还原点的特定空间要求,可以使用以下查询:
SQL> SELECT NAME, STORAGE_SIZE FROM V$RESTORE_POINT; NAME STORAGE_SIZE --------------------------------------------- ----------- SNAPSHOT_STANDBY_REQUIRED_08/16/2013 16:41:11 52428800