单实例数据库迁移到rac环境(四)下

简介:

在前面的章节中,完成了单实例主库和rac物理备库的环境的构建,本节中将介绍下如何完成主备库的手动角色切换,在这个场合如果使用data guard broker进行切换,会由于crs的原因而切换失败,因为数据库还未向crs进行注册,回顾下在rac环境上的使用data guard broker的使用条件:在rac环境下还需要配置DB_BROKER_CONFIG_FILEn参数,将该参数指定共享存储上,需要在OCR中要设定start_options参数为mount;因而在本例中必须采用手动切换,在开始之前,需要确保主库和备库的日志应用正常!

一:查看主库和备库的switchover状态,同时关闭节点2数据库

SQL> select name,db_unique_name,open_mode,database_role,switchover_status from gv$database;

NAME       DB_UNIQUE_NAME  OPEN_MODE    DATABASE_ROLE   SWITCHOVER_STAT
---------- --------------- ------------ --------------- ---------------
ORCL       primary         READ WRITE   PRIMARY         SESSIONS ACTIVE

[oracle@rac2 ~]$ sqlplus /nolog
SQL*Plus: Release 10.2.0.5.0 - Production on Mon Jan 9 20:31:14 2012
Copyright (c) 1982, 2010, Oracle.  All Rights Reserved.
SQL> conn /as sysdba
Connected.
SQL> shutdown immediate
ORA-01109: database not open
Database dismounted.
ORACLE instance shut down.

SQL> select name,db_unique_name,open_mode,database_role,switchover_status from gv$database;

NAME       DB_UNIQUE_ OPEN_MODE    DATABASE_ROLE     SWITCHOVER_STATUS
---------- ---------- ------------ ----------------- --------------------
ORCL       standby    MOUNTED      PHYSICAL STANDBY  SESSIONS ACTIVE

二:primary数据库库上运行下列的命令后,重新将数据库启动到mount状态,并开启应用日志模式

SQL> alter database commit to switchover to physical standby with session shutdown;
Database altered.

SQL> shutdown immediate
ORA-01507: database not mounted
ORACLE instance shut down.

SQL> startup mount
ORACLE instance started.
Total System Global Area  213909504 bytes
Fixed Size                  2095152 bytes
Variable Size             125831120 bytes
Database Buffers           79691776 bytes
Redo Buffers                6291456 bytes

SQL> select name,db_unique_name,open_mode,database_role,switchover_status from gv$database;

NAME       DB_UNIQUE_NAME  OPEN_MODE    DATABASE_ROLE    SWITCHOVER_STAT
---------- --------------- ------------ ---------------- ---------------
ORCL       primary         MOUNTED      PHYSICAL STANDBY TO PRIMARY

SQL> alter database recover managed standby database cancel;
Database altered.

三:将standby数据库转换为主库,出现下面的错误信息,需要手动rename下在线日志组

SQL> alter database commit to switchover to primary;
alter database commit to switchover to primary
*
ERROR at line 1:
ORA-00344: unable to re-create online log
'/u01/app/oracle/oradata/orcl/redo01.log'
ORA-27040: file create error, unable to create file
Linux-x86_64 Error: 2: No such file or directory

SQL> alter system set db_create_file_dest='+DATA';
System altered.

SQL> alter system set db_create_online_log_dest_1='+DATA';
System altered.

SQL> alter system set standby_file_management=manual;
System altered.

SQL> alter database rename file '/u01/app/oracle/oradata/orcl/redo01.log' to '+DATA/ORCL/ONLINELOG/redo01.log';
Database altered.

SQL> alter system set standby_file_management=auto;
System altered.

SQL> alter database commit to switchover to primary;
Database altered.

SQL> alter database open;
Database altered.

SQL> select name,db_unique_name,open_mode,database_role,switchover_status from gv$database;

NAME       DB_UNIQUE_ OPEN_MODE    DATABASE_ROLE     SWITCHOVER_STATUS
---------- ---------- ------------ ----------------- --------------------
ORCL       standby    READ WRITE   PRIMARY           SESSIONS ACTIVE

SQL> alter database recover managed standby database disconnect from session;
Database altered.

SQL> select name,db_unique_name,open_mode,database_role,switchover_status from gv$database;

NAME       DB_UNIQUE_NAME  OPEN_MODE    DATABASE_ROLE    SWITCHOVER_STAT
---------- --------------- ------------ ---------------- ---------------
ORCL       primary         MOUNTED      PHYSICAL STANDBY SESSIONS ACTIVE 

四:启动节点2数据库实例

[root@rac2 ~]# su - oracle
[oracle@rac2 ~]$ sqlplus /nolog
SQL*Plus: Release 10.2.0.5.0 - Production on Mon Jan 9 21:13:28 2012
Copyright (c) 1982, 2010, Oracle.  All Rights Reserved.

SQL> conn /as sysdba
Connected to an idle instance.
SQL> startup
ORACLE instance started.

Total System Global Area  213909504 bytes
Fixed Size                  2095152 bytes
Variable Size             125831120 bytes
Database Buffers           79691776 bytes
Redo Buffers                6291456 bytes
Database mounted.
Database opened. 

五:测试

SQL> select name,db_unique_name,open_mode,database_role,switchover_status from gv$database;

NAME       DB_UNIQUE_ OPEN_MODE    DATABASE_ROLE     SWITCHOVER_STATUS
---------- ---------- ------------ ----------------- --------------------
ORCL       standby    READ WRITE   PRIMARY           SESSIONS ACTIVE
ORCL       standby    READ WRITE   PRIMARY           SESSIONS ACTIVE


SQL> select owner,table_name from dba_tables where owner like 'TEST%';

 

OWNER                TABLE_NAME
-------------------- --------------------
TEST1                SOURCE
TEST1                MIGRATE
TEST2                SOURCE2

SQL> select count(*) from test1.source;

  COUNT(*)
----------
   2363928

SQL> select count(*) from test1.migrate;

  COUNT(*)
----------
         1

SQL> select count(*) from test2.source2;

  COUNT(*)
----------
   1181964

节点1数据库实例:
SQL> archive log list;
Database log mode              Archive Mode
Automatic archival             Enabled
Archive destination            +FRA/orcl/archivelog
Oldest online log sequence     47
Next log sequence to archive   48
Current log sequence           48

节点2数据库实例:
SQL> archive log list;
Database log mode              Archive Mode
Automatic archival             Enabled
Archive destination            +FRA/orcl/archivelog
Oldest online log sequence     22
Next log sequence to archive   24
Current log sequence           24

备库:
SQL> select first_time,next_time,sequence#,applied,thread# from v$archived_log where thread#=1 and sequence# >40 ;

FIRST_TIME       NEXT_TIME         SEQUENCE# APP    THREAD#
---------------- ---------------- ---------- --- ----------
2012-01-20:24:52 2012-01-20:24:58         41 YES          1
2012-01-20:24:52 2012-01-20:24:58         41 YES          1
2012-01-20:24:58 2012-01-20:25:51         42 YES          1
2012-01-20:24:58 2012-01-20:25:51         42 YES          1
2012-01-20:25:51 2012-01-20:40:18         43 YES          1
2012-01-20:25:51 2012-01-20:40:18         43 YES          1
2012-01-20:40:18 2012-01-20:45:09         44 YES          1
2012-01-20:40:18 2012-01-20:45:09         44 YES          1
2012-01-20:45:09 2012-01-20:49:01         45 YES          1
2012-01-20:45:09 2012-01-20:49:01         45 NO           1
2012-01-20:49:01 2012-01-20:49:43         46 YES          1

FIRST_TIME       NEXT_TIME         SEQUENCE# APP    THREAD#
---------------- ---------------- ---------- --- ----------
2012-01-20:49:01 2012-01-20:49:43         46 NO           1

SQL> select first_time,next_time,sequence#,applied,thread# from v$archived_log where thread#=2 and sequence# >20 ;

FIRST_TIME       NEXT_TIME         SEQUENCE# APP    THREAD#
---------------- ---------------- ---------- --- ----------
2012-01-20:45:11 2012-01-20:49:41         21 YES          2
2012-01-20:45:11 2012-01-20:49:41         21 NO           2

主库上切换日志测试日志是否能成功应用到备库
SQL> alter system archive log current;
System altered.

SQL> alter system archive log current;
System altered.

备库查询:
SQL> select first_time,next_time,sequence#,applied,thread# from v$archived_log where thread#=2 and sequence# >20 ;

FIRST_TIME       NEXT_TIME         SEQUENCE# APP    THREAD#
---------------- ---------------- ---------- --- ----------
2012-01-20:45:11 2012-01-20:49:41         21 YES          2
2012-01-20:45:11 2012-01-20:49:41         21 NO           2
2012-01-21:09:32 2012-01-21:10:58         22 YES          2
2012-01-21:14:02 2012-01-21:14:13         23 YES          2
2012-01-21:14:13 2012-01-21:25:03         24 YES          2
2012-01-21:25:03 2012-01-21:29:51         25 NO           2


SQL> select first_time,next_time,sequence#,applied,thread# from v$archived_log where thread#=1 and sequence# >40 ;

FIRST_TIME       NEXT_TIME         SEQUENCE# APP    THREAD#
---------------- ---------------- ---------- --- ----------
2012-01-20:24:52 2012-01-20:24:58         41 YES          1
2012-01-20:24:52 2012-01-20:24:58         41 YES          1
2012-01-20:24:58 2012-01-20:25:51         42 YES          1
2012-01-20:24:58 2012-01-20:25:51         42 YES          1
2012-01-20:25:51 2012-01-20:40:18         43 YES          1
2012-01-20:25:51 2012-01-20:40:18         43 YES          1
2012-01-20:40:18 2012-01-20:45:09         44 YES          1
2012-01-20:40:18 2012-01-20:45:09         44 YES          1
2012-01-20:45:09 2012-01-20:49:01         45 YES          1
2012-01-20:45:09 2012-01-20:49:01         45 NO           1
2012-01-20:49:01 2012-01-20:49:43         46 YES          1

FIRST_TIME       NEXT_TIME         SEQUENCE# APP    THREAD#
---------------- ---------------- ---------- --- ----------
2012-01-20:49:01 2012-01-20:49:43         46 NO           1
2012-01-21:09:32 2012-01-21:10:51         47 YES          1
2012-01-21:10:51 2012-01-21:25:05         48 YES          1
2012-01-21:25:05 2012-01-21:29:48         49 YES          1

主库建表测试,同时切换日志
SQL> create table test1.maa as select * from test1.migrate;
Table created.

SQL> alter system archive log current;
System altered.

备库的alert日志摘要信息
[oracle@server49 ~]$ tail -f /u01/app/oracle/admin/orcl/bdump/alert_orcl.log 
Mon Jan 09 21:33:39 CST 2012
Primary database is in MAXIMUM PERFORMANCE mode
Mon Jan 09 21:33:40 CST 2012
Primary database is in MAXIMUM PERFORMANCE mode
Mon Jan 09 21:33:41 CST 2012
Media Recovery Log /u01/app/oracle/flash_recovery_area/PRIMARY/archivelog/2012_01_09/o1_mf_1_50_7jotz6nc_.arc
Media Recovery Log /u01/app/oracle/flash_recovery_area/PRIMARY/archivelog/2012_01_09/o1_mf_2_26_7jotz6wr_.arc
Media Recovery Waiting for thread 2 sequence 27 (in transit)

将备库启动到只读状态,查看数据
SQL> alter database recover managed standby database cancel;
Database altered.

SQL> alter database open read only;
Database altered.

SQL> select * from test1.maa;

A
--------------------
successful

SQL> alter database recover managed standby database disconnect from session;
Database altered. 

六:收尾工作

SQL> @$ORACLE_HOME/rdbms/admin/catclust.sql;
PL/SQL procedure successfully completed.

[oracle@rac1 ~]$ srvctl add database -d orcl -o $ORACLE_HOME 
[oracle@rac1 ~]$ srvctl add instance -d orcl -i orcl1 -n rac1
[oracle@rac1 ~]$ srvctl add instance -d orcl -i orcl1 -n rac2
[oracle@rac1 ~]$ srvctl add instance -d orcl -i orcl2 -n rac2
[oracle@rac1 ~]$ crs_stat -t -v
Name           Type           R/RA   F/FT   Target    State     Host        
----------------------------------------------------------------------
ora.orcl.db    application    0/0    0/1    ONLINE    ONLINE    rac1        
ora....l1.inst application    0/5    0/0    ONLINE    ONLINE    rac1        
ora....l2.inst application    0/5    0/0    ONLINE    ONLINE    rac2        
ora....SM1.asm application    0/5    0/0    ONLINE    ONLINE    rac1        
ora....C1.lsnr application    0/5    0/0    ONLINE    ONLINE    rac1        
ora.rac1.gsd   application    0/5    0/0    ONLINE    ONLINE    rac1        
ora.rac1.ons   application    0/3    0/0    ONLINE    ONLINE    rac1        
ora.rac1.vip   application    0/0    0/0    ONLINE    ONLINE    rac1        
ora....SM2.asm application    0/5    0/0    ONLINE    ONLINE    rac2        
ora....C2.lsnr application    0/5    0/0    ONLINE    ONLINE    rac2        
ora.rac2.gsd   application    0/5    0/0    ONLINE    ONLINE    rac2        
ora.rac2.ons   application    0/3    0/0    ONLINE    ONLINE    rac2        
ora.rac2.vip   application    0/0    0/0    ONLINE    ONLINE    rac2  

本文转自斩月博客51CTO博客,原文链接http://blog.51cto.com/ylw6006/760934如需转载请自行联系原作者


ylw6006

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
3月前
|
网络协议 关系型数据库 MySQL
如何搭建MariaDB并实现无公网ip环境远程连接本地数据库
如何搭建MariaDB并实现无公网ip环境远程连接本地数据库
74 0
|
3月前
|
NoSQL Linux Redis
在Linux环境如何启动和redis数据库?
在Linux环境如何启动和redis数据库?
|
1月前
|
网络协议 关系型数据库 MySQL
安卓手机termux上安装MariaDB数据库并实现公网环境下的远程连接
安卓手机termux上安装MariaDB数据库并实现公网环境下的远程连接
|
2月前
|
关系型数据库 MySQL Linux
Linux环境下定时备份mysql数据库
Linux环境下定时备份mysql数据库
|
2月前
|
数据库 对象存储 数据安全/隐私保护
在oceanbase数据库中,有没有遇到备份到oss环境,备份进度到98%就一直卡着的问题?
在oceanbase数据库中,有没有遇到备份到oss环境,备份进度到98%就一直卡着的问题?
26 6
|
2月前
|
网络协议 关系型数据库 MySQL
通过内网穿透本地MariaDB数据库,实现在公网环境下使用navicat图形化工具
本篇教程将使用cpolar内网穿透本地MariaDB数据库,并实现在外公网环境下使用navicat图形化工具远程连接本地内网的MariaDB数据库。
|
3月前
|
SQL Oracle 关系型数据库
Linux环境下oracle切换用户并查询数据库命令
Linux环境下oracle切换用户并查询数据库命令
|
4月前
|
Java 关系型数据库 MySQL
【从0配置JAVA项目相关环境1】jdk + VSCode运行java + mysql + Navicat + 数据库本地化 + 启动java项目
【从0配置JAVA项目相关环境1】jdk + VSCode运行java + mysql + Navicat + 数据库本地化 + 启动java项目
104 0
|
4月前
|
关系型数据库 MySQL Shell
MySQL【实践 01】Linux 环境 MySQL 数据库备份 shell 脚本(脚本源码及说明+定时任务配置+数据库恢复测试)粘贴可以
MySQL【实践 01】Linux 环境 MySQL 数据库备份 shell 脚本(脚本源码及说明+定时任务配置+数据库恢复测试)粘贴可以
50 0
|
4月前
|
存储 NoSQL 容灾
Neo4j【环境部署 01】图形数据库(简介+下载地址+安装+配置+demo源码+学习教程地址)
Neo4j【环境部署 01】图形数据库(简介+下载地址+安装+配置+demo源码+学习教程地址)
86 1