数据库备份和恢复方案.docx
- 文档编号:13858787
- 上传时间:2023-06-18
- 格式:DOCX
- 页数:25
- 大小:29.78KB
数据库备份和恢复方案.docx
《数据库备份和恢复方案.docx》由会员分享,可在线阅读,更多相关《数据库备份和恢复方案.docx(25页珍藏版)》请在冰点文库上搜索。
数据库备份和恢复方案
备份和恢复方案
恢复方案在被真正付诸实施之前通常是不会得到检测的,理由是没有时间或资源来检测此方案,由此阻止了数据的复原。
如果你没有足够丰富渊博的知识来建立一个正确的备份方案,那么当恢复问题出现时,你也许会付出很大的代价。
能够熟悉所有的恢复过程,并按照可接受的恢复手段创建正确的备份方案,也许即是你成功的关键。
如果正确的备份方案得不到实施时,你就会认为你的系统属于不可恢复的。
多熟悉和了解备份和恢复方面的知识,就可以创建一个完整的备份方案来保护你的系统。
这篇文章介绍了很多知识技巧,以助你创建一个完整的方案。
备份策略-----快速参考
如下的备份方案是可行及有效的:
*全部和部分卸出(数据)
*增量卸出数据(一般不米纳)
*映象备份
*热备份
*归档
*整个文件系统的复制
*以上方法可以组合使用(建议)
建议的备份方案包含如下:
•Oracle执行程序(映象)----每月到每两周(或执行程序改变时)
.完整卸出----一周一次(如果在一个较频繁的开发环境中可增加次数)
.完整映象----每晚(较好)到每周
•归档----激活(肯定)
缩短备份时间及缩短数据库关闭时间:
•当数据库运行时可以使用热备份方式
.备份到磁盘上而不是磁带上
缩短恢复时间
.在磁盘而不是磁带上保存最近期的备份和归档文件
避免发生意外
.多个RedoLog(增加每一个RedoLog组的成员)
.卸出数据加归档(对单个表丢失的恢复)
.控制文件的多个拷贝
.数据库关闭时的映象备份(冷备份)
.备份和恢复过程应制成文档
恢复策略----快速参考
如果你没有足够的知识来应用正确的恢复过程,请不要盲目去做!
因为如果恢复的方法不正确,那么可能会给系统造成更多的伤害。
解决之道就是立即学习!
不要等到问题出现了才去学习正确的恢复手段。
成功的数据库恢复依赖下列条件:
0
.DBA知识
.实施正确的备份过程
.认识到真正问题所在
.采用正确的恢复办法
.可用的备份文件
DBA决定采用哪一种恢复方案:
.Instanee恢复(通常只是启动)
.用户错误恢复(通常只是恢复用户创建的事务)
.进程恢复(通常是数据库的关闭和启动)
.失败语句的恢复(通常只是修复用户建立的事务)
.介质恢复(是最难办的问题,请看下面)
在恢复一个数据之前,DBA必须知道以下所列的哪一个被破坏了:
0
.Databasefiles(对应系统中的表空间)
.RedoLogs(On-1ineRedoLogs)
.ArchiveLogs(Off-lineLogs)
.INIT.ORA(如果丢失可以重建)
.ControlFiles(是否有可用的拷贝)
然后,DBA可用有效的指令处理恢复过程。
在进行下列三种恢复时数据库的状态:
DBOn-Line
DBOff-Line
数据库
No
Yes
表空间
Yes
No
数据文件
Yes
Yes
映象备份
所谓映象备份就是把数据库的关键文件拷贝到另一个目录的备份方法。
映象备份或许是最快及最安全的备份Oracle的方法,但其中的一个问题是你只能恢复到做映象备份的那一时间点。
另一个问题就是在备份时必须先关闭数据库。
多数与映象备份相关的问题可以通过日志归档来解决,而用日志归档来恢复要依靠一个完好的映象备份(数据库是关闭的)。
如果可能的话,映象备份最好拷贝到磁盘上。
然后启动数据库(用户可以开始工作),再把映象备份拷贝到磁带上。
必须要拷贝的文件如下:
.所有DatabaseFile
.所有ControlFile
.所有On-LineRedoLog(不归档)
.INIT.ORA和CONFIG.ORA文件(选择;可以重建)
映象备份的优势及不足
优点:
.非常快的备份方法(只需拷贝文件)
.易于归档(简单的拷贝)
.易于及时恢复到某个时间点(只需将备份文件复制回来)
.可以和日志归档方式结合使用,能够恢复到数据库失败的时间点
.易于维护,很安全。
缺点:
.在备份时数据库要关闭
.如果磁盘空间有限,你或许不得不将它拷贝到速度很慢的磁带上
.不能恢复单个表或用户
最好的用法:
.和日志归档起使用
.如磁盘空间允许,先拷贝到磁盘上,然后在数据库运行后再拷贝到磁带上
日志归档(特别推荐)
日志归档是指Oracle自动将RedoLog备份(拷贝)到一个叫做归档文件的文件上。
当用户改变数据库的数据(UPDATE,INSERT,DELETE……等等)时,这种改变就被记录到
On-LineRedoLog中。
因为On-LineRedoLog可以重用,如果被重用,则记录在这个RedoLog中的所有修改信息将被覆盖。
因此,DBA可将归档方式激活,这样Oracle可以自
动将备份到叫做归档文件的文件上,并且所有的修改信息可以在归档文件中被保存。
激活归档方式的步骤:
o
编辑你的INIT
在INIT
LOGARCHIVESTART=TRUE
LOGARCHIVEDEST=/Oracle7/archive/arch
注意:
目录(/Oracle7/archive)是你自己创建的,或者直接与到磁带上:
arch"是归
档文件的前缀。
将数据库设置到ARCHIVELOG模式
$sqldbalmode=y(或svrmgrl,7.3版以上)
SQLDBA>CONNECTINTERNAL
SQLDBA>STARTUPMOUNT
SQLBDA>ALTERDATABASEARCHIVELOG(激活归档方式)
SQLDBA>ALTERDATABASEOPEN
SQLDBA>ARCHIVELOGLIST(看归档状态;如下所示)
DATABASElogmodeARCHIVEOG
AutomaticarchivalENABLED
Archiivedestination/oracle7/archive/arch
OldestOnlinelogseq155
currentlogsequenee156
SQLDBA>EXIT
注意:
如果运行在归档模式,Oracle将启动一个叫做ARCH的后台进程,可通过相应的操作系统命令看到这个进程。
热备份优点:
.可以在数据库运行状态下进行
.可以恢复到秒级
.对于几乎所有的Instanee恢复都可通过热备份进行恢复
•恢复快,大多数情况下可在数据库启动状态下进行
.对于Oracle7版,更易于维护
缺点:
•恢复过程要绝对正确,否则问题会更糟
•如果备份不起作用,则无法恢复到失败点
•恢复步骤要小心,难于维护
•如果一个归档文件被破坏了,则必须重头再来
取适用于
•用于数据库“不能中断”有环境下
•24小时运行环境
•在必须快速恢复并且不影响整个系统的情况下
•DBA有足够的时间来维护必要的文件一些Oracle7.1的变化
•备份的“热”指没有“开始”和“结束备份”的
•Altertablespacexxxreadonly命令(仅一个备份需要在只读情况下)
•并行恢复-较快的恢复
备份例子
确认要备份的数据文件:
SELECTNAME,STATUSFROMSYS.V$DATAFILE;
•NAME将返回数据文件的名字,如:
’/oracle7/dbs/systora7.dbf'
•STATUS返回的值可为SYSTEM,ONLINE或OFFLINE
确认要备份的数据库的On-LineRedoLog:
SELECTGROUP#,MEMBERFROMSYS・V$LOGFILE;
•GROUP#将返回组号:
如1,2或3
•MEMBER将返回物理文件的名字,如:
7Oracle7/dbs/log1ora7・dbf
确认要备份的数据库的控制文件:
SQLDBA>SHOWPARAMETERcontralfiles;
.该命令将返回Name:
controlfiles
Type:
string
Value:
'Oracle7/dbs/ctrlora7.ctl'
确认表空间和数据库文件的对应关系,以及数据库文件的大小:
SELECTTABLEAPACENAME,FILENAME,BYTES,STATUS
FROMDBADATAFILES;
.该命令将返回表空间名:
女口SYSTEM,USERS等
.文件名:
如’/Oracle7/dbs/systora7.dbf'
.大小:
如20,000,000,000
.状态:
AVAILABLE或INVALID
确认那一个数据文件现在正在备份(热备份)
SELECTFILE#,STATUSFROMV$BACKUP;
.File#将显示那一个数据文件正在备份:
如“1”或“2”
.STATUS将显示:
ACTIVE(正在备份)或INACTIVE
备份控制文件到Trace文件中(可用之方便地重建控制文件)
ALTERDATABASEBACKUPCONTROLFILETOTRACENORESETLOGS;
全数据库export的部分参数文件
system/manager
FULL=Y
COMPRESS=Y
GRANTS=Y
ROWS=Y
对某个表空间做完整的热备份步骤:
$sqldbalmode=y(或svrmgrl)
SQLDBA>CONNECTINTERNAL
SQLDBA>ALTERTABLESPACEtblspctobackupBEGINBACKUP;
SQLDDBA>HOSTcp/oracle7/dbs/tblsp1.dbf/backup/tblsp1.dbf
SQLDBA>ALTERTABLESPACEtblspctobackupENDBACKUP;
恢复策略---举例说明
情况
.星期一晚11:
00点:
整个数据库的映象备份
.星期二(整天):
保存所有的日志归档文件
.星期二晚10:
00(在下一个备份完成以前)所有数据库文件被破坏,系统不能运行。
恢复过程
.恢复星期一傍晚11:
00点的映象备份(不要恢复控制文件或日志文件)
恢复所有的归档文件到新的数据库
.恢复On-LineRedoLog(还没有归档)到新的数据库
•数据库恢复到失败前的状态
预防措施
.控制文件有多个复制
.日志文件有多个复制
.总是使用ARCHIVELOG方式
.使用export做为备份模式的一部分
一般原则
.如果有On-LineRedoLog和Of-LineRedoLog,则使用COMPLETERECOVERY
.如果缺少On-LineRedoLog或Of-LineRedoLog,则使用INCOMPLETERECOVERY
.如果当前的控制文件丢失,就使用备份的控制文件或重建
介质失败的恢复
这是一个极其复杂的处理过程。
所有主要可能的方案归档为下面的两种(归档模式的恢复;没有归档模式的恢复),请根据你的系统失败的原因采用相应的方式,无论何种情况,
解决硬件冋题是相当重要的,它是解决冋题的前题。
如果没有把握解决冋题,则暂时先不要动,因为恢复过程不正确将会出现严重后果。
如果读了DBA手册以后,还是不能确定如
何做的话;请打电话给你的技术支持,以获得帮助!
注意:
.归档用于映象备份,不是Export!
.失败现场的备份在RESETLOGS被执行前,任何时间都可以做,但建议在做恢复之前备份失败现场
.恢复成功以后,要马上做一次备份!
下面这几种情况下的恢复(归档方式)
Oracle手册还没有包括下面15种错误的恢复,除非你自己一节一节的把纠错方案
放在一起,所以很容易造成恢复的错误,要恢复这15种错误是很麻烦的(要确
定一个正确的恢复方法时,请参考Oracle7管理指南。
)
1.丢失所有文件(包括数据文件、redolog、归档文件和控制文件)
2a.只丢失数据文件-数据库正在运行
2b.只丢失数据文件-数据库已经关闭
3a.只丢失redolog文件的恢复(日志文件未被访冋)
3b.只丢失redolog文件的恢复(日志文件已被访冋)
4.只丢失归档文件
5a.只丢失控制文件(还有其他几个控制文件)
5b.只丢失控制文件(所有的控制文件都被损坏)
6.丢失数据文件,redolog和归档文件-无归档模式
7a.丢失数据文件,归档文件和控制文件---有归档模式
7b.丢失数据文件,归档文件和控制文件-有归档模式
8.丢失数据文件,redolog和控制文件
9.丢失数据文件和redolog
10a.丢失数据文件和归档文件-无归档模式
10b.丢失数据文件和归档文件-有归档模式
11.丢失数据文件的控制文件
12.丢失redolog,归档文件和控制文件
13.丢失redolog和归档文件的恢复
14.丢失redolog和控制文件的恢复
15.丢失归档文件和控制文件的恢复
Import/Export——概述
Import和Export是Oracle的两个实用程序。
Import/Export备份方法比较可靠,但对速度不
算很快。
它最适用于恢复单个的表(如你使用映象备份,要恢复单个表是很困难的),一个Export出来的文件是能够恢复一个单独表。
对开发环境来说,由于开发者经常修改或删除表,这种备份方法就比较适用。
优点:
.从整个数据库备份中能够恢复单个表
.是安全和有效的
.当恢复时,能对表重新配置和清除碎块
.整个数据库是在一个文件里
.能以方便在不同的操作系统之间移动数据
.能从一个用户移动数据到另一个
缺点:
.在备份以后数据没法追加(只能恢复到备份的时间点)
.恢复时间较慢
.数据库必须关闭以后得到一致性的备份
.太容易维护
最适用于
.与其它类型的备份交替,例如归档
.在非常少的数据更新时(能重新产生),每天都做(一个静态备份)
.开发环境情况下,表被“意外”删除。
对象(所有对象的统计数目):
在重建之前使用
**********************************************
Databaseobjectcountbyownerbyobjecttype
**********************************************
settermouton
setnumwidth3
setwrapon
setverifyon
setrecsepoff
setfeedbackon
setspace2
setnewpage0
setpagesize60
setlinesize79
settaboff
setechooff
breakontoday
columntodaynewvaluedate
selecttochar(sysdate,‘mm/dd/yy')today
fromdual;
clearbreak
ttitleleft‘desc01.sq1'right'printed:
'
dateskip上
center'DatabaseobjectCountbyownerby
objecttype‘skip2;
btitleskip2center'page'SQL.PNO
breakonownerskip2
columncountformat9,999heading
'count'
columnownerformata30heading'owner'
columnobjecttypeformata30heading
'Type'
spooldesc01.lis
selectowner,count(*)count,objecttype
fromsys.dbaobjects
groupbyowner,objecttype;
spooloff;
exit;
数据库所有对象数目的统计可用于帮助DBA确认所有的实体是否已经被成功的重建。
对
DBA来说,这是数据库完整与否的决定清单。
做为一个DBA来说,“实践是最重要的”,
每一个恢复的要求是必定要成功的。
所以要练习你的恢复方案,更加重新完善你的备份方案。
如果你不是DBA,也可以通过浏览OracleDBA指南来找到一个方法来恢复你的系统。
归档备份技巧
1概念:
米用归档方式的目的在于当发生例程或介质失败时能最大限度的恢复数据,以及进行
联机的数据库备份。
采用归档方式要求数据库必须处于archivelog模式,即采用Create
databasearchivelog命令创建数据库,或数据采用Noarchivelog命令创建后,用命令Alter
databasearchivelog将数据库改为archivelog模式,归档是指Oracle后台进程ARCH对
Redolog文件进行拷贝。
设定自动归档模式的方法为设置数据库初始化参数log_archive_start=true,这样,后台进程ARCH被启动,ARCH搜索并拷贝非活动状态的redolog文件。
手工归档方式是指数据库已设定归档方式,并且以参数
logarchivestart=false
(缺省值)启动。
尽管这种方式使用户可以控制redolog文件何时被拷贝,但并不推荐采用
这种方式,手工归档方式使数据库难以管理。
例如:
当事务处理突然非常繁忙时,数据库可能回挂死,等待日志文件被手工归档,然而手工归档可以与自动归档相结合。
三个常用的手工归档命令:
Altersystemarchivelogall---归档所有的非活动的redolog文件
Altersystemarchivelognext---只归档所下一个非活动的redolog文件
Altersystemarchivelogcurrent---归档所有的非活动的redolog文件和当前的
redolog文件
其中archivelogall是最常用的命令,它可以归档除当前的和已被归档的以外
所有的redolog文件。
线索(Thread)是并行服务器用到的概念。
然而它对于并非服务器的备
份与恢复也同样有效。
一个线索包括在线的redolog文件和已被归档的日志文件部分,对于非并行服务器,只有一个线索和多个redologgroup。
而并行服务器具有与并
行例程相等的线索。
日志文件能或不能被归档,取决于这个线索的状态与模式,ARCH进
程保证了一个线索的redolog的归档。
在OPS环境下,ARCH进程保证了一个例程的线索的所有在线的redolog
文件被归档,除current状态的redolog文件以外。
它可以归档:
*当前例程的线索的所有非活动的redologgroup
*其他例程的线索的所有状态为closed和enabled的redologgroup
*请求其他例程归档当前例程线索。
2.ARCH进程的流程
归档一个LOG文件主要包含以下三个阶段:
异步的读在线的redolog文件,执行检查,
分配和与redologbuffer,异步的与入一个新的或已存在的归档文件。
下面是归档进程:
*读控制文件找到未归档的redolog文件
*打开并读出在线的redolog文件
*按照参数logarchivebuffers分配redobuffer
*异步的读在线的redolog文件。
(所读入的数据长度为
logarchivebuffersize)
*每个buffer流对应一个redologmember。
*与入redologbuffer。
(判断buffer是否已满或处于文件尾)
*如果需要创建新文件,创建UFS归档文件。
*异步与入归档文件。
(所与入的数据长度为logarchivebuffersize)
*更新控制文件
*重复以上步骤直至完成归档。
ARCH进程会检查redolog文件的文件头和数据块的有效性,只有有效的数据块才会被与入archivebuffer。
因此归档文件的大小总会小于或等于所对应的redolog文件。
3.Redolog文件和归档文件的配置
在事务处理过程中,会对Redolog文件进行大量的写入,归档进程或其他执行恢复的进程需读redolog文件,也就是说,redolog文件所在硬盘会有大量的与入,有时会有大量的读操作,通常读和与不会产生竞争。
建议对redolog文件进仃Oracle镜象或米用硬件镜象。
redolog文件不应和归档文件放在同一个硬盘上,理想的配置是redolog文件应与其他文件分别放在不同的磁盘上,redolog
member或镜象文件应分开放在不冋的硬盘和控制器上,以防止单点故障和提咼吞吐量。
建议redolog文件最好能放在米用Raid0+1(mirrorandstriping)配置的原始设备上,
striping弓1入了与盘的并行机制,能提咼与入的速度。
归档文件必须放在文件系统里,理想的应采用Raid0+1配置,同样,建议采用striping来提高性能,归档文件应与redolog文件
放在不同的盘上。
4•归档策略
成功的归档能够保证所有在线的redolog文件被归档和备份,防止归档忙等待,并通
过将上次备份以来所有的归档文件保存在硬盘上来减少恢复的时间。
为保证所有的redolog文件被归档和备份,应经常监控:
数据库,归档的过程,归档的目录,及磁带管理过程。
可通过检查$LOG视图和检查trace
文件来监控归档的进行。
用户应写好脚本文件,登录到数据库查询V$log试图,列出需要被备份到磁带上的归
档文件。
冋时,应检查logarchivedest目录的可用空间,磁盘错误,磁带错误等。
使用磁带时应进行checksum来保证归档文件被成功的备份到磁带上。
建议在进行在线的数据热备份后,使用altersystemarchivelogcurrent命令,这个命令
强制归档所有的活动和非活动的redolog文件,一个成功的数据库和最新的归档日志文件,
保证了一旦事故发生后,可以用这个备份来恢复数据库。
5•问题的解决:
对于一些关键任务处理系统,特别是7*24系
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 备份 恢复 方案