实验环境
Clusterware |
11g R2 Grid Infrastructure (11.2.0.4) |
11g R2 Grid Infrastructure (11.2.0.4) |
Cluster Nodes |
RAC1, RAC2 (2-node RAC) |
standby1, standby2 (2-node RAC) |
SCAN listener Host/port |
SCAN VIPs (port 1521) |
SCAN VIPs (port 1521) |
VIPs |
RAC1-vip,RAC2-vip |
standby1-vip, standby2-vip |
DB_UNIQUE_NAME |
ORCL |
standby |
DB_NAME |
ORCL |
ORCL |
DB Instances |
ORCL1, ORCL2 |
ORCL1, ORCL2 |
DB Listener Host/port |
RAC1-vip, RAC2-vip (port 1521) |
standby1-vip, standby2-vip (port 1521) |
DB STORAGE |
ASM |
ASM |
ASM diskgroup for DB files |
+DATA,+ARCH |
+DATA02,+ARCH02 |
在主库上abort
[oracle@rac1 ~]$ srvctl stop database -d orcl -o abort
在备库的任意一个节点
[oracle@standby1 dbs]$ sqlplus / as sysdba
SQL*Plus: Release 11.2.0.4.0 Production on Fri Oct 19 14:57:23 2018
Copyright (c) 1982, 2013, Oracle. All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,
Data Mining and Real Application Testing options
SQL>
SQL> alter database recover managed standby database cancel;
Database altered.
SQL> alter database recover managed standby database finish;
Database altered.
SQL> select open_mode,database_role,switchover_status from v$database;
OPEN_MODE DATABASE_ROLE SWITCHOVER_STATUS
-------------------- ---------------- --------------------
READ ONLY PHYSICAL STANDBY TO PRIMARY
SQL> alter database commit to switchover to primary;
Database altered
SQL> select open_mode,database_role,switchover_status from gv$database;
OPEN_MODE DATABASE_ROLE SWITCHOVER_STATUS
-------------------- ---------------- --------------------
MOUNTED PRIMARY NOT ALLOWED
MOUNTED PRIMARY NOT ALLOWED
SQL> alter database open;
Database altered.
查看新主库的scn好,以便闪回只用
SQL> select to_char(standby_became_primary_scn) from v$database;
TO_CHAR(STANDBY_BECAME_PRIMARY_SCN)
----------------------------------------
2221281
.
在原来的主库上一个节点启动实例到mount
SQL> select open_mode from v$database;
OPEN_MODE
--------------------
MOUNTED
SQL> flashback database to scn 2221281;
Flashback complete.
SQL> alter database convert to physical standby;
Database altered.
(不能两个实例都启动到mount,不然会报错,报错如下
SQL> alter database convert to physical standby;
alter database convert to physical standby
*
ERROR at line 1:
ORA-01105: mount is incompatible with mounts by other instances)
SQL> shutdown immediate;
ORA-01507: database not mounted
ORACLE instance shut down.
启动数据库
[oracle@rac1 ~]$ srvctl start database -d orcl
将数据库启动到恢复模式
SQL> alter database recover managed standby database using current logfile disconnect from session;
Database altered.
SQL> select open_mode,database_role,switchover_status from gv$database;
OPEN_MODE DATABASE_ROLE SWITCHOVER_STATUS
-------------------- ---------------- --------------------
READ ONLY WITH APPLY PHYSICAL STANDBY NOT ALLOWED
READ ONLY WITH APPLY PHYSICAL STANDBY NOT ALLOW