数据库学习笔记fanny.docx
《数据库学习笔记fanny.docx》由会员分享,可在线阅读,更多相关《数据库学习笔记fanny.docx(62页珍藏版)》请在冰豆网上搜索。
数据库学习笔记fanny
前言
在数据库中,RMAN代表RecoveryManager。
RMAN可以用来备份和还原数据库文件、归档日志和控制文件。
它也可以用来执行完全或不完全的数据库恢复。
注意:
RMAN不能用于备份初始化参数文件和口令文件。
RMAN启动数据库上的Oracle服务器进程来进行备份或还原。
备份、还原、恢复是由这些进程驱动的。
RMAN可以由OEM的BackupManagerGUI来控制
RMAN的备份和恢复级别分为:
数据库级别、表空间级别、文件级别。
RMAN有2种方式:
1.控制文件方式2.Catalog方式。
RMAN的具体备份形式也分2种:
1.Imagecopy2.backup
如何开启oracle归档模式RMAN
1,查看当前归档模式
SQL>archiveloglist;
Databaselogmode NoArchiveMode
Automaticarchival Disabled
Archivedestination USE_DB_RECOVERY_FILE_DEST
Oldestonlinelogsequence 210
Currentlogsequence 212
2,重启数据库到mount状态
SQL>shutdownimmediate;
Databaseclosed.
Databasedismounted.
ORACLEinstanceshutdown.
SQL>startupmount;
ORACLEinstancestarted.
TotalSystemGlobalArea 6442450944bytes
FixedSize 2030368bytes
VariableSize 1358955744bytes
DatabaseBuffers 5066719232bytes
RedoBuffers 14745600bytes
Databasemounted.
3,开启归档模式
SQL>alterdatabasearchivelog;
Databasealtered.
4,打开数据库
SQL>alterdatabaseopen;
Databasealtered.
SQL>archiveloglist;
Databaselogmode ArchiveMode
Automaticarchival Enabled
Archivedestination USE_DB_RECOVERY_FILE_DEST
Oldestonlinelogsequence 210
Nextlogsequencetoarchive 212
Currentlogsequence 212
SQL>archivelogstart;
Statementprocessed.
5,关闭归档模式的步骤
SQL>startupmount;
SQL>alterdatabasenoarchivelog;
SQL>alterdatabaseopen;
6,9i和10g的区别
9i中需要修改初始化参数
log_archive_start=true
10g中已经废弃该参数
RMAN备份详解
一、数据库备份与RMAN备份的概念
1.数据库完全备份:
按归档模式分为归档和非归档
归档模式
打开状态,属于非一致性备份
关闭状态,可以分为一致性和非一致性
非归档模式
打开状态,非一致性备份无效
关闭状态,一致性备份,非一致性备份不被推荐
2.RMAN备份
RMAN使用服务器会话来完成备份操作,从RMAN客户端连接到服务器将产生一个服务器会话
RMAN备份内容包括:
整个数据库,表空间,数据文件,指定的数据文件,控制文件,归档日志文件,参数文件等
3.RMAN备份的类型
完整备份(full)或增量备份(incremental)
一致性备份(consistent)或不一致性备份(inconsistent)
热备(open)或冷备(closed),冷备时数据库必须处于mount状态,冷备可以为一致性备份或非一致性备份
完整备份
一个或多个数据文件的一个完整副本,包含从备份开始处所有的数据块.完整备份不能作为增量的基础
增量备份
包含从最近一次备份以来被修改或添加的数据块.可以分为差异增量备份和累计增量备份
差异增量备份仅仅包含n级或n级以下被修改过的数据块。
备份数据量小,恢复时间长。
累计增量备份仅仅包含n-1级或n-1级以下被修改过的数据块。
备份数据量大,恢复时间短。
0级增量备份相当于一个完整备份,该备份包含所有已用的数据块文件,与完整备份的差异是完整备份不能用作级增量备份的基础
一致性备份
备份所包含的各个文件中的所有修改都具备相同的系统变化编号(systemchangenumber,SCN)。
也就是说,备份所包含的各个文件中的所有数据均来自同一时间点。
一致性数据库完全备份(consis-tentwholedatabasebackup)进行还原(restore)后,不需要执行恢复操作(recovery)
非一致性备份
在数据库处于打开(open)状态时,或数据库异常关闭(shutdownabnormally)后,对一个或多个数据
库文件进行的备份。
非一致性备份需要在还原之后进行恢复操作
4.备份集与镜像副本
备份集
是包含一个或多个数据文件,归档日志文件的二进制文件的集合.备份集由备份片组成,一个备份集中可以包含一个或多个备份片
可以通过filesperset参数来设置备份集中可包含的备份片数,
也可以设定参数maxpiecesize来制定每个备份片的大小。
备份集中空闲的数据块将不会被备份,因此备份集可以支持压缩。
备份集支持增量备份,可以备份到磁盘或磁带。
镜像副本
是数据文件或归档日志文件等的完整拷贝,未经过任何压缩等处理,不能备份到磁带,也不支持增量备份
恢复时可以立即使用实现快速恢复
等同于操作系统的复制命令
可以作为级增量备份
5.备份路径
可以备份到磁盘目录
可以备份到磁带
闪回
6.备份限制
数据库必须处于mount或open状态
不能备份联机日志
在非归档模式下仅仅能作干净备份,即在干净关闭且启动到mount状态下备份
在归档模式下,current状态下数据文件可以备份
二、使用RMAN进行备份
1.备份数据库
RMAN>showall;
RMANconfigurationparametersare:
CONFIGURERETENTIONPOLICYTOREDUNDANCY1;#default
CONFIGUREBACKUPOPTIMIZATIONOFF;#default
CONFIGUREDEFAULTDEVICETYPETODISK;#default
CONFIGURECONTROLFILEAUTOBACKUPOFF;#default
CONFIGURECONTROLFILEAUTOBACKUPFORMATFORDEVICETYPEDISKTO'%F';#default
CONFIGUREDEVICETYPEDISKPARALLELISM1BACKUPTYPETOBACKUPSET;#default
CONFIGUREDATAFILEBACKUPCOPIESFORDEVICETYPEDISKTO1;#default
CONFIGUREARCHIVELOGBACKUPCOPIESFORDEVICETYPEDISKTO1;#default
CONFIGURECHANNELDEVICETYPEDISKFORMAT'/u01/app/oracle/rmanbak/df_%d_%U';
CONFIGUREMAXSETSIZETOUNLIMITED;#default
CONFIGUREENCRYPTIONFORDATABASEOFF;#default
CONFIGUREENCRYPTIONALGORITHM'AES128';#default
CONFIGUREARCHIVELOGDELETIONPOLICYTONONE;#default
CONFIGURESNAPSHOTCONTROLFILENAMETO'/u01/app/oracle/10g/dbs/snapcf_orcl.f';#defaul
RMAN>backupdatabaseformat'/u01/app/oracle/rmanbak/whole_%d_%U';--备份整个数据库
RMAN>backupascompressedbackupset--备份整个数据库并压缩备份集
2>databaseformat'/u01/app/oracle/rmanbak/whole_%d_%U';
RMAN>run{
2>allocatechannelch1typedisk--手动分配一个通道
3>maxpiecesize=2g;--指定备份片的大小为2g
4>backupascompressedbackupset--压缩备份集
5>format'/u01/app/oracle/rmanbak/whole_%d_%U'filesperset=3--指定备份集中允许容纳的文件数为个
6>database;
7>releasechannelch1;}--释放通道
RMAN>configuredevicetypediskparallelism3;--将并行度改为
oldRMANconfigurationparameters:
CONFIGUREDEVICETYPEDISKPARALLELISM1BACKUPTYPETOBACKUPSET;
newRMANconfigurationparameters:
CONFIGUREDEVICETYPEDISKPARALLELISM3BACKUPTYPETOBACKUPSET;
newRMANconfigurationparametersaresuccessfullystored
RMAN>backupascompressedbackupset--并行度改为之后,自动启用了个通道
2>format'/u01/app/oracle/rmanbak/whole_%d_%U'filesperset=3
3>database;
Startingbackupat14-OCT-10
allocatedchannel:
ORA_DISK_1
channelORA_DISK_1:
sid=148devtype=DISK--sid值对应v$session视图中的sid
allocatedchannel:
ORA_DISK_2
channelORA_DISK_2:
sid=146devtype=DISK
allocatedchannel:
ORA_DISK_3
channelORA_DISK_3:
sid=144devtype=DISK
RMAN>run{
2>allocatechannelch1typedisk
3>maxpiecesize=100m;--备份片大小设置为m,则一个备份集包含多个备份片,且每个备份片大小为100m
4>backup
5>format'/u01/app/oracle/rmanbak/whole_%d_%U'
6>database;
7>releasechannelch1;}
RMAN>listbackupsettag=TAG20101014T171115;
ListofBackupSets
===================
BSKeyTypeLVSizeDeviceTypeElapsedTimeCompletionTime
-------------------------------------------------------------
21Full690.30MDISK00:
01:
3914-OCT-10
ListofDatafilesinbackupset21
FileLVTypeCkpSCNCkpTimeName
----------------------------------
1Full164879114-OCT-10/u01/app/oracle/oradata/orcl/system01.dbf
2Full164879114-OCT-10/u01/app/oracle/oradata/orcl/undotbs01.dbf
3Full164879114-OCT-10/u01/app/oracle/oradata/orcl/sysaux01.dbf
4Full164879114-OCT-10/u01/app/oracle/oradata/orcl/users01.dbf
5Full164879114-OCT-10/u01/app/oracle/oradata/orcl/example01.dbf
6Full164879114-OCT-10/u01/app/oracle/oradata/orcl/tbs1.dbf
BackupSetCopy#1ofbackupset21
DeviceTypeElapsedTimeCompletionTimeCompressedTag
---------------------------------------------------
DISK00:
01:
3914-OCT-10NOTAG20101014T171115
ListofBackupPiecesforbackupset21Copy#1
BPKeyPc#StatusPieceName
-------------------------------
211AVAILABLE/u01/app/oracle/rmanbak/whole_ORCL_0nlqemtj_1_1
222AVAILABLE/u01/app/oracle/rmanbak/whole_ORCL_0nlqemtj_2_1
233AVAILABLE/u01/app/oracle/rmanbak/whole_ORCL_0nlqemtj_3_1
244AVAILABLE/u01/app/oracle/rmanbak/whole_ORCL_0nlqemtj_4_1
255AVAILABLE/u01/app/oracle/rmanbak/whole_ORCL_0nlqemtj_5_1
266AVAILABLE/u01/app/oracle/rmanbak/whole_ORCL_0nlqemtj_6_1
277AVAILABLE/u01/app/oracle/rmanbak/whole_ORCL_0nlqemtj_7_1
BSKeyTypeLVSizeDeviceTypeElapsedTimeCompletionTime
-------------------------------------------------------------
22Full6.80MDISK00:
00:
0114-OCT-10
BPKey:
28Status:
AVAILABLECompressed:
NOTag:
TAG20101014T171115
PieceName:
/u01/app/oracle/rmanbak/whole_ORCL_0olqen0s_1_1
ControlFileIncluded:
CkpSCN:
1648817Ckptime:
14-OCT-10
SPFILEIncluded:
Modificationtime:
14-OCT-10
-----------------------------------------------------------------------------------------------------------------------
2.备份数据文件
Oracle数据文件及表空间的管理请参考:
Oracle表空间与数据文件
RMAN>backupascopydatafile4--备份类型为镜像备份
2>format'/u01/app/oracle/rmanbak/df_%d_%U';
RMAN>listcopy;
RMAN>backupdatafile4,5,6format'/u01/app/oracle/rmanbak/df_%d_%U';--备份类型为备份集
-----------------------------------------------------------------------------------------------------------------------
3.备份表空间
Oracle数据文件及表空间的管理请参考:
Oracle表空间与数据文件
RMAN>backuptablespaceusers,exampleformat'/u01/app/oracle/rmanbak/tb_%d_%U';
RMAN>backuptablespacetemp;--临时表空间不需要备份
Startingbackupat14-OCT-10
usingchannelORA_DISK_1
usingchannelORA_DISK_2
RMAN-00571:
===========================================================
RMAN-00569:
===============ERRORMESSAGESTACKFOLLOWS===============
RMAN-00571:
===========================================================
RMAN-03002:
failureofbackupcommandat10/14/201018:
56:
12
RMAN-20202:
tablespacenotfoundintherecoverycatalog
RMAN-06019:
couldnottranslatetablespacename"TEMP"
-----------------------------------------------------------------------------------------------------------------------
4.备份控制文件
Oracle控制文件的详细介绍请参考:
Oracle控制文件(CONTROLFILE)
RMAN>configurecontrolfileautobackupon;--自动备份控制文件置为on状态,将自动备份控制文件和参数文件
oldRMANconfigurationparameters:
CONFIGURECONTROLFILEAUTOBACKUPOFF;
newRMANconfigurationparameters:
CONFIGURECONTROLFILEAUTOBACKUPON;
newRMANconfigurationparametersaresuccessfullystored
注:
在备份system01.dbf或system表空间时将会自动备份控制文件和参数文件,即使自动备份控制文件参数为off
--单独备份控制文件及参数文件
RMAN>backupcurrentcontrolfile;
--备份数据文件时包含控制文件
RMAN>backupdatafile4includecurrentcontrolfile;
RMAN>sql"alterdatabasebackupcontrolfileto''/tmp/orclcontrol.bak''";
sqlstatement:
alterdatabasebackupcontrolfileto''/tmp/orclcontrol.bak''
RMAN>sql"alterdatabasebackupcontrolfiletotraceas''/tmp/orclcontrol.sql''";
sqlstatement:
alterdatabasebackupcontrolfiletotraceas''/tmp/orclcontrol.sql''
--单独备份spfile
R