首页 oracle备份、恢复

oracle备份、恢复

举报
开通vip

oracle备份、恢复oracle备份、恢复差不多知识RMAN是ORACLE提供的一个备份与复原的工具,能够用来备份和还原数据库文件、归档日志和操纵文件。它也能够用来执行完全或不完全的数据库复原。RMAN能够由命令行接口或者OEM的BackupManagerGUI来操纵。4.1差不多知识4.1.1RMAN的组件、概念1. RMAN 要紧包括以下组件:TargetDatabase:(目标数据库)确实是需要 RMAN 对其进行备份与复原的数据库,RMAN 能够备份数据文件,操纵文件,归档日志,spfile。(注意:RMAN不能用于备份联机日...

oracle备份、恢复
oracle备份、恢复差不多知识RMAN是ORACLE提供的一个备份与复原的工具,能够用来备份和还原数据库文件、归档日志和操纵文件。它也能够用来执行完全或不完全的数据库复原。RMAN能够由命令行接口或者OEM的BackupManagerGUI来操纵。4.1差不多知识4.1.1RMAN的组件、概念1. RMAN 要紧包括以下组件:TargetDatabase:(目标数据库)确实是需要 RMAN 对其进行备份与复原的数据库,RMAN 能够备份数据文件,操纵文件,归档日志,spfile。(注意:RMAN不能用于备份联机日志、初始化参数文件和口令文件)ServerSession:   (服务器会话)RMAN启动数据库上的Oracle服务器进程,将建立一个与目标数据库的会话。由目标数据库上的服务器进程进行备份、还原、复原的实际操作。服务器进程RMAN 的服务进程是一个后台进程,用于与RMAN工具与数据库之间的通信,也用于RMAN 工具与磁盘/磁带等 I/O 设置之间的通信,服务进程负批判份与复原的所有工作,在如下情形将产生一个服务进程:    当连接到目标数据库    分配一个新的通道Channel:   (通道)一个通道是RMAN和目标数据库之间的一个连接,"allocatechannel"命令在目标数据库启动一个服务器进程,同时必须定义服务器进程执行备份或者复原操作使用的I/O类型。通道操纵命令能够用来:?     操纵RMAN使用的O/S资源,阻碍并行度?     指定I/O带宽的限制值〔设置limitreadrate参数〕?     定义备份片大小的限制〔设置limitkbytes〕?     指定当前打开文件的限制值〔设置limitmaxopenfiles〕recoverycatalog:(复原名目)用来储存备份与复原信息的一个数据库,不建议创建在目标数据库上。RMAN 利用恢复名目记载的信息去判定如何执行需要的备份复原操作。假如不采纳复原名目,备份信息能够存在于目标数据库的controlfile中。假如存放在目标数据库的 control file 中,控件文件会不断增长,不能储存 RMAN 的Script。CONTROL_FILE_RECORD_KEEP_TIME (default=7):控件文件中 RMAN 信息储存最短时刻。使用复原名目的优势: 能够储备脚本,记载较长时刻的备份复原操作。RMANRepository:   (RMAN 复原名目数据库)存放recoverycatalog(复原名目)的数据库。建议为复原名目数据库创建一个单独的数据库。MML:(媒体治理库)MediaManagementLayer(MML)是第三方工具或软件,用于治理对磁带的读写与文件的跟踪治理。假如你想直截了当通过 RMAN 备份到磁带上,就必须配置媒体治理层,媒体治理层的工具如备份软件能够调用RMAN来进行备份与复原。2.概念述语BackupSets(备份集合)备份集合的特性:包括一个或多个数据文件或归档日志,以oracle专有的 格式 pdf格式笔记格式下载页码格式下载公文格式下载简报格式下载 储存,有一个完全的所有的备份片集合构成,构成一个完全备份或增量备份。BackupPieces(备份片)一个备份集由假设干个备份片组成。每个备份片是一个单独的输出文件。一个备份片的大小是有限制的;假如没有大小的限制, 备份集就只由一个备份片构成。备份片的大小不能大于使用的文件系统所支持的文件长度的最大值。ImageCopies镜像备份镜像备份是独立文件〔数据文件、归档日志、操纵文件〕的备份。它专门类似操作系统级的文件备份。它不是备份集或备份片,也没有被压缩。FullbackupSets全备份集合全备份是一个或多个数据文件中使用过的数据块的的备份。没有使用过的数据块是不被备份的,也确实是说,oracle 进行备份集合的压缩。Incrementalbackupsets增量备份集合增量备份是指备份一个或多个数据文件的自从上一次同一级别的或更低级别的备份以来被修改过的数据块。 与完全备份相同,增量备份也进行压缩。Filemultiplexing多个数据文件能够在一个备份集中。Recoverycatalogresyncing 复原名目同步使用复原治理器执行backup、copy、restore或者switch命令时,复原名目自动进行更新,然而有关日志与归档日志信息没有自动记入复原名目。需要进行名目同步。使用resynccatalog命令进行同步。RMAN>resynccatalog;Incarnation 对应物在不完全复原完成之后,通常需要使用 resetlogs 选项来打开数据库。resetlogs 表示一个数据库逻辑生存期的终止和另一个数据库逻辑生存期的开始。数据库的逻辑生存期也被称为一个对应物(incarnation)。每次使用 resetlogs 选项来打开数据库后都会创建一个新的数据库对应物。4.1.2RMAN的使用:命令行接口与脚本数据库状态:RMAN复原名目数据库: 必须OPEN目标数据库: 依照不同情形,必须MOUNT或OPEN1. 使用不带复原名目的RMAN设置目标数据库的 ORACLE_SID ,执行:$rmannocatalogRMAN>connecttargetRMAN>connecttargetuser/pwd>@db2. 使用带复原名目的RMAN$rmancatalogrman/rmanRMAN>connecttarget   //连接本地数据库作为目标数据库RMAN>connecttargetuser/pwd>@db//连接远程数据库或$rmancatalogrman/rmantargetuser/pwd>@db3. 命令行接口1、单个执行RMAN>backupdatabase;2、运行一个命令块RMAN>RUN{2>copydatafile10to3>'/oracle/prod/backup/prod_10.dbf';4>}3、运行储备在复原名目中的脚本:RMAN>RUN   {EXECUTESCRIPTbackup_whole_db};4、运行外部脚本:$rmancatalogrman/rmantarget/@backup_db.rman$rmancmdfile=backup.rmanmsglog=backup.logRMAN>@backup_db.rmanRMAN>RUN   {@backup_db.rman}假如在cron 中执行,注意在脚本中设置正确的环境变量,例:#setenvexportORACLE_HOME=/opt/oracle/product/9.2exportORACLE_SID=testexportNLS_LANG="AMERICAN_AMERICA.zhs16gbk"exportPATH=$PATH:$ORACLE_HOME/binrmancmdfile=backup_db.rman4. 使用脚本创建或者取代脚本:RMAN>createscriptalloc_disk{2>#Allocatesonedisk3>allocatechanneldev1typedisk;4>setlimitchanneldev1kbytes2097150maxopenfiles32readrate200;5>}RMAN>replacescriptrel_disk{2>#releasesdisk3>releasechanneldev1;5>}删除脚本:RMAN>DELETESCRIPTLevel0Backup;查看脚本:RMAN>PRINTSCRIPTLevel0Backup;运行脚本:RMAN>RUN{EXECUTESCRIPTbackup_whole_db};5. 运行OS命令RMAN支持通过执行host命令临时退出RMAN的命令提示符而进入到操作系统的命令环境。6. 执行SQL语句在 RMAN 的命令提示符后输入 SQL 命令,然后在一对单引号(双引号亦可)中输入要执行的 SQL 语句,例如:RMAN>SQL'ALTERSYSTEMCHECKPOINT';关于SELECT语句,无法得到结果。能够先执行host再用SQLPLUSRMAN的配置4.2RMAN的配置 4.2.1 建立RecoveryCatalog复原名目(1) 在名目数据库中创建复原名目所用表空间:SQL>createtablespacerman_tsdatafile'/xxx/rman_ts.dbf'size20M;(2) 在名目数据库中创建RMAN 用户并授权:SQL> create user rman identified by rman default tablespace rman_ts temporarytablespacetempquotaunlimitedonrman_ts;SQL>grantconnect,resource,recovery_catalog_ownertorman;(3) 在名目数据库中创建复原名目$rmancatalogrman/rmanRMAN>createcatalogtablespacerman_ts;(4) 登记目标数据库:一个复原名目能够注册多个目标数据库,注册目标数据库的命令为:$RMANcatalogrman/rmantargetuser/pwd@rcdb;RMAN>registerdatabase;4.2.2 查看RMAN的默认设置SHOW命令必须连接目标数据库RMAN>showallRMAN>showchannel;                             // 通道分配RMAN>showdevicetype;   //IO设备类型RMAN>showretentionpolicy;              // 储存策略RMAN>showdatafilebackupcopies;    // 多个备份的拷贝数目RMAN>showmaxsetsize;// 备份集大小的最大值RMAN>showexclude;   // 不必备份的表空间RMAN>showbackup  optimization;      // 备份的优化4.2.3 配置RMAN的默认设置1. 配置备份集文件的格式 (format)RMAN>configurechanneldevicetypediskformat'/u05/oracle/rmanback/%U';备份文件能够自定义各种各样的格式,如下%c 备份片的拷贝数%d 数据库名称%D 位于该月中的第几天 (DD)%M 位于该年中的第几月 (MM)%F 一个基于 DBID 唯独的名称,那个格式的形式为 c-IIIIIIIIII-YYYYMMDD-QQ,其中IIIIIIIIII 为该数据库的DBID,YYYYMMDD 为日期,QQ 是一个 1-256 的序列%n 数据库名称,向右填补到最大八个字符%u 一个八个字符的名称代表备份集与创建时刻%p 该备份集中的备份片号,从1 开始到创建的文件数%U 一个唯独的文件名,代表%u_%p_%c%s 备份集的号%t 备份集时刻戳%T 年月日格式(YYYYMMDD)2. 配置默认IO设备类型        (devicetype)IO 设备类型能够是磁盘或者磁带,在默认的情形下是磁盘,能够通过如下的命令进行重新配置。RMAN>configuredefaultdevicetypetodisk;RMAN>configuredefaultdevicetypetosbt;注意,假如换了一种IO 设备,相应的配置也需要做修改,如RMAN>configuredevicetypesbtparallelism2;3. 配置自动分配的通道   (Chanel)RMAN>configurechanneldevicetypediskformat'/U01/ORACLE/BACKUP/%U在运行块中,手工指定通道分配,如此的话,将取代默认的通道分配。RMAN>Run{allocatechannelcqtypediskformat='/u01/backup/%u.bak';…}通道的一些特性:读的速率限制Allocatechannel……rate=integer最大备份片大小限制 Allocatechannel……maxpiecesize=integer最大并发打开文件数〔默认16〕 Allocatechannel……maxopenfile=integer4. 配置默认的储存策略 (RetentionPolicy)储存策略是治理备份与副本有效期或者是否有效的一种方法。复原数据库的时候Oracle 不考虑失效的备份。我们可以定义两种储存策略:复原窗口备份储存策略〔recoverywindow backup retentionpolicy 〕和冗余备份储存策略〔redundancybackupretentionpolicy 〕备份策略保持分为两个保持策略:一个是时刻策略,决定至少有一个备份能复原到指定的日期一个冗余策略,规定至少有几个冗余的备份。复原窗口备份储存策略,这种储存策略类型的使用基于数据库可能复原到的最早的日期。 例如,假设今天是星期一,此前存在 3 个备份。第一个备份在昨天生成的,第二个备份是上星期四生成的,而最后一个备份是 10 天前备份的。假如复原窗口是 7 天,那么昨天和上星期四的备份是有效备份,而 10 天前的备份会成为废弃备份。下面的命令将复原窗口配置为7天:RMAN>configureretentionpolicytorecoverywindowof7days;冗余备份储存策略使用这种储存策略,RMAN会从最新备份开是保留N个数据备份,其余的废弃。例如,假如有四个备份,而冗余数是 3,那么最早的那个备份将被废弃。下面的命令将备份策略设置为 3:RMAN>configureretentionpolicytoredundancy3;设置NONE能够把使备份保持策略失效,Clear 将复原默认的保持策略RMAN>configureretentionpolicytonone;例:保证至少有一个备份能复原到Sysdate-5的时刻点上,之前的备份将标记为ObsoleteRMAN>configureretentionpolicytorecoverywindowof5days;至少需要有三个冗余的备份存在,假如余外三个备份以上的备份将标记为冗余RMAN>configureretentionpolicytoredundancy5;5. 配置多个备份的拷贝数目(backupcopies)假如觉得单个备份集不放心,能够设置多个备份集的拷贝,如:RMAN>configuredatafilebackupcopiesfordevicetypediskto2;RMAN>configurearchivelogbackupcopiesfordevicetypediskto2;假如指定了多个拷贝,能够在通道配置或者备份配置中指定多个拷贝地点:RMAN>configurechanneldevicetypediskformat'/u01/backup/%U','/u02/backup/%U';RMAN>backupdatafilenformat'/u01/backup/%U','/u02/backup/%U';6. 设置并行备份(ARALLELISM)RMAN支持并行备份与复原,也能够在配置中指定默认的并行程度。如:RMAN>configuredevicetypediskparallelism4;指定在以后的备份与复原中,将采纳并行度为4,同时开启4个通道进行备份与恢复,因此也能够在RUN的运行块中手工分配多个通道来决定备份与复原的并行程度。并行的数目决定了开启通道的个数。假如指定了通道配置,将采纳指定的通道,假如没有指定通道,将采纳默认通道配置。还能够在BACKUP命令中使用指定FILESPERSET或者指定(datafile 1,4,5 channelc1tag=DF1)(datafile2,3,6channelc2tag=DF2)7. 设置操纵文件自动备份 (autobackupon)通过如下的命令,能够设置操纵文件的自动备份RMAN>configurecontrolfileautobackupon;关于没有复原名目的备份策略来说,那个特性是专门有效的,操纵文件的自动备份发生在任何backup 或者copy 命令之后,或者任何数据库的结构改变之后能够用如下的配置指定操纵文件的备份路径与格式RMAN>configurecontrolfileautobackupformatfortypediskto'%f';在备份期间,将产生一个操纵文件的快照,用于操纵文件的读一致性,如下配置:RMAN>configuresnapshotcontrolfilenameto'/u01/app/oracle/product/9.0.2/dbs/snapcf_U02.f';8. 设置备份优化选项 (optimization)能够在配置中设置备份的优化,如RMAN>configurebackupoptimizationon;假如优化设置打开,将对备份的数据文件、归档日志或备份集运行一个优化算法。4.2.4RMAN 会话的设置set 命令与 configure 命令专门相似,然而 set 命令设置不是永久的。set 命令定义只应用于当前RMAN会话的设置。能够用于RUN代码之外的命令有:setechoon|off            // 显示或关闭 RMAN显示setDBIDdbidn           // 指定一个数据库的数据库标识符。下面的set命令只能在RUN代码中使用:setnewname:用于 TSPITR 或者数据库复制操作,指定新的数据库文件名,将数据库移动到新的系统中同时文件名不同的时候能够用此命令。setmaxcorruptfordatafile:用于定义 RMAN操作失败之前承诺的数据块讹误的数量setarchivelogdestination:能够修改储备归档的重做日志 archive_log_dest_1的目的地。set 命令和 until 子句:能够定义数据库时刻点复原操作所使用的具体的时刻点、SCN 或者日志序列号,例:setuntiltime"to_date('2005/08/0113:00:00','yyyy/mm/ddhh24:mi:ss')";setbackupcopies:使用该命令能够定义为备份集的每个备份片创建的镜像副本数。例:RMAN>RUN{setmaxcorruptfordatafile3to10;setbackupcopies=2;backupdatabase;}Copy镜像拷贝与复原4.3Copy镜像拷贝与复原 Copy镜像拷贝命令能够创建数据库数据文件、归档重做日志或者操纵文件的精确副本。RMAN 副本与这些文件的区别仅在于名称和〔或〕位置的区别。功能相当于用户治理的备份复原中的热备份。备份副本的好处是复原比较快,复原时能够不用拷贝,指定新位置即可。Copy镜像拷贝至少要在 mount 状态下运行。Copy镜像拷贝可作为增量备份的 Level0Oracle10g开始,承诺使用单条命令"backupascopy"进行数据库拷贝。4.3.1 备份生成数据文件副本:RMAN>copydatafile3to'd:\backup\datafilecopy\users01.dbf.bak';RMAN>copydatafile'd:\oracle\oradata\ora9i\users01.dbf'to'd:\backup\datafilecopy\users01.dbf.bak';生成操纵文件副本:RMAN>copycurrentcontrolfileto…;RMAN>CONFIGURECONTROLFILEAUTOBACKUPisON;备份ARCHIVELOG 副本:// 只能一个一个的来备份,而不能指定一个范畴RMAN>copyarchivelog'd:\oracle\oradata\arc\ming_351.arc'to'd:\oracle\orabackup\arc\ming_351.arc';并行设置:1.RMAN>configuredevicetype...parallelism=3;//only2channel,oneforwrittingdatatodisk2. 手工分配多个通道3. 在命令中指定多个文件RMAN>copydatafile'xx'to'xx2',datafile'yy'to'yy2',...;块检查:CHECKLOGICAL 选项MAXCORRUPT参数V$COPY_CORRUPTION在复制操作中,Oracle服务器进程对每个块执行校验和运算以 检测 工程第三方检测合同工程防雷检测合同植筋拉拔检测方案传感器技术课后答案检测机构通用要求培训 是否有块损坏。RMAN在还原副本时也要核对校验和。该过程称为物理损坏检测。能够使用NOCHECKSUM 选项取消校验和操作,从而加快复制进程。假如数据库已在爱护块校验和,那么此选项无效。缺省情形下,禁用逻辑损坏的错误检查。能够使用 CHECKLOGICAL 选项测试通过了物理损坏检查的数据和索引块,查看它们是否存在逻辑损坏,如行片或索引条目损坏。假如检测到任何块存在逻辑损坏,那么将该块记录到服务器进程的警报日志和跟踪文件中。能够使用 MAXCORRUPT 参数设置逻辑和物理损坏的阈值。只要在某个文件中检测到的逻辑和物理损坏总和低于该值,那么 RMAN 命令完成,同时 Oracle将损坏块的范畴植入到 V$COPY_CORRUPTION 视图。假如超出 MAXCORRUPT,那么该命令终止,同时不植入视图。 当并行度比较高时,占用的运算机资源较多,但备份操作完成速度较快。缺省情形下将启用对物理损坏的错误检查。有关在备份过程中遇到的损坏数据文件块的信息将记录在操纵文件和警报日志中。4.3.2 复原查看所有的Copy镜像拷贝:RMAN>listcopy;数据文件副本还原:还原时能够offline数据文件所属表空间,然后利用OS拷贝命令复原副本。还能够用 restore (datafile num) from datafilecopy 命令来从数据文件副本中还原数据文件,然后再用 recover 命令来复原。例如:RMAN>sql"alterdatabasedatafile5offline";RMAN>restore(datafile5)fromdatafilecopy;RMAN>recoverdatafile5;RMAN>sql"alterdatabase datafile5online";注意,上面的圆括号专门重要,假如没有,restore命令就会执行失败Backup备份与复原 4.4Backup备份与复原 Backup 备份命令生成Backupsets(备份集合),以oracle专有的格式储存,由一个完全的所有的备份片集合构成,构成一个完全备份或增量备份。4.4.1BACKUP 备份命令选项设置标记(TAG)RMAN>backupdatabasetag='testbackup';限制备份集大小RMAN>backupdatabasemaxsetsize=100M;只备份新增部分RMAN>backupincrementallevel0database;备份操纵文件   同时备份SPFILERMAN>backupcurrentcontrolfile;RMAN>configurecontrolfileautobackupon;   // 默认是off也能够在备份数据库或者文件的时候加上includecurrentcontrolfile选项。例如:RMAN>backupdatabaseincludecurrentcontrolfile;备份时假如包含了SYSTEM表空间,将自动备份控件文件和SPFILERMAN>backupfile1;使用自动备份进行复原:RMAN>restorespfile/controlfileto'/xx/xx'fromautobackup;备份归档日志(9i)RMAN>backuparchivelogall;RMAN>backup...plusarchivelog;// 在备份其他时同时备份归档日志plusarchivelog隐含如下步骤:?     运行一个ALTERSYSTEMARCHIVELOGCURRENT命令?     运行 BACKUP ARCHIVELOG ALL 命令。注意假如备份优化被启用,RMAN只会备份未备份过的日志?     备份BACKUP命令中定义的文件?     运行ALTERSYSTEMARCHIVELOGCURRENT命令?     备份所有的剩下的归档日志备份完后删除归档日志RMAN>backup...ARCHIVELOGalldeleteallinput;修改备份集的储存策略例如:将备份设置为永久有效RMAN>backupdatabasekeepforeverlogs|nologs;设置为有效期 180 天RMAN>backupdatabasekeepuntiltime='sysdate+180';重写configureexclude/noexclude通过 configure exclude能够配置 RMAN 不备份上次备份以来没有发生变化的数据文件。假如要确保RMAN备份这些数据文件,能够在backup命令中添加 noexclude 选项。例如:RMAN>backupdatabasenoexclude;跃过脱机的、不可存取的或者只读的数据文件RMAN>backupdatabaseskipofflineskipinaccessibleskipreadonly;强制备份只读的数据文件RMAN>backupdatabaseforce;备份指定周期内没有备份的数据文件RMAN>backupdatabasenotbackedup;RMAN>backupdatabasenotbackedupsincetime='sysdate-2';在备份操作期间检查逻辑讹误RMAN>backupchecklogicaldatabase;   //在检查逻辑错误的同时进行备份RMAN>backupvalidatechecklogicaldatabase;   //只检查建立压缩备份集RMAN>backupascompressedbackupsettablespaceusersFORMAT='D:\BACKUP\%d_%s.dbf';4.4.2RESTORE/RECOVER复原命令选项数据库复原RMAN>restore/revoverdatabase;表空间复原RMAN>restore/revovertablespacexx;只读表空间的复原默认情形下,即使丢失了只读的数据文件,RMAN 也可不能在执行完全数据库还原操作时候还原只读的数据文件。要在完全复原期间还原只读的数据文件,就必须在RESTORE命令中使用CHECKREADONLY参数:RMAN>RESTOREDATABASECHECKREADONLY;复原SPFILE/操纵文件使用自动备份复原SPFILE/操纵文件RMAN>startupnomount;RMAN>setdbid=153910023RMAN>restorecontrolfilefromautobackupRMAN>restorespfile/controlfileto'/xx/xx'fromautobackup;或RMAN>restorecontrolfilefrom'/arch/ct_c-2347671489-20060630-00';联机状态:目标数据库MOUNT或OPENRMAN>restorecontrolfileto'd:\temp\control01.ctl';归档重做日志的还原RMAN>RESTOREARCHIVELOGALL;RMAN>RESTOREARCHIVELOGFROMLOGSEQ=1UNTILLOGSEQ=20;RMAN>RESTOREARCHIVELOGFROMLOGSEQ=1;也能够用 SET命令来指定归档日志的还原位置,例如:RMAN>run{setarchivelogdestinationto"d:\temp";restorearchivelogall;}数据文件副本还原RMAN>sql"alterdatafile5offline";RMAN>restore(datafile5)fromdatafilecopy;RMAN>recoverdatafile5;RMAN>sql"alterdatafile5online";请注意,上面的圆括号专门重要还原检查与复原测试与备份检查一样,还原操作也能够检查是否能正常 restore 或者是否该备份集是否有效。如:RMAN>RESTOREDATABASEVALIDATE;RMAN>VALIDATEBACKUPSET218;RMAN>RESTOREDATABASEVALIDATECHECKLOGICAL;从指定的 tag 复原:RMAN>RESTOREFROMtag=’xxxx’;不完全复原的还原:1.setuntiltime/SCN/2.RMAN>restoredatabaseuntilscn1000;RMAN>restoredatabase"to_date('2005/08/0113:00:00','yyyy/mm/ddhh24:mi:ss')";RMAN>restoredatabaseuntilsequence100thread1;块级别的复原块复原BlockMediaRecovery(BMR),块是复原的最小单元,通过块能够减少复原时刻,而且数据文件能够在线。复原块的时候,必须指定具体的块号,如:RMAN>blockrecoverdatafile6block3;具体请见 4.7.4 块媒体复原 BlockMediaRecovery(BMR)4.4.3 非归档模式下的 BACKUP 备份与复原复原名目:   打开目标数据库:例程启动,数据库加载,mount 不能open因为目标数据库不在归档模式下,因此当进行备份/复原操作的时候数据库无法打开。目标数据库只能在 MOUNT状态不能Open,因此属于脱机备份。非归档模式不备份redo日志,只有完全备份和readonly/offline表空间和数据文件备份是有意义的,因此非归档模式最好不用RMAN进行备份,备份语法与归档模式相同,因此那个地点只做简单介绍。4.4.3.1 全库备份例: 使用默认的设置脱机全备份的语句RMAN>shutdownimmediate;RMAN>startupmount;RMAN>backupdatabase;RMAN>startup;例:不使用默认的设置执行脱机备份操作 ,在备份命令中指定备份选项RMAN>shutdownimmediate;RMAN>startupmount;RMAN>run{allocatechannelc1typediskformat'/xxx/ming_%U';allocatechannelc2typediskformat'/xxx/ming_%U';backupfulltagfull_db_backupformat"/backups/db_t%t_s%s_p%p"(database);backupcurrentcontrolfile;releasechannelc1;releasechannelc2;}在那个例子中,我们分配了两个通道,备份位置是在/xxx。默认情形下,假如备份数据文件1(SYSTEM 表空间),操纵文件和参数文件也会备份。能够通过下面的命令显示复原名目中记载的备份集信息:RMAN>listbackupsetofdatabase;4.4.3.2 全库备份的复原$rmantarget/RMAN>startupmountRMAN>restoredatabase;RMAN>recoverdatabase;RMAN>alterdatabaseopenresetlogs;4.4.3.3 表空间备份只有readonly/offline表空间的备份才有意义。RMAN>run{2>allocatechanneldev1typedisk;3>backup4>tagtbs_users_read_only5>format"/oracle/backups/tbs_users_t%t_s%s"6>(tablespaceusers);7>}使用以下命令来显示复原名目中该表的备份信息:RMAN>listbackupsetoftablespaceusers;4.4.3.4 表空间备份的复原RMAN>RUN{sql"altertablespacexxofflineimmediate;"restoretablespacexx;recovertablespacexx;sql"altertablespacexxonline;"}4.4.3.5 备份操纵文件RMAN>run{2>allocatechanneldev1type"SBT_TAPE";3>backup4>format"cf_t%t_s%s_p%p"5>tagcf_monday_night6>(currentcontrolfile);7>releasechanneldev1;8>}注:数据库完全备份将自动备份操纵文件。(或者备份时加includecurrentcontrolfile)4.4.4 归档模式下的BACKUP备份与完全复原要用 RMAN 进行联机备份操作,数据库就必须位于 ARCHIVELOG 模式。复原名目必须打开,目标数据库例程必须启动,数据库加载或者打开。这部分只介绍完全复原,不完全复原见下一节。4.4.4.1 整库备份与复原备份命令:只备份数据文件 (假如configurecontrolfileautobackup on; 将自动包括控件文件,SPFILE):RMAN>backupdatabase;同时备份归档日志,然后将备份后的归档日志删除RMAN>backupdatabaseplusarchivelogdeleteinput;明确指定同时备份控件文件:RMAN>run{allocatechannelc1typedisk;sql'altersystemarchivelogcurrent';backupfulldatabaseincludecurrentcontrolfiletag'dbfull'format'/u06/oracle/rmanback/full_%u_%s_%p';sql'altersystemarchivelogcurrent';releasechannelc1;}能够用RMAN的plusarchvielog选项简化数据库备份:RMAN>run{2>backupdatabase3>format'/xxfull%d_%T_%s'4>plusarchivelog5>format'/xx/arch_%d_%T_%s'6>deleteallinput;7>}完全复原:目标数据库必须是mount状态$rmantarget/RMAN>startupmountRMAN>restoredatabase;RMAN>recoverdatabase;RMAN>alterdatabaseopen;4.4.4.3 表空间的备份与复原备份命令:RMAN>backuptablespaceusers;例:RMAN>RUN{allocatechannelc1typedisk;backuptablespaceuserstag'ts_users'format'/oracle/rmanback/ts_%u_%s_%p';releasechannelc1;}复原:假如我们只丢失了特定的表空间的数据文件,那么我们能够选择只复原那个表空间,而不是复原整个数据库。表空间复原能够在不关闭数据库的情形下进行,只需要将需要复原的表空间offline。RMAN>RUN{sql"altertablespacexxofflineimmediate;"restoretablespacexx;recovertablespacexx;sql"altertablespacexxonline;"}复原到一个不同的位置:RMAN>RUN{sql"altertablespacexxofflineimmediate;"SETNEWNAMEfordatafile1to'/xx';restoretablespacexx;switchdatafile1;recovertablespacexx;sql"altertablespacetbs1online;"}4.4.4.3 数据文件的备份与复原备份命令:RMAN>backupdatafile3;RMAN>backupdatafile'D:\ORACLE\ORADATA\TEST\TEST.DB';复原命令:数据文件复原与表空间恢复类似。假设数据文件号为 5 的文件丢失,文件名是:'E:\ORACLE\ORADATA\USERS.DBF', 那么我们复原的时候能够指定文件号,也能够指定文件名。RMAN>run{2>allocatechanneldev1typedisk;3>sql"altertablespaceusersofflineimmediate";4>restoredatafile4;   --或者 restore'E:\ORACLE\ORADATA\USERS.DBF'5>recoverdatafile4;6>sql"altertablespaceusersonline";7>releasechanneldev1;8>}复原到一个不同的位置:$rmantarget/RMAN>startupmountRMAN>RUN{sql"altertablespaceusersofflineimmediate";SETNEWNAMEfordatafile9to'/xx/user01.dbf';restoredatafile9;switchdatafileall;recoverdatafile9;sql"altertablespaceusersonline";}4.4.4.4 归档重做日志的备份与复原备份:整库备份的同时,备份所有归档 (以及联机日志):RMAN>backupdatabaseplusarchivelog;备份所有归档:RMAN>backuparchivelogall;备份两天来的归档:RMAN>backuparchivelogfromtime='sysdate-2'[totime=’xxx’];备份从sequence1 开始的归档:RMAN>backuparchivelogfromsequence1[tosequence=’n];备份没有三次备份的归档:RMAN>backuparchivelognotbackedup3times;备份所有归档,然后删除归档:RMAN>backuparchivelogalldeleteinput;复原:显示复原名目中的归档日志:RMAN>listbackupsetofarchivelogall;一样情形下,在 RMAN 的一般复原过程中,不必复原归档的重做日志。只是偶然也需要复原重做日志,例如我们用LogMiner 来从归档中查找一些东西。RMAN命令举例:RMAN>RESTOREARCHIVELOGALL;RMAN>RESTOREARCHIVELOGFROMLOGSEQ=1UNTILLOGSEQ=20;RMAN>RESTOREARCHIVELOGFROMLOGSEQ=1;能够用 SET命令来指定归档日志的还原位置,例如:RMAN>run{setarchivelogdestinationto"d:\temp";restorearchivelogall;}需要注意的是,即使新的归档日志名目不同于默认的归档日志名目,假如 Oracle判定日志已存在,也可不能复原该归档日志文件。4.4.4.5 联机日志的备份联机日志不能用 RMAN 来备份,能够先将其归档,再备份。为了实现这点,必须在RMAN中执行归档命令语句:RMAN>run{2>allocatechanneldev1typedisk;3>sql"altersystemarchivelogcurrent";4>backup(archivelogfromtime"sysdate-1"alldeleteinput)5>"format"/oracle/backups/log_t%t_s%s_p%p";6>releasechanneldev1;7>}上面的脚本能够在执行完一个完整的联机数据库备份后执行,确保所有的重做日志能够将数据库复原到一个一致性的状态。因此,也能够在全库备份时使用 plusarchvielog 选项,将自动完成联机日志的备份。4.4.4.6 操纵文件和服务器参数文件的备份与复原备份:// 设置文件名格式RMAN>setcontrolfileautobackupformatfordevicetypediskto'ctl_%F';1.RMAN>configurecontrolfileautobackupon;   //backupdatabase时将自动备份2.RMAN>backupcurrentcontrolfile;3.RMAN>backup....includecontrolfile;4.RMAN>backupfile1;               //systemdatafile自动备份复原SPFILE:SPFILE〔PFILE〕的丢失/损坏,对数据库可不能产生致命阻碍,能够从其他方式复原。只是既然 RMAN 的备份打算中包括了 SPFILE 的备份,那么就能够使用 RMAN 来还原SPFILE了。$rmantarget/catalog"rman/rman@db"RMAN>setdbid=153910023   //SETDBID那个步骤是不能省略的,否那么会报错。RMAN>restorespfilefromautobackup[MAXDAYS100];   // 或者restorespfile;RMAN>startupforce或者从某个备份集复原:RMAN>restorespfilefrombackupsetbs_num命令。使用 dbms_backup_restore包复原服务器参数文件:在一些不常见的情形下,我们可能需要直截了当使用 dbms_backup_restore 包来复原spfile。因此那个包也能够用来复原其它数据,是常规方法都没有用的时候的一个利器。那个包可以在数据库 NOMOUNT 状态下使用。假设我们有一个自动备份文件C-2600315304-20060829-02,我们需要从那个地点复原数据,那么能够通过执行下面的脚本来完成:SQL>DECLAREDEVTYPEVARCHAR2(256);DONEBOOLEAN;BEGINDEVTYPE:=DBMS_BACKUP_RESTORE.deviceallocate(NULL);DBMS_BACKUP_RESTORE.restoresetdatafile;DBMS_BACKUP_RESTORE.restorespfileto('/back/SPFILE.ORA');DBMS_BACKUP_RESTORE.restorebackuppiece('/back/C-2600315304-20060829-02',DONE=>done);DBMS_BACKUP_RESTORE.devicedeallocate(NULL);END;复原操纵文件:RMAN>startupnomount;RMAN>setdbid=153910023RMAN>restorecontrolfilefromautobackup或RMAN>restorecontrolfilefrom'/arch/ct_c-2347671489-20060630-00';联机状态:目标数据库MOUNT或OPENRMAN>restorecontrolfileto'd:\temp\control01.ctl';然后再执行复原数据库的其他步骤:RMAN>restoredatabase;RMAN>recoverdatabase;RMAN>alterdatabaseopenresetlogs;使用 dbms_backup_restore包复原操纵文件:SQL>DECLAREDEVTYPEVARCHAR2(256);DONEBOOLEAN;BEGINDEVTYPE:=DBMS_BACKUP_RESTORE.deviceallocate(NULL);DBMS_BACKUP_RESTORE.restoresetdatafile;DBMS_BACKUP_RESTORE.restorecontrolfileto('/back/CONTROL01.CTL');DBMS_BACKUP_RESTORE.restorebackuppiece('/back/C-2600315304-20060829-00',DONE=>done);DBMS_BACKUP_RESTORE.devicedeallocate(NULL);END;/4.4.4.7 备份集的备份的备份与复原备份:备份所有备份集:RMAN>backupbackupsetall;备份指定备份集:RMAN>backupbackupsetbs_num;复原:〔这种备份只是增加一个镜像,不用复原〕要紧用于改变备份集的位置,或者创建多个镜像备份,比如将备份集从硬盘备份到磁带。假如要详细了解,见我在ITPUB上发的帖子:://itpub.net/viewthread.php?tid=1007747&page=1&extra=4.4.5 归档模式下的不完全复原不完全复原就意味着有数据的丢失。引起不完全复原的缘故有专门多,如丢失了联机日志或某个归档日志。另外假如显现了严峻损害数据库的用户错误,比如某用户错误的删除了某个重要的数据,那么数据库也要复原到那个错误操作之前。不完全复原会阻碍整个数据库,需要在MOUNT状态下进行。在不完全复原完成之后,通常需要使用 resetlogs 选项来打开数据库。resetlogs 表示一个数据库逻辑生存期的终止和另一个数据库逻辑生存期的开始。数据库的逻辑生存期也被称为一个对应物(incarnation)。每次使用 resetlogs 选项来打开数据库后都会创建一个新的数据库对应物,这关于复原操作来说专门重要。每次使用 resetlogs 后,SCN计数器可不能被重置,然而Oracle会重置联机日志序列号,同时还会重置联机重做日志内容。因此执行了 resetlogs 之后,应该赶忙重新备份整个数据库,否那么复原起来相当苦恼。〔注:Oracle10g中差不多能够在 resetlogs之后不备份数据库,复原的时候能够穿越resetlogs〕使用 RMAN 执行不完全复原操作时需要完成的一个工作是建立复原目标。复原目标是要终止复原进程的点,能够是时刻点、指定的 SCN 或者一个日志序列号。我们能够在 run代码中使用set 命令和untiltime、untilscn、untilsequence参数。也能够选择在 RESTORE和RECOVER命令中直截了当使用 UNTILTIME、UNTILSCN、或者UNTILSEQUENCE参数,如此就能够幸免使用 run 代码。例如;startupmount;restoredatabase"to_date('2005/08/0113:00:00','yyyy/mm/ddhh24:mi:ss')";recoverdatabase"to_date('2005/08/0113:00:00','yyyy/mm/ddhh24:mi:ss')";alterdatabaseopenresetlogs;4.4.5.1 基于SCN的复原假如明白数据库出错前的SCN,能够将数据库还原到指定 SCN 状态。
本文档为【oracle备份、恢复】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_769254
暂无简介~
格式:doc
大小:59KB
软件:Word
页数:63
分类:
上传时间:2020-09-18
浏览量:11