rman全备份归档模式下,数据文件恢复
系统重建,只有rman全备文件的恢复
(注,这里需要重新编辑一下$ORACLE_HOME/DBS/init.ora文件,让它和我们的目标比较接近一些,主要修改的是后期不能修改的参数,其他能修改的都不用理会。)
接下来恢复控制文件,因为不知道控制文件会放在哪个备份文件中,只能猜了,当然如果你保留有rman的log的话就不需要这么麻烦了o(∩_∩)o
ORA-06512: 在 line 8
SQL> exit
从 Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options 断
6 sys.dbms_backup_restore.restoreSetDatafile;
7 sys.dbms_backup_restore.restoreControlfileTo (cfname=>'f:\oradata\yjs\control01.ctl');
8 sys.dbms_backup_restore.restoreBackupPiece(done=>done,handle=>'f:\backup\0', params
2010/09/07 16:27 9,748,480 CONTROL01.CTL
2010/09/07 16:27 9,748,480 CONTROL02.CTL
2010/09/07 16:27 9,748,480 CONTROL03.CTL
RMAN备份与恢复之完全备份和增量备份
完全备份:完全备份是指对数据库中使用过的所有数据块进行备份,当然,没有使用过的数据块是不做备份的。
在进行完全备份时,RMAN将数据文件中所有的非空白数据块都复制到备份集中。
在RMAN中,可以对数据文件进行完全备份或者增量备份,但是对控制文件和日志文件只能进行完全备份。
在一个完全数据库备份中,将所有的数据库文件,复制到闪回恢复区。
完全备份实例:【例】通过BACKUP FULL语句,对数据库执行完全备份。
使用TAG参数和FORMAT参数,指定备份文件位置以及备份文件的名称格式。
如下:RMAN>RUN{2> #BACKUP THE COMPLETE DATABASE3> ALLOCATE CHANNEL ch1 TYPE DISK;4> BACKUP FULL5> TAG full_db_backup FORMAT"E:\app\backup\db_t%t_s%s_p%p" (database);6> RELEASE CHANNEL ch1;7> }【例】在RMAN中执行LIST命令,查看建立的备份集与备份段信息,如下:RMAN> LIST BACKUP OF DATABASE;增量备份:增量备份就是将那些与前一次备份相比发生变化的数据块复制到备份集中。
进行增量备份时,RMAN会读取整个数据文件,通过RMAN可以为单独的数据文件、表空间、或者整个数据库进行增量备份。
在RMAN中建立的增量备份可以具有不同的级别,每个级别都使用一个不小于0的整数来标识,也就是在BACKUP命令中使用LEVEL关键字指定的,例如LEVEL = 0表示备份级别为0,LEVEL = 1表示备份级别为1。
增量备份的方式:差异增量备份:使用增量备份,执行0级增量备份,也就是实现完全数据库备份,如下:RMAN>RUN{2> ALLOCATE CHANNEL ch1 TYPE disk;3> BACKUP INCREMENTAL LEVEL 0 ASCOMPRESSED BACKUPSET DATABASE;4> RELEASE CHANNEL ch1;5> }在备份语句中没有指定备份文件的保存路径,默认情况下,保存在app\Administrator\flash_recovery_area\ORCL目录下。
oracle数据库rman备份计划及恢复
oracle数据库rman备份计划及恢复1.rman完全恢复的前提条件:历史的datafile,controlfile和spfile备份,加上完整的archivelog和完好的redolog。
2.rman备份脚本: a.RMAN 0级备份命令:run{allocate channel c1 type disk;allocate channel c2 type disk;allocate channel c3 type disk;backup incremental level 0 tag 'level0' format "E:\recovery_area\rfdb\rfdb\AUTOBACKUP\rman_dir\RFDB_level_0_%u_%s_%p" as compressed backupset database;sql "alter system archive log current";backup filesperset 3 format "E:\recovery_area\rfdb\rfdb\AUTOBACKUP\rman_dir\arch_%u_%s_%p_%c"archivelog all delete input; #备份归档可选,可以单独定期备份release channel c1;release channel c2;release channel c3;} b.RMAN 1级备份命令:run{allocate channel c1 type disk;allocate channel c2 type disk;allocate channel c3 type disk;backup incremental level 1 tag 'level1' format 'E:\recovery_area\rfdb\rfdb\AUTOBACKUP\rman_dir\RFDB_level_1_%u_%s_%p' as compressed backupset database;sql 'alter system archive log current';backup filesperset 3 format 'E:\recovery_area\rfdb\rfdb\AUTOBACKUP\rman_dir\arch_%u_%s_%p'archivelog all delete input; #备份归档可选,可以单独定期备份release channel c1;release channel c2;release channel c3;} c.rman删除备份命令(在保留最近⼀天备份的情况下,删除其他备份):DELETE NOPROMPT OBSOLETE RECOVERY WINDOW OF 1 DAYS; d.操作系统层⾯运⾏rman备份或删除命令(windows/linux):rman target sys/rf4rfvbgt56yhn@rfdb nocatalog CMDFILE 'D:\app\rman\rman_file\level_0.txt' log=E:\recovery_area\rfdb\rfdb\AUTOBACKUP\rman_dir\log\rman_level_0.log export ORACLE_BASE=/u01/app/oracleexport ORACLE_HOME=/u01/app/oracle/product/11.2.0/db1export ORACLE_SID=atestexport PATH=$ORACLE_HOME/bin:$PATHrman target sys/123456@atest nocatalog CMDFILE '/u01/rman/rman.sh' log=/u01/rman/rman.log00 02 * * 1 bash /u01/rman_file/run_rman_0.sh00 02 * * 3 bash /u01/rman_file/run_rman_0.sh00 02 * * 5 bash /u01/rman_file/run_rman_0.sh00 04 * * * bash /u01/rman_file/run_delete.sh34 11 * * * bash /u01/rman_file/run_rman_0.sh e.rman参数设置:RMAN> CONFIGURE CONTROLFILE AUTOBACKUP ON;RMAN> CONFIGURE DEFAULT DEVICE TYPE TO DISK;RMAN> CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE disk TO 2;RMAN> CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE disk TO 2;3.rman恢复a.拷贝datafile,controlfile和spfile的rman备份,以及完整的archivelog和完好的redolog⽂件到新的数据库。
RMAN丢失了控制文件如何恢复
这里假定是nocatalog的情况下,我们采用了RMAN备份,但是丢失了控制文件,因为控制文件中包含了rman的备份信息,所以没有办法用平常的方法来恢复,如果想恢复数据库,则需要利用一个叫DBMS_BACKUP_RESTORE的包来实现,这个包在nomount下就可以正常运行,也就是说,只需要启动到nomount下就可以利用它来恢复控制文件或者数据文件以及归档日志。
1、从备份片中恢复控制文件
最好有控制文件能恢复,就算恢复的这个控制文件没有最新的备份信息也好,起码可以利用它来定位数据文件。
如果没有控制文件可恢复,后来的数据文件恢复将变的更复杂。
以下是恢复控制文件的脚本,需要在sys as dba的连接下执行。
2、从备份片中恢复数据文件
恢复数据文件的时候,必须要知道数据文件对应的文件编号,而且最好能知道数据文件位于哪个备份片,所以就是前面说的最好能先resotre一个控制文件出来,如果实在不行,能用备份时候的日志也可以。
以下是恢复全备份的下的数据文件的脚本:
当然,有的时候,我们不仅仅是做全备份,还要做增量备份,那么我们怎么从增量备份中应用备份到数据文件中呢,我们可以参考如下脚本:
3、从备份片中恢复归档日志
如果restore完数据文件,归档日志也是可能需要做restore的,用于做recover,可以采用如下的脚本恢复archive log:
以上是恢复一个归档日志的脚本,如果是恢复批量的归档日志,可以采用增加如下内容在上面的脚本中。
基于Rman的备份与恢复
基于Rman的测试为了配合公司产品的功能测试,特完成此文档(公司产品相关测试部分已剔除)。
本文档主要是介绍rman工具的基本使用,此处只做全库的备份,以及不完全恢复,数据库模式为归档模式。
1Rman工具的简单介绍Rman全称Recover Manager是oracle提供的一款备份恢复数据库或数据库组件(表空间、数据文件、控制文件以及参数文件等)的工具。
并且rman还可以对数据库的归档日志进行管理。
2 数据库备份与恢复Rman提供两种备份模式,一种是将备份数据信息写入到本地的控制文件中,另一种是恢复目录方式:这种方式是将备份数据库信息写入到本地控制文件和catalog(恢复目录)中,oracle推荐使用第二种方式。
Catalog一般创建在另外的一个数据库中,这样备份的数据库崩溃后不影响其恢复。
使用第一种方式,如果数据库崩溃,而且没有控制文件的备份,这种情况下就没有办法进行恢复操作。
这里使用恢复目录方式进行操作。
1)Catalog的创建恢复目录所在数据库为rmandb,创建的恢复目录为tsp_rman,连接用户为rman/rmana)创建恢复目录Create tablespace tsp_rmandatafile ‘D:\ORACLE\PRODUCT\10.2.0\ORADATA\SCHINATEST\rman01.DBF’ size 120m;b)创建用户Create user rman identified by rman;c)授权Grant connect, resource, recovery_catalog_owner to rman;2)连接到Rman使用以下命令进行rman工具的连接:连接时需要sysdba系统权限Rman sys/oracle@schinatest catalog rman/rman@rmandb说明:Schinatest是准备备份的目标数据库,rmandb是恢复目录数据库3)查看目标数据库的归档模式以dba用户登录oracle,查看目标数据库的归档模式:此处是归档模式SQL> archive log list;图 3.1 查看归档模式因为一般情况下,真正使用场景中的数据库都为归档模式,而且非归档模式下使用rman有一些限制,所以此处只做归档模式下的测试。
rman备份与恢复数据库
再执行BACKUP DATABASE指令备份整个数据库。
(1)使用数据库用户名和密码登陆RMAN
D:\>rman target system/oracle@orcl
(2)在RMAN执行程序中,通过客户端指令关闭数据库,
然后从RMAN加载数据到MOUNT状态。
RMAN>shutdown immediate
RMAN>startup mount
(3)使用BACKUP DATABRMAT参数说明备份的全库
(3)将数据库处于归档模式。
使用BACKUP DATABASE联机备份整个数据库
RMAN>backup database;
在备份整个数据库时,其实就是备份了数据文件,
其中包含了当前的控制文件和参数文件。而重做日志文件或归档日志文件
因此oracle建议创建单独的恢复目录,
这样可以更好的发挥RMAN提供的新特性。
快闪恢复区(flash recovery area)
快闪恢复区是存储与备份和恢复数据文件以及相关信息的存储区。
快闪恢复区保存了每个数据文件的备份,
增量备份,控制文件备份,以及归档重做日志备份。
信息库既可以存储在数据库的控制文件中,
也可以存储在恢复目录中。
在oracle中默认先将RMAN信息库写入控制文件,
如果存在恢复目录则需要继续写入到恢复目录。
使用控制文件的不足是控制文件中记录RMAN信息库的空间有限
当空间不足时可能被覆盖掉。
(2)控制文件
(3)数据库文件和控制文件的映像副本
(4)归档日志文件
rman备份恢复操作手册-从零到无
rman备份恢复操作手册-从零到无--时间:2020年9月2日--作者:飞翔的小胖猪1 备份1.1 备份说明rman可进行热备和冷备,一般情况下都是进行热备即不数据库备份。
执行的热备需要数据库处于归档模式下。
1.2 设置归档模式归档模式开启过后,当一个在线重做日志写满了过后,会切换到下一个在线重做日志中进行日志写入。
之前的在线重做日志会形成归档日志存放于归档日志目录中。
如果归档日志目录空间使用率100%,那么整个数据设置归档日志路径SQL> alter system set log_archive_dest_1='location=/u01/arch' #设置为本地目录作为归档日志目录,红色字体根据自己定义的目录填写SQL> alter system set log_archive_dest_1='location=+DATA/RACDB/ARCH' scope=spfile sid='*'; #使用ASM的环境下使用此命令SQL> show parameter log_archive_dest_1; #查看确认设置的归档日志路径开启归档归档模式的切换必须处于mount状态下,其他状态下不行哟。
SQL> shutdown immediate; #先正常关闭在用数据库,如果你的数据库正在运行SQL> startup mount; #启动数据库到mount阶段SQL> alter database archivelog; #设置数据库为归档模式SQL> alter database open; #启动数据库到open状态SQL> archive log list; #查看数据库当前是否处于归档模式下SQL> alter system switch logfile; #尝试切换一下在线重做日志文件,此时可以到之前设置的归档日志目录中查看是否有新文件,如果有新文件则表示归档正常。
[Oracle数据库]使用RMAN备份与还原数据库原理
使用RMAN备份与还原Oracle数据库原理一、数据库备份概念对于Oracle数据库,备份方式包括物理备份和逻辑备份。
1、物理备份将实际组成数据库的操作系统文件从一处拷贝到另一处的备份过程,通常是从磁盘到磁带。
该方法实现数据库的完整恢复,但数据库必须运行在归档模式下(业务数据库在非归档模式下运行),且需要极大的外部存储设备,例如磁带库,具体包括冷备份和热备份。
冷备份和热备份是物理备份(也称低级备份),它涉及到组成数据库的文件,但不考虑逻辑内容。
使用RMAN备份与还原ORACLE数据库的方式,属于物理备份方法。
2、逻辑备份利用SQL语言从数据库中抽取数据并存于二进制文件的过程。
业务数据库采用此种方式,此方法不需要数据库运行在归档模式下,不但备份简单,而且可以不需要外部存储设备,包括导出/导入(EXPORT/IMPORT)。
这种方法包括读取一系列的数据库日志,并写入文件中,这些日志的读取与其所处位置无关。
二、RMAN备份方式使用RMAN备份Oracle数据库,包括以下三种备份概念。
1、完全备份(Full Backup)与增量备份(Incremental Backup)完全备份与增量备份是针对数据文件而言,控制文件和归档日志文件不能进行增量备份。
当然,后两者可以做备份优化。
2、打开备份(Open Backup)或关闭备份(Closed Backup)数据库打开状态下进行备份即是打开备份,数据库关闭状态下(加载状态)进行的备份即关闭备份。
3、一致备份(Consistent Backup)与不一致备份(Inconsistent Backup)数据库打开状态或不干净关闭状态(shutdown abort)进行的备份是不一致备份,利用不一致的备份修复数据库后还需要做数据库的恢复。
在数据库干净关闭状态进行的备份是一致备份,利用一致备份修复数据库后不需要做数据库的恢复。
三、备份策略由于数据库占据物理空间较大,每次都进行全库备份,对存储介质要求比较高,也会造成空间的冗余浪费,故而在实际的数据备份过程中,通常采用增量备份的方法。
oraclerman管理方式下的热备份及恢复
数据丢失问题及解决方案
硬件故障
如硬盘故障、存储设备故障等,可能导致数据丢失。
软件故障
如数据库崩溃、软件错误等,也可能导致数据丢失。
数据丢失问题及解决方案
• 人为错误:如误删除数据、误修改数据等,也可能导致数据丢失。
数据丢失问题及解决方案
配置通道,设置备份设备 (例如磁盘、磁带等)和 相关参数。
创建RMAN备份
使用RMAN命令行工具执行 备份操作。
选择要备份的数据库、表空 间、数据文件等。
02
01
指定备份类型(完全、增量
等)。
03
设置备份文件的存储位置和 名称。
04
05
执行备份命令,监控备份过 程,确保备份成功完成。
监控备份过程
解决方案
建立数据恢复计划,以便在 数据丢失时能够快速恢复。
定期进行数据备份,确保数 据安全。
加强系统监控和安全措施, 防止人为错误导致的数据丢 失。
THANKS FOR WATCHING
感谢您的观看
01 在RMAN客户端中查看备份进度和状态。
02
检查备份日志文件,了解备份过程中的任 何错误或警告信息。
03
定期检查备份文件的完整性,确保备份数 据可用。
04
根据需要,可以设置自动备份计划,定期 自动执行备份操作。
03 Oracle RMAN热恢复操 作
恢复数据库
数据库恢复
在RMAN中,可以使用RESTORE命令来恢复数据库。RESTORE命令用于将数据库文件从备份中提取出来,并将其放 置在数据库的原始位置或指定的新位置。
方案
01 Oracle RMAN热备份介 绍
RMAN管理的备份和恢复
10、RMAN提供了恢复目录用来存放RMAN信息库,RMAN恢复目录由几个表 和存储过程组成,这些对象存放在一个schema下面,因为表用来存放RMAN备 份的元数据,因此可以永久的保留下去,而不需要删除历史记录 11、RMAN恢复目录是可选的,不是必须的,元数据通过目标数据库的控制文 件传递到恢复目录,RMAN的元数据始终都存放一份在目标数据库的控制文件 中,不会因为恢复目录的存在而删除,使用RMAN完成备份以后,会将控制文 件的RMAN元数据同步到恢复目录,默认情况下,控制文件中的信息保留7天, 恢复目录永久保留。RMAN还可以同时为多个目标数据库服务,在同一个恢复 目录里面,可以保留多个目标数据库的RMAN元数据 12、如果使用恢复目录,则在使用RMAN时,除了建立到目标数据库的连接以 外,还必须建立到恢复目录所在数据库的连接,在恢复目录数据库里面创建对 应的服务器进程和session 13、RMAN工具本身由两部分组成 RMAN可执行程序:这是一个命令接口,提供了交互的界面,能够解释我们的 RMAN命令,返回结果。在工作中,完成的实质性工作很少 脚本文件recover.bsp:备份恢复的实质性工作是由目标数据库的程序包完成的, 对目标数据库的相应程序包的调用则是由文件recover.bsp实现的
等等
配置RMAN
RMAN的体系结构 服务器进程 控制 文件 目标数据库 Recovery catalog 数据库
服务器进程
RMAN可执行程序
通道 通道 MML 通道 Recover.bsq
磁盘
磁带库
闪回恢 复区
1、RMAN要进行备份的数据库叫做目标数据库 2、RMAN是一个客户端程序,需要建立到目标数据库的客户端连接,并在目标数据 库上创建对应的服务器进程以及session,RMAN输入的各个命令,从客户端传递到 服务器,由服务器进程负责执行,RMAN只能使用专用服务器连接,不能使用共享服 务器连接 3、备份过程中,RMAN读取目标数据库的控制文件,从而获得目标数据库里包含哪 些数据文件、归档日志文件、以及各个检查点SCN,指导RMAN完成备份和恢复的具 体操作
第6章 RMAN备份与恢复
new RMAN configuration parameters are successfully stored RMAN> configure channel 1 device type disk to destination 'd:\backup';
--设置通道1的备份路径为'd:\backup' new RMAN configuration parameters: CONFIGURE CHANNEL 1 DEVICE TYPE DISK TO DESTINATION
所谓通道:是指由服务器进程发起并控制目标数据库的文件与物理设备之间 的字节流。一个通道即为一个会话,一个会话对应于一个服务器进程。所有 的备份和恢复操作都是由RMAN连接的服务器进程完成的,更确切的说:是 由通道完成的。通道的分配主要有两种形式:自动分配通道和手动分配通道 。可以根据预定义的配置参数自动分配通道,也可以在需要时手动分配通道 。
为2,这样备份开始时会使用两个通道进行备份。
new RMAN configuration parameters: CONFIGURE DEVICE TYPE DISK PARALLELISM 2 BACKUP TYPE TO
BACKUPSET; new RMAN configuration parameters are successfully stored 还原默认设置值: RMAN> configure device type disk clear; old RMAN configuration parameters: CONFIGURE DEVICE TYPE DISK PARALLELISM 2 BACKUP TYPE TO
6.1.1 连接数据库
oracleRMAN备份恢复总结
oracleRMAN备份恢复总结Recovery Manager(RMAN)是一种用于备份(backup)、还原(restore)和恢复(recover)数据库的Oracle 工.RMAN只能用于ORACLE8或更高的版本中。
它能够备份整个数据库或数据库部件,如表空间、数据文件、控制文件、归档文件以及Spfile参数文件。
RMAN也允许您进行增量数据块级别的备份,增量RMAN 备份是时间和空间有效的,因为他们只备份自上次备份以来有变化的那些数据块。
而且,通过RMAN提供的接口,第三方的备份与恢复软件如veritas将提供更强大的备份与恢复的管理功能。
通过RMAN,也提供了其它更多功能,如数据库的克隆、采用RMAN建立备用数据库、利用RMAN备份与移动裸设备(RAW)上的文件等工作将变得更方便简单。
9i的RMAN通过增强的自动配置与管理功能,以及特有的块级别的恢复,将使备份与恢复工作变得更加快捷与完美。
9i的RMAN有如下特征特性:·自动的备份与恢复·方便的备份归档日志·自动检测新的数据文件·支持增量备份·最大限度的减少备份与恢复的错误·减少恢复的时间·在热备份中不会产生额外的redo日志·腐烂数据块的自动检测·并行的备份与恢复操作·在线备份时,表空间不用置于备份模式可以看到,在以上的一些特性中,显示了RMAN强大的功能与好处,以上功能的实现,是因为RMAN是块级别的备份与恢复,备份与恢复发生在数据库块级别,可以通过比较数据块而获得一致性的数据块,可以避免备份没有用过的块,可以检验块是否腐烂等块级别的问题。
在使用rman备份分为使用恢复目录和不使用恢复目录两种形式,如果使用恢复目录,那恢复目录最好建另外一台机器上才更有意义,因为如果同生产库建在一起了,当此机器出现故障时,恢复目录数据库可以也无法使用,那么rman就不能得到先前的备份信息了,也就不能进行恢复了。
RMAN的备份与恢复步骤详解
RMAN的备份与恢复步骤详解在这里没有讨论多么深入的RMAN技术,也没有告诉大家这样去编写备份脚本,这并不是我的初衷,我只想把我会的写出来,和大家一起学习,一起进步,谢谢。
1、切换服务器归档模式,如果已经是归档模式可跳过此步:%sqlplus /nolog (启动sqlplus)SQL> conn / as sysdba (以DBA身份连接数据库)SQL> shutdown immediate; (立即关闭数据库)SQL> startup mount (启动实例并加载数据库,但不打开) SQL> alter database archivelog; (更改数据库为归档模式)SQL> alter database open; (打开数据库)SQL> alter system archive log start; (启用自动归档) SQL> exit (退出)2、连接:%rman target=rman/rman@mydb (启动恢复管理器)3、基本设置:RMAN> configure default device type to disk; (设置默认的备份设备为磁盘)RMAN> configure device type disk parallelism 2; (设置备份的并行级别,通道数)RMAN> configure channel 1 device type disk fromat '/backup1/backup_%U'; (设置备份的文件格式,只适用于磁盘设备)RMAN> configure channel 2 device type disk fromat '/backup2/backup_%U'; (设置备份的文件格式,只适用于磁盘设备)RMAN> configure controlfile autobackup on; (打开控制文件与服务器参数文件的自动备份)RMAN> configure controlfile autobackup format for device type disk to '/backup1/ctl_%F'; (设置控制文件与服务器参数文件自动备份的文件格式)4、查看所有设置:RMAN> show all5、查看数据库方案报表:RMAN> report schema;6、备份全库:RMAN> backup database plus archivelog delete input; (备份全库及控制文件、服务器参数文件与所有归档的重做日志,并删除旧的归档日志)7、备份表空间:RMAN> backup tablespace system plus archivelog delete input; (备份指定表空间及归档的重做日志,并删除旧的归档日志)8、备份归档日志:RMAN> backup archivelog all delete input;9、复制数据文件:RMAN> copy datafile 1 to '/oracle/dbs/system.copy'; 10、查看备份和文件复本:RMAN> list backup;11、验证备份:RMAN> validate backupset 3;12、从自动备份中恢复服务器参数文件:RMAN> shutdown immediate; (立即关闭数据库) RMAN> startup nomount; (启动实例)RMAN> restore spfile to pfile '/backup1/mydb.ora' from autobackup; (从自动备份中恢复服务器参数文件) 13、从自动备份中恢复控制文件:RMAN> shutdown immediate; (立即关闭数据库) RMAN> startup nomount; (启动实例)RMAN> restore controlfile to '/backup1' from autobackup; (从自动备份中恢复控制文件)13、恢复和复原全数据库:RMAN> shutdown immediate; (立即关闭数据库) RMAN> exit (退出)%mv /oracle/dbs/tbs_12.f /oracle/dbs/tbs_12.bak (将archivelog delete input;第七天的增量差异备份:RMAN> backup incremental level=0 database plus archivelog delete input;增量恢复:RMAN> shutdown immediate;RMAN> exit%mv /oracle/dbs/tbs_12.f /oracle/dbs/tbs_12.bak%mv /oracle/dbs/tbs_13.f /oracle/dbs/tbs_13.bak%mv /oracle/dbs/tbs_14.f /oracle/dbs/tbs_14.bak%mv /oracle/dbs/tbs_15.f /oracle/dbs/tbs_15.bak%rman target=rman/rman@mydbRMAN> startup pfile=/oracle/admin/mydb/pfile/initmydb.oraRMAN> restore database;RMAN> recover database;RMAN> alter database open。
OracleRMAN的备份与恢复命令详解
还原检查与恢复测试
与备份检查一样,还原操作也可以检查是否能正常 restore 或者是否该备份集是否有效。如::
可以使用 CHECK LOGICAL 选项测试通过了物理损坏检查的数据和索引块,查看它们是否存在逻辑损坏,如行片或索引条目损坏。如果检测到任何块存在逻辑损坏,则 将该块记录到服务器进程的警报日志和跟踪文件中。
可以使用 MAXCORRUPT 参数设置逻辑和物理损坏的阈值。只要在某个文件中检测到的逻辑和物理损坏总和低于该值,则 RMAN 命令完成,同时 Oracle 将损坏块的 范围植入到 V$COPY_CORRUPTION 视图。如果超出 MAXCORRUPT,则该命令终 止,并且不植入视图。 当并行度比较高时,占用的计算机资源较多,但备份操作完成 速度较快。缺省情况下将启用对物理损坏的错误检查。有关在备份过程中遇到的损坏数据文件块的信息将记录在控制文件和警报日志中。
运行 BACKUP ARCHIVELOG ALL 命令。注意如果备份优化被启用,RMAN只会备份未备份过的日志
备份 BACKUP命令中定义的文件
运行 ALTER SYSTEM ARCHIVE LOG CURRENT 命令
备份所有的剩下的归档日志
备份完后删除归档日志RMAN> backup …… ARCHIVELOG all delete all input;修改备份集的保存策略例如:将备份设置为永久有效RMAN> backup database keep forever logs|nologs;设置为有效期 180 天RMAN> backup database keep until time='sysdate+180';重写configure exclude / noexclude通过 configure exclude 可以配置 RMAN 不备份上次备份以来没有发生变化的数据文件。如果要确保 RMAN备份这些数据文件,可以在 backup命令中添加 noexclude 选项。 例如:RMAN> backup database noexclude;
RMAN备份与恢复
RMAN备份与恢复参考链接:RMAN是物理备份,可以做到任意时间点的恢复。
归档模式下,RMAN既可以冷备,也可以热备⾮归档模式下,RMAN只能冷备。
⼀、创建并注册恢复⽬录 1. SQL窗⼝中创建恢复⽬录所使⽤的表空间SQL>create tablespace rman_tbsp datafile '/u01/app/oracle/oradata/orcl/rman_tbsp.dbf' size 1G autoextend on;Tablespace created. 2. 创建RMAN⽤户并授权SQL>create user rman_user identified by123456default tablespace rman_tbsp temporary tablespace temp;SQL>grant connect,recovery_catalog_owner,resource to rman_user; 3. shell窗⼝打开恢复管理器rman target sysdba/123456 catalog rman_user/123456; 4. 在RMAN模式下,创建恢复⽬录create catalog tablespace rman_tbsp; 5. 在RMAN模式下,使⽤register命令注册数据库register database;database registered in recovery catalogstarting full resync of recovery catalogfull resync complete⼆、在归档模式下和⾮归档模式下备份数据库(⼀致性与⾮⼀致性)2.1⼀致性备份数据库⼀致性备份是指关闭了数据库后备份所有数据⽂件和控制⽂件的⽅法。
当使⽤SHUTDOWN 命令正常关闭了数据库之后,所有数据库⽂件的当前SCN 值完全⼀致,所以关闭后的数据库备份被称为数据库⼀致性备份或者冷备份。
windows 下的oracle数据库rman自动备份和恢复文档
数据库rman备份恢复文档一.Rman简介RMAN是ORACLE提供的恢复和备份工具,是随Oracle服务器软件一同安装的工具软件,它可以用来备份和恢复数据库文件、归档日志和控制文件,用来执行完全或不完全的数据库恢复。
与传统工具相比,RMAN具有独特的优势:跳过未使用的数据块。
当备份一个RMAN 备份集时,RMAN不会备份从未被写入的数据块,而传统的方式无法获知那些是未被使用的数据块。
RMAN使用Oracle特有的二进制压缩模式,与传统备份的压缩方式相比,能够最大程度地压缩数据块中的一些典型数据。
二.系统规划数据库备份文件不建议与系统盘(C盘)、oracle数据文件存放盘(D 盘)存放在一起,本文单独存放于E盘。
注:在进行以下操作前要根据自己的环境建立如下目录“E:\orabackup\”,“’E:\archivelog_backup”,“E:/orabackup_script/”。
本文用到的命令中的标点均为英文字符下的标点。
三.设置oracle数据库为归档模式(ARCHIVELOG)按以下步骤操作,检查oracle数据库是否为归档模式。
1.选择“开始”→“系统”→“运行”,输入cmd,按回车。
2.输入“sqlplus”,按回车。
3.输入“system / as sysdba ”,按回车。
4.输入数据库system账号的密码,按回车。
5.查看数据库归档模式,输入“archive log list;”,按回车。
如下图所示。
如果“数据库日志模式”为“非存档模式”,则需按照如下步骤开启归档模式:1.设置数据库日志归档路径。
输入“alter system set log_archive_dest=’E:\archivelog_backup’ scope=spfile; ”,按回车。
2.关闭数据库。
输入“shutdown immediate;”,按回车。
3. 启动数据库到mount状态。
输入“startup mount;”,按回车。
使用RMAN对数据文件进行恢复
使⽤RMAN对数据⽂件进⾏恢复(1)备份数据库在使⽤RMAN进⾏数据库恢复之前,先⽤RMAN进⾏全库备份[oracle@redhat6 ~]$ rman target /Recovery Manager: Release 11.2.0.1.0- Production on Wed May 1614:32:542018Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.connected to target database: ORCL (DBID=1486787650)RMAN>backup database;Starting backup at 16-MAY-18using channel ORA_DISK_1channel ORA_DISK_1: starting full datafile backup setchannel ORA_DISK_1: specifying datafile(s) in backup setinput datafile file number=00001 name=/u01/app/oracle/oradata/orcl/system01.dbfinput datafile file number=00002 name=/u01/app/oracle/oradata/orcl/sysaux01.dbfinput datafile file number=00003 name=/u01/app/oracle/oradata/orcl/undotbs01.dbfinput datafile file number=00005 name=/u01/app/oracle/oradata/orcl/example01.dbfinput datafile file number=00009 name=/u01/app/oracle/oradata/orcl/mark.bdfinput datafile file number=00011 name=/u01/app/oracle/oradata/orcl/tbs01.bdfinput datafile file number=00012 name=/u01/app/oracle/oradata/orcl/tbs03.dbfinput datafile file number=00013 name=/u01/app/oracle/oradata/orcl/tbs04.dbfinput datafile file number=00004 name=/u01/app/oracle/oradata/orcl/users01.dbfchannel ORA_DISK_1: starting piece 1 at 16-MAY-18channel ORA_DISK_1: finished piece 1 at 16-MAY-18piece handle=/u01/app/oracle/product/11.2.0/db_1/dbs/01t31soh_1_1 tag=TAG20180516T144121 comment=NONE channel ORA_DISK_1: backup set complete, elapsed time: 00:02:33channel ORA_DISK_1: starting full datafile backup setchannel ORA_DISK_1: specifying datafile(s) in backup setinput datafile file number=00008 name=/u01/app/oracle/oradata/orcl/tbs_32k.dbfchannel ORA_DISK_1: starting piece 1 at 16-MAY-18channel ORA_DISK_1: finished piece 1 at 16-MAY-18piece handle=/u01/app/oracle/product/11.2.0/db_1/dbs/02t31sta_1_1 tag=TAG20180516T144121 comment=NONEchannel ORA_DISK_1: backup set complete, elapsed time: 00:00:01channel ORA_DISK_1: starting full datafile backup setchannel ORA_DISK_1: specifying datafile(s) in backup setincluding current control file in backup setincluding current SPFILE in backup setchannel ORA_DISK_1: starting piece 1 at 16-MAY-18channel ORA_DISK_1: finished piece 1 at 16-MAY-18piece handle=/u01/app/oracle/product/11.2.0/db_1/dbs/03t31stc_1_1 tag=TAG20180516T144121 comment=NONEchannel ORA_DISK_1: backup set complete, elapsed time: 00:00:01Finished backup at 16-MAY-18(2)删除数据⽂件查看数据库的数据⽂件信息:select t."NAME",d."NAME",d."FILE#"from v$tablespace t,v$datafile dwhere t."TS#" = d."TS#"order by t.ts#;NAME NAME FILE#------------------------------ -------------------------------------------------------------------------------- ----------SYSTEM /u01/app/oracle/oradata/orcl/system01.dbf 1SYSAUX /u01/app/oracle/oradata/orcl/sysaux01.dbf 2UNDOTBS1 /u01/app/oracle/oradata/orcl/undotbs01.dbf 3USERS /u01/app/oracle/oradata/orcl/users01.dbf 4EXAMPLE /u01/app/oracle/oradata/orcl/example01.dbf 5TBS_32K /u01/app/oracle/oradata/orcl/tbs_32k.dbf 8MARK /u01/app/oracle/oradata/orcl/mark.bdf 9TBS01 /u01/app/oracle/oradata/orcl/tbs01.bdf 11TBS03 /u01/app/oracle/oradata/orcl/tbs03.dbf 12TBS04 /u01/app/oracle/oradata/orcl/tbs04.dbf 1310 rows selected删除⼀个数据⽂件,这⾥把⽂件编号为13的数据⽂件给删除:[oracle@redhat6 ~]$ rm -f /u01/app/oracle/oradata/orcl/tbs04.dbf(3)恢复数据⽂件(3.1)使⽤list failure查看失败操作RMAN> list failure;List of Database Failures=========================Failure ID Priority Status Time Detected Summary---------- -------- --------- ------------- -------8 HIGH OPEN16-MAY-18 One or more non-system datafiles need media recovery42 HIGH OPEN13-DEC-17 One or more non-system datafiles are missing(3.2)使⽤RMAN建议来恢复丢失的⽂件RMAN> advise failure2> ;List of Database Failures=========================Failure ID Priority Status Time Detected Summary---------- -------- --------- ------------- -------8 HIGH OPEN16-MAY-18 One or more non-system datafiles need media recovery42 HIGH OPEN13-DEC-17 One or more non-system datafiles are missinganalyzing automatic repair options; this may take some timeusing channel ORA_DISK_1analyzing automatic repair options completeMandatory Manual Actions========================no manual actions availableOptional Manual Actions=======================1. If you restored the wrong version of data file/u01/app/oracle/oradata/orcl/tbs04.dbf, then replace it with the correct one2. If file/u01/app/oracle/oradata/orcl/tbs04.dbf was unintentionally renamed or moved, restore itAutomated Repair Options========================Option Repair Description------ ------------------1Restore and recover datafile 13; Recover datafile 13Strategy: The repair includes complete media recovery with no data lossRepair script: /u01/app/oracle/diag/rdbms/orcl/orcl/hm/reco_1931299378.hm最后⼀⾏给出了恢复的脚本,查看脚本[oracle@redhat6 ~]$ more /u01/app/oracle/diag/rdbms/orcl/orcl/hm/reco_1931299378.hm# restore and recover datafilesql 'alter database datafile 13 offline';restore datafile 13;recover datafile 13;sql 'alter database datafile 13 online';# recover datafilesql 'alter database datafile 13 offline';recover datafile 13;sql 'alter database datafile 13 online';根据脚本,执⾏修复和恢复RMAN> sql 'alter database datafile 13 offline';sql statement: alter database datafile 13 offlineRMAN>restore datafile 13;Starting restore at 16-MAY-18using channel ORA_DISK_1channel ORA_DISK_1: starting datafile backup set restorechannel ORA_DISK_1: specifying datafile(s) to restore from backup setchannel ORA_DISK_1: restoring datafile 00013to/u01/app/oracle/oradata/orcl/tbs04.dbfchannel ORA_DISK_1: reading from backup piece /u01/app/oracle/product/11.2.0/db_1/dbs/01t31soh_1_1channel ORA_DISK_1: piece handle=/u01/app/oracle/product/11.2.0/db_1/dbs/01t31soh_1_1 tag=TAG20180516T144121 channel ORA_DISK_1: restored backup piece 1channel ORA_DISK_1: restore complete, elapsed time: 00:00:03Finished restore at 16-MAY-18RMAN> recover datafile 13;Starting recover at 16-MAY-18using channel ORA_DISK_1starting media recoverymedia recovery complete, elapsed time: 00:00:00Finished recover at 16-MAY-18RMAN> sql 'alter database datafile 13 online';sql statement: alter database datafile 13 online(4)重启数据库,确认⽆异常SQL>shutdown immediate;Database closed.Database dismounted.ORACLE instance shut down.SQL> startupORACLE instance started.Total System Global Area 730714112 bytesFixed Size 2216944 bytesVariable Size 314575888 bytesDatabase Buffers 411041792 bytesRedo Buffers 2879488 bytesDatabase mounted.Database opened.完结。
RMAN地备份与恢复步骤详解
在这里没有讨论多么深入的RMAN技术,也没有告诉大家这样去编写备份脚本,这并不是我的初衷,我只想把我会的写出来,和大家一起学习,一起进步,谢谢。
1、切换服务器归档模式,如果已经是归档模式可跳过此步:%sqlplus /nolog (启动sqlplus)SQL> conn / as sysdba (以DBA身份连接数据库)SQL> shutdown immediate; (立即关闭数据库)SQL> startup mount (启动实例并加载数据库,但不打开) SQL> alter database archivelog; (更改数据库为归档模式) SQL> alter database open; (打开数据库)SQL> alter system archive log start; (启用自动归档) SQL> exit (退出)2、连接:%rman target=rman/rman@mydb (启动恢复管理器)3、基本设置:RMAN> configure default device type to disk; (设置默认的备份设备为磁盘)RMAN> configure device type disk parallelism 2; (设置备份的并行级别,通道数)RMAN> configure channel 1 device type disk fromat '/backup1/backup_%U'; (设置备份的文件格式,只适用于磁盘设备)RMAN> configure channel 2 device type disk fromat '/backup2/backup_%U'; (设置备份的文件格式,只适用于磁盘设备)RMAN> configure controlfile autobackup on; (打开控制文件与服务器参数文件的自动备份)RMAN> configure controlfile autobackup format for device type disk to '/backup1/ctl_%F'; (设置控制文件与服务器参数文件自动备份的文件格式)4、查看所有设置:RMAN> show all5、查看数据库方案报表:RMAN> report schema;6、备份全库:RMAN> backup database plus archivelog delete input; (备份全库及控制文件、服务器参数文件与所有归档的重做日志,并删除旧的归档日志)7、备份表空间:RMAN> backup tablespace system plus archivelog delete input; (备份指定表空间及归档的重做日志,并删除旧的归档日志)8、备份归档日志:RMAN> backup archivelog all delete input;9、复制数据文件:RMAN> copy datafile 1 to '/oracle/dbs/system.copy';10、查看备份和文件复本:RMAN> list backup;11、验证备份:RMAN> validate backupset 3;12、从自动备份中恢复服务器参数文件:RMAN> shutdown immediate; (立即关闭数据库) RMAN> startup nomount; (启动实例)RMAN> restore spfile to pfile '/backup1/mydb.ora' from autobackup; (从自动备份中恢复服务器参数文件)13、从自动备份中恢复控制文件:RMAN> shutdown immediate; (立即关闭数据库) RMAN> startup nomount; (启动实例)RMAN> restore controlfile to '/backup1' from autobackup; (从自动备份中恢复控制文件)13、恢复和复原全数据库:RMAN> shutdown immediate; (立即关闭数据库) RMAN> exit (退出)%mv /oracle/dbs/tbs_12.f /oracle/dbs/tbs_12.bak (将数据文件重命名)%mv /oracle/dbs/tbs_13.f /oracle/dbs/tbs_13.bak (将数据文件重命名)%mv /oracle/dbs/tbs_14.f /oracle/dbs/tbs_14.bak (将数据文件重命名)%mv /oracle/dbs/tbs_15.f /oracle/dbs/tbs_15.bak (将数据文件重命名)%rman target=rman/rman@mydb (启动恢复管理器) RMAN> startup pfile=/oracle/admin/mydb/pfile/initmydb.ora (指定初始化参数文件启动数据库)RMAN> restore database; (还原数据库) RMAN> recover database; (恢复数据库)RMAN> alter database open; (打开数据库)14、恢复和复原表空间:RMAN> sql 'alter tablespace users offline immediate'; (将表空间脱机)RMAN> exit (退出恢复管理器)%mv /oracle/dbs/users01.dbf /oracle/dbs/users01.bak (将表空间重命名)%rman target=rman/rman@mydb (启动恢复管理器) RMAN> restore tablespace users; (还原表空间) RMAN> recover tablespace users; (恢复表空间)RMAN> sql 'alter tablespace users online'; (将表空间联机)15、增量备份与恢复:第一天的增量基本备份:RMAN> backup incremental level=0 database plus archivelog delete input;第二天的增量差异备份:RMAN> backup incremental level=2 database plus archivelog delete input;第三天的增量差异备份:RMAN> backup incremental level=2 database plus archivelog delete input;第四天的增量差异备份:RMAN> backup incremental level=1 database plus archivelog delete input;第五天的增量差异备份:RMAN> backup incremental level=2 database plus archivelog delete input;第六天的增量差异备份:RMAN> backup incremental level=2 database plus archivelog delete input;第七天的增量差异备份:RMAN> backup incremental level=0 database plus archivelog delete input;增量恢复:RMAN> shutdown immediate;RMAN> exit%mv /oracle/dbs/tbs_12.f /oracle/dbs/tbs_12.bak%mv /oracle/dbs/tbs_13.f /oracle/dbs/tbs_13.bak%mv /oracle/dbs/tbs_14.f /oracle/dbs/tbs_14.bak%mv /oracle/dbs/tbs_15.f /oracle/dbs/tbs_15.bak%rman target=rman/rman@mydbRMAN> startup pfile=/oracle/admin/mydb/pfile/initmydb.oraRMAN> restore database;RMAN> recover database;RMAN> alter database open。
RMAN地备份与恢复步骤详解
在这里没有讨论多么深入的RMAN技术,也没有告诉大家这样去编写备份脚本,这并不是我的初衷,我只想把我会的写出来,和大家一起学习,一起进步,谢谢。
1、切换服务器归档模式,如果已经是归档模式可跳过此步:%sqlplus /nolog (启动sqlplus)SQL> conn / as sysdba (以DBA身份连接数据库)SQL> shutdown immediate; (立即关闭数据库)SQL> startup mount (启动实例并加载数据库,但不打开) SQL> alter database archivelog; (更改数据库为归档模式)SQL> alter database open; (打开数据库)SQL> alter system archive log start; (启用自动归档) SQL> exit (退出)2、连接: %rman target=rman/rman@mydb (启动恢复管理器)3、基本设置: RMAN> configure default device type to disk; (设置默认的备份设备为磁盘)RMAN> configure device type disk parallelism 2; (设置备份的并行级别,通道数)RMAN> configure channel 1 device type disk fromat '/backup1/backup_%U'; (设置备份的文件格式,只适用于磁盘设备)RMAN> configure channel 2 device type disk fromat '/backup2/backup_%U'; (设置备份的文件格式,只适用于磁盘设备)RMAN> configure controlfile autobackup on; (打开控制文件与服务器参数文件的自动备份)RMAN> configure controlfile autobackup format for device type disk to '/backup1/ctl_%F'; (设置控制文件与服务器参数文件自动备份的文件格式)4、查看所有设置:RMAN> show all5、查看数据库方案报表:RMAN> report schema;6、备份全库:RMAN> backup database plus archivelog delete input; (备份全库及控制文件、服务器参数文件与所有归档的重做日志,并删除旧的归档日志)7、备份表空间:RMAN> backup tablespace system plus archivelog delete input; (备份指定表空间及归档的重做日志,并删除旧的归档日志)8、备份归档日志:RMAN> backup archivelog all delete input;9、复制数据文件:RMAN> copy datafile 1 to '/oracle/dbs/system.copy';10、查看备份和文件复本:RMAN> list backup;11、验证备份:RMAN> validate backupset 3;12、从自动备份中恢复服务器参数文件:RMAN> shutdown immediate; (立即关闭数据库)RMAN> startup nomount; (启动实例)RMAN> restore spfile to pfile '/backup1/mydb.ora' from autobackup; (从自动备份中恢复服务器参数文件) 13、从自动备份中恢复控制文件:RMAN> shutdown immediate; (立即关闭数据库)RMAN> startup nomount; (启动实例)RMAN> restore controlfile to '/backup1' from autobackup; (从自动备份中恢复控制文件)13、恢复和复原全数据库:RMAN> shutdown immediate; (立即关闭数据库)RMAN> exit (退出)%mv /oracle/dbs/tbs_12.f /oracle/dbs/tbs_12.bak (将数据文件重命名)%mv /oracle/dbs/tbs_13.f /oracle/dbs/tbs_13.bak (将数据文件重命名)%mv /oracle/dbs/tbs_14.f /oracle/dbs/tbs_14.bak (将数据文件重命名)%mv /oracle/dbs/tbs_15.f /oracle/dbs/tbs_15.bak (将数据文件重命名)%rman target=rman/rman@mydb (启动恢复管理器)RMAN> startup pfile=/oracle/admin/mydb/pfile/initmydb.ora (指定初始化参数文件启动数据库)RMAN> restore database; (还原数据库) RMAN> recover database; (恢复数据库)RMAN> alter database open; (打开数据库)14、恢复和复原表空间:RMAN> sql 'alter tablespace users offline immediate'; (将表空间脱机)RMAN> exit (退出恢复管理器)%mv /oracle/dbs/users01.dbf /oracle/dbs/users01.bak (将表空间重命名)%rman target=rman/rman@mydb (启动恢复管理器)RMAN> restore tablespace users; (还原表空间)RMAN> recover tablespace users; (恢复表空间)RMAN> sql 'alter tablespace users online'; (将表空间联机)15、增量备份与恢复:第一天的增量基本备份:RMAN> backup incremental level=0 database plus archivelog delete input;第二天的增量差异备份:RMAN> backup incremental level=2 database plus archivelog delete input;第三天的增量差异备份:RMAN> backup incremental level=2 database plus archivelog delete input;第四天的增量差异备份:RMAN> backup incremental level=1 database plus archivelog delete input;第五天的增量差异备份:RMAN> backup incremental level=2 database plus archivelog delete input;第六天的增量差异备份:RMAN> backup incremental level=2 database plusarchivelog delete input;第七天的增量差异备份:RMAN> backup incremental level=0 database plus archivelog delete input;增量恢复:RMAN> shutdown immediate;RMAN> exit%mv /oracle/dbs/tbs_12.f /oracle/dbs/tbs_12.bak%mv /oracle/dbs/tbs_13.f /oracle/dbs/tbs_13.bak%mv /oracle/dbs/tbs_14.f /oracle/dbs/tbs_14.bak%mv /oracle/dbs/tbs_15.f /oracle/dbs/tbs_15.bak%rman target=rman/rman@mydbRMAN> startup pfile=/oracle/admin/mydb/pfile/initmydb.ora RMAN> restore database;RMAN> recover database;RMAN> alter database open。