Oracle数据库的备份及恢复策略研究
2006-08-06 12:00:11 来源:WEB开发网Set adoTmp = objConnect.Execute("select 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("select 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数据库的备份及恢复进行了探讨,并提出了典型的备份策略,用户可以根据自己的实际情况及数据库结构在此基础上灵活应用。
- ››oracle 中 UPDATE nowait 的使用方法
- ››Oracle ORA-12560解决方法
- ››Oracle 10g RAC 常用维护命令
- ››Oracle如何在ASM中定位文件的分布
- ››Oracle的DBMS_RANDOM.STRING 的用法
- ››oracle 外部表导入时间日期类型数据,多字段导入
- ››Oracle中查找重复记录
- ››oracle修改用户登录密码
- ››Oracle创建删除用户、角色、表空间、导入导出等命...
- ››Oracle中登陆时报ORA-28000: the account is lock...
- ››Oracle数据库在配置文件中更改最大连接数
- ››Oracle中在pl/sql developer修改表的两种方式
更多精彩
赞助商链接