oracle单实例通过dataguard迁移到RAC(一)

2015-01-23 21:54:04 · 作者: · 浏览: 20

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