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>

    欢迎转载,但请注明出处!
  • 相关阅读:
    yocto/bitbake 学习资源
    QEMU/KVM学习资源
    ubuntu 中创建和删除用户
    git 重命名本地和远程分支
    Ubuntu 上搭建 FTP 服务器
    gdb 常见用法
    git log 显示与特定文件相关的 commit 信息
    基于 qemu system mode 运行 arm 程序
    基于 qemu user mode 运行 aarch64 程序
    checking in(airport)
  • 原文地址:https://www.cnblogs.com/kevinsun/p/1589883.html
Copyright © 2011-2022 走看看