Oracle数据库的备份及恢复策略研究(4)完

文章作者 100test 发表时间 2007:03:14 13:43:34
来源 100Test.Com百考试题网


(2)下列vb代码自动建立联机备份的批处理文件及相应的脚本文件。

set adotmp = objconnect.execute("0select tablespace_name from sys.dba_data_files") 得到数据库中的表空间名
dim lnum1 as long
dim lnum2 as long
lnum = freefile
open 自动备份批处理文件路径 for binary as lnum
lnum1 = freefile
open "onlinebegin.sql" for binary as lnum2 onlinebegin.sql为设置表空间进入热备份模式的脚本文件文件名
lnum2 = freefile
open "onlineend.sql" for binary as lnum2 onlinebegin.sql为结束表空间热备份模式的脚本文件文件名
strtmp = " connect 账户名/密码" &. chr(13) &. chr(10)
put lnum1, , strtmp
strtmp = "shutdown immediate" &. chr(13) &. chr(10)
put lnum1, , strtmp
strtmp = "startup pfile=初始化文件的存放位置exclusive mount. " &. chr(13) &. chr(10)
put lnum1, , strtmp
strtmp = "alter database archivelog. " &. chr(13) &. chr(10)
put lnum1, , strtmp
strtmp = "alter database open. " &. chr(13) &. chr(10)
put lnum1, , strtmp
strtmp = " connect 账户名/密码" &. chr(13) &. chr(10)
put lnum2, , strtmp
strtmp = oracle服务管理器路径 &. " @" &. " onlinebegin.sql " &. chr(13) &. chr(10) 在服务管理器中执行脚本文件onlinebegin.sql
put lnum, , strtmp
do while not adotmp.eof
set adotmp1 = objconnect.execute("0select file_name from sys.dba_data_files where tablespace_name=" &. adotmp.fields(0) &. "") 得到当前表空间所对应的所有数据文件名,通过循环即可得到所有表空间所对应数据文件名,若只备份指定的表空间,可指定表空间名从而得到其对应的物理数据文件
strtmp = "alter tablespace " &. adotmp.fields(0) &. " begin backup." &. chr(13) &. chr(10) 将表空间置于热备份模式
put lnum1, , strtmp
strtmp = oracle的ocopy.exe工具全路径 " &. adotmp1.fields(0) &. " " &. 备份文件存放路径 &. chr(13) &. chr(10)
put lnum, , strtmp
strtmp = "alter tablespace " &. adotmp.fields(0) &. " end backup." &. chr(13) &. chr(10) 表空间恢复正常模式
put lnum2, , strtmp
adotmp.movenext
loop
strtmp = oracle服务管理器路径 &. " @" &. " onlineend.sql" &. chr(13) &. chr(10) 在服务管理器中执行脚本文件onlineend.sql
put lnum, , strtmp
strtmp = "exit" &. chr(13) &. chr(10) 退出服务管理器
put lnum1, , strtmp
strtmp = "alter system switch logfile." &. chr(13) &. chr(10) 强制日志转换,使oracle创建一个归档日志文件
put lnum2, , strtmp
strtmp = "exit" &. chr(13) &. chr(10)
put lnum2, , strtmp
close
set adotmp = nothing
set adotmp1 = nothing

  运行得到的自动批处理文件,即可自动进行数据库的联机备份。

(3)在从备份中恢复数据文件后,执行下列脚本将数据库的恢复程序。

connect账户名/密码
shutdown abort
startup mount pfile=初始化文件的存放位置. 装载数据库
set autorecovery on. 打开自动恢复
recover database.
alter database open. 打开数据库

  结束语

  提高数据库灾难后恢复的可靠性正越来越多地受到人们的关注,本文根据个人在实际项目开发过程中的经验及恢复时的灵活性对oracle数据库的备份及恢复进行了探讨,并提出了典型的备份策略,用户可以根据自己的实际情况及数据库结构在此基础上灵活应用。



相关文章


OracleFreelist和HWM原理及性能优化(4)
用Oracle和Python武装你的头脑(1)(1)
见识了一次Oracle9i标准版
通过NetAppSimulator学习RAC(4)
Oracle数据库的备份及恢复策略研究(4)完
OracleFreelist和HWM原理及性能优化(3)
OracleFreelist和HWM原理及性能优化(5)
Oracle的大表,小表与全表扫描
通过NetAppSimulator学习RAC(3)
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛