Oracle经典数据库备份手册docWord文件下载.docx
《Oracle经典数据库备份手册docWord文件下载.docx》由会员分享,可在线阅读,更多相关《Oracle经典数据库备份手册docWord文件下载.docx(18页珍藏版)》请在冰豆网上搜索。
LOG_ARCHIVE_DEST=/archive/arch
LOG_ARCHIVE_FORMAT=%s.arc
4、启动数据库实例svrmgrl>
startupmount
5、改变数据库为归档模式svrmgrl>
alterdatabasearchivelog;
6、打开数据库svrmgrl>
alterdatabaseopen;
3备份方案
3.1备份方案1——操作系统脱机冷备份
对于可以down机的数据库系统,采用这种方法对数据库文件进行一次性备份,恢复时只能恢复到备份时间,建议在系统安装配置完成之后,提交运行前,采用这种方法进行数据库的一次备份,以后恢复时结合逻辑备份,基本可将系统恢复至可用状态。
具体方法如下:
通过V$DATAFILE,V$LOGFILE,V$CONTROLFILE查看有哪些数据文件、日志文件及控制文件需要进行备份,分别在哪些目录中。
将这三类文件用操作系统拷贝指令复制到一个独立的硬盘或磁带上,以备日后使用。
同时还需备份口令文件、参数文件及重做日志文件。
查询指令如下:
SVRMGR>
selectfile#,namefromv$datafile;
FILE#NAME
1C:
\ORANT\DATABASE\SYS1ZXY.ORA
2C:
\ORANT\DATABASE\RBS1ZXY.ORA
3C:
\ORANT\DATABASE\USR2ZXY.ORA
4C:
\ORANT\DATABASE\TMP1ZXY.ORA
5C:
\ORANT\DATABASE\INDX1ZXY.ORA
6C:
\ORANT\DATABASE\ZXY1ZXY.ORA
select*fromv$logfile;
GROUP#STATUSMEMBER
\ORANT\DATABASE\LOGZXY1.ORA
2STALEC:
\ORANT\DATABASE\LOGZXY2.ORA
select*fromv$controlfile;
STATUSNAME
C:
\ORANT\DATABASE\CTL1ZXY.ORA
\ORANT\DATABASE\CTL2ZXY.ORA
口令文件、参数文件在WINDOWS操作系统中一般存入在/orant/database目录下。
/orant/database/initXXX.ora(XXX表示数据库实例名)
/orant/database/pwdXXX.ora
重做日志文件的存放路径及文件名可通过如下指令来查看,
showparameterarchive
名称类型值
----------------------------------------------------------------------
log_archive_buffer_size整数127
log_archive_buffers整数4
log_archive_dest字符串C:
\orant\database\archive
log_archive_duplex_dest字符串
log_archive_format字符串arc%S.%T
log_archive_min_succeed_dest整数1
log_archive_start布尔值FALSE
3.2备份方案2——操作系统联机热备份
对数据文件进行备份,使用方便,恢复快。
如果数据文件丢失或损坏,可以利用备份文件将文件恢复到当前时间的数据,但不能恢复控制文件。
对于数据文件的保护可采用这种方法进行备份和恢复。
对于会修改的数据文件,最好每日做备份。
对于静态数据文件,则只做一次性备份即可。
方法:
altertablespaceXXXbeginbackup;
操作系统拷贝
altertablespaceXXXendbackup;
可通过V$BACKUP及V$DATAFILE_HEADER来查看正在备份的数据文件。
select*fromv$backup;
FILE#STATUSCHANGE#TIME
-----------------------------------------------
1NOTACTIVE0
2NOTACTIVE0
3ACTIVE2143572001-02-1
4NOTACTIVE0
5NOTACTIVE0
6NOTACTIVE0
Selectname,status,fuzzyfromv$datafile_header;
NAMESTATUSFUZ
----------------------------------------------------------------
C:
\ORANT\DATABASE\SYS1ZXY.ORAONLINE
\ORANT\DATABASE\RBS1ZXY.ORAONLINE
\ORANT\DATABASE\USR2ZXY.ORAONLINEYES
\ORANT\DATABASE\TMP1ZXY.ORAONLINE
\ORANT\DATABASE\INDX1ZXY.ORAONLINE
\ORANT\DATABASE\ZXY1ZXY.ORAONLINE
3.3备份方案3——使用RMAN联机热备份(需要catalog的情况)
1、创建一个recoverycatalog数据库,数据库名为rman,SID为rman,其中数据库数据如下:
Typeofspace
Spacerequirement
System
50MB
Temp
5MB
Rollback
Recoverycatalog
10MB
Onlinelogs(3groups,eachwith2members)
Each1MB
2、建表空间
svrmgrl>
createtablespacerman_tsdatafile‘<
directory>
/<
name>
’
>
size20Mautoextendonnext20Mmaxsize50M;
3、建用户
createuserrmanidentifiedbyrmandefaulttablespacerman_ts
temporarytablespacetempquotaunlimitedonrman_ts;
4、给用户授权(注意授SYSDBA权限时,先确认有口令文件的存在,然后再给口令文件增加用户数)
grantrecovery_catalog_ownertorman;
connectsys/change_on_installassysdba;
grantdba,connect,resource,sysdbatorman;
5、运行脚本
connectrman/rman
@$oracle_home/rdbms/admin/catrman.sql(UNIX)or
@%oracle_home%/rdbms80/admin/catrman.sql(NT)
6、运行rman连接目标数据库及catalog数据库
$rmantargetsys/change_on_install@objectDBrcvcatrman/rman@rcvcat
7、在catalog上注册目标数据库
rman>
registerdatabase;
8、如果上一次注册过数据库后又进行过数据库的修改,请同步目标数据库
gesynchcatalog;
9、可通过查看catalog数据字典获得目标数据库注册信息:
rc_database,rc_tablespace,rc_datafile,rc_stored_script,rc_stored_script_line;
10、设置NLS_LANG=SIMPLIFIEDCHINESE_CHINA.ZHS16GBK;
11、设置NLS_DATE_FORMAT=‘YYYY-MM-DD:
HH24:
MI:
SS’;
12、进行如备份方案4所述的备份操作。
3.4备份方案4——使用RMAN联机热备份(不需要catalog的情况)
1.运行rman连接目标数据库
$rmantargetuser/password@tnsnamesnocatalog
2.在rman方式下主要可进行如下备份:
●database(全数据库备份)
●datafileNO.(按数据文件号备份)
●datafile‘directory/datafilename’(按数据文件名备份)
●tablespaceXXX(按表空间名备份)
●currentcontrol(备份控制文件)
●archivelogall(deleteinput)(备份所有归档日志文件)
●archivelogfromlogseq=1056untillogseq=1059(deleteinput)(按归档日志SEQ号备份)
●archivelogfromtime=’’untiltime=’’(按时间备份归档日志文件)
3.Imagecopy方式
类似于操作系统的COPY指令,将一个文件备份至一个文件,不进行检查和压缩。
指令例举如下:
Rman>
run{
Allocatechanneldev1typedisk;
Copy
Datafile‘……’to‘……’tag=backup01,
Archivelog‘……’to‘……’,
Currentcontrolfileto‘……’;
Releasechanneldev1;
}
4.Backupset方式
在单个备份文件中包含一个或多个被备份的文件,备份时执行空块的压缩。
backupincrementallevel=0format‘<
fullpath>
/df_%d_%s_%p’
tag=backup01filesperset=4
(databaseincludeCurrentcontrolfile);
3.5备份方案5——使用RMAN的增量备份
首次备份,用0级
run{
allocatechanneldev1type'
sbt_tape'
;
backupincrementallevel0
(database
format'
%d_%u'
);
以后的备份用0级或1级
run{
backupincrementallevel1
(database
&
d_%u'
}
如果在第一次备份之后增加了表空间或数据文件,需重新进行0级增量备份,否则再进行备份将无法识别新增的表空间或数据文件。
(tablespacenew_tbs
3.6备份方案6——逻辑备份
逻辑备份最大的优越性在于备份时占用资源少,在备份与恢复时对数据库系统资影响最小。
另外对于个别表而非整个表空间或数据库的恢复也非常方便,且可以在不同的数据库上进行恢复,备份方案灵活,可根据需要选择性的备份表、表空间、用表户表信息或全局备份。
在实际应用中我建议以逻辑备份为主要的备份方案,然后结合脱机冷备份或联机热备份。
EXP、IMP命令详解:
E:
\>
exphelp=y
通过输入EXP命令和用户名/口令,您可以在用户/口令之后的命令:
或者,您也可以通过输入跟有各种参数的EXP命令来控制“导出”的运行方式。
要指定参数,您可以使用关键字:
格式:
EXPKEYWORD=value或KEYWORD=(value1,value2,...,valueN)
实例:
exp80username/password@aliasfile=expfile.dmplog=mylog.log
关键字说明(默认)
---------------------------------------------------
USERID用户名/口令
FULL导出整个文件(N)
BUFFER数据缓冲区的大小(与操作系统有关)
OWNER所有者用户名列表
FILE输出文件(EXPDAT.DMP)
TABLES表名列表
COMPRESS导入一个范围(Y)
RECORDLENGTHIO记录的长度
GRANTS导出权限(Y)
INCTYPE增量导出类型
INDEXES导出索引(Y)
RECORD跟踪增量导出(Y)
ROWS导出数据行(Y)
PARFILE参数文件名
CONSTRAINTS导出限制(Y)
CONSISTENT交叉表一致性
LOG屏幕输出的日志文件
STATISTICS分析对象(ESTIMATE)
DIRECT直接路径(N)
TRIGGERS导出触发器(Y)
FEEDBACK显示每x行(0)的进度
FILESIZE各转储文件的最大尺寸
QUERY选定导出表子集的子句
下列关键字仅用于可传输的表空间
TRANSPORT_TABLESPACE导出可传输的表空间元数据(N)
TABLESPACES将传输的表空间列表
imphelp=y
可以通过输入IMP命令和您的用户名/口令
IMPKEYWORD=value或KEYWORD=(value1,value2,...,vlaueN)
imp80username/password@aliasfile=impfile.dmplog=mylog.logshow=y(查看Oracle数据表的建表语句)
关键字说明(默认)
----------------------------------------------
FULL导入整个文件(N)
BUFFER数据缓冲区大小
FROMUSER所有人用户名列表
FILE输入文件(EXPDAT.DMP)
TOUSER用户名列表
SHOW只列出文件内容(N)
IGNORE忽略创建错误(N)
GRANTS导入权限(Y)
INCTYPE增量导入类型
INDEXES导入索引(Y)
COMMIT提交数组插入(N)
ROWS导入数据行(Y)
CONSTRAINTS导入限制(Y)
DESTROY覆盖表空间数据文件(N)
INDEXFILE将表/索引信息写入指定的文件
SKIP_UNUSABLE_INDEXES跳过不可用索引的维护(N)
ANALYZE执行转储文件中的ANALYZE语句(Y)
TOID_NOVALIDATE跳过指定类型id的校验
RECALCULATE_STATISTICS重新计算统计值(N)
TRANSPORT_TABLESPACE导入可传输的表空间元数据(N)
TABLESPACES将要传输到数据库的表空间
DATAFILES将要传输到数据库的数据文件
TTS_OWNERS拥有可传输表空间集中数据的用户
增量卸出备份的参数是INCTYPE,这个参数的有效选项是COMPLETE、CUMULATIVE和INCREMENTAL。
COMPLETE确定为全卸出,而其它两个选项则依赖全卸出用于数据库复原。
CUMULATIVE卸出所有表和上次CUMULATIVE或COMPLETE卸出以来更改过的其它对象;
如果更改表中一个记录,那么卸出整个表。
INCREMENTAL卸出上次INCREMENTAL、CUMULATIVE或COMPLETE卸出以来更改过的所有表和对象。
增量导入的参数为INCTYPE,如果正在导入一个增量卸出,那么撤消并重建表。
必须首先从上次SYSTEM卸出(规定INCTYPE=SYSTEM)中复原。
然后导入每个增量卸出(规定INCTYPE=RESTORE)直到需要的变化应用于数据库。
备份指令:
exp80username/password@aliasfile=expfile.dmplog=mylog.loginctype=complete
exp80username/password@aliasfile=expfile.dmplog=mylog.loginctype=incremental
注意事项:
备份文件每次都要更改不同的文件名,否则会被覆盖,整套备份将没有任何意义,建议每周做一次全备份,然后一周中其它时间做增量备份。
增量备份进行恢复时,不能指定恢复某张表或某个用户的表等参数,只能在“完整数据库”模式下执行增量导出,导入亦然。
只能用有管理员身份的用户连接才能执行增量备份。
恢复指令:
imp80username/password@aliasfile=expfile.dmplog=mylog.loginctype=system
imp80username/password@aliasfile=expfile.dmplog=mylog.loginctype=restore
4备份案例
做一套系统的备份策略,我个人觉得应该从两方面考虑:
一是技术手段,包括相应的设备,可用的备份恢复脚本等;
二是根据应用要求,确定备份周期、备份方式。
以下根据个人的测试提供给广州市工商很行的备份案例,广州市工行的运行环境如下:
windowsNT操作系统,oracle8.05enterpriseeditionserver,有重做日志的归档。
其它应用系统可根据系统及应用的不同,灵活的进行搭配和选择。
注意对备份文件、存放路径、备份日期及备份指令进行纸质记录,并对磁带进行有效的标识。
4.1备份文件的存放路径
请按如下目录结构在有较大空间的硬盘上建目录。
子目录
从子目录或文件
说明
Oracle_backup
Script
sun.bat、wed.bat
……
运行脚本所在目录(参见操作手册)
Copy_data
RMAN用imagecopy方式备份的数据
Backup_data
RMAN用backupset方式备份的数据
Exp_data
逻辑备份数据
Cold_data
冷备份数据
4.2RMAN的热备份
在执行备份前,先执行如下两步操作:
1、先增加操作系统环境变量:
NLS_DATE_FORMAT=‘YYYY-MM-DD:
2、在参数文件中增加对CONTROL文件的控件参数:
CONTROL_FILE_RECORD_TIME=30;
(保留30天的备份记录);
计划用RMAN做基于全数据库的增量备份,增量备份周期图如下所示:
Sun
mon
tues
wed
tru
fri
sat
sun
o
2
1
●周日执行0级备份(即全备份)
备份脚本:
run{
allocatechanneldev1typedisk;
backup
incrementallevel0
tag='
database'
(datab