Data Guard环境搭建
1.设置归档模式
#su - oracle
$sqlplus / as sysdba
SQL>archive log list;
先关闭数据库
SQL>shutdown immediate;
启动数据库到mount状态下
SQL>startup mount;
SQL>select open_mode from v$database;
把数据库修改为归档模式并打开数据库:
SQL>alter database archivelog;
SQL>alter database open;
SQL>archive log list;
数据库打开后,我们需要把数据库设为force logging:
SQL>alter database force logging;
SQL>select name,log_mode,force_logging from v$database;
2.添加standby日志:
standby logfile的数量和大小均要与redo logfile相同
查询主库当前redo logfile的数量
SQL>select thread#,group#,members,bytes/1024/1024 from v$log;
SQL>alter database add standby logfile group 11
('/app/oracle/oradata/dxjcdb/redo11_STB_A.log','/app/oracle/oradata/dxjcdb/redo1
1_STB_B.log') size 512M;
SQL>alter database add standby logfile group 12
('/app/oracle/oradata/dxjcdb/redo12_STB_A.log','/app/oracle/oradata/dxjcdb/redo1
2_STB_B.log') size 512M;
SQL>alter database add standby logfile group 13
('/app/oracle/oradata/dxjcdb/redo13_STB_A.log','/app/oracle/oradata/dxjcdb/redo1
3_STB_B.log') size 512M;
SQL> select group#,thread#,sequence#,archived,status from v$standby_log;
3.设置数据库口令文件的使用模式
执行以下命令查看remote_login_passwordfile的值是否EXCLUSIVE
SQL>show parameter remote_login_passwordfile
如果不是,执行以下命令进行设置,并且重启数据库,使其生效:
SQL>alter system set remote_login_passwordfile=EXCLUSIVE scope=spfile;
SQL>shutdown immediate;
SQL>startup;
4.参数设置
a)主库的参数配置
SQL>show parameter db_unique_name
SQL>alter system set log_archive_config='dg_config=(dxjcdb,dxjcdbs)'
scope=spfile;
其中dg_config填写的是主备库的db_unique_name。
设置归档日志的存放位置:
SQL>alter system set
log_archive_dest_1='LOCATION=/app/oracle/oradata/dxjcdb/archivelog
valid_for=(all_logfiles,all_roles) db_unique_name=dxjcdb' scope=spfile;
SQL>alter system set log_archive_dest_2='SERVICE=dxjcdbs ASYNC
VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=dxjcdbs' scope=spfile;
注:第一个dxjcdbs是tnsname.ora的连接名,第二个dxjcdbs是DB_UNIQUE_NAME
启用设置的日志路径:
SQL>alter system set log_archive_dest_state_1=enable scope=spfile;
SQL>alter system set log_archive_dest_state_2=enable scope=spfile;
设置归档日志进程的最大数量(视实际情况调整):
SQL>alter system set log_archive_max_processes=30 scope=both;
设置standby库从哪个数据库获取归档日志(只对standby库有效,在主库上设置是为了在故障切换后,