原理
创建还原点,利用闪回区记录转换为Read/Write中的变化,完成测试后,再将其还原回还原点的位置,重新变为physical standby database。
禁用备库的备份
进入备份管理机,将对应备库的归档和全备禁用
禁用备库的排程
crontab -e
创建闪回区目录
如果业务很忙,闪回日志会很大,需要存放在一个比较大的目录中
mkdir -p /oggdata/flash_recovery_area
修改数据库参数
--修改闪回区位置
alter system set db_recovery_file_dest='/oggdata/flash_recovery_area';
--修改闪回区限额
alter system set db_recovery_file_dest_size = 400G;
--修改闪回区对象保存时间(2天,根据实际需求调整)
alter system set db_flashback_retention_target=2880;
冻结VCS
hagrp -freeze {vcsgroup}
转换
--取消日志应用
alter database recover managed standby database cancel;
--关闭数据库并启动至mount状态
shutdown immediate;
startup mount;
--转换
ALTER DATABASE CONVERT TO SNAPSHOT STANDBY;
--打开数据库
alter database open;
--查看数据库的状态
select open_mode,database_role from v$database;
修改主库归档删除脚本
#!/bin/bash
source ~/.bash_profile
echo "start date ---------------------->"`date`
rman target / << eof
delete noprompt force archivelog until time 'sysdate - 6/24';
exit
eof
echo "end date ---------------------->"`date`
验证
-
查看对应闪回区下是否产生了文件
cd /oggdata/flash_recovery_area/{db_unqie_name}/flashback/ ll
-
使用工具进行连接
创建一个表并且插入试试是否可读可写
-
查看主库归档是否传送过来
-
主库alert日志中是否有错误信息
转换回来
转换
-- 关闭数据库并启动至mount状态
shutdown immediate;
startup mount;
--转换
ALTER DATABASE CONVERT TO PHYSICAL STANDBY;
--关闭并重新MOUNT,执行上一步之后,数据库无法mount(ORA-00750: database has been previously mounted and dismounted)
shutdown immediate;
startup nomount;
alter database mount standby database;
--查看数据库的状态
select open_mode,database_role from v$database;
-- 应用日志
alter database recover managed standby database disconnect;
验证
- 查看数据库日志是否应用
- 查看alert日志是否有报错
还原数据库参数
--修改闪回区位置
alter system set db_recovery_file_dest='/oracle/flash_recovery_area';
--修改闪回区限额
alter system set db_recovery_file_dest_size = 4G;
--修改闪回区对象保存时间(2天,根据实际需求调整)
alter system set db_flashback_retention_target=1440;
打开备份
进入管理机打开备份
参考:測試Oracle dataguard snapshot standby
打开EM
-
直接打开后,无法进入EM
503 Service Unavailable
-
关闭EM
emctl stop dbconsole
-
修改hosts文件
vi /etc/hosts ------------------------------------------------- 192.168.2.3 standby-vip # 修改为(使用主库的EM,因此要用主库的虚拟IP) 192.168.2.3 standby-vip primary-vip ------------------------------------------------- # ping一下,确定是192.168.2.3 ping primary-vip
-
将主库的EM文件scp过来
cd /oracle/11204/oc4j/j2ee/ scp -r OC4J_DBConsole_primary-vip_MONKEY 192.168.2.3:`pwd` cd /oracle/11204/ scp -r primary-vip_MONKEY 192.168.2.3:`pwd`
-
修改环境变量,并打开
export ORACLE_HOSTNAME=primary-vip export ORACLE_UNQNAME=MONKEY emctl status dbconsole emctl start dbconsole
关闭EM
cd /oracle/11204/oc4j/j2ee/
ll
export ORACLE_HOSTNAME=primary-vip
export ORACLE_UNQNAME=MONKEY
emctl status dbconsole
emctl stop dbconsole
emctl status dbconsole
vi /etc/hosts
------------------------------------------
192.168.2.3 standby-vip primary-vip
# 修改为
192.168.2.3 standby-vip
------------------------------------------