One instance primary to RAC standbyDataGuard Configuration:
?
| ? |
Primary |
standby |
| Clusterware |
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit |
11g R2 Grid Infrastructure (11.2.0.4) |
| Cluster Nodes |
Cltrac1 |
Srvrac1,srvrac2 |
| DB_UNIQUE_NAME |
Test1 |
Test2 |
| DB_NAME |
TEST1 |
Test1 |
| DB_instance |
Test1 |
Test11,test22 |
| DB_listener |
listener |
Listener2 |
| DB storage |
ASM |
Linux file sys |
| ASM diskgroup for DB files |
DATA |
? |
| ORACLE_HOME |
/bee/app/oracle/product/11.2.0/db_1 |
/bee/app/oracle/product/11.2.0/db_1 |
| OS |
CentOS release 6.4 (Final) |
CentOS release 6.4 (Final) |
?
主库准备:
1. 主库必须为归档模式,修改主库为归档模式的方法:
SQL>shutdown immediate
SQL>startup mount
SQL>alter database archivelog;
SQL>alter database open;
SQL>archive log list;
2. 启用主库的强制日志功能
SQL> alter database force logging;
3. 当主库添加或删除数据文件时,这些文件也会在备库添加或删除。启用此功能的方法如下:
SQL> alter system set standby_file_management = 'AUTO';
4. 给主库添加standby日志:
alterdatabase add standby logfile '/bee/app/oracle/oradata/test1/standby01.log' size50M;
alterdatabase add standby logfile '/bee/app/oracle/oradata/test1/standby02.log' size50M;
alter database add standby logfile'/bee/app/oracle/oradata/test1/standby03.log' size 50M;
5. 建密码文件,并且设置参数 REMOTE_LOGIN_PASSWORDFILE 为 EXCLUSIVE 或 SHARED。一般数据库默认就有密码文件,并且此参数默认为 EXECUSIVE。先检查下这两项,如果不是默认,设置方法如下:
SQL>alter system set remote_login_passwordfile=exclusive scope=spfile;
OS> orapwd password=
Scp mvorapwSID
6. 检查数据库的 db_unique_name 参数是否设置。如果没有,使用 alter system 进行设置:
SQL> show parameter db_unique_name;
SQL> alter system set db_unique_name=some_namescope=spfile;
7. 配置归档位置:
alter system set log_archive_dest_1 ='location=/bee/app/oracle/archivelog valid_for=(all_logfiles, all_roles)db_unique_name=test1';
alter system set log_archive_dest_2 = 'service=test21 asyncvalid_for=(online_logfile,primary_role) db_unique_name=test2';
?
8. SQL> alter system setfal_server = 'test2';
SQL> alter system set log_archive_config ='dg_config=(test1,test2)';
9. 设置文件转换方式:后面为本地存放位置
altersystem set DB_FILE_NAME_CONVERT='+DATA/test2/datafile/','/bee/app/oracle/oradata/test1/'scope=spfile;
alter system setLOG_FILE_NAME_CONVERT='+DATA/test2/onlinelog/','/bee/app/oracle/oradata/test1/'scope=spfile;
10. createpfile='/tmp/test2_pfile.ora' from spfile;
11.
?
?
监听及tnsnames配置:
1. 我们要用 RMAN 的 duplicate from active database 命令创建备库,需要配置静态监听和 TNS 名,黄色部分是我手动添加的静态监听,其余部分为数据库原来的动态监听,两节点都要添加:
[grid@srvrac2admin]$ cat listener.ora
LISTENER_TT=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=IPC)(KEY=LISTENER_TT)))) # line added by Agent
LISTENER_SCAN1=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=IPC)(KEY=LISTENER_SCAN1)))) # line added by Agent
LISTENER=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=IPC)(KEY=LISTENER)))) # line added by Agent
ENABLE_GLOBAL_DYNAMIC_ENDPOINT_LISTENER=ON # line added by Agent
ENABLE_GLOBAL_DYNAMIC_ENDPOINT_LISTENER_SCAN1=ON # line added by Agent
ENABLE_GLOBAL_DYNAMIC_ENDPOINT_LISTENER_TT=ON # line added by Agent
LISTENER2 =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST =10.205.0.31)(PORT = 1522))
(ADDRESS = (PROTOCOL = IPC)(KEY =EXTPROC1522))
)
)
?
SID_LIST_LISTENER2 =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = test1)
(ORACLE_HOME =/bee/app/oracle/product/11.2.0/db_1)
(S