rman概述与配置

本文深入探讨了RMAN(Recovery Manager)在数据库备份与管理中的应用,包括其与手工备份的区别、连接方式、设置参数、备份分类、交互式命令、以及如何进行高效备份。特别强调了RMAN在自动化备份、压缩备份、远程备份等方面的强大功能,提供了实操指南和关键参数设置技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

rman:全称为recovery manager,只备份已经使用的数据块(高水位以下),并且可以进行压缩,备份时自动判断该数据块是否为坏块(跳过坏块),可以实现增量备份,另外可对asm和裸设备进行备份。
rman可对数据库、表空间(归档),数据文件(归档),控制文件,归档日志,spfile等参数文件,密码文件等做备份。
可以指定数据文件的大小,specify limits for backup
一、rman与手工备份的对比:
相同点:
冷备热备            备份原理相同,归档冷热备均可,非归档只能冷备(一致性备份)
不同点:                  
                        rman                                      手工备份
备份大小                比原来文件小(高水位以下)                和原来文件大小相同        
增量备份                自动检测标记坏块,可以增量备份            不能
asm和裸设备             可以备份                                  不能
是否可以压缩            可以设置压缩                              不能
本地远程                皆可                                      本地
有无catalog库           有(可管理多个库)                        无
二、rman的构成:
如下图示
F172064D954D446F9F1EB022CB441F7D

1)target database:需要做备份的数据库,可能是一台或多台。
2)存储设备:存放备份文件的设备,如disk、tape(sbt磁带机)。
3)channel:拷贝时,要在target database和磁盘之间建立一个通道和server process进行对应,默认最少启动一个channel,可同时启动多个channel,并行操作,加快备份和恢复的速度。并发操作就是通过设置channel来实现的。
4)server process:用于备份和恢复。
5)rman备份的元数据(meta data):也叫rman repository(知识库),记录下备份信息,比如备份级别(是否全备),备份时间,备份集的名称和位置以及内容等。(一般放在目标库的controlfile里)。meta data类似于藏宝图,没图即使有宝,也找不到。
6)catalog database就是用于存储meta data的数据库,rman一方面会把备份信息写到target database的控制文件中,另一方面将备份信息写到catalog database中,还可以存储备份脚本。如果备份的机器较多,就可以选用catalog database集中管理。当然,若只有一个库,就没必要建立catalog database。还可建立一些备份脚本,放到catalog database中,下次直接执行就可以备份数据库了。
7)MML:media manage layer介质管理层:用于管理磁带机的库文件或驱动。比如磁带机厂商提供给oracle的可以绕过操作系统,直接操作磁带机的文件或程序(相当于驱动)。
--查看meta data 相关参数信息
SQL> show parameter control;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
control_file_record_keep_time integer 7
control_files string /u01/app/oracle/oradata/PROD/d
                                                 isk1/control01.ctl, /u01/app/o
                                                 racle/oradata/PROD/disk2/contr
                                                 ol01.ctl, /u01/app/oracle/orad
                                                 ata/PROD/disk3/control01.ctl
control_management_pack_access string DIAGNOSTIC+TUNING
control_file_record_keep_time为7,表示存放于控制文件中的元数据7天内不能被覆盖。
三、rman连接
本地连接:
方式一:
[oracle@localhost ~]$ rman target /
Recovery Manager: Release 11.2.0.1.0 - Production on Mon Apr 14 06:17:47 2014
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
connected to target database: PROD (DBID=239015079)
RMAN> quit;
Recovery Manager complete.
[oracle@localhost ~]$
方式二:
Recovery Manager complete.
[oracle@localhost ~]$ rman
Recovery Manager: Release 11.2.0.1.0 - Production on Mon Apr 14 06:19:49 2014
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
RMAN>  connect target /
connected to target database: PROD (DBID=239015079)
RMAN> quit;
Recovery Manager complete.
[oracle@localhost ~]$ 
方式三:
[oracle@localhost ~]$ rman target sys/oracle
Recovery Manager: Release 11.2.0.1.0 - Production on Mon Apr 14 06:22:29 2014
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
connected to target database: PROD (DBID=239015079)
RMAN> quit;
Recovery Manager complete.
[oracle@localhost ~]$

注意:这三种方式可执行的前提是要配置ORACLE_SID 环境变量,若没配置则先使用exprot ORACLE_SID=PROD,再执行rman部分内容。另外方式二中的connect不能简写为conn。
远程连接:
--先启动监听
[oracle@localhost ~]$ lsnrctl start
LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 14-APR-2014 06:37:33
Copyright (c) 1991, 2009, Oracle. All rights reserved.
Starting /u01/app/oracle/product/11.2.0/db_1/bin/tnslsnr: please wait...
TNSLSNR for Linux: Version 11.2.0.1.0 - Production
System parameter file is /u01/app/oracle/product/11.2.0/db_1/network/admin/listener.ora
Log messages written to /u01/app/oracle/diag/tnslsnr/localhost/listener/alert/log.xml
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.0.221)(PORT=1521)))
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=gc1)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for Linux: Version 11.2.0.1.0 - Production
Start Date 14-APR-2014 06:37:33
Uptime 0 days 0 hr. 0 min. 0 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /u01/app/oracle/product/11.2.0/db_1/network/admin/listener.ora
Listener Log File /u01/app/oracle/diag/tnslsnr/localhost/listener/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.0.221)(PORT=1521)))
Services Summary...
Service "EMREP" has 1 instance(s).
  Instance "EMREP", status UNKNOWN, has 1 handler(s) for this service...
Service "PROD" has 1 instance(s).
  Instance "PROD", status UNKNOWN, has 1 handler(s) for this service...
The command completed successfully
--rman远程连接
[oracle@localhost ~]$ rman target sys/oracle @prod
Recovery Manager: Release 11.2.0.1.0 - Production on Mon Apr 14 06:38:15 2014
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
connected to target database: PROD (DBID=239015079)
RMAN> quit
Recovery Manager complete.
四、rman设置
[oracle@localhost ~]$ rman target /
Recovery Manager: Release 11.2.0.1.0 - Production on Mon Apr 14 06:40:46 2014
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
connected to target database: PROD (DBID=239015079)
--查看rman的设置
RMAN> show all;
using target database control file instead of recovery catalog
RMAN configuration parameters for database with db_unique_name PROD are:
CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default
CONFIGURE BACKUP OPTIMIZATION OFF; # default
CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default
CONFIGURE CONTROLFILE AUTOBACKUP ON;
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 MAXSETSIZE TO UNLIMITED; # default
CONFIGURE ENCRYPTION FOR DATABASE OFF; # default
CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # default
CONFIGURE COMPRESSION ALGORITHM 'BASIC' AS OF RELEASE 'DEFAULT' OPTIMIZE FOR LOAD TRUE ; # default
CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default
CONFIGURE SNAPSHOT CONTROLFILE NAME TO '/u01/app/oracle/product/11.2.0/db_1/dbs/snapcf_PROD.f'; # default
--设置保存策略
RMAN>  CONFIGURE RETENTION POLICY TO recovery window of 7 days;
new RMAN configuration parameters:
CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS;
new RMAN configuration parameters are successfully stored
解释:默认为REDUNDANCY 1表示冗余为1,即原有一个备份,若再备份一次,则原有的那份状态为obsolete(过时)。
现改为7天,表示7天前的备份都为obsolete(过时)。
RMAN>  CONFIGURE BACKUP OPTIMIZATION on;
new RMAN configuration parameters:
CONFIGURE BACKUP OPTIMIZATION ON;
new RMAN configuration parameters are successfully stored
解释:把备份优化打开(如:跳过脱机或只读表空间/数据文件、选择优化算法加快备份)。
RMAN> CONFIGURE DEFAULT DEVICE TYPE TO sbt;
new RMAN configuration parameters:
CONFIGURE DEFAULT DEVICE TYPE TO 'SBT_TAPE';
new RMAN configuration parameters are successfully stored
解释:设置备份存储设备,默认为disk磁盘,以上是设为sbt磁带。我们这里还是设为disk(设置改回去)
RMAN> CONFIGURE CONTROLFILE AUTOBACKUP on;
old RMAN configuration parameters:
CONFIGURE CONTROLFILE AUTOBACKUP ON;
解释:控制文件自动备份打开,默认为off。
new RMAN configuration parameters:
CONFIGURE CONTROLFILE AUTOBACKUP ON;
new RMAN configuration parameters are successfully stored
--这里先创建控制文件自动备份存放目录
[oracle@localhost ~]$ cd /home/oracle
[oracle@localhost ~]$ mkdir backup
[oracle@localhost ~]$ cd backup
[oracle@localhost backup]$ mkdir control
[oracle@localhost backup]$ cd control
[oracle@localhost control]$ pwd
/home/oracle/backup/control
RMAN>  CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '/home/oracle/backup/control/%F';
new RMAN configuration parameters:
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '/home/oracle/backup/control/%F';
new RMAN configuration parameters are successfully stored
解释:设置控制文件自动备份存放目录为'/home/oracle/backup/control/%F'。
注意:以上二步设置了控制文件自动备份功能,控制文件一般在数据库备份或数据库物理结构发生变化时(如新增或删除表空间及数据文件等),进行自动备份。
RMAN>  CONFIGURE DEVICE TYPE DISK PARALLELISM 2 BACKUP TYPE TO compressed backupset;
new RMAN configuration parameters:
CONFIGURE DEVICE TYPE DISK PARALLELISM 2 BACKUP TYPE TO COMPRESSED BACKUPSET;
new RMAN configuration parameters are successfully stored
解释:设置备份并发度为2,且为压缩备份集。
RMAN>  configure channel DEVICE TYPE DISK format '/home/oracle/backup/%d_%T_%U.bak' maxpiecesize 2G;
new RMAN configuration parameters:
CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT '/home/oracle/backup/%d_%T_%U.bak' MAXPIECESIZE 2 G;
new RMAN configuration parameters are successfully stored
解释:设置channel位置(即copy出来的文件存放位置)。
五、rman备份分类
1)backupset:一个channel对应一个backupset一般会生成一个文件——备份片backup piece。备份集是逻辑概念,restore时速度慢,需要从备份集里先释放数据文件restore过程有extract释放环节。
2)backup piece:由backupset 生成的备份文件,保存了在os下。备份片是物理概念,默认一个备份集合对应一个备份片。
由于备份集只备份用过的块,如使用了40g的数据块50%的块,则备份集和备份片都是20g,可以指定最大maxpiecesize=2g,会自动变成20个备份片文件,而不是只有一个备份片(比如有的操作系统对文件大小有限制,这样可以不报错)。
3)copy(image 镜像):镜像相当于cp,备份datafile所有的数据块,不能实现增量备份(但可以作为增量备份的0级备份),只能备份到disk不能备份到tape。但restore时速度快,原来多大 备份就多大(类似手工备份)。
六、rman交互式命令
RMAN>  shutdown immediate;
database closed
database dismounted
Oracle instance shut down
RMAN>  startup mount;
connected to target database (not started)
Oracle instance started
database mounted
Total System Global Area 836976640 bytes
Fixed Size 1339740 bytes
Variable Size 490737316 bytes
Database Buffers 339738624 bytes
Redo Buffers 5160960 bytes
RMAN>  alter database open;
database opened
RMAN>  sql 'select * from scott.emp';
sql statement: select * from scott.emp
RMAN>  sql 'alter system switch logfile';
sql statement: alter system switch logfile
由此可见,在rman中,可启库关库,及相关的alter database及alter system操作,但不能执行sql语句(如insert、delete、update),但12c之后是可以的。
RMAN>  list backup of database;
specification does not match any backup in the repository
注:只列出数据文件的备份
RMAN>  list backup;
specification does not match any backup in the repository 
注:列出所有的备份(包括数据文件、控制文件)
RMAN>  report schema;
Report of database schema for database with db_unique_name PROD
List of Permanent Datafiles
===========================
File Size(MB) Tablespace RB segs Datafile Name
---- -------- -------------------- ------- ------------------------
1 325 SYSTEM *** /u01/app/oracle/oradata/PROD/disk3/system01.dbf
2 325 SYSAUX *** /u01/app/oracle/oradata/PROD/disk4/sysaux01.dbf
3 200 UNDOTBS *** /u01/app/oracle/oradata/PROD/disk5/undotbs01.dbf
4 500 USERS *** /u01/app/oracle/oradata/PROD/disk3/users01.dbf
5 50 LXTBS *** /u01/app/oracle/oradata/PROD/disk3/lxtbs01.dbf
6 50 FBA *** /u01/app/oracle/oradata/PROD/disk3/fba01.dbf
List of Temporary Files
=======================
File Size(MB) Tablespace Maxsize(MB) Tempfile Name
---- -------- -------------------- ----------- --------------------
1 20 TEMPTS 20 /u01/app/oracle/oradata/PROD/disk4/temp01.dbf
注意:report schema命令指报告数据库的物理结构,查看需要备份的文件信息,此命令非常有用。
六、channel的二种写法
一、临时channel
临时channel的写法,要写release关键词:
run{
allocate channel c1 type disk  format' /home/oracle/backup2/%d_%T_%U.bak';
backup datafile 5;
release channel c1;
}
二、默认设置
configure channel DEVICE TYPE DISK format '/home/oracle/backup/%d_%T_%U.bak' maxpiecesize 2G; 
另外rman可设置多个channel,如:
configure channel  1  DEVICE TYPE DISK format '/home/oracle/backup/%d_%T_%U.bak' maxpiecesize 2G;
configure channel  2  DEVICE TYPE DISK format '/home/oracle/backup 2 /%d_%T_%U.bak' maxpiecesize 2G;
这样就设置了2个channel,注意这个默认的channel起名字只能写1,2。
备份的时候如果设置了两个不同位置的channel,可以不用声明channel,直接进行备份,会自动放到两个不同的位置不同的备份片。
默认channel不需要手工release。通常我们是按之前的默认设置

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/21251711/viewspace-1167976/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/21251711/viewspace-1167976/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值