创建DG
准备工作:主库和备库数据库版本一致,平台一致,数据库名相同,监听已建立并确保能连通
注意:在配置过程中,尽量保证所有文件夹路径主库和备库一致,以免造成不必要的错误
如果主库的备份文件和从库的备份文件路径不一致,则备库在rman 用
catalog start with '<路径>';
1.备份主库数据库
rman target /
run{
allocate channel d1 type disk;
backup full format 'E:\rman\rman_%d%U.bus' database;
backup current controlfile for standby format 'E:\rman\DGcontrolfile.bus';}
sql 'alter system archive log current';
// d:\rman可以改路径
2.把主库的一些配置复制到备库
①把上一步d:\rman里面的文件复制到备库
②把选中两个文件复制到备库,备库已有的重命名,其中第一个文件可有可无
3.通过rman把复制过来的数据恢复到数据库
把数据库启动到nomount状态
shutdown immediate
startup nomount
exit
rman target /
restore standby controlfile from 'D:\rman\DGCONTROLFILE.BUS';
sql 'alter database mount standby database';
restore database;
4.修改主库配置文件
alter system set log_archive_dest_2='SERVICE=指向备库的服务名 LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=唯一实例名';
alter system set log_archive_dest_state_2=enable;
alter system set STANDBY_FILE_MANAGEMENT=AUTO;
alter system set log_archive_max_processes=10;
5.修改备库配置文件
alter system set STANDBY_FILE_MANAGEMENT=AUTO;
alter system set standby_archive_dest='d:\archive\';
alter system set log_archive_dest_1='LOCATION=d:\archive';
注:d:\archive为备库归档存放路径
6.生产库切换日志
Alter system switch logfile;
确认归档日志是否能到备机上。
7.主库执行查询语句(查看归档传送是否报错)
Select error from v$archive_dest;
启动DG
shutdown immediate
startup nomount
alter database mount standby database;
//启动自动恢复模式
alter database recover managed standby database disconnect from session;
//启动至只读模式
//只读模式下可以执行sql语句查看是否有数据传到备库
Alter database open read only;
//关闭自动恢复
alter database recover managed standby database cancel
//手动DG
Recover standby database;
auto
//激活DG
alter database activate standby database;
alter database mount;
alter database open;
(注:激活DataGuard数据库是一个不可逆的操作,操作需谨慎)