Oracle 11.2 DataGuard RAC To RAC搭建
备库相关命名统一命名:<db_name>dg
1. 主库准备
1.1 主库归档与force loggin
# 检查是否处于归档模式,如果未处于归档,开启归档,开启归档方法不赘述
SQL> archive log list;
# 开启force logging
SQL> alter database force loggin;
1.2 主库参数修改
# 下面参数为动态参数,可以动态修改memory与spfile
SQL > alter system set log_archive_config='DG_CONFIG=(primary,primarydg)' scope=both sid='*';
SQL > alter system set log_archive_dest_2='SERVICE=primarydg ASYNC NOAFFIRM VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=primarydg' scope=both sid='*';
SQL > alter system set FAL_CLIENT='primary' scope=both sid='*';
SQL > alter system set FAL_SERVER='primarydg' scope=both sid='*';
SQL > alter system set standby_file_management=auto scope=both sid='*';
# 静态参数,如果路径相同,可以不做转换,需要重启主库生效
# 语法为:转换前,转换后,两个一对
SQL > alter system set db_file_name_convert='convert_before','convert_after' scope=spfile sid='*';
SQL > alter system set log_file_name_convert='convert_before','convert_after' scope=spfile sid='*';
1.3 主库添加standby log
# 可以不指定thread,默认为public thread,大小与现有必须一致,组数Oracle建议比online redo log多一组
# 添加standby log,后续恢复备库,备库就无需再添加standby log,standby log是为了可以real-time apply
# thread 1
SQL> alter database add standby logfile thread 1 group N '+DATA' size 4G;
...
# thread 2
SQL> alter database add standby logfile thread 2 group N '+DATA' size 4G;
...
# 查询
SQL> select inst_id,thread#,group#,status,bytes/1024/1024 MB from gv$standby_log order by 1,2,3;
2. 主备库配置tns与备库静态监听注册
2.1 主备库tnsnames.ora文件配置
# 为了以后使用方便,为主备库各配置三个tns alias
# primary database
PRIMARY =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = node1_vip)(PORT