由于自定义脚本非eReplication提供,脚本的正确性需要脚本提供方进行保证。在配置脚本前,请确认该脚本已通过测试验证。
验证和调试脚本时,测试过程中会重复冻结和解冻数据库,会影响现有业务,建议您新建一个非业务Oracle数据库进行验证。
本文以“sample_freeze.bat”为例说明,操作过程中请以实际脚本为准,请注意以下事项:
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 Mar 13 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
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数据库已经开启热备模式,脚本执行成功。
SQL> alter database end backup; Database altered.
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数据库已经关闭热备模式。
本文以“sample_unfreeze.bat”为例说明,操作过程中请以实际脚本为准,请注意以下事项:
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 Mar 13 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
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的热备模式。
本文以“sample_queryfreezestate.bat”为例说明,操作过程中请以实际脚本为准,请注意以下事项:
#查询冻结状态 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”
C:\Agent \bin\thirdparty>type ..\..\tmp\RST10000.txt 0 C:\Agent \bin\thirdparty>
查看“RST10000.txt”结果文档,如果显示为“0”,表示Oracle数据库已经开启热备模式。如果显示为“1”,表示Oracle数据库已经关闭热备模式。
本文以“sample_freeze.sh”为例说明,操作过程中请以实际脚本为准,“sample_freeze.sh”完成开启Oracle数据库的热备。
oracle@linux2:~> export ORACLE_SID=dbFS oracle@linux2:~> sqlplus / as sysdba SQL*Plus: Release 12.1.0.1.0 Production on Fri Mar 13 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
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数据库已经开启热备模式,脚本执行成功。
SQL> alter database end backup; Database altered.
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数据库已经关闭热备模式。
本文以“sample_unfreeze.sh”为例说明,操作过程中请以实际脚本为准,“sample_unfreeze.sh”完成关闭Oracle数据库的热备,必须在冻结脚本“sample_freeze.sh”执行成功后执行,否则会导致执行失败。
oracle@linux2:~> export ORACLE_SID=dbFS oracle@linux2:~> sqlplus / as sysdba SQL*Plus: Release 12.1.0.1.0 Production on Fri Mar 13 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
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的热备模式。
本文以“sample_queryfreezestate.sh”为例说明,操作过程中请以实际脚本为准,“sample_queryfreezestate.sh”完成查询Oracle数据库的热备状态,可以通过冻结脚本“sample_freeze.sh”和解冻脚本“sample_unfreeze.sh”配合验证脚本执行结果。
#查询冻结状态 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
linux2:/home/rdadmin/Agent/sbin/thirdparty # cat ../../tmp/RST10000.txt 0 linux2:/home/rdadmin/Agent/sbin/thirdparty #
查看“RST10000.txt”结果文档,如果显示为“0”,表示Oracle数据库已经开启热备模式。如果显示为“1”,表示Oracle数据库已经关闭热备模式。