1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > Oracle单实例数据库迁移到Oracle RAC 环境之(3)--主备库Switchover

Oracle单实例数据库迁移到Oracle RAC 环境之(3)--主备库Switchover

时间:2021-11-17 07:21:17

相关推荐

Oracle单实例数据库迁移到Oracle RAC 环境之(3)--主备库Switchover

Oracle单实例数据库迁移到Oracle RAC 环境之(3)--主备库Switchover

系统环境:

操作系统:RedHat EL55

Oracle : Oracle 11.2.0.1.0

集群软件:Oracle GI 11.2.0.1.0

本案例采用的是基于DataGuard的迁移方式

主备库实施切换,将RAC database切换成主库,既可以完成数据的迁移。

主库:

8:18:00 SYS@ cuug>select name,dbid,database_role,protection_mode,switchover_status from v$database;

NAMEDBID DATABASE_ROLE PROTECTION_MODE SWITCHOVER_STATUS

--------- ---------- ---------------- -------------------- --------------------

CUUG 1329392875PRIMARYMAXIMUM PERFORMANCETO STANDBY

备库:

SQL> select name,dbid,database_role,protection_mode,switchover_status from v$database;

NAMEDBID DATABASE_ROLE PROTECTION_MODE SWITCHOVER_STATUS

--------- ---------- ---------------- -------------------- --------------------

CUUG 1329392875PHYSICAL STANDBYMAXIMUM PERFORMANCE NOT ALLOWED

1、首先将主库(单实例)切换成备库

18:20:51SYS@cuug>alterdatabasecommittoswitchovertostandbywithsessionshutdown;Databasealtered.18:21:25SYS@cuug>shutdownORA-01507:databasenotmountedORACLEinstanceshutdown.18:21:55SYS@cuug>startupmount;ORACLEinstancestarted.TotalSystemGlobalArea418484224bytesFixedSize1336932bytesVariableSize264243612bytesDatabaseBuffers146800640bytesRedoBuffers6103040bytesDatabasemounted.18:22:03SYS@cuug>selectname,dbid,database_role,protection_mode,switchover_statusfromv$database;NAMEDBIDDATABASE_ROLEPROTECTION_MODESWITCHOVER_STATUS---------------------------------------------------------------------------CUUG1329392875PHYSICALSTANDBYMAXIMUMPERFORMANCETOPRIMARYElapsed:00:00:00.0118:22:08SYS@cuug>recovermanagedstandbydatabasedisconnectfromsession;Mediarecoverycomplete.

2、将备库(RAC)切换成主库

SQL> alter database commit to switchover to primary;

Database altered.

SQL> alter database open;

Database altered.

SQL> select name,dbid,database_role,protection_mode,switchover_status from v$database;

NAMEDBID DATABASE_ROLE PROTECTION_MODE SWITCHOVER_STATUS

--------- ---------- ---------------- -------------------- --------------------

CUUG 1329392875PRIMARYMAXIMUM PERFORMANCE RESOLVABLE GAP

SQL> alter system switch logfile;

System altered.

SQL> select name,dbid,database_role,protection_mode,switchover_status from v$database;

NAMEDBID DATABASE_ROLE PROTECTION_MODE SWITCHOVER_STATUS

--------- ---------- ---------------- -------------------- --------------------

CUUG 1329392875 PRIMARYMAXIMUM PERFORMANCE TO STANDBY

@至此,DG切换成功

3、启动node2上的Instnace(stddb2)

SQL>startupORACLEinstancestarted.TotalSystemGlobalArea418484224bytesFixedSize1336932bytesVariableSize318769564bytesDatabaseBuffers92274688bytesRedoBuffers6103040bytes

ORA-01618: redo thread 2 is not enabled - cannot mount

启动失败,解决方法:

1)查看实例1的redo日志

SQL> select group#,thread#,sequence#,status,bytes from v$log;

GROUP# THREAD# SEQUENCE# STATUS BYTES

---------- ---------- ---------- ---------------- ----------

1131 CURRENT52428800

2129 INACTIVE52428800

3130 ACTIVE 52428800

缺少thread 2的日志,对于RAC应该有两个thread !

2)添加thread 2日志组

SQL>alterdatabaseaddlogfilethread2('+dg1','+rcy1')size50m;Databasealtered.SQL>alterdatabaseaddlogfilethread2('+dg1','+rcy1')size50m;Databasealtered.SQL>alterdatabaseaddlogfilethread2('+dg1','+rcy1')size50m;Databasealtered.SQL>selectgroup#,memberfromv$logfileorderby1;GROUP#MEMBER------------------------------------------------------------1+DG1/stddb/onlinelog/redo01a.log1+RCY1/stddb/onlinelog/redo01b.log2+RCY1/stddb/onlinelog/redo02b.log2+DG1/stddb/onlinelog/redo02a.log3+DG1/stddb/onlinelog/redo03a.log3+RCY1/stddb/onlinelog/redo03b.log4+DG1/stddb/onlinelog/group_4.280.8481697354+RCY1/stddb/onlinelog/group_4.287.8481698175+DG1/stddb/onlinelog/group_5.281.8481697495+RCY1/stddb/onlinelog/group_5.288.8481698276+DG1/stddb/onlinelog/group_6.282.848169759GROUP#MEMBER------------------------------------------------------------6+RCY1/stddb/onlinelog/group_6.289.84816983112rowsselected.

3)激活thread 2

SQL> alter database enable thread 2;

Database altered.

4)再从node 2 open database

SQL> alter database open;

alter database open

*

ERROR at line 1:

ORA-01092: ORACLE instance terminated. Disconnection forced

ORA-30012: undo tablespace 'UNDOTBS2' does not exist or of wrong type

Process ID: 10707

Session ID: 1 Serial number: 3

看来是缺少undo tablespace;

回到node 1添加表空间:

SQL> alter system set db_create_file_dest='+dg1';

System altered.

SQL> create undo tablespace undotbs2;

Tablespace created.

重新在node2上启动Instance:

SQL>startupORACLEinstancestarted.TotalSystemGlobalArea418484224bytesFixedSize1336932bytesVariableSize318769564bytesDatabaseBuffers92274688bytesRedoBuffers6103040bytesDatabasemounted.Databaseopened.

SQL> show parameter undo

NAME TYPE VALUE

------------------------------------ ----------- ------------------------------

undo_management string AUTO

undo_retention integer 900

undo_tablespace string UNDOTBS2

SQL>

@至此,node2上的Instance 启动完毕,数据迁移完成。

4、将RAC上的database和Instance注册到CRS

由于RAC是基于CRS管理的,需要把database和instance注册到CRS里进行管理

1)注册数据库

[oracle@node1 ~]$srvctl add database -d stddb -o $ORACLE_HOME -n cuug

2)注册实例

[oracle@node1 ~]$srvctl add instance -d stddb -i stddb1 -n node1

[oracle@node1 ~]$srvctl add instance -d stddb -i stddb2 -n node2

3)启动数据库

[oracle@node1~]$srvctlstartdatabase-dstddb通过node1连接:[oracle@node1~]$sqlplus'/assysdba'SQL*Plus:Release11.2.0.1.0ProductiononWedMay2119:18:37Copyright(c)1982,,Oracle.Allrightsreserved.Connectedto:OracleDatabase11gEnterpriseEditionRelease11.2.0.1.0-ProductionWiththePartitioning,RealApplicationClusters,AutomaticStorageManagement,OLAP,DataMiningandRealApplicationTestingoptionsSQL>selectinstance_name,statusfromgv$instance;INSTANCE_NAMESTATUS----------------------------stddb1OPENstddb2OPEN

通过node2连接:

[oracle@node2admin]$exportORACLE_SID=stddb2[oracle@node2admin]$sqlplus'/assysdba'SQL*Plus:Release11.2.0.1.0ProductiononWedMay2119:19:53Copyright(c)1982,,Oracle.Allrightsreserved.Connectedto:OracleDatabase11gEnterpriseEditionRelease11.2.0.1.0-ProductionWiththePartitioning,RealApplicationClusters,AutomaticStorageManagement,OLAP,DataMiningandRealApplicationTestingoptions

@至此,整个数据迁移的工作全部完成,对于单实例的原来的主库,可以继续作为备库构建容灾的环境,保护数据安全!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。