zoukankan      html  css  js  c++  java
  • Logical standby 主备库切换

    1. Logical standby 主备库切换

    1.1 确认主库是否能够切换

    SQL> SELECT SWITCHOVER_STATUS FROM V$DATABASE;

    SWITCHOVER_STATUS

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

    SESSIONS ACTIVE

    1.2 准备将主库切换为逻辑备库

    SQL> ALTER DATABASE PREPARE TO SWITCHOVER TO LOGICAL STANDBY;

    Database altered.

    SQL> SELECT SWITCHOVER_STATUS FROM V$DATABASE;

    SWITCHOVER_STATUS

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

    PREPARING SWITCHOVER

    --这时的状态已经变为准备切换

    1.3 准备将逻辑备库切换为主库

    SQL> ALTER DATABASE PREPARE TO SWITCHOVER TO PRIMARY;

    Database altered.

    --该语句将会在逻辑备库上开启重做日志传输服务。

    SQL> SELECT SWITCHOVER_STATUS FROM V$DATABASE;

    SWITCHOVER_STATUS

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

    PREPARING SWITCHOVER

    1.4 确认当前的主库已经准备好接收新主库的重做日志

    SQL> SELECT SWITCHOVER_STATUS FROM V$DATABASE;

    SWITCHOVER_STATUS

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

    TO LOGICAL STANDBY

    1.5 将主库切换成逻辑备库

    SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO LOGICAL STANDBY;

    Database altered.

    SQL> SELECT SWITCHOVER_STATUS FROM V$DATABASE;

    SWITCHOVER_STATUS

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

    NOT ALLOWED

    1.6 将逻辑备库切换成主库

    SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY;

    Database altered.

    SQL> SELECT SWITCHOVER_STATUS FROM V$DATABASE;

    SWITCHOVER_STATUS

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

    SESSIONS ACTIVE

    1.7 在备库上开启SQL Apply

    SQL> ALTER DATABASE START LOGICAL STANDBY APPLY;

    Database altered.

    如果主备库的SID相同,对换主备库的IP,对换lisener.ora以及init.ora,tnsnames.ora重新启动lisener及数据库就可以了。如果主备库的SID不同,则要进行如下操作。

    1.8 更换SID

    以下更换过程中,主库的SID为IT,备库的SID为ITS

    1.8.1 更换主库的SID(在原备库,新的主库上完成)

    SQL> shutdown immediate;

    数据库关闭.

    数据库已卸载.

    已关闭 ORACLE 执行处理.

    SQL> startup mount;

    ORACLE 执行处理已启动.

    Total System Global Area  612368384 bytes

    Fixed Size                  1298160 bytes

    Variable Size             167772432 bytes

    Database Buffers          436207616 bytes

    Redo Buffers                7090176 bytes

    数据库已挂载.

    SQL> host nid target=sys/oracle@its dbname=it

    DBNEWID: Release 10.2.0.4.0 - Production on 星期二 10月 20 16:51:46 2009

    Copyright (c) 1982, 2007, Oracle.  All rights reserved.

    已联机至数据库 ITS (DBID=2303471784)

    联机至服务器版本 10.2.0

    数据库中的控制文件:

        D:\IT\CONTROLFILE\O1_MF_5FJ2KRKL_.CTL

        D:\FLASHBACK\IT\CONTROLFILE\O1_MF_5FJ2KS3F_.CTL

    要将数据库 ID 和数据库名称 ITS 变更成 IT? (Y/[N]) => y

    继续作业

    将数据库 ID 从 2303471784 变更成 3211721123

    将数据库名称从 ITS 变更成 IT

        控制檔 D:\IT\CONTROLFILE\O1_MF_5FJ2KRKL_.CTL - 已修改

        控制檔 D:\FLASHBACK\IT\CONTROLFILE\O1_MF_5FJ2KS3F_.CTL - 已修改

        资料文件 D:\IT\DATAFILE\O1_MF_SYSTEM_5FJ2HFH4_.DBF - dbid 已变更, 已写入新名称

        资料文件 D:\IT\DATAFILE\O1_MF_UNDOTBS1_5FJ2HFN0_.DBF - dbid 已变更, 已写入新名

        资料文件 D:\IT\DATAFILE\O1_MF_SYSAUX_5FJ2HFJ3_.DBF - dbid 已变更, 已写入新名称

        资料文件 D:\IT\DATAFILE\O1_MF_USERS_5FJ2HFNZ_.DBF - dbid 已变更, 已写入新名称

        资料文件 D:\IT\DATAFILE\O1_MF_TEMP_5FJ2LO5C_.TMP - dbid 已变更, 已写入新名称

        控制檔 D:\IT\CONTROLFILE\O1_MF_5FJ2KRKL_.CTL - dbid 已变更, 已写入新名称

        控制檔 D:\FLASHBACK\IT\CONTROLFILE\O1_MF_5FJ2KS3F_.CTL - dbid 已变更, 已写入

    新名称

        执行处理关闭

    数据库名称已变更成 IT.

    重新启动前请先修改参数文件并产生新的密码文件.

    数据库 IT 的数据库 ID 已变更成 3211721123.

    此数据库的所有先前备份和存盘重做日志均已无法使用.

    数据库已经关闭, 请使用 RESETLOGS 选项开启数据库.

    成功变更数据库名称和 ID.

    DBNEWID - 成功完成.

    C:\Documents and Settings\Administrator>oradim -del -sid its

    执行处理已删除.

    C:\Documents and Settings\Administrator>oradim -new -sid it -startmode auto -pfile C:\oracle\product\10.2.0\db_1\database\initit.ora

    执行处理已建立.

    备份原备库上的initits.ora,lisener.ora,tnsnames.ora,密码文件,将原主库,新备库上的initit.ora,lisener.ora,tnsnames.ora,密码文件复制的新主库相应的位置,修改新备库的IP为另一个,将新主库的IP改为原来主库的 IP,重新启动lisener.

    C:\Documents and Settings\Administrator>set oracle_sid=it

    C:\Documents and Settings\Administrator>sqlplus /nolog

    SQL*Plus: Release 10.2.0.4.0 - Production on 星期二 10月 20 16:56:32 2009

    Copyright (c) 1982, 2007, Oracle.  All Rights Reserved.

    SQL> connect sys as sysdba

    输入密码:

    联机至闲置的执行处理.

    SQL> startup

    ORACLE 执行处理已启动.

    Total System Global Area  612368384 bytes

    Fixed Size                  1298160 bytes

    Variable Size             167772432 bytes

    Database Buffers          436207616 bytes

    Redo Buffers                7090176 bytes

    数据库已挂载.

    ORA-01589: 必须为要开启的数据库使用 RESETLOGS 或 NORESETLOGS 选项

    SQL> alter database open resetlogs;

    已更改数据库.

    SQL>

    1.8.2 更换备库的SID(在原主库,新的备库上完成)

    SQL> shutdown immediate;

    数据库关闭.

    数据库已卸载.

    已关闭 ORACLE 执行处理.

    SQL> startup mount;

    ORACLE 执行处理已启动.

    Total System Global Area  612368384 bytes

    Fixed Size                  1298160 bytes

    Variable Size             167772432 bytes

    Database Buffers          436207616 bytes

    Redo Buffers                7090176 bytes

    数据库已挂载.

    SQL> host nid target=sys/oracle@it dbname=its

    DBNEWID: Release 10.2.0.4.0 - Production on 星期二 10月 20 17:01:03 2009

    Copyright (c) 1982, 2007, Oracle.  All rights reserved.

    已联机至数据库 IT (DBID=3211404984)

    联机至服务器版本 10.2.0

    数据库中的控制文件:

        D:\IT\CONTROLFILE\O1_MF_5FJ2KRKL_.CTL

        D:\FLASHBACK\IT\CONTROLFILE\O1_MF_5FJ2KS3F_.CTL

    要将数据库 ID 和数据库名称 IT 变更成 ITS? (Y/[N]) => y

    继续作业

    将数据库 ID 从 3211404984 变更成 2303506065

    将数据库名称从 IT 变更成 ITS

        控制檔 D:\IT\CONTROLFILE\O1_MF_5FJ2KRKL_.CTL - 已修改

        控制檔 D:\FLASHBACK\IT\CONTROLFILE\O1_MF_5FJ2KS3F_.CTL - 已修改

        资料文件 D:\IT\DATAFILE\O1_MF_SYSTEM_5FJ2HFH4_.DBF - dbid 已变更, 已写入新名称

        资料文件 D:\IT\DATAFILE\O1_MF_UNDOTBS1_5FJ2HFN0_.DBF - dbid 已变更, 已写入新名

        资料文件 D:\IT\DATAFILE\O1_MF_SYSAUX_5FJ2HFJ3_.DBF - dbid 已变更, 已写入新名称

        资料文件 D:\IT\DATAFILE\O1_MF_USERS_5FJ2HFNZ_.DBF - dbid 已变更, 已写入新名称

        资料文件 D:\IT\DATAFILE\O1_MF_TEMP_5FJ2LO5C_.TMP - dbid 已变更, 已写入新名称

        控制檔 D:\IT\CONTROLFILE\O1_MF_5FJ2KRKL_.CTL - dbid 已变更, 已写入新名称

        控制檔 D:\FLASHBACK\IT\CONTROLFILE\O1_MF_5FJ2KS3F_.CTL - dbid 已变更, 已写入

    新名称

        执行处理关闭

    数据库名称已变更成 ITS.

    重新启动前请先修改参数文件并产生新的密码文件.

    数据库 ITS 的数据库 ID 已变更成 2303506065.

    此数据库的所有先前备份和存盘重做日志均已无法使用.

    数据库已经关闭, 请使用 RESETLOGS 选项开启数据库.

    成功变更数据库名称和 ID.

    DBNEWID - 成功完成.

    将原备库,新主库上备份的initits.ora,lisener.ora,tnsnames.ora,密码文件复制的新备库相应的位置,将新备库的IP改为原来备库的 IP,重新启动lisener.


    C:\Documents and Settings\Administrator>oradim -del -sid it

    执行处理已删除.

    C:\Documents and Settings\Administrator>oradim -new -sid its -startmode auto -pfile C:\oracle\product\10.2.0\db_1\database\initits.ora

    执行处理已建立.

    C:\Documents and Settings\Administrator>set oracle_sid=its

    C:\Documents and Settings\Administrator>sqlplus /nolog

    SQL*Plus: Release 10.2.0.4.0 - Production on 星期二 10月 20 16:56:32 2009

    Copyright (c) 1982, 2007, Oracle.  All Rights Reserved.

    SQL> connect sys as sysdba

    输入密码:

    联机至闲置的执行处理.

    SQL> startup

    ORACLE 执行处理已启动.

    Total System Global Area  612368384 bytes

    Fixed Size                  1298160 bytes

    Variable Size             167772432 bytes

    Database Buffers          436207616 bytes

    Redo Buffers                7090176 bytes

    数据库已挂载.

    ORA-01589: 必须为要开启的数据库使用 RESETLOGS 或 NORESETLOGS 选项

    SQL> alter database open resetlogs;

    已更改数据库.

    SQL> Alter database start logical standby apply;

    已更改数据库.

    SQL>

    欢迎转载,但请注明出处!
  • 相关阅读:
    函数的重载 C++快速入门06
    PE格式详细讲解8 系统篇08|解密系列
    《零基础入门学习汇编语言》检测点,实验,课后题答案
    PE格式详细讲解9 系统篇09|解密系列
    C++输出输入小结 C++快速入门05
    使用XML生成菜单
    DNS解析过程详解
    Windows Azure 2.5天深度技术训练营 和 微软公有云发现之旅
    使用单例模式实现自己的HttpClient工具类
    android 反编译和防止被反编译。
  • 原文地址:https://www.cnblogs.com/kevinsun/p/1589883.html
Copyright © 2011-2022 走看看