数据库的备份与恢复_第1页
数据库的备份与恢复_第2页
数据库的备份与恢复_第3页
数据库的备份与恢复_第4页
数据库的备份与恢复_第5页
免费预览已结束,剩余4页可下载查看

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、数据库的备份与恢复1ORACLE数据库的备份与恢复在本集中备份系统中,ORACLE数据库的备份与恢复是由LegatoNetworker(以下简称Networker),LegatoNetworkerModuleforOralce(以下简称NMO),Catalog数据库,以及OracleRecoverManager(以下简称RMAN)各部分共同完成的。其中Networker提供对磁带库、磁带机、磁带、索引等的管理;NMO提供Networker与RMAN之间的接口;Catalog保存了备份的数据库结构信息,以及备份集、备份片和数据库模式等信息;RMAN是Oracle的一个实用程序,完成对Oracle

2、数据文件、控制文件、归档重做日志的备份、还原和恢复工作,并把操作的信息保存在数据库的控制文件和Catalog数据库中,它简化了Oracle数据库的备份与恢复。1.1 ORACLE数据库的备份对Oracle数据库的备份,是由Networker主动发起的,在每天规定的时间启动组备份,所有包含在同一组的客户端将调用Oracle数据库中的RMAN脚本,启动RMAN备份,通过NMO将数据备份到磁带库。当然在需要的时候也可以在Oracle数据库服务器上手动执行RMAN备份脚本。所有Oracle数据库的备份已经在Networker上设置好,平时不需人为干预。以下是常用的备份脚本。1.1.1 Oracle数据

3、库的0级备份connectcatalogrman/rmancatalog_serverconnecttargetsystem/passwdoracle_serverrunallocatechannelc1type'SBT_TAPE'parms'ENV=(NSR_SERVER=l2000a,NSR_CLIENT=hostname,NSR_DATA_VOLUME_POOL=pool_name)'allocatechannelc2type'SBT_TAPE'parms'ENV=(NSR_SERVER=l2000a,NSR_CLIENT=host

4、name,NSR_DATA_VOLUME_POOL=pool_name)'allocatechannelc3type'SBT_TAPE'parms'ENV=(NSR_SERVER=l2000a,NSR_CLIENT=hostname,NSR_DATA_VOLUME_POOL=pool_name)'allocatechannelc4type'SBT_TAPE'parms'ENV=(NSR_SERVER=l2000a,NSR_CLIENT=hostname,NSR_DATA_VOLUME_POOL=pool_name),;backup

5、incrementallevel0databasediskratio0skipinaccessibletaghot_db_bk_level0format'db_%s_%p_%t'sql'altersystemarchivelogcurrent'backuparchivelogalldeleteinputskipinaccessibleformat'al_%s_%p_%t'backupcurrentcontrolfiletaghot_cf_bkformat'cf_%s_%p_%t'releasechannelc1;releasech

6、annelc2;releasechannelc3;releasechannelc4;1.1.2 Oracle数据库的1级增量备份connectcatalogrman/rmancatalog_serverconnecttargetsystem/passwdoracle_serverrunallocatechannelc1type'SBT_TAPE'parms'ENV=(NSR_SERVER=l2000a,NSR_CLIENT=allocatechannelc2type'SBT_TAPE'parms'ENV=(NSR_SERVER=l2000a,NS

7、R_CLIENT=allocatechannelc3type'SBT_TAPE'parms'ENV=(NSR_SERVER=l2000a,NSR_CLIENT=allocatechannelc4type'SBT_TAPE'parms'ENV=(NSR_SERVER=l2000a,NSR_CLIENT=backupincrementallevel1databasehostname,NSR_DATA_VOLUME_POOL=pool_name)'hostname,NSR_DATA_VOLUME_POOL=pool_name)'host

8、name,NSR_DATA_VOLUME_POOL=pool_name)'hostname,NSR_DATA_VOLUME_POOL=pool_name)'diskratio0skipinaccessibletaghotdbbklevel1differformat'db_%s_%p_%t'sql'altersystemarchivelogcurrent'backuparchivelogalldeleteinputskipinaccessibleformat'al_%s_%p_%t'backupcurrentcontrolfilet

9、aghot_cf_bkformat'cf_%s_%p_%t'releasechannelc1;releasechannelc2;releasechannelc3;releasechannelc4;1.2 ORACLE数据库的恢复通过NMO模块备份的数据可以使用两种方式进行恢复:1、在RMAN命令行模式下输入适当的命令,或使用RMAN恢复脚本;2、使用OEM备份管理工具,其中包含了针对RMAN的图形用户接口,可以产生相应的RMAN命令执行备份与恢复操作。Oracle使用restore和recover命令恢复数据库,restore(还原)是指从备份介质中提取出所需的数据文件,并把它

10、存储到磁盘上;recover(恢复)是指对数据库应用重做日志,以保证数据库的一致性。在还原(restore)数据库文件时,数据库应该处于什么状态呢?下表提供了一个快速解答。基本原则是:当一个文件正在被还原时,这个数据文件不能被实例使用,因为当一个数据库文件正在被还原时实例不能对其进行写入操作。在任何数据库文件还原期间,目标数据库的实例必须已经启动。当从备份集中只还原任何非系统数据文件时,为了确保还原成功,这些数据文件(或表空间)必须处于脱机状态。如果是还原任何系统表空间数据文件,则数据库必须以加载(mount)模式启动。当还原一个控制文件时,实例必须以非加载(nomount)模式启动,因为数据

11、库被加载后,该控制文件就要被使用。数据库文件数据库状态任何非系统数据文件加载或打开,但这些文件或表空间必须脱机系统数据文件加载数据库(所有数据文件)加载归档日志非加载、加载或打开控制非加载卜面介绍几种恢复情况下的RMAN恢复。1.2.1 Oracle数据库的完全恢复完全恢复包括对已执行的数据库、表空间或数据文件使用增量备份和重做数据以把数据库修正到最近的时刻。之所以称为“完全”恢复是因为oracle对备份应用所有的重做数据。在介质失效破坏数据文件或控制文件时,经常需要执行介质完全恢复。可以对数据库、表空间或数据文件执行完全恢复。如果在整个数据库上执行完全恢复,必须: 将数据库置于mount模式

12、 确保所有需要恢复的数据文件是联机的 还原整个数据库或需要恢复的文件 应用联机或归档重做日志,或两者都应用如果需要对一个表空间或数据文件执行完全恢复,你必须: 如果数据库是打开的(open),把需要恢复的表空间或数据文件置于脱机状态 还原表空间或数据文件 应用联机或归档重做日志,或两者都应用下面是使用RMAN执行完全恢复的一个示范脚本,在执行前数据库必须置于mount模式。connectcatalogrman/rmancatalog_serverconnecttargetsystem/passwdoracle_serverrunallocatechannelcltype'SBT_TAP

13、E'parms'ENV=(NSR_SERVER=l2000a,NSR_CLIENT=hostname,NSR_DATA_VOLUME_POOL=pool_name)'allocatechannelc2type'SBT_TAPE'parms'ENV=(NSR_SERVER=l2000a,NSR_CLIENT=hostname,NSR_DATA_VOLUME_POOL=pool_name)"restoredatabase;recoverdatabase;releasechannelc1;releasechannelc2;alterdatab

14、aseopen;1.2.2 Oracle数据库的不完全恢复不完全恢复使用备份数据产生一个非现时版本的数据库。也就是说,你不必应用自最近备份以来所有的重做数据,而是截止到某一特定时间点的重做日志,将数据库回退到以前的某个时间点。一般在下列情况下执行不完全恢复: 介质故障破坏了部分或所有的联机重做日志 用户错误导致数据丢失,例如:用户不小心drop了一个表 一个归档重做日志丢失导致无法执行完全恢复 丢失了当前的控制文件,必须使用备份的控制文件打开数据库执行不完全恢复,必须还原该时间点以前创建的所有备份,恢复命令指定在哪个时间点上希望恢复操作停止。在恢复完成以后以resetlogs(重置日志)方式打

15、开数据库。当打开数据库时,将忽略剩余的数据库重做信息,一旦数据库打开,被忽略的重做信息就不能再用了。重置(resetting)日志文件创建了数据库的一个新实体,已恢复的数据库的序号将以新的日志序列流开始,起始的日志序号为1,控制文件被更新以反应新的数据库。注意:由于归档日志文件现在使用的序号是从1开始计数的,所以应当在打开数据库之后清除当前归档日志目的路径。这样做能够避免来自不同数据库实体的文件保存在同一目录下时产生冲突。下面是使用RMAN执行不完全恢复的示范脚本,在执行前数据库必须置于mount模式。connectcatalogrman/rmancatalog_serverconnectta

16、rgetsystem/passwdoracle_serverrun#settimetojustbeforedatawaslostsetuntiltimeTO_DATE(02/02/200312:02:10','MM/DD/YYYYHH24:MI:SS')”;allocatechannelc1type'SBT_TAPE'parms'ENV=(NSR_SERVER=l2000a,NSR_CLIENT=hostname,NSR_DATA_VOLUME_POOL=pool_name)"allocatechannelc2type'SBT_

17、TAPE'parms'ENV=(NSR_SERVER=l2000a,NSR_CLIENT=hostname,NSR_DATA_VOLUME_POOL=pool_name)"restoredatabase;recoverdatabase;releasechannelc1;releasechannelc2;)alterdatabaseopenresetlogs;不完全恢复(时间点恢复)有三种方法,上面介绍的时基于时间的恢复,另外还有基于取消的恢复(指定恢复到某一重做文件)和基于取消的恢复(指定恢复到某个SCN)。1.2.3 Oracle数据库表空间的恢复如果恢复系统数据文

18、件,数据库必须置于mount模式。如果需要恢复非系统的数据文件或表空间,数据库可以打开,但相应的数据文件或表空间必须脱机。下面是表空间恢复的示范脚本。connectcatalogrman/rmancatalog_serverconnecttargetsystem/passwdoracle_serverrunallocatechannelc1type'SBT_TAPE'parms'ENV=(NSR_SERVER=l2000a,NSR_CLIENT=hostname,NSR_DATA_VOLUME_POOL=pool_name)'allocatechannelc2t

19、ype'SBT_TAPE'parms'ENV=(NSR_SERVER=l2000a,NSR_CLIENT=hostname,NSR_DATA_VOLUME_POOL=pool_name),;sql'altertablespsxxexofflineimmediate';restore(tablespacexxxx);recover(tablespacexxxx);sql'altertablespaxxxxonline';releasechannelc1;releasechannelc2;)1.2.4 恢复控制文件如果丢失了当前控制文件的所有

20、拷贝,但还有数据库当前日期的目录,则使用restorecontrolfile命令重新生成控制文件,该控制文件与以前的备份类似。RMAN将自动把控制文件存放到init.ora文件指定的路径下。还原前,数据库必须置于nomount模式。还原与恢复之后,必须重置日志并打开数据库。下面是还原控制文件的示范脚本connectcatalogrman/rmancatalog_serverconnecttargetsystem/passwdoracle_serverrunallocatechannelc1type'SBT_TAPE'parms'ENV=(NSR_SERVER=l2000

21、a,NSR_CLIENT=hostname,NSR_DATA_VOLUME_POOL=pool_name)'restorecontrolfile;releasechannelc1;1.2.5 把Oracle数据库恢复到另一台主机上在某些情况下,为了安全起见,有可能需要把数据库恢复到另外一台主机上。这时可以按照以下步骤进行恢复:a)在NetworkerServer上包含需要恢复Oracle的备份,并且在被备份的数据库主机的clientsetup属性下remoteaccess中要包含将要进行恢复的主机。b)在第二套Oracle系统主机上安装NMO模块。c)在第二套Oracle系统主机上安装

22、和配置RMAN。d)创建相应的RMAN恢复脚本。e) 在RMAN恢复脚本中指定NSR_SERVER变量。f) 在RMAN恢复脚本中指定NSR_CLIENT变量为原来备份的Oracle主机名。g)使用RMAN命令执行恢复脚本恢复数据库。SYBASE数据库的备份与恢复在本系统中,Sybase的备份和恢复是由NetWorker、NetWorkerModuleforSybase、SybaseOpenClient/C和SybaseBackupServer共同完成的。NetWorker和NetWorkerModuleforSybase(以下简称NMS)通过使用XBSA的API接口连接到Sybase的Bac

23、kupServerAPI接口为Sybase数据库提供存储管理服务。Libbms共享库从SybaseBackupServer接受API呼叫,把他们翻译成XBSA呼叫,并发送到NetWorker。在NetWorker上设置Sybase备份的策略,磁带池等信息。2.1SYBASE数据库的备份在日常的自动备份中,savegrp使用nsrsyb脚本代替标准的save命令,nsrsyb脚本与SybaseOpenClient/C互相协调对指定的数据库进行备份。NetWorker处理日常的存储管理任务,而libbms负责把数据从Sybase传送到NetWorker。NetWorker提供几种配置好的策略。可以

24、从中选择,也可以自己创建。NMS模块把NetWorker的备份级别翻译成Sybase的dump命令,如下表所示:NetWorkerSybaseServerBackupOperationfulldumpdatabaseFullbackupofadatabaseanditstransactionlogsincrementaldumptransactionlogBackupofallchangestothedatabasesincethelastdump1-9notvalidFailswithanerrormessageskipskipSkipstheschedulebackup本系统中对Sybas

25、e数据库的备份都已设置好,每天自动执行,不需人为干预。下面只介绍如何通过命令行手动发起备份。Sybase建议在做手动备份以前先对数据库做一致性检查。NMS提供了一个命令nsrsybcc可以执行这项操作。可以使用nsrsybsv命令对Sybase数据库或TransactionLog,缺省情况下,nsrsybsv将把数据写入Default池。如果想写入特定的磁带池需要指定参数bpool_name。下面是一个手动备份的例子:1、指定NetWorkerServersetenvNSR_SERVERNetWorker_server_name2、设定SYBASE变量,指定Sybase路径setenvSYBA

26、SE/space2/sybase3、对Sybase12.0或以后版本,运行Sybase.sh或Sybase.csh脚本source$SYBASE/SYBASE.sh4、备份指定的数据库和交易日志nsrsybsv-Uuserid-Ppassword-lfullSYBASE:/server_name/db_name如果想备份整个数据库,则使用nsrsybsv-Uuserid-Ppassword-lfullSYBASE:/server_name5、如果要备份NetWorker的索引和bootstrap,贝Usavegrp-O-lfull-Pprinter_name-cclient_name你也可以使

27、用isql命令彳T的dump命令对数据库和日志进行备份,语法如下:dumpdatabasedatabase_nameto"bms:"或dumptransactiondatabase_nameto"bms:"2.2SYBASE数据库的恢复NMS提供了一种数据库崩溃时从NetWorker备份介质中恢复数据的有效方法,当一个恢复请求被发起时,libbms共享库把由nsrsybrc命令或load命令请求的对象名翻译成NetWorker可以理解的格式,并传送给NetWorker的nsrd进程。libbms共享库也将向nsrindexd进程发送请求。nsrindex

28、d进程确保被请求对象的索引信息存在,并通知libbms。libbms共享库随后将向nsrmmd介质进程请求数据。Nsrmmd从NetWorker的媒体数据库中查找包含相应数据的介质,然后把数据恢复到Sybase数据库。可以在命令行下使用NMS提供的nsrsybrc命令对数据库实仞进行恢复。nsrsybrc可以执行指定时间点、重定向和导入等不同类型的数据库恢复。1、指定时间点恢复对Sybase-ASE11.5和以后的版本,可以使用-t选项指定数据库恢复到某个时间点。这项功能使得数据库可以把交易日志还原到中间位置,而不用还原所有的交易日志。恢复命令如下:nsrsybrc-Uuserid-Ppass

29、word-snetworker_server-t"MM/DD/YYHH:MM:SS"SYBASE:/server_name/db_name在一个指定时间点的恢复中,nsrsybrc把数据库还原到指定的时间点,它首先还原时间点之前最近一次的全备份,然后对数据库应用时间点之前所有的交易日志。注意:在指定时间点恢复以后,AdaptiveServer将重新开始数据库的日志序列号。所有应该立即做一次数据库的全备份。2、重定向恢复重定向恢复可以把备份的数据库装载到一个新的数据库上,nsrsybrc程序使用-d选项指定重定向的位置。在重定向恢复以前,需要确认:确保新的数据库已经创建,并且

30、和原数据库有着相同的设备分配创建新数据库时注意使用forload选项下面是重定向恢复的几种情况:a)恢复到同一个服务器实例,使用不同的数据库名称nsrsybrc-Uuserid-Ppassword-snetworker_server-dSYBASE:/server_name/new_db_nameSYBASE:/server_name/old_db_nameb)恢复到不同的服务器实例,使用相同的数据库名称nsrsybrc-Uuserid-Ppassword-snetworker_server-dSYBASE:/new_server_name/db_nameSYBASE:/old_server_

31、name/db_namec)恢复到不同的服务器实例,使用不同的数据库名称nsrsybrc-Uuserid-Ppassword-snetworker_server-dSYBASE:/new_server_name/new_db_nameSYBASE:/old_server_name/old_db_name3、导入恢复导入恢复使你可以从另一个NetWorker客户端上的Sybase服务器恢复备份的数据库。nsrsybrc程序通过使用-c选项或指定NSR_CLENT参数来执行这项工作。nsrsybrc-Uuserid-Ppassword-snetworker_server-cnetworker_cl

32、ientSYBASE:/server_name/db_name因为没有使用-d选项,目的服务器名和数据库名与原数据库一致。4、重定向与导入结合恢复重定向和导入恢复可以结合进行,在另一个主机上重定向数据库。下例就是从另一个主机的Sybase服务器实例恢复数据库到本机的不同Sybase服务器实例上。nsrsybrc-Uuserid-Ppassword-snetworker_server-cnetworker_client-dSYBASE:/new_server_name/db_nameSYBASE:/old_server_name/db_name5、磁盘破坏后的数据库恢复a)重新安装NetWork

33、er客户端、NMS模块和Sybase数据库(如需要),如果你对这些文件做过备份,可以恢复他们。b)重新创建数据库,使用和原有数据库相同的设备分配c)恢复系统数据库i .使用buildmaster重建master设备ii .启动数据库到单用户模式,也称master-recover主恢复模式iii .为master库(db_id1)创建新的设备分配iv .确保在数据库服务器的sysservers表中有Sybasebackupserver的正确名称v .核实Sybasebackupserver正在运行vi.使用如下命令装载master库,此命令装载master库并关闭数据库服务器#nsrsybrc-

34、Uuserid-PpasswordSYBASE:/server_name/mastervii.在数据库关闭时,如需要,手工重建numberofdevices配置参数viii.以主恢复模式重启数据库服务器ix .检查系统表以校验master的当前备份x .重新启动AdaptiveServerxi.恢复服务器用户IDxii.恢复model数据库xiii.drop并重新创建主设备上的其它数据库d)使用nsrsybrc程序恢复数据3INFORMIX数据库的备份与恢复在本系统中,Sybase的备份和恢复是由NetWorker、NetWorkerModuleforInformix(以下简称NMI)和ON-

35、Bar共同完成的。NMI模块通过XBSA接口与ON-Bar通信,为Informix数据库提供存储管理服务;ON-Bar负责数据库对象的备份与恢复;NetWorker负责保存备份数据、索引、媒体等配置信息。3.1 INFORMIX数据库的备份在自动备份时,savegrp执行客户端的nsrdbmi脚本代替标准的save命令。nsrdbmi命令调用ON-Bar,接收从ON-Bar传递过来的数据并把数据发送给NetWorker。Informix数据库可以执行以下级别的备份ON-BarNetWorkerAmountofDataBackedUp0fullAllpagescontainingdatafortheinstancelistedinthesavesetentry11Pagesthathavechangedsincethelastlevelfullbackup22Pagesthathavechangedsincethelastlevel1backupskipskipSkipthescheduledbackup下面介绍几条常用的ON-Bar备份命令#onbar-b备份所有的dbspace和全备份,相当于onbar-b-L0#onbar-bw对整个数据库进行全备份,相当于onbar-bw-L0#onbar-bdbspa

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论