oracle-rman-常用命令

会有一股神秘感。 提交于 2019-12-09 17:28:09

备份数据库:

显示RMAN配置 

RMAN>show all;

 RMAN configuration parameters are:
 CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default
 CONFIGURE BACKUP OPTIMIZATION OFF; # default
 CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default
 CONFIGURE CONTROLFILE AUTOBACKUP OFF; # default
 CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; # default
 CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET; # default
 CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
 CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
 CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT   '/u01/app/oracle/rmanbak/df_%d_%U';
 CONFIGURE MAXSETSIZE TO UNLIMITED; # default
 CONFIGURE ENCRYPTION FOR DATABASE OFF; # default
 CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # default
 CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default
CONFIGURE SNAPSHOT CONTROLFILE NAME TO '/u01/app/oracle/10g/dbs/snapcf_orcl.f'; # default

RMAN> backup database format '/u01/app/oracle/oradata/rman/%s_%d_%U'; --备份整个数据库

RMAN> backup as compressed backupset database format '/u01/app/oracle/oradata/rman/%s_%d_%U'; --备份整个数据库并压缩备份集

RMAN> run{ 
2> allocate channel ch1 type disk maxpiecesize=2g;--指定一个通道 并设置最大切片大小为2g
3> backup as compressed backupset format '/u01/app/oracle/oradata/rman/%U_%d_%s' filesperset=3 database;--备份数据库并压缩到指定文件夹,备份集中允许容纳2个文件
4> release channel ch1;--释放通道
5> }

RMAN> configure device type disk parallelism 3;      --将并行度改为3

new RMAN configuration parameters:
CONFIGURE DEVICE TYPE DISK PARALLELISM 3 BACKUP TYPE TO BACKUPSET;
new RMAN configuration parameters are successfully stored
starting full resync of recovery catalog
full resync complete

RMAN> backup as compressed backupset format '/u01/app/oracle/oradata/rman/%U_%d_%s' filesperset=3 database; --并行度改为之后,自动启用了3个通道

Starting backup at 07-NOV-17
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=153 device type=DISK
allocated channel: ORA_DISK_2
channel ORA_DISK_2: SID=31 device type=DISK
allocated channel: ORA_DISK_3
channel ORA_DISK_3: SID=142 device type=DISK

RMAN> list backupset tag='TAG20171107T185023';


List of Backup Sets
===================
BS Key  Type LV Size       Device Type Elapsed Time Completion Time
------- ---- -- ---------- ----------- ------------ ---------------
26936   Full    1.18M      DISK        00:00:00     07-NOV-17      
BP Key: 26944   Status: AVAILABLE  Compressed: YES  Tag: TAG20171107T185023
Piece Name: /u01/app/oracle/oradata/rman/81sj067h_1_1_JINXIN42_12545
 List of Datafiles in backup set 26936
 File LV Type Ckp SCN    Ckp Time  Name
  ---- -- ---- ---------- --------- ----
  3       Full 3902866    07-NOV-17 /u01/app/oracle/product/11.2.0/db_1/jinxin42/u01/app/oracle/oradata/jinxin42/undotbs01.dbf

BS Key  Type LV Size       Device Type Elapsed Time Completion Time
------- ---- -- ---------- ----------- ------------ ---------------
26937   Full    1.77M      DISK        00:00:02     07-NOV-17      
BP Key: 26945   Status: AVAILABLE  Compressed: YES  Tag: TAG20171107T185023
Piece Name: /u01/app/oracle/oradata/rman/84sj067i_1_1_JINXIN42_12548
 Control File Included: Ckp SCN: 3902868      Ckp time: 07-NOV-17

BS Key  Type LV Size       Device Type Elapsed Time Completion Time
------- ---- -- ---------- ----------- ------------ ---------------
26940   Full    149.52M    DISK        00:00:39     07-NOV-17      
BP Key: 26947   Status: AVAILABLE  Compressed: YES  Tag: TAG20171107T185023
Piece Name: /u01/app/oracle/oradata/rman/85sj068n_1_1_JINXIN42_12549
List of Datafiles in backup set 26940
File LV Type Ckp SCN    Ckp Time  Name
---- -- ---- ---------- --------- ----
2       Full 3902881    07-NOV-17 /u01/app/oracle/product/11.2.0/db_1/jinxin42/u01/app/oracle/oradata/jinxin42/sysaux01.dbf
5       Full 3902881    07-NOV-17 /home/oracle/duni_test/TestLuo.dbf

备份数据文件:

RMAN> backup as copy datafile 4 format '/u01/app/oracle/oradata/rman/%U_%d_%s';  --备份类型为镜像备份

RMAN> list copy;

RMAN> backup datafile 4,5,6 format '/u01/app/oracle/oradata/rman/%U_%d_%s';      --备份类型为备份集

备份表空间:

 

RMAN>  backup tablespace users,example format '/u01/app/oracle/oradata/rman/%U_%d_%s';

RMAN> backup tablespace temp;  --临时表空间不需要备份

备份控制文件:

 

RMAN> configure controlfile autobackup on;   --自动备份控制文件置为on状态,将自动备份控制文件和参数文件

old RMAN configuration parameters:

CONFIGURE CONTROLFILE AUTOBACKUP OFF;

new RMAN configuration parameters:

CONFIGURE CONTROLFILE AUTOBACKUP ON;

new RMAN configuration parameters are successfully stored

注:在备份system01.dbf或system表空间时将会自动备份控制文件和参数文件,即使自动备份控制文件参数为off

RMAN> backup current controlfile;--单独备份控制文件及参数文件

RMAN> backup datafile 4 include current controlfile;--备份数据文件时包含控制文件

RMAN> sql "alter database backup controlfile to ''/tmp/orclcontrol.bak''";

RMAN> sql "alter database backup controlfile to trace as ''/tmp/orclcontrol.sql''";

RMAN> backup spfile format '/u01/app/oracle/oradata/rman/%U_%d_%s'; --单独备份spfile,配置了才能备份

RMAN> backup copies 2 device type disk spfile;

备份归档日志文件:

 

备份归档日志时仅仅备份归档过的数据文件(不备份联机重做日志文件)
备份归档日志时总是对归档日志做完整备份
RMAN对归档日志备份前会自动做一次日志切换,且从一组归档日志中备份未损坏的归档日志
RMAN会自动判断哪些归档日志需要进行备份
归档日志的备份集不能包含其它类型的文件

RMAN> backup format '/u01/app/oracle/oradata/rman/lf_%d_%U' archivelog all delete input;   --delete input 删除所有已经备份过的归档日志

RMAN> backup archivelog all delete input format '/u01/app/oracle/oradata/rman/lf_%d_%U'; --此种写法实现了上述相同的功能

RMAN>  backup archivelog sequence between 50 and 125 thread 1 delete input;

RMAN> backup archivelog from time "sysdate-15" until time "sysdate-7";

RMAN> backup format '/u01/app/oracle/oradata/rman/lf_%d_%U' archivelog from sequence=50 delete input;

使用plus archivelog时备份数据库完成的动作(backup database plus archivelog)
1.首先执行alter system archive log current 命令(对当前日志归档)
2.执行backup archivelog all 命令(对所有归档日志进行备份)
3.执行backup database命令中指定的数据文件、表空间等
4.再次执行alter system archive log current
5.备份在备份操作期间产生的新的归档日志

 --执行下面的命令,并观察备份列出的信息,可以看到使用plus archivelog时使用了上面描述的步骤来进行备份

RMAN> backup database plus archivelog format  '/u01/app/oracle/oradata/rman/lg_%d_%U' delete input;

 

备份闪回区:

RMAN> backup recovery area;
使用backup recovery area时,将备份位于闪回区且未进行过备份的所有文件,这些文件包括完整、增量备份集、自动备份的控制文件(假定使用闪回区作为备份路径时)、归档日志、数据文件的镜像副本等。闪回日志,当前的控制文件。联机重做日志不会被备份
RMAN> backup recovery files;
使用backup recovery files时,将备份磁盘上未进行过备份的所有恢复文件,而不论是否位于闪回区

注:使用上述两条命令时,备份目的地必须是磁带

总结:

数据文件的备份集对于未使用的块可以执行增量备份,可以跳过未使用过的数据块来进行压缩备份;

对于控制文件、归档日志文件、spfile文件则是简单的拷贝,并对其进行打包压缩而已;

RMAN备份的其它特性

1.并发:主要用于提高备份的速度,可以分为手动并发或自动并发

手动并发:通过分配多个通道并将文件指定到特定的通道

RMAN> run {
2> allocate channel ch1 device type disk;
3> allocate channel ch2 device type disk;
4> allocate channel ch3 device type disk;
5> backup incremental level=0
6> format '/u01/app/oracle/oradata/rman/df_%d_%U'
7> (datafile 1 channel ch1 tag='sys')
8> (datafile 3 channel ch2 tag='aux')
9> (datafile 2,4,5,6 channel ch3 tag='other');
10> sql 'alter system archive log current';
11> release channel ch1;
12> release channel ch2;
13> release channel ch3;
14> }

自动并发:使用configure配置并发度即可

RMAN> configure device type disk parallelism 3 backup type to backupset;--下面的备份将自动启用个通道执行并发

RMAN>  backup database format '/u01/app/oralce/oradata/rman/p222_%U';

2.复用备份

 即将一个备份集复制多份,同一备份集,Oracle最多可复用个

手工指定:

RMAN> backup copies 2 datafile 4 format '/u01/app/oracle/oradata/rman/d1/df_%U','/u01/app/oracle/oradata/rman/d2/df_%U';  

 自动指定:配置下列参数

RMAN> configure datafile backup copies for device type disk to 2;  --指定备份数据文件副本数

RMAN> configure archivelog backup copies for device type disk to 2;--指定备份日志文件副本数

3.备份备份集

bacup backupset

4.镜像备份

        镜像备份时会检查数据文件中是否存在坏块,可以使用nochecksum来跳过坏块的检测,也可以指定maxcorrupt判断有多少个坏块时,Oracle将停止该镜像备份

RMAN> backup as copy datafile 4 format '/u01/app/oracle/roradata/rman/users.dbf' tag='users'

--以下命令等同于上一条

RMAN> copy datafile 4 to '/u01/app/oracle/oradata/rman/user01.dbf';

RMAN> backup as copy archivelog like 'sfdgegh.arc' format '/u01/app/oracle/oradata/rman/arch_1107.bak';

--使用下面的configure命令将backup type设置为copy之后,则缺省的备份为镜像副本

RMAN> configure device type disk parallelism 1 backup type to copy;

RMAN> backup datafile 4 format '/u01/app/oracle/oradata/rman/users.dbf.bak' tag=users;   --由于上面的设置,则此命令备份的将是镜像副本

--使用并行度来执行镜像拷贝

RMAN> configure device type disk parallelism 4;

RMAN> backup as copy #3 files copied in parallel
2> (datafile 1 format '/u01/app/oracle/oradata/rman/df1.bak')
3> (datafile 2 format '/u01/app/oracle/oradata/rman/df2.bak')
4> (datafile 3  format '/u01/app/oracle/oradata/rman/df3.bak');

镜像备份时指定子句DB_FILE_NAME_CONVERT来实现镜像路径转移,该子句也是一个初始化参数,用于primary db 到standby db的数据文件的转换
DB_FILE_NAME_CONVERT = ('string1' , 'string2' , 'string3' , 'string4' ...),用string2替换string1,string4替换string3

RMAN> backup as copy device type disk
2> db_file_name_convert('oradata/orcl','bk/rmbk')
3> tablespace users;   

5.压缩备份集   

RMAN> configure channel device type disk format '/u01/app/oracle/oradata/rman/%d_%U.bak';

--下面的命令使用了参数as compressed来实现手动压缩

RMAN> backup as compressed backupset database;

RMAN> backup as compressed backupset datafile 4,5,6;

--下面使用configure命令配置自动压缩备份集功能,则后续的备份会自动使用压缩功能

RMAN> configure device type disk parallelism 4 backup type to compressed backupset;

--由于设置了自动压缩,则下面的命令将压缩备份的system表空间及控制文件、参数文件

RMAN> backup tablespace system tag=system;

6.使用tag标记

tag标记可以为备份集或映像副本指定一个有意义的名字,以备后续使用,其优点如下:
为备份集或映像副本提供描述信息
能够在list 命令中使用更好的定位备份文件
能够在restore和switch命令中使用
同一个tag在多个备份集或多个映像副本中使用
当未指定tag标记时,则系统产生缺省的tag标记,其格式为:TAGYYYYMMDDTHHMMSS

RMAN> backup as compressed backupset datafile 1,2,3 tag='Monthly_full_bak';
RMAN> backup as compressed backupset tablespace users tag='Weekly_full_bak';
RMAN> list backupset tag=monthly_full_bak;  

7.增量备份

差异增量备份将备份自上次增量备份以来所有发生改变的数据块

累计增量备份将备份自上次级增量备份以来所有改变过的数据块

--下面启用级增量备份

RMAN> run{

2> allocate channel ch1 type disk;
3> backup incremental level 0 database
4> format '/u01/app/oracle/oradata/rman/db_%d_%U'
5> tag=db_inc_0;
6> release channel ch1;
7> }

SQL> select sid,sofar,totalwork from v$session_longops;  --查询备份情况 

--下面启用级差异增量备份

RMAN> run{
2> allocate channel ch1 type disk;
3> backup incremental level 1 database
4> format '/u01/app/oracle/oradata/rman/db1_%d_%U'
5> tag=db_inc_1;
6> release channel ch1;
7> }    

--下面启用级累计增量备份

RMAN> run{
2> allocate channel ch1 type disk;
3> backup incremental level 1 cumulative database
4> format '/u01/app/oracle/oradata/rman/dbc_%d_%U'
5> tag=db_inc_c_1;
6> release channel ch1;
7> }

8.启用块变化跟踪

启用块变化跟踪即是指定一个文件用于记录数据文件中哪些块发生了变化,在RAMN进行增量备份时,仅仅需读取该文件来备份这些发生变化的块,从而减少了备份时间和I/O资源。

使用下面的命令来启用块变化跟踪

ALTER DATABASE ENABLE BLOCK CHANGE TRACKING USING FILE '<dir>'

SQL> alter database enable block change tracking

2  using file '/u01/app/oracle/oradata/orcl/blk_ch_trc.trc';

SQL> ho ls -lht /u01/app/oracle/oradata/orcl/blk_ch_trc.trc

-rw-r----- 1 oracle oinstall 12M Oct 15 19:41 /u01/app/oracle/oradata/orcl/blk_ch_trc.trc

SQL> select * from v$block_change_tracking;

STATUS     FILENAME                                           BYTES

---------- --------------------------------------------- ----------

ENABLED    /u01/app/oracle/oradata/orcl/blk_ch_trc.trc     11599872

SQL> alter database disable block change tracking; --disable后块变化跟踪文件被自动删除

SQL>  select * from v$block_change_tracking;

STATUS     FILENAME                                           BYTES

---------- --------------------------------------------- ----------

DISABLED       

9.备份保留策略

保留策略主要是保留备份副本的一些规则,通常用于满足恢复或其他的需要(比如磁盘空间或磁带空间大小限制),备份保留策略分为冗余恢复窗口,这两种保留策略互不兼容,要么使用前者,要么使用后者

备份冗余

默认为,可以通过RMAN> configure retention policy to redundancy 2;来修改,当为时,RMAN会为每个数据文件、归档日志、控制文件生成一个备份。可以使用report obsolete命令查看备份数多于的备份,并使用delete obsolete来删除过时的备份

恢复窗口       

恢复窗口允许完成恢复到过去某个时间点的时点恢复,通常设定为多少天,使用命令RMAN> configure retetion policy to recovery window of 7 days,该命令将确保具有足够的数据文件和归档日志来执行能够返回一个星期中任意时间点的不完全恢复,且允许删除随着时间推移而变为废弃的备份,即应当满足该条件:SYSDATE - BACKUP CHECKPOINT TIME >= 7,对于大于天但是是恢复所需要的备份依然会被保留

清除备份保留策略

RMAN> configure retention policy clear;

注意obsolete 与expired

obsolete:是指根据保留策略来确定该备份是否在恢复的时候需要,如不在需要或有更新的备份来替代,则该备份集被置为obsolete,即废弃的备份集或镜像副本。

expired: 是指执行crosscheck时,根据存储仓库中记录的备份信息来定位备份集或镜像副本,而找不到对应的备份集或镜像副本,则这些备份集或镜像副本被置为expired。

10.使用BACKUP ... VALIDATE验证数据文件逻辑坏块,损坏的坏块将被记录到v$database_block_corruption视图

BACKUP VALIDATE CHECK LOGICAL DATABASE ARCHIVELOG ALL;

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!