在oracle 10 g要准备一个读写备用的数据库还是很繁琐的,准备好dataguard后得手动创建还原点,手动停日志传送,手动激活并强制打开,测试完了,如果主备的视交叉上核差太多,你还得做增量备份追,统计了下需15步,和搭一个物理备用的步骤差不多了,所以用的极少。到11 g里终于解放了,启用快照备库只需3步(当然中间重启的次数不算),恢复到实时应用备用也只需2步,日志还是继续传,需要镜像库测试的朋友,可以放心用了(用dataguard鲍克更简单)。当然转换成快照备份,是有些附加条件的(没有的参照前文去搭建一个):
1数据库闪回得打开;
2 db_recovery_file_dest_size还是要有足够的空间的;
3如果使用的保护模式是最大限度的保护模式,必须有其他的备用与之相匹配,否则小心主库宕机。
手动做的步骤如下:
1检查闪回
<代码>完成;选择flashback_on、database_role open_mode v $数据库; FLASHBACK_ON DATABASE_ROLE OPEN_MODE - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 没有物理备用只读应用代码>
当前待机状态是只读应用状态,这个时候需要终止申请过程,并且切换回山状态,否则是不允许进行转换动作的。
<代码>完成;立即关闭; 数据库关闭。 数据库下马。 ORACLE实例关闭。 完成;启动挂载; ORACLE实例开始。 完成;改变数据库闪回; 改变数据库闪回 * 误差在1号线: ora - 38706:不能打开闪回数据库日志记录。 ora - 38709:恢复区域未启用。代码>
报错了,这个错误好解决:
<代码>完成;显示参数db_recovery_file 的名字 类型值 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - db_recovery_file_dest字符串 db_recovery_file_dest_size大整数51000米 完成;改变系统设置db_recovery_file_dest=/数据的; 完成;改变数据库闪回; 完成;从v $选择flashback_on数据库; FLASHBACK_ON ------------------ 是的代码>
2转换
<代码>完成;改变数据库转换为快照备用; 完成;改变数据库开放;代码>
有兴趣的可以看下alert_sid。日志
结束:备用重做日志文件归档
RESETLOGS不完全恢复后,直到改变1974538
重置RESETLOGS激活ID 1974538 (0 x631d14b8)
在线日志/数据/db/onlinelog/group_1.261.899048765:线程1组1以前清除
在线日志/数据/db/onlinelog/group_2.260.899048765:线程1组2之前清除
在线日志/数据/db/onlinelog/group_3.277.899049819:线程2组3以前清除
在线日志/数据/db/onlinelog/group_4.278.899049819:线程2组4以前清除
在线日志/数据/db/onlinelog/group_5.280.908381663:线程1组5以前清除
在线日志/数据/db/onlinelog/group_6.281.908381749:线程1组6之前清除
在线日志/数据/db/onlinelog/group_7.282.908381877:线程1组7以前清除
检查下当前数据库状态:
<代码>完成;选择open_mode、database_role protection_mode v $数据库; OPEN_MODE DATABASE_ROLE PROTECTION_MODE - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 阅读写快照备份最大可用性代码>
已经变成可写状态,查询flash_back开始的SCN:
<代码>完成;从v $ flashback_database_log选择oldest_flashback_scn oldest_flashback_time; OLDEST_FLASHBACK_SCN OLDEST_FLASH - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1974537 17-MAY-17 代码>
从这里开始可以对备库进行任何操作:
<代码>完成;select * from all_objects创建表测试; 创建表。 完成;select count(*)从测试; COUNT (*) ---------- 14629 完成;删除表STAGE_TERADATA_OFFLINE_PKEYS清洗; 表下降。代码>
切回:
1关库,切换
<代码>完成关闭立即 完成启动山; 完成;改变物理备用数据库转换;代码>
这里查看alert_sid。日志可以看到
闪回恢复开始
闪回恢复完整
下降保证恢复点
删除了还原点
2关库,关闪回,启用实时应用
<代码>完成立即关闭; 完成启动山; 完成修改数据库闪回; 完成修改数据库开放; 完成恢复管理备用数据库使用当前日志文件从会话断开 完成选择open_mode database_role、protection_mode current_SCN v $数据库; OPEN_MODE DATABASE_ROLE PROTECTION_MODE CURRENT_SCN - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 只读应用物理备用最大可用性1977350Oracle 11 g物理dataguard之快照备用