Oracle10g数据库备份与恢复总结5--Oracle备份与恢复之物理备份--Rman备份

Oracle10g备份与恢复之物理备份--Rman备份

        Recovery Manager(RMAN)是一种用于备份(backup)、还原(restore)和恢复(recover)数据库的 Oracle 工具。RMAN只能用于ORACLE8或更高的版本中。它能够备份整个数据库或数据库部件,如表空间、数据文件、控制文件、归档文件以及Spfile参数文件。而且rman备份可以实现增量备份,需要系统管理员权限的用户才能备份,并且建议在归档模式下备份。在说明rman备份示例之前需要对rman备份用到的一些概念进行说明。

        一、相关概念:

1、目标数据库:就是RMAN 进行备份与恢复的数据库。

2、恢复目录:用来保存备份与恢复信息的一个数据库上的目录,不建议创建在目标数据库上,故需要有另外一个数据库来专门存放恢复目录,增加了成本。利用恢复目录可以同时管理多个目标数据库,存储更多的备份信息,可以存储备份脚本。这里需要注意的是恢复目录是有版本的,是需要维护rman的版本的。不同rman版本要考虑兼容性问题。如果不采用恢复目录,可以采用控制文件来代替恢复目录,相对比较简单,但没有存在恢复目录时安全灵活。

3、备份集与备份片:当RMAN 进行备份时将创建一个完成的备份,包含一个到多个备份集,备份集是一个逻辑结构,包含一组的物理文件。这些物理文件就是对应的备份片。备份片是最基本的物理结构,可以产生在磁盘或者磁带上,可以包含目标数据库的数据文件,控制文件,归档日志与spfile文件。备份集与备份片有如下规定:一个数据文件不能跨越一个备份集,但是能跨越备份片。数据文件,控制文件能保存在同样的备份集上,但是不能与归档日志保存在同样的备份集上。

4、通道:通道是RMAN服务进程与I/O 设备之前读写的途径,一个通道将对应一个服务进程,在分配通道时,需要考虑I/O 设备的类型,I/O 并发处理的能力,I/O 设备能创建的文件的大小,数据库文件最大的读速率,最大的打开文件数目等因素。

        现在我们知道rman备份可以运行在恢复目录下,也可以不使用恢复目录,在实际中,要根据我们对于数据的备份要求来取舍。rman工具一般也存在于windows类似目录C:\oracle\product\10.2.0\db_1\BIN下,如果配置好了应用程序的环境变量,那么可以直接命令行中输入rman即可运行。下面就演示如何运行rman工具如下图:

       上图显示的只是运行了rman程序,并没有连接到数据库,实际上都是用c:\>RMAN target=sys/system@orcl nocatalog命令或c :\>RMAN target=sys/system@orcl catalog=rman/rman@test2命令来运行的。前一个命令是没有恢复目录的命令,后一个是在数据库test2上建立了恢复目录的命令。其中rman是用于管理恢复目录的用户。

        二、建立恢复目录

        本文说明带恢复目录的rman备份,故需要先建立恢复目录。步骤如下:

1. 用sys账户在test2数据库上建立恢复目录表空间:
   SQL>CREATE TABLESPACE RMAN_TS DATAFILE 'D:\ORACLE\oradata\RMAN.DBF' SIZE 20M;
2. 在test2数据库上建立恢复目录所有者:
   SQL>CREATE USER RMAN IDENTIFIED BY RMAN DEFAULT TABLESPACE RMAN_TS;
3. 在test2数据库上授予恢复目录所有者角色:
   SQL>GRANT CONNECT,RESOURCE,RECOVERY_CATALOG_OWNER TO RMAN;
4. 退出sqlplus,利用rman工具连接到恢复目录数据库test2执行建立恢复目录命令:
   C:\ >RMAN CATALOG RMAN/RMAN@test2

   RMAN>CREATE CATALOG;
5.退出sqlplus,利用rman连接至目标数据库,并使用REGISTER DATABASE命令注册目标数据库。
   C:\>rman TARGET system/system@orcl CATALOG RMAN/RMAN@test2(第一斜杠表示target数据库,catalog表示catalog目录 rman/rman表示catalog用户名和密码)
   RMAN>REGISTER DATABASE;
   RMAN>show all;查看配置

        创建完恢复目录,就可以进行备份了。说明一点,我们可以把备份的文件从备份的目录中拷贝到磁带上,然后删除备份目录下面的备份文件,如果下次需要恢复的话,只要把文件重新拷回到用来的备份目录就可以了。

        三、具体的备份步骤

        1、备份整个数据库

        备份整个数据库有很多种方式,在备份之前需要使用C:\>rman TARGET system/system@orcl CATALOG RMAN/RMAN@test2命令来连接到目标数据库,使用show all来显示当前rman的默认配置。下面演示数据库的几种备份方式:

        1)backup database;这是最简单的备份全库的方式,此种方式会带控制文件和配置文件一起备份,因为全库包含了system表空间,而备份system表空间时会自动备份控制文件和配置文件。默认的类windows目录为C:\oracle\product\10.2.0\flash_recovery_area\ORCL\BACKUPSET。,注意linux的路径的斜杠是相反方向的。

        2)RMAN> backup database format 'd:\oracle\rmandata\whole_%d_%U';指定备份目录的备份全库的方式。此种方式涉及到备份集的自动命名,其中format的参数说明如下:

%c:备份片的拷贝数(从1开始编号);
%d:数据库名称;
%D:位于该月中的天数(DD);
%M:位于该年中的月份(MM);
%F:一个基于DBID唯一的名称,这个格式的形式为c-xxx-YYYYMMDD-QQ,其中xxx位该数据库的DBID,YYYYMMDD为日期,QQ是一个1-256的序列;
%n:数据库名称,并且会在右侧用x字符进行填充,使其保持长度为8;
%u:是一个由备份集编号和建立时间压缩后组成的8字符名称。利用%u可以为每个备份集产生一个唯一的名称;
%p:表示备份集中的备份片的编号,从1开始编号;
%U:是%u_%p_%c的简写形式,利用它可以为每一个备份片段(既磁盘文件)生成一个唯一的名称,这是最常用的命名方式;
%t:备份集时间戳;
%T:年月日格式(YYYYMMDD);

        3)RMAN> backup as compressed backupset   database format 'd:\oracle\rmandata\whole_%d_%U';备份整个数据库并压缩备份集。

        4)RMAN> run{
        2> allocate channel ch1 type disk;                     --手动分配一个通道

        3> allocate channel ch2 type disk                    --手动分配一个通道
        4> maxpiecesize=2g;                                        --指定备份片的大小为2g
        5> backup as compressed backupset              --压缩备份集
        6> format  'd:\oracle\rmandata\whole_%d_%U' filesperset=3--指定备份集中允许容纳的文件个数
        7> database;
        8> release channel ch1;                                     --释放通道

        9> release channel ch2;}                                    --释放通道

        此种方式是使用批命令方式备份数据库。其中一个channel是rman于目标数据库之间的一个连接通道,"allocate channel"命令在目标数据库启动一个服务器进程,启动多个可以实现数据库并发执行。filesperset参数是指rman建立的每个备份集中所能包含的数据文件的最大数(注意:不是指备份片,也就是备份出来的文件)。除了可以手工指定通道数外,还可以配置默认的通道数:RMAN> configure device type disk parallelism 3;  将并行度改为3,即3个通道同时运行。

        以上就是四种常用的rman备份数据库的方法,备份之后可以使用RMAN> list backupset;查看所有的备份集,也可以使用RMAN> list backupset tag=TAG20150120T171115;查看指定的备份集。可以使用RMAN> validate backupset 1313;命令来验证数据库备份的有效性,1313为某个指定的备份集BS编号。上面用到了批命令的使用,批命令也可以建立脚本来执行,如下。

       (1)建立存储脚本
         CREATE SCRIPT BAK_DATABASE {
         BACKUP FORMAT='D:\BACKUP\%d_%s.BAK'
         DATABASE INCLUDE CURRENT CONTROLFILE
         PLUS ARCHIVELOG ;
         SQL 'ALTER SYSTEM ARCHIVE LOG CURRENT'; }    
      (2)运行存储脚本
      (2.1 )在RMAN提示符下执行存储脚本 E

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值