• 19.2 建立逻辑备用数据库


    (1) 创建物理备用数据库

    (2) 激活主数据库和备用数据加的补充日志特征

    (3) 建立逻辑备用控制文件

    (4) 复制逻辑备用控制文件到备用数据库

    (5) 激活逻辑备用数据库

    (6) 修改逻辑备用数据库的数据库名

    (7) 改变参数文件的数据库名

    (8) 启动逻辑备用数据库, 并修改全局数据库名

     

    创建物理备用数据库:

    C:\>mkdir c:\standby1

    C:\>mkdir d:\standby1

    C:\>mkdir d:\standby1\adump

    C:\>mkdir d:\standby1\bdump

    C:\>mkdir d:\standby1\cdump

    C:\>mkdir d:\standby1\udump

    C:\>mkdir d:\standby1\archive

    C:\>oradim -new -sid standby1 -syspwd orcl
    实例已创建。

    C:\>sqlplus sys/orcl@demo as sysdba

    SQL*Plus: Release 10.2.0.1.0 - Production on 星期四 2月 19 13:50:12 2009

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

    连接到:
    Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
    With the Partitioning, OLAP and Data Mining options

    SQL> create pfile='%oracle_home%\database\initstandby1.ora' from spfile;

    文件已创建。

    SQL> create pfile='%oracle_home%\database\initdemo.ora' from spfile;

    文件已创建。

    SQL> create spfile='%oracle_home%\database\spfilestandby1.ora'
      2  from pfile='%oracle_home%\database\initstandby1.ora';

    文件已创建。

    listener.ora

    (SID_DESC =
      (GLOBAL_DBNAME = standby1)
      (ORACLE_HOME = D:\oracle\product\10.2.0\db_1)
      (SID_NAME = standby1)
    )

     

    tnsnames.ora

    standby1 =
      (DESCRIPTION =
        (ADDRESS_LIST =
          (ADDRESS = (PROTOCOL = TCP)(HOST = Renovo-Colin)(PORT = 1521))
        )
        (CONNECT_DATA =
          (SERVER = DEDICATED)
          (SERVICE_NAME = standby1)
        )
      )

     

    initdemo.ora

    db_unique_name='demo'
    fal_server=standby1
    fal_client=demo
    log_archive_dest_1='location=d:\demo\archive valid_for=(all_logfiles,all_roles) db_unique_name=demo'
    log_archive_dest_2='location=c:\demo\archive valid_for=(all_logfiles,all_roles) db_unique_name=demo'
    log_archive_dest_3='service=standby1 valid_for=(online_logfiles,primary_roles) db_unique_name=standby1'
    log_archive_config='dg_config=(demo,standby1)'
    standby_file_management=auto

     

    initstandby1.ora

    db_unique_name=standby1
    service_names=standby1
    instance_name=standby1
    audit_file_dest='D:\standby1\adump'
    background_dump_dest='D:\standby1\bdump'
    control_files='d:\standby1\control01.ctl'
    core_dump_dest='D:\standby1\cdump'
    log_archive_dest_1='location=d:\standby1\archive valid_for=(all_logfiles,all_roles) db_unique_name=standby1'
    log_archive_dest_2='service=demo valid_for=(online_logfiles,primary_role) db_unique_name=demo'
    log_archive_config='dg_config=(demo,standby1)'
    fal_server=demo
    fal_client=standby1
    standby_file_management=auto
    db_file_name_convert='d:\demo','d:\standby1'
    log_file_name_convert='d:\demo','d:\standby1','c:\demo','c:\standby1'
    standby_archive_dest='d:\standby1\archive'
    user_dump_dest='D:\standby1\udump'

    SQL> shutdown immediate
    数据库已经关闭。
    已经卸载数据库。
    ORACLE 例程已经关闭。
    SQL> create spfile from pfile;

    文件已创建。

    SQL> conn sys/orcl@standby1 as sysdba
    ERROR:
    ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务

    警告: 您不再连接到 ORACLE。
    SQL> host lsnrctl

    LSNRCTL for 32-bit Windows: Version 10.2.0.1.0 - Production on 19-2月 -2009 14:2
    9:08

    Copyright (c) 1991, 2005, Oracle.  All rights reserved.

    欢迎来到LSNRCTL, 请键入"help"以获得信息。

    LSNRCTL> stop
    正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=Renovo-Colin)(PORT=1521)))
    命令执行成功
    LSNRCTL> start
    启动tnslsnr: 请稍候...

    TNSLSNR for 32-bit Windows: Version 10.2.0.1.0 - Production
    系统参数文件为D:\oracle\product\10.2.0\db_1\network\admin\listener.ora
    写入D:\oracle\product\10.2.0\db_1\network\log\listener.log的日志信息
    监听: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=Renovo-Colin)(PORT=1521)))

    正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=Renovo-Colin)(PORT=1521)))
    LISTENER 的 STATUS
    ------------------------
    别名                      LISTENER
    版本                      TNSLSNR for 32-bit Windows: Version 10.2.0.1.0 - Produ
    ction
    启动日期                  19-2月 -2009 14:29:22
    正常运行时间              0 天 0 小时 0 分 1 秒
    跟踪级别                  off
    安全性                    ON: Local OS Authentication
    SNMP                      OFF
    监听程序参数文件          D:\oracle\product\10.2.0\db_1\network\admin\listener.o
    ra
    监听程序日志文件          D:\oracle\product\10.2.0\db_1\network\log\listener.log

    监听端点概要...
      (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=Renovo-Colin)(PORT=1521)))
    服务摘要..
    服务 "ORCL" 包含 1 个例程。
      例程 "ORCL", 状态 UNKNOWN, 包含此服务的 1 个处理程序...
    服务 "demo" 包含 1 个例程。
      例程 "demo", 状态 UNKNOWN, 包含此服务的 1 个处理程序...
    服务 "standby1" 包含 1 个例程。
      例程 "standby1", 状态 UNKNOWN, 包含此服务的 1 个处理程序...
    命令执行成功
    LSNRCTL> exit

    SQL> conn sys/orcl@standby1 as sysdba
    已连接到空闲例程。
    SQL> conn sys/orcl@demo as sysdba
    已连接到空闲例程。
    SQL> startup
    ORACLE 例程已经启动。

    Total System Global Area  603979776 bytes
    Fixed Size                  1250380 bytes
    Variable Size             281021364 bytes
    Database Buffers          314572800 bytes
    Redo Buffers                7135232 bytes
    数据库装载完毕。
    数据库已经打开。
    SQL> select name from v$datafile;

    NAME
    --------------------------------------------------------------------------------

    D:\DEMO\SYSTEM01.DBF
    D:\DEMO\UNDOTBS01.DBF
    D:\DEMO\SYSAUX01.DBF
    D:\DEMO\USERS01.DBF

    SQL> alter database begin backup;

    数据库已更改。

    SQL> host copy D:\DEMO\SYSTEM01.DBF d:\backup
    已复制         1 个文件。

    SQL> host copy D:\DEMO\UNDOTBS01.DBF d:\backup
    已复制         1 个文件。

    SQL> host copy D:\DEMO\SYSAUX01.DBF d:\backup
    已复制         1 个文件。

    SQL> host copy D:\DEMO\USERS01.DBF d:\backup
    已复制         1 个文件。

    SQL> alter database end backup;

    数据库已更改。

    SQL> alter database create standby controlfile as 'd:\backup\control01.ctl' reuse;

    数据库已更改。

    SQL> host copy d:\backup\*.dbf d:\standby1\*.*
    d:\backup\SYSAUX01.DBF
    d:\backup\SYSTEM01.DBF
    d:\backup\UNDOTBS01.DBF
    d:\backup\USERS01.DBF
    已复制         4 个文件。

    SQL> host copy d:\backup\*.ctl d:\standby1\*.*
    d:\backup\CONTROL01.CTL
    已复制         1 个文件。

    SQL> conn sys/orcl@standby1 as sysdba
    已连接到空闲例程。
    SQL> startup mount
    ORACLE 例程已经启动。

    Total System Global Area  603979776 bytes
    Fixed Size                  1250380 bytes
    Variable Size             163580852 bytes
    Database Buffers          432013312 bytes
    Redo Buffers                7135232 bytes
    数据库装载完毕。
    SQL> select name from v$archived_log;

    NAME
    --------------------------------------------------------------------------------

    D:\STANDBY1\ARCHIVE\ARC00125_0674493001.001
    D:\STANDBY1\ARCHIVE\ARC00126_0674493001.001
    D:\STANDBY1\ARCHIVE\ARC00093_0674493001.001
    D:\STANDBY1\ARCHIVE\ARC00094_0674493001.001
    D:\STANDBY1\ARCHIVE\ARC00095_0674493001.001
    D:\STANDBY1\ARCHIVE\ARC00096_0674493001.001
    D:\STANDBY1\ARCHIVE\ARC00097_0674493001.001
    D:\STANDBY1\ARCHIVE\ARC00098_0674493001.001
    D:\STANDBY1\ARCHIVE\ARC00099_0674493001.001
    D:\STANDBY1\ARCHIVE\ARC00100_0674493001.001
    D:\STANDBY1\ARCHIVE\ARC00101_0674493001.001
    D:\STANDBY1\ARCHIVE\ARC00102_0674493001.001
    D:\STANDBY1\ARCHIVE\ARC00103_0674493001.001
    D:\STANDBY1\ARCHIVE\ARC00104_0674493001.001
    D:\STANDBY1\ARCHIVE\ARC00105_0674493001.001
    D:\STANDBY1\ARCHIVE\ARC00106_0674493001.001
    D:\STANDBY1\ARCHIVE\ARC00107_0674493001.001
    D:\STANDBY1\ARCHIVE\ARC00108_0674493001.001
    D:\STANDBY1\ARCHIVE\ARC00109_0674493001.001
    D:\STANDBY1\ARCHIVE\ARC00110_0674493001.001
    D:\STANDBY1\ARCHIVE\ARC00111_0674493001.001
    D:\STANDBY1\ARCHIVE\ARC00112_0674493001.001
    D:\STANDBY1\ARCHIVE\ARC00113_0674493001.001
    D:\STANDBY1\ARCHIVE\ARC00114_0674493001.001
    D:\STANDBY1\ARCHIVE\ARC00115_0674493001.001
    D:\STANDBY1\ARCHIVE\ARC00116_0674493001.001
    D:\STANDBY1\ARCHIVE\ARC00117_0674493001.001
    D:\STANDBY1\ARCHIVE\ARC00118_0674493001.001
    D:\STANDBY1\ARCHIVE\ARC00119_0674493001.001
    D:\STANDBY1\ARCHIVE\ARC00120_0674493001.001
    D:\STANDBY1\ARCHIVE\ARC00121_0674493001.001
    D:\STANDBY1\ARCHIVE\ARC00122_0674493001.001
    D:\STANDBY1\ARCHIVE\ARC00123_0674493001.001
    D:\STANDBY1\ARCHIVE\ARC00124_0674493001.001

    已选择34行。

    SQL> recover standby database until cancel
    ORA-00279: 更改 1966738 (在 02/19/2009 14:31:15 生成) 对于线程 1 是必需的
    ORA-00289: 建议: D:\STANDBY1\ARCHIVE\ARC00122_0674493001.001
    ORA-00280: 更改 1966738 (用于线程 1) 在序列 #122 中

    指定日志: {<RET>=suggested | filename | AUTO | CANCEL}

    ORA-00279: 更改 1967091 (在 02/19/2009 14:42:09 生成) 对于线程 1 是必需的
    ORA-00289: 建议: D:\STANDBY1\ARCHIVE\ARC00123_0674493001.001
    ORA-00280: 更改 1967091 (用于线程 1) 在序列 #123 中
    ORA-00278: 此恢复不再需要日志文件 'D:\STANDBY1\ARCHIVE\ARC00122_0674493001.001'

    指定日志: {<RET>=suggested | filename | AUTO | CANCEL}

    ORA-00279: 更改 1967112 (在 02/19/2009 14:43:08 生成) 对于线程 1 是必需的
    ORA-00289: 建议: D:\STANDBY1\ARCHIVE\ARC00124_0674493001.001
    ORA-00280: 更改 1967112 (用于线程 1) 在序列 #124 中
    ORA-00278: 此恢复不再需要日志文件 'D:\STANDBY1\ARCHIVE\ARC00123_0674493001.001'

    指定日志: {<RET>=suggested | filename | AUTO | CANCEL}

    ORA-00279: 更改 1967162 (在 02/19/2009 14:44:32 生成) 对于线程 1 是必需的
    ORA-00289: 建议: D:\STANDBY1\ARCHIVE\ARC00125_0674493001.001
    ORA-00280: 更改 1967162 (用于线程 1) 在序列 #125 中
    ORA-00278: 此恢复不再需要日志文件 'D:\STANDBY1\ARCHIVE\ARC00124_0674493001.001'

    指定日志: {<RET>=suggested | filename | AUTO | CANCEL}

    ORA-00279: 更改 1967623 (在 02/19/2009 14:47:15 生成) 对于线程 1 是必需的
    ORA-00289: 建议: D:\STANDBY1\ARCHIVE\ARC00126_0674493001.001
    ORA-00280: 更改 1967623 (用于线程 1) 在序列 #126 中
    ORA-00278: 此恢复不再需要日志文件 'D:\STANDBY1\ARCHIVE\ARC00125_0674493001.001'

    指定日志: {<RET>=suggested | filename | AUTO | CANCEL}

    ORA-00279: 更改 1967626 (在 02/19/2009 14:47:21 生成) 对于线程 1 是必需的
    ORA-00289: 建议: D:\STANDBY1\ARCHIVE\ARC00127_0674493001.001
    ORA-00280: 更改 1967626 (用于线程 1) 在序列 #127 中
    ORA-00278: 此恢复不再需要日志文件 'D:\STANDBY1\ARCHIVE\ARC00126_0674493001.001'

    指定日志: {<RET>=suggested | filename | AUTO | CANCEL}
    cancel
    介质恢复已取消。
    SQL> alter database open;

    数据库已更改。

    SQL> select name from v$tempfile;

    NAME
    --------------------------------------------------------------------------------

    D:\STANDBY1\TEMP01.DBF

    SQL> conn sys/orcl@standby1 as sysdba
    已连接。
    SQL> alter database recover managed standby database disconnect from session;

    数据库已更改。

    SQL> select name from v$archived_log where applied='NO';

    未选定行

    SQL> conn sys/orcl@demo as sysdba
    已连接。
    SQL> alter database add supplemental log data (primary key,unique index) columns;

    数据库已更改。

    SQL> conn sys/orcl@standby1 as sysdba
    已连接。
    SQL> alter database add supplemental log data (primary key,unique index) columns;

    数据库已更改。

    SQL> select supplemental_log_data_pk,supplemental_log_data_ui from v$database;

    SUP SUP
    --- ---
    YES YES

    SQL> conn sys/orcl@demo as sysdba
    已连接。
    SQL> alter database create logical standby controlfile as 'd:\backup\control01.ctl' reuse;

    数据库已更改。
    SQL> conn sys/orcl@standby1 as sysdba
    已连接到空闲例程。
    SQL> host copy d:\backup\control01.ctl d:\standby1
    已复制         1 个文件。

    SQL> startup mount
    ORACLE 例程已经启动。

    Total System Global Area  603979776 bytes
    Fixed Size                  1250380 bytes
    Variable Size             163580852 bytes
    Database Buffers          432013312 bytes
    Redo Buffers                7135232 bytes
    数据库装载完毕。

    SQL> alter database recover managed standby database disconnect from session;

    数据库已更改。

    SQL> conn sys/orcl@demo as sysdba
    已连接。

    SQL> alter system archive log current;

    系统已更改。

    SQL> conn sys/orcl@standby1 as sysdba
    已连接。
    SQL> alter database activate standby database;

    数据库已更改。

    SQL> shutdown immediate
    ORA-01109: 数据库未打开

    已经卸载数据库。
    ORACLE 例程已经关闭。
    SQL> startup mount
    ORACLE 例程已经启动。

    Total System Global Area  603979776 bytes
    Fixed Size                  1250380 bytes
    Variable Size             163580852 bytes
    Database Buffers          432013312 bytes
    Redo Buffers                7135232 bytes
    数据库装载完毕。
    SQL> host nid target=sys/orcl@standby1 dbname=standby1

    DBNEWID: Release 10.2.0.1.0 - Production on 星期四 2月 19 15:41:59 2009

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

    已连接数据库 DEMO (DBID=3411805505)

    已连接服务器版本 10.2.0

    数据库中的控制文件数:
        D:\STANDBY1\CONTROL01.CTL

    是否将数据库 ID 和数据库名 DEMO 更改为 STANDBY1? (Y/[N]) => y

    操作继续进行
    将数据库 ID 从 3411805505 更改为 347490440
    将数据库名从 DEMO 更改为 STANDBY1
        控制文件 D:\STANDBY1\CONTROL01.CTL - 已修改
        数据文件 D:\STANDBY1\SYSTEM01.DBF - dbid 已更改, 已写入新名称
        数据文件 D:\STANDBY1\UNDOTBS01.DBF - dbid 已更改, 已写入新名称
        数据文件 D:\STANDBY1\SYSAUX01.DBF - dbid 已更改, 已写入新名称
        数据文件 D:\STANDBY1\USERS01.DBF - dbid 已更改, 已写入新名称
        数据文件 D:\STANDBY1\TEMP01.DBF - dbid 已更改, 已写入新名称
        控制文件 D:\STANDBY1\CONTROL01.CTL - dbid 已更改, 已写入新名称
        实例关闭

    数据库名已更改为 STANDBY1。
    修改参数文件并在重新启动前生成新的口令文件。
    数据库 STANDBY1 的数据库 ID 已更改为 347490440。
    此数据库的所有以前的备份和归档重做日志均不可用。
    数据库无法识别恢复区中以前的备份和归档日志。
    数据库已关闭, 用 RESETLOGS 选项打开数据库。
    已成功更改数据库名和 ID。
    DBNEWID - 已成功完成。

    SQL> host del %oracle_home%\database\pwdstandby1.ora

    SQL> host orapwd file=%oracle_home%\database\pwdstandby1.ora password=orcl

    SQL> create pfile from spfile;
    create pfile from spfile
    *
    第 1 行出现错误:
    ORA-03113: 通信通道的文件结束

    SQL> exit
    从 Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
    With the Partitioning, OLAP and Data Mining options 断开

    C:\>sqlplus sys/orcl@standby1 as sysdba

    SQL*Plus: Release 10.2.0.1.0 - Production on 星期四 2月 19 15:46:16 2009

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

    已连接到空闲例程。

    SQL> create pfile from spfile;

    文件已创建。

    修改initstandby1.ora

    db_name='standby1'

    SQL> create spfile from pfile;

    文件已创建。

    SQL> startup mount
    ORACLE 例程已经启动。

    Total System Global Area  603979776 bytes
    Fixed Size                  1250380 bytes
    Variable Size             163580852 bytes
    Database Buffers          432013312 bytes
    Redo Buffers                7135232 bytes
    数据库装载完毕。
    SQL> alter database open resetlogs;

    数据库已更改。

    SQL> alter database rename global_name to standby1;

    数据库已更改。

    SQL> select name from v$tempfile;

    NAME
    --------------------------------------------------------------------------------

    D:\STANDBY1\TEMP01.DBF

  • 相关阅读:
    vue_源码 原理 剖析
    vue_vuex
    vue_VueRouter 路由_路由器管理n个路由_并向路由组件传递数据_新标签路由_编程式路由导航
    vue_mint-ui
    vue_ajax 请求
    vue_组件间通信:自定义事件、消息发布与订阅、槽
    vue_小项目_吃饭睡觉打豆豆
    vue-cli 脚手架 Command Line Interface
    程序员面试金典-面试题 04.03. 特定深度节点链表
    程序员面试金典-面试题 04.02. 最小高度树
  • 原文地址:https://www.cnblogs.com/yiwuya/p/3018971.html
Copyright © 2020-2023  润新知