您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 数据库 > Oracle数据库的备份与恢复方案内部学习资料
Oracle数据库的备份与恢复方案内部学习资料jszzj数据库的备份和恢复是指为保护一个数据库免于数据损失或者在发生数据损失后进行数据重新创建的各种策略和步骤、方法。数据备份几乎是任何计算机系统中绝对必需的组成部分。意外断电、系统或服务器崩溃、用户失误、磁盘损坏甚至数据中心的灾难性丢失都可能造成数据库文件的破坏或丢失。而这些文件往往包含着珍贵的数据,经不得任何损失。数据库管理员必须对此有所准备。在这种情况下,备份与恢复占了举足轻重的位置。1.1如何启动ARCHIVELOG模式?系统环境:1、操作系统:Windows2000Server,机器内存128M2、数据库:Oracle8iR2(8.1.6)forNT企业版3、安装路径:C:\ORACLE实现步骤:1、管理器SVRMGRconnectinternalSVRMGRshutdownSVRMGRstartupmount[dbname]SVRMGRalterdatabase[dbname]archivelog;--起用归档模式SVRMGRarchivelogstart--启动自动归档模式,重起数据库后,按init.ora配置SVRMGRalterdatabase[dbname]open;--打开数据库SVRMGRexit2、修改数据库初始化参数文件,定义归档模式(自动)、归档日志文件保存路径、归档日志文件命名方法3、重新启动数据库具体实例:C:\svrmgrlOracleServerManagerRelease3.1.6.0.0-Production版权所有(c)1997,1999,OracleCorporation。保留所有权利。Oracle8iEnterpriseEditionRelease8.1.6.0.0-ProductionWiththePartitioningoptionJServerRelease8.1.6.0.0-ProductionSVRMGRconnectinternal连接成功。SVRMGRshutdown已关闭数据库。已卸下数据库。已关闭ORACLE实例。SVRMGRstartupmount已启动ORACLE实例。系统全局区域合计有57124108个字节FixedSize70924个字节VariableSize40198144个字节DatabaseBuffers16777216个字节RedoBuffers77824个字节已装入数据库。SVRMGRalterdatabasearchivelog;语句已处理。SVRMGRarchivelogstart语句已处理。SVRMGRalterdatabaseopen;语句已处理。SVRMGRaltersystemswitchlogfile;--强制系统进行日志切换,可马上观察到归档日志的产生语句已处理。SVRMGRexit服务器管理程序结束。修改数据库参数文件c:\oracle\admin\oradb\pfile\init.ora,取消以下语句的#注释log_archive_start=truelog_archive_dest_1=location=C:\Oracle\oradata\oradb\archivelog_archive_format=%%ORACLE_SID%%T%TS%S.ARC关闭数据库,重新启动查看C:\Oracle\oradata\oradb\archive目录下,可以看到类似ORADBT001S01201.ARC的文件,说明归档成功解释init.ora参数文件中关于归档重做日志参数项的含义:归档模式是自动还是手工,true为自动,false为手工log_archive_start=true归档日志文件所保存的路径log_archive_dest_1=location=C:\Oracle\oradata\oradb\archive归档日志文件的命名方法log_archive_format=%%ORACLE_SID%%T%TS%S.ARC归档命令:启动自动归档模式,系统重起后,将按init.ora中的参数log_archive_start的值设置归档方式SVRMGRarchivelogstart启动手工归档模式SVRMGRarchivelogstop查看归档信息:重做日志是否归档方式、是自动归档还是手工归档、归档路径、最旧的联机日志循序号...SVRMGRarchiveloglist归档一个已满,但没有归档的联机重做日志SVRMGRarchivelognext归档所有已满,但没有归档的联机重做日志SVRMGRarchivelogall注意:一个事务即使不被提交,也会被写入到重做日志中1.2如何使用归档日志进行完全恢复?系统环境:1、操作系统:Windows2000Server,机器内存128M2、数据库:Oracle8iR2(8.1.6)forNT企业版3、安装路径:C:\ORACLE模拟现象:先将数据库设置为归档模式SQL*Plus--创建实验表空间createtablespacetestdatafile'c:\test.ora'size5MAUTOEXTENDONNEXT1MMAXSIZEUNLIMITEDdefaultstorage(initial128Knext1Mpctincrease0)/--创建实验用户dropusertestcascade;createusertestidentifiedbytestdefaulttablespacetest;grantconnect,resourcetotest;conntest/testcreatetablea(anumber);insertintoavalues(1);insertintoaselect*froma;--反复插入,达到10万条commit;拷贝test.ora为test1.ora文件insertintoaselect*froma;--20万条commit;关闭数据库shutdown删除test.ora文件,把test1.ora拷贝为test.ora。重新启动数据库这时,可以mount上,但无法打开,因为现在使用的数据文件是旧的只有10万条记录,与控制文件中记载的lognumber不一样startupmount需要recoverdatabase,使数据库记录重新恢复到当前的20万条C:\svrmgrlsvrmgrlconnectinternalsvrmgrlshutdownsvrmgrlstartupmountsvrmgrlsetautorecoveryonsvrmgrlrecoverdatabase;svrmgrlalterdatabaseopen;conntest/testselectcount(*)froma;--数据又恢复到20万条connsystem/manager--删除实验表空间altertablespacetestoffline;droptablespacetestINCLUDINGCONTENTS;1.3没有备份、只有归档日志,如何恢复数据文件?系统环境:1、操作系统:Windows2000Server,机器内存128M2、数据库:Oracle8iR2(8.1.6)forNT企业版3、安装路径:C:\ORACLE模拟现象:可通过重建数据文件来恢复,前提是归档日志文件保存完整先将数据库设置为归档模式SQL*Plusconnsystem/manager--创建实验表空间createtablespacetestdatafile'c:\test.ora'size5MAUTOEXTENDONNEXT1MMAXSIZEUNLIMITEDdefaultstorage(initial128Knext1Mpctincrease0)/--创建实验用户dropusertestcascade;createusertestidentifiedbytestdefaulttablespacetest;grantconnect,resourcetotest;conntest/testcreatetablea(anumber);insertintoavalues(1);insertintoaselect*froma;--反复插入,达到100万条commit;--关闭数据库SVRMGRconnectinternalSVRMGRaltersystemswitchlogfile;--强制归档SVRMGRaltersystemswitchlogfile;SVRMGRaltersystemswitchlogfile;SVRMGRshutdown--操作系统下删除test.ora文件--重新启动数据库SVRMGRconnectinternalSVRMGRstartup这时,可以mount上,但无法打开,因为数据文件test.ora不存在,显示错误如下:ORA-01157:????/??????8-???DBWR????ORA-01110:????8:'C:\TEST.ORA'SVRMGRconnectinternalSVRMGRstartupmountSVRMGRalterdatabasecreatedatafile'c:\test.ora';SVRMGRsetautorecoveryonSVRMGRrecoverdatafile'c:\test.ora';SVRMGRalterdatabaseopen;conntest/testselectcount(*)froma;--数据又恢复到100万条--删除实验表空间connsystem/manageraltertablespacetestoffline;droptablespacetestINCLUDINGCONTENTS;dropusertest;如果是非归档模式,也可以运用以上方法,前提是:输入记录所占空间的大小不超过所有联机日志文件的大小即:用联机日志文件来恢复1.4联机热备份失败后,如何打开数据库?系统环境:1、操作系统:Windows20002、数据库:Oracle8iR2(8.1.6)forNT企业版3、安装路径:C:\ORACLE错误现象:进行联机热备份时,服务器发生故障,如掉电,重新启动服务器,启动数据库时,无法打开数据库,Oracle要求进行介质恢复,因为表空间还处在热备份状态。模拟现象及解决方法:先将数据库设置为归档模式C:\svrmgrlsvrmgrlconnectinternalsvrmgrlaltertablespace表空间名beginbackup;--表空间热备模式没结束就强行关闭数据库,造成错误svrmgrlshutdownabortsvrmgrlstartupmount--将此表空间的数据文件在没打开数据库时置成endbackup模式svrmgrlalterdatabasedatafile'表空间的数据文件名'endbackup;--或执行表空间介质恢复svrmgrlrecovertablespace表空间名;svrmgrlalterdatabaseopen;1.5某个数据文件损坏,如何打开数据库?系统环境:1、操作系统:Windows2000Server,机器内存128M2、数据库:Oracle8iR2(8.1.6)forNT企业版3、安装路径:C:\ORACLE错误现象:因误操作,数据库中某一数据文件被误删,控制面板的Oracle相关服务显示已启动,但用SQL*Plus无法连接,显示以下错误ORA-01033:ORACLEinitializationorshutdowninprogress模拟现象:createtablespacetestdatafile'c:\test.ora'size5MAUTOEXTENDONNEXT1MMAXSIZEUNLIMITEDdefaultstorage(initial128Knext1Mpctincrease0)/关闭所有服务s
本文标题:Oracle数据库的备份与恢复方案内部学习资料
链接地址:https://www.777doc.com/doc-4526943 .html