验证LUN保护组一致性脚本(Oracle)

由于自定义脚本非eReplication提供,脚本的正确性需要脚本提供方进行保证。在配置脚本前,请确认该脚本已通过测试验证。

验证和调试脚本时,测试过程中会重复冻结和解冻数据库,会影响现有业务,建议您新建一个非业务Oracle数据库进行验证。

冻结脚本(Windows)

本文以“sample_freeze.bat”为例说明,操作过程中请以实际脚本为准,请注意以下事项:

  • “sample_freeze.bat”完成开启Oracle数据库的热备。
  • 在Windows下执行脚本,请新建批处理文件,将执行脚本内容放到新建批处理文件,然后执行新建批处理文件。否则会导致当前批处理窗口退出。
  1. 以具有管理员权限的用户身份登录生产应用服务器。
  2. 打开命令行窗口,进入“%AGENT_ROOT%\bin\thirdparty”目录。
  3. 执行sample_freeze.bat <PID><AGENT_ROOT>命令,执行冻结脚本。

    • PID:脚本执行的唯一性标识,建议输入一个较大的数字作为标识。
    • AGENT_ROOT:Agent的安装根目录。

  4. 执行sqlplus / as sysdba命令,通过OS认证连接数据库实例。

    C:\Agent \bin\thirdparty>set ORACLE_SID=dbFS 
    C:\Agent \bin\thirdparty>sqlplus / as sysdba 
     
    SQL*Plus: Release 12.1.0.1.0 Production on Fri Jun 26 10:53:03 2020 
     
    Copyright (c) 1982, 2013, Oracle.  All rights reserved. 
     
     
    Connected to: 
    Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit Production 
    With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options     

  5. 执行select * from v$backup命令,验证脚本是否执行成功。

    SQL> select * from v$backup; 
     
         FILE# STATUS                CHANGE# TIME               CON_ID 
    ---------- ------------------ ---------- -------------- ---------- 
             1 ACTIVE                4789490 18-3月 -16              0 
             3 ACTIVE                4789490 18-3月 -16              0 
             5 ACTIVE                4789490 18-3月 -16              0 
             6 ACTIVE                4789490 18-3月 -16              0     

    “STATUS”状态为“ACTIVE”时,表示Oracle数据库已经开启热备模式,脚本执行成功。

  6. 执行alter database end backup命令,更改数据库。

    SQL> alter database end backup; 
     
    Database altered.     

  7. 执行select * from v$backup命令,验证脚本是否执行成功。

    SQL> select * from v$backup; 
     
         FILE# STATUS                CHANGE# TIME               CON_ID 
    ---------- ------------------ ---------- -------------- ---------- 
             1 NOT ACTIVE            4795771 18-3月 -16              0 
             3 NOT ACTIVE            4795771 18-3月 -16              0 
             5 NOT ACTIVE            4795771 18-3月 -16              0 
             6 NOT ACTIVE            4795771 18-3月 -16              0     

    “STATUS”状态为“NOT ACTIVE”时,表示Oracle数据库已经关闭热备模式。

解冻脚本(Windows)

本文以“sample_unfreeze.bat”为例说明,操作过程中请以实际脚本为准,请注意以下事项:

  • “sample_unfreeze.bat”完成关闭Oracle数据库的热备,必须在冻结脚本“sample_freeze.bat”执行成功后执行,否则会导致执行失败。
  • 在Windows下执行脚本,请新建批处理文件,将执行脚本内容放到新建批处理文件,然后执行新建批处理文件。否则会导致当前批处理窗口退出。
  1. 以具有管理员权限的用户身份登录生产应用服务器。
  2. 打开命令行窗口,进入“%AGENT_ROOT%\bin\thirdparty”目录。
  3. 执行sample_freeze.bat <PID><AGENT_ROOT>命令,执行冻结脚本。

    • PID:脚本执行的唯一性标识,建议输入一个较大的数字作为标识。
    • AGENT_ROOT:Agent的安装根目录。

  4. 执行sample_unfreeze.bat <PID><AGENT_ROOT>命令,执行解冻脚本。

    • PID:脚本执行的唯一性标识,建议输入一个较大的数字作为标识。
    • AGENT_ROOT:Agent的安装根目录。

  5. 执行sqlplus / as sysdba命令,通过OS认证连接数据库实例。

    C:\Agent \bin\thirdparty>set ORACLE_SID=dbFS 
    C:\Agent \bin\thirdparty>sqlplus / as sysdba 
     
    SQL*Plus: Release 12.1.0.1.0 Production on Fri Jun 26 10:53:03 2020 
     
    Copyright (c) 1982, 2013, Oracle.  All rights reserved. 
     
     
    Connected to: 
    Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit Production 
    With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options     

  6. 执行select * from v$backup命令,验证脚本是否执行成功。

    SQL> select * from v$backup; 
     
         FILE# STATUS                CHANGE# TIME               CON_ID 
    ---------- ------------------ ---------- -------------- ---------- 
             1 NOT ACTIVE            4794422 18-3月 -16              0 
             3 NOT ACTIVE            4794422 18-3月 -16              0 
             5 NOT ACTIVE            4794422 18-3月 -16              0 
             6 NOT ACTIVE            4794422 18-3月 -16              0     

    当“STATUS”状态为“NOT ACTIVE”时,表示Oracle数据库已经关闭热备模式,脚本执行成功。如果“STATUS”状态为“ACTIVE”,请执行alter database end backup命令后,关闭Oracle的热备模式。

查询冻结状态脚本(Windows)

本文以“sample_queryfreezestate.bat”为例说明,操作过程中请以实际脚本为准,请注意以下事项:

  • “sample_queryfreezestate.bat”完成查询Oracle数据库的热备状态,可以通过冻结脚本“sample_freeze.bat”和解冻脚本“sample_unfreeze.bat”配合验证脚本执行结果。
  • 在Windows下执行脚本,请新建批处理文件,将执行脚本内容放到新建批处理文件,然后执行新建批处理文件。否则会导致当前批处理窗口退出。
  1. 以具有管理员权限的用户身份登录生产应用服务器。
  2. 打开命令行窗口,进入“%AGENT_ROOT%\bin\thirdparty”目录。
  3. 执行查询冻结状态脚本。

    #查询冻结状态 
    sample_freeze.bat<PID><AGENT_ROOT> 
    sample_queryfreezestate.bat<PID><AGENT_ROOT> 
    sample_unfreeze.bat<PID><AGENT_ROOT> 
    #查询解冻状态 
    sample_queryfreezestate.bat<PID><AGENT_ROOT> 
    #查询热备状态示例: 
    sample_freeze.bat 10000 “C:\Agent” 
    sample_queryfreezestate.bat 10000 “C:\Agent” 
    sample_unfreeze.bat 10000 “C:\Agent” 
     
    #查询关闭热备状态示例: 
    sample_queryfreezestate.bat 10000 “C:\Agent”     
    • PID:脚本执行的唯一性标识,建议输入一个较大的数字作为标识。
    • AGENT_ROOT:Agent的安装根目录。

  4. 查看Oracle数据库热备状态。

    C:\Agent \bin\thirdparty>type ..\..\tmp\RST10000.txt 
    0 
    C:\Agent \bin\thirdparty>     

    查看“RST10000.txt”结果文档,如果显示为“0”,表示Oracle数据库已经开启热备模式。如果显示为“1”,表示Oracle数据库已经关闭热备模式。

冻结脚本(非Windows)

本文以“sample_freeze.sh”为例说明,操作过程中请以实际脚本为准,“sample_freeze.sh”完成开启Oracle数据库的热备。

  1. 以“root”用户身份登录生产应用服务器。
  2. 执行cd /home/rdadmin/Agent/sbin/thirtparty命令,进入脚本存放路径。
  3. 执行sh sample_freeze.sh <PID><AGENT_ROOT>命令,执行冻结脚本。

    • PID:脚本执行的唯一性标识,建议输入一个较大的数字作为标识。
    • AGENT_ROOT:Agent的安装根目录。非Solaris操作系统路径为“/home/rdadmin/Agent”。

  4. 执行su - oracle命令,切换为Oracle用户。
  5. 执行sqlplus / as sysdba命令,通过OS认证连接数据库实例。

    oracle@linux2:~> export ORACLE_SID=dbFS 
    oracle@linux2:~> sqlplus / as sysdba 
     
    SQL*Plus: Release 12.1.0.1.0 Production on Fri Jun 26 14:20:18 2020 
     
    Copyright (c) 1982, 2013, Oracle.  All rights reserved. 
     
     
    Connected to: 
    Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit Production 
    With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options     

  6. 执行select * from v$backup命令,验证脚本是否执行成功。

    SQL> select * from v$backup; 
     
         FILE# STATUS CHANGE# TIME       CON_ID 
    ---------- ------------------ ---------- --------- ---------- 
     1 ACTIVE 3106121 18-MAR-16    0 
     3 ACTIVE 3106121 18-MAR-16    0 
     4 ACTIVE 3106121 18-MAR-16    0 
     6 ACTIVE 3106121 18-MAR-16    0     

    “STATUS”状态为“ACTIVE”表示Oracle数据库已经开启热备模式,脚本执行成功。

  7. 执行alter database end backup命令,更改数据库。

    SQL> alter database end backup; 
     
    Database altered.     

  8. 执行select * from v$backup命令,验证脚本是否执行成功。

    SQL> select * from v$backup; 
     
         FILE# STATUS CHANGE# TIME       CON_ID 
    ---------- ------------------ ---------- --------- ---------- 
     1 NOT ACTIVE 3108004 18-MAR-16    0 
     3 NOT ACTIVE 3108004 18-MAR-16    0 
     4 NOT ACTIVE 3108004 18-MAR-16    0 
     6 NOT ACTIVE 3108004 18-MAR-16    0     

    “STATUS”状态为“NOT ACTIVE”表示Oracle数据库已经关闭热备模式。

解冻脚本(非Windows)

本文以“sample_unfreeze.sh”为例说明,操作过程中请以实际脚本为准,“sample_unfreeze.sh”完成关闭Oracle数据库的热备,必须在冻结脚本“sample_freeze.sh”执行成功后执行,否则会导致执行失败。

  1. 以“root”用户身份登录生产应用服务器。
  2. 执行cd /home/rdadmin/Agent/sbin/thirtparty命令,进入脚本存放路径。
  3. 执行sh sample_freeze.sh <PID><AGENT_ROOT>命令,执行冻结脚本。

    • PID:脚本执行的唯一性标识,建议输入一个较大的数字作为标识。
    • AGENT_ROOT:Agent的安装根目录。非Solaris操作系统路径为“/home/rdadmin/Agent”。

  4. 执行sh sample_unfreeze.sh <PID><AGENT_ROOT>命令,执行解冻脚本。

    • PID:脚本执行的唯一性标识,建议输入一个较大的数字作为标识。
    • AGENT_ROOT:Agent的安装根目录。非Solaris操作系统路径为“/home/rdadmin/Agent”。

  5. 执行su - oracle命令,切换为Oracle用户。
  6. 执行sqlplus / as sysdba命令,通过OS认证连接数据库实例。

    oracle@linux2:~> export ORACLE_SID=dbFS 
    oracle@linux2:~> sqlplus / as sysdba 
     
    SQL*Plus: Release 12.1.0.1.0 Production on Fri Jun 26 14:20:18 2020 
     
    Copyright (c) 1982, 2013, Oracle.  All rights reserved. 
     
     
    Connected to: 
    Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit Production 
    With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options     

  7. 执行select * from v$backup命令,验证脚本是否执行成功。

    SQL> select * from v$backup; 
     
         FILE# STATUS CHANGE# TIME       CON_ID 
    ---------- ------------------ ---------- --------- ---------- 
     1 NOT ACTIVE 3106121 18-MAR-16    0 
     3 NOT ACTIVE 3106121 18-MAR-16    0 
     4 NOT ACTIVE 3106121 18-MAR-16    0 
     6 NOT ACTIVE 3106121 18-MAR-16    0     

    当“STATUS”状态为“NOT ACTIVE”时,表示Oracle数据库已经关闭热备模式,脚本执行成功。如果“STATUS”状态为“ACTIVE”,请执行alter database end backup命令后,关闭Oracle的热备模式。

查询冻结状态脚本(非Windows)

本文以“sample_queryfreezestate.sh”为例说明,操作过程中请以实际脚本为准,“sample_queryfreezestate.sh”完成查询Oracle数据库的热备状态,可以通过冻结脚本“sample_freeze.sh”和解冻脚本“sample_unfreeze.sh”配合验证脚本执行结果。

  1. 以“root”用户身份登录生产应用服务器。
  2. 执行cd /home/rdadmin/Agent/sbin/thirtparty命令,进入脚本存放路径。
  3. 执行查询冻结状态脚本。

    #查询冻结状态 
    sh sample_freeze.sh<PID><AGENT_ROOT> 
    sh sample_queryfreezestate.sh<PID><AGENT_ROOT> 
    sh sample_unfreeze.sh<PID><AGENT_ROOT>  
     
    #查询解冻状态 
    sh sample_queryfreezestate.sh<PID><AGENT_ROOT> 
    #查询热备状态示例: 
    sh sample_freeze.sh 10000 /home/rdadmin/Agent 
    sh sample_queryfreezestate.sh 10000 /home/rdadmin/Agent 
    sh sample_unfreeze.sh 10000 /home/rdadmin/Agent 
     
    #查询关闭热备状态示例: 
    sh sample_queryfreezestate.sh 10000 /home/rdadmin/Agent
    • PID:脚本执行的唯一性标识,建议输入一个较大的数字作为标识。
    • AGENT_ROOT:Agent的安装根目录。非Solaris操作系统路径为“/home/rdadmin/Agent”。

  4. 查看Oracle数据库热备状态。

    linux2:/home/rdadmin/Agent/sbin/thirdparty # cat ../../tmp/RST10000.txt  
    0 
    linux2:/home/rdadmin/Agent/sbin/thirdparty #     

    查看“RST10000.txt”结果文档,如果显示为“0”,表示Oracle数据库已经开启热备模式。如果显示为“1”,表示Oracle数据库已经关闭热备模式。


版权所有 © 华为技术有限公司