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

简介:

系统环境:

操作系统:RedHat EL55

Oracle : Oracle 11.2.0.1.0

集群软件:Oracle GI 11.2.0.1.0

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

wKioL1N9ovKhMVJ1AAGFVMkanCc961.jpg

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

主库:

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

NAME            DBID DATABASE_ROLE    PROTECTION_MODE      SWITCHOVER_STATUS

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

CUUG      1329392875 PRIMARY          MAXIMUM PERFORMANCE  TO STANDBY

备库:

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

NAME            DBID DATABASE_ROLE    PROTECTION_MODE      SWITCHOVER_STATUS

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

CUUG      1329392875 PHYSICAL STANDBY MAXIMUM PERFORMANCE  NOT ALLOWED



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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
18 : 20 : 51  SYS@ cuug>alter database commit to switchover to standby with session shutdown ;
Database altered.
 
18 : 21 : 25  SYS@ cuug>shutdown
ORA- 01507 : database not mounted
ORACLE instance shut down.
 
18 : 21 : 55  SYS@ cuug>startup mount;
ORACLE instance started.
Total System Global Area   418484224  bytes
Fixed Size                   1336932  bytes
Variable Size              264243612  bytes
Database Buffers           146800640  bytes
Redo Buffers                 6103040  bytes
Database mounted.
 
18 : 22 : 03  SYS@ cuug>select name,dbid,database_role,protection_mode,switchover_status from v$database;
NAME            DBID DATABASE_ROLE    PROTECTION_MODE      SWITCHOVER_STATUS
--------- ---------- ---------------- -------------------- --------------------
CUUG       1329392875  PHYSICAL STANDBY MAXIMUM PERFORMANCE  TO PRIMARY
Elapsed:  00 : 00 : 00.01
18 : 22 : 08  SYS@ cuug>recover managed standby database disconnect from session;
Media recovery complete.

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;

NAME            DBID DATABASE_ROLE    PROTECTION_MODE      SWITCHOVER_STATUS

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

CUUG      1329392875 PRIMARY          MAXIMUM PERFORMANCE  RESOLVABLE GAP

SQL> alter system switch logfile;

System altered.

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

NAME            DBID DATABASE_ROLE    PROTECTION_MODE      SWITCHOVER_STATUS

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

CUUG      1329392875 PRIMARY          MAXIMUM PERFORMANCE  TO STANDBY

@至此,DG切换成功


3、启动node2上的Instnace(stddb2)

1
2
3
4
5
6
7
SQL> startup
ORACLE instance started.
Total System Global Area   418484224  bytes
Fixed Size                   1336932  bytes
Variable Size              318769564  bytes
Database Buffers            92274688  bytes
Redo Buffers                 6103040  bytes

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

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

         1          1         31 CURRENT            52428800

         2          1         29 INACTIVE           52428800

         3          1         30 ACTIVE             52428800

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

2)添加thread 2日志组

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
SQL> alter database add logfile thread  2  ( '+dg1' , '+rcy1' ) size 50m;
Database altered.
 
SQL> alter database add logfile thread  2  ( '+dg1' , '+rcy1' ) size 50m;
Database altered.
 
SQL> alter database add logfile thread  2  ( '+dg1' , '+rcy1' ) size 50m;
Database altered.
 
SQL> select group#,member  from  v$logfile order by  1 ;
     GROUP# MEMBER
---------- --------------------------------------------------
          1  +DG1/stddb/onlinelog/redo01a.log
          1  +RCY1/stddb/onlinelog/redo01b.log
          2  +RCY1/stddb/onlinelog/redo02b.log
          2  +DG1/stddb/onlinelog/redo02a.log
          3  +DG1/stddb/onlinelog/redo03a.log
          3  +RCY1/stddb/onlinelog/redo03b.log
          4  +DG1/stddb/onlinelog/group_4 .280.848169735
          4  +RCY1/stddb/onlinelog/group_4 .287.848169817
          5  +DG1/stddb/onlinelog/group_5 .281.848169749
          5  +RCY1/stddb/onlinelog/group_5 .288.848169827
          6  +DG1/stddb/onlinelog/group_6 .282.848169759
     GROUP# MEMBER
---------- --------------------------------------------------
          6  +RCY1/stddb/onlinelog/group_6 .289.848169831
12  rows selected.

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:

1
2
3
4
5
6
7
8
9
SQL> startup 
ORACLE instance started.
Total System Global Area   418484224  bytes
Fixed Size                   1336932  bytes
Variable Size              318769564  bytes
Database Buffers            92274688  bytes
Redo Buffers                 6103040  bytes
Database mounted.
Database opened.

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)启动数据库

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[oracle @node1  ~]$ srvctl start database -d stddb
通过node1连接:
[oracle @node1  ~]$ sqlplus  '/as sysdba'
SQL*Plus: Release  11.2 . 0.1 . 0  Production on Wed May  21  19 : 18 : 37  2014
Copyright (c)  1982 2009 , Oracle.  All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release  11.2 . 0.1 . 0  - Production
With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,
Data Mining and Real Application Testing options
 
SQL> select instance_name,status from gv$instance;
INSTANCE_NAME    STATUS
---------------- ------------
stddb1           OPEN
stddb2           OPEN

通过node2连接:

1
2
3
4
5
6
7
8
[oracle @node2  admin]$ export ORACLE_SID=stddb2
[oracle @node2  admin]$ sqlplus  '/as sysdba'
SQL*Plus: Release  11.2 . 0.1 . 0  Production on Wed May  21  19 : 19 : 53  2014
Copyright (c)  1982 2009 , Oracle.  All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release  11.2 . 0.1 . 0  - Production
With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,
Data Mining and Real Application Testing options

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










本文转自 客居天涯 51CTO博客,原文链接:http://blog.51cto.com/tiany/1415383,如需转载请自行联系原作者
目录
相关文章
|
3天前
|
存储 NoSQL MongoDB
数据库数据恢复—MongoDB数据库迁移过程中丢失文件的数据恢复案例
某单位一台MongoDB数据库由于业务需求进行了数据迁移,数据库迁移后提示:“Windows无法启动MongoDB服务(位于 本地计算机 上)错误1067:进程意外终止。”
|
1月前
|
运维 关系型数据库 MySQL
体验领礼啦!体验自建数据库迁移到阿里云数据库RDS,领取桌面置物架!
「技术解决方案【Cloud Up 挑战赛】」上线!本方案介绍如何将自建数据库平滑迁移至云数据库RDS,解决业务增长带来的运维难题。通过使用RDS MySQL,您可获得稳定、可靠和安全的企业级数据库服务,专注于核心业务发展。完成任务即可领取桌面置物架,每个工作日限量50个,先到先得。
|
2月前
|
弹性计算 关系型数据库 数据库
自建数据库迁移到云数据库实操
本课程详细介绍了自建数据库迁移到阿里云RDS的实操步骤。主要内容包括:创建实例资源、安全设置、配置自建的MySQL数据库、数据库的迁移、从自建数据库切换到RDS以及清理资源。通过这些步骤,学员可以掌握如何将自建数据库安全、高效地迁移到云端,并确保应用的正常运行。
166 26
|
2月前
|
弹性计算 关系型数据库 数据库
从自建到云端,数据库迁移全攻略
本文详细介绍了将自建数据库迁移至阿里云RDS的全过程,涵盖WordPress网站安装、数据库迁移配置及验证等步骤。通过DTS数据传输服务,实现库表结构、全量和增量数据的无缝迁移,确保业务连续性和数据一致性。方案具备零成本维护、高可用性(最高99.99%)、性能优化及全面的数据安全保障等核心优势。此外,提供了详细的图文教程,帮助用户快速上手并完成迁移操作,确保业务稳定运行。点击文末“阅读原文”了解更多详情及参与活动赢取精美礼品。
166 13
|
2月前
|
弹性计算 安全 关系型数据库
活动实践 | 自建数据库迁移到云数据库
通过阿里云RDS,用户可获得稳定、安全的企业级数据库服务,无需担心数据库管理与维护。该方案使用RDS确保数据库的可靠性、可用性和安全性,结合ECS和DTS服务,实现自建数据库平滑迁移到云端,支持WordPress等应用的快速部署与运行。通过一键部署模板,用户能迅速搭建ECS和RDS实例,完成数据迁移及应用上线,显著提升业务灵活性和效率。
|
2月前
|
运维 关系型数据库 MySQL
自建数据库迁移到云数据库RDS
本次课程由阿里云数据库团队的凡珂分享,主题为自建数据库迁移至云数据库RDS MySQL版。课程分为四部分:1) 传统数据库部署方案及痛点;2) 选择云数据库RDS MySQL的原因;3) 数据库迁移方案和产品选型;4) 线上活动与权益。通过对比自建数据库的局限性,介绍了RDS MySQL在可靠性、安全性、性价比等方面的优势,并详细讲解了使用DTS(数据传输服务)进行平滑迁移的步骤。此外,还提供了多种优惠活动信息,帮助用户降低成本并享受云数据库带来的便利。
102 6
|
2月前
|
安全 关系型数据库 MySQL
体验自建数据库迁移到云数据库RDS,领取桌面置物架!
「技术解决方案【Cloud Up 挑战赛】」正式开启!本方案旨在帮助用户将自建数据库平滑迁移至阿里云RDS MySQL,享受稳定、高效、安全的数据库服务,助力业务快速发展。完成指定任务即可赢取桌面置物架等奖励,限量供应,先到先得。活动时间:2024年12月3日至12月31日16点。
|
4月前
|
算法 大数据 数据库
云计算与大数据平台的数据库迁移与同步
本文详细介绍了云计算与大数据平台的数据库迁移与同步的核心概念、算法原理、具体操作步骤、数学模型公式、代码实例及未来发展趋势与挑战。涵盖全量与增量迁移、一致性与异步复制等内容,旨在帮助读者全面了解并应对相关技术挑战。
81 3
|
5月前
|
存储 SQL 关系型数据库
一篇文章搞懂MySQL的分库分表,从拆分场景、目标评估、拆分方案、不停机迁移、一致性补偿等方面详细阐述MySQL数据库的分库分表方案
MySQL如何进行分库分表、数据迁移?从相关概念、使用场景、拆分方式、分表字段选择、数据一致性校验等角度阐述MySQL数据库的分库分表方案。
700 15
一篇文章搞懂MySQL的分库分表,从拆分场景、目标评估、拆分方案、不停机迁移、一致性补偿等方面详细阐述MySQL数据库的分库分表方案
|
4月前
|
存储 关系型数据库 MySQL
PACS系统 中 dicom 文件在mysql 8.0 数据库中的 存储和读取(pydicom 库使用)
PACS系统 中 dicom 文件在mysql 8.0 数据库中的 存储和读取(pydicom 库使用)
84 2

热门文章

最新文章

推荐镜像

更多