-
RMAN
备份
1.
什么是
RMAN
RMAN
可以用来备份和还原数据库
文件、
归档日志和控制文件。
它也可以用来执行完全或不
完全的数据库恢复。
RMAN
启动数据库上的
Oracle
服务器进程来进行备份
或还原。
备份、
还原、
恢复是由这些进
程驱动的。
2
恢复目录
2.1
恢复目录的概念
1.
恢复
目录数据库:用于存放恢复目录方案的
Oracle
数据库,是
一个独立的数据库
2.
恢
复
目
录
所
有
者
:
用
于
管
路
恢
复
目
录<
/p>
数
据
库
对
象
的
数
据
库
用
户
。
必
须
具
有
RECOVER_CATALOG_OWNER
角色,不能是
SYS
用户
3.
恢复目录方案
< br>:
恢复目录数据库对象的集合,就是恢复目录所有者的名称,必须在
RMAN
中以恢复目录身份登录,执行
CREATE
CATALOG
命令
4.
规划恢复目录空间:每个目标数
据库的
RMAN
元数据每年大约
15M
5.
恢复
目录内容:
存放备份集备份片信息,
映像副本信息,
目标数据库物理结构,
RMAN
配置信息,存储脚
本
6.
恢复目录优点:存放多个目标数据库
RMAN
< br>元数据,存放目标数据库不同副本的元
数据,存放目标数据库历史元数据,存放存
储脚本
2.2
建立恢复目录
第一步,在目录数据库中创建恢复目录所用表空间:
SQL>
createtablespace
rman_ts
datafile
'/opt/oracle
/app/oracle/oradata/orcl/rman/rman_'
siz
e
1024
M
;
表空间已创建。
第二步,在目录数据库中创建
RMAN
用户并授权:
SQL>
createuser
rman
identifiedby
rman
defaulttablespace
rman_ts
temporary
tablespace
temp
quotaunlimitedon
rman_ts
;
用户已创建。
SQL>
grant
recovery_catalog_owner
to
rman
;
授权成功。
SQL>
grantconnect
,
resourceto<
/p>
rman
;
授权成功。
第三步,在目录数据库中创建恢复目录
在
oracle
用户下执行命令:
rman catalog rman/rman
RMAN>
create catalog;
第四步,
.
注册目标数据库,在建立恢复目录之后,必须连接到目标数据库,使用
REGISTER
DATABASE
命令注
册目标数据库。
connecttargetsys/iflytek;
register database;
report
schema;
注意:虽然使用
R
MAN
不一定必需恢复目录,但是推荐使用。因为恢复目录记载的信息大
部分可以通过控制文件来记载,
RMAN
在恢复数据库
时使用这些信息。
不使用恢复目录将会
对备份恢复操作有限制。
2.3
删除备份目录数据:
第一步:查看备份信息
,
查询备份级关键字(<
/p>
BSKey
)
RMAN>list backup;
第二步:定义
delete
通道:
RMAN>allocate channel for delete type
disk;
第三步:删除
back
upset
备份集
:
change
backupset BSKey delete;
3.
启动
RMAN
在使用
RMAN
前,设置
NLS_
DATE_FORMAT
和
NLS_LANG
环境变量,很多
RMAN LIST
命令的
输出结果是与日期时间相关的,这点在用户希望执行以时间为基准的恢复工作也很重要。< p>
下例是环境变量的示范:
NLS_LANG=SIMPLIFIED CHINESE_16GBK
NLS_DATE_FORMAT=YYYY-MM-DD HH24:MI:SS
为了保证
RMAN
< br>使用时能连接恢复目录,恢复目录数据库必须打开,目标数据库至少要
START
ED
(
unmount
)
,否则
RMAN
会返回一个错误,目标数据库必须置
于归档模式下。
3.1
使用带恢复目录的
RMAN
连接
rman:
rman
catalog rman/rman
连接
rman
并连接实例:
rman catalog
rman/rmantarget orcl/iflytek
3.2
注册目标数据库
第一步,启动恢复管理器,并且连接目标数据库
rman target orcl/iflytek catalog
rman/rman
第二步,注册数据库:
RMAN>
register database;
3.3
注销目标数据库
RMAN
提供了一个注销工具,叫
DBMS_RCV
CAT
工具包,请注意一旦注销了该目标数据库,
就不可以使用
恢复目录中含有的备份集来恢复数据库了。
为了能注销数据库
,需要获得数据库的标识码(
DB_ID
)和数据库键值(
p>
DB_KEY
)
。其中连
< br>接目标数据库时将会获得
DB_ID
。
< br>
rman target
orcl/iflytek catalog rman/rman
恢复管理器:版本
8.1.6.0.0 -
Production
RMAN-06005
:连接到目标数
据库:
HIS (DBID=3021445076)
RMA
N-06008
:连接到恢复目录数据库
其中
DBID=302144507
6
,
利用
DBID=30214450
76
查询数据库键值码,
连接到目标数据库,
< br>查
询
db
表:
< br>
在
sqlplus
中
rman
用户下执行:
SQL> select * from db;
DB_KEY
DB_ID CURR_DBINC_KEY
---------- ---------- --------------
2 1327839531
4
获得
D
B_KEY
=
2
,这样,该目标数据库
DB_KEY
=
2
,
DBID=1327839531
,利用两个值使用
p>
DBMS_RCVCAT
工具包就可以注销数据库:
在
rman
用户下执行:
SQL> execute
dbms_sterdatabase(2,1327839531);
至此,注销数据库操作完成。
4.
备份:
4.1
备份数据库
4.1.1
备份完整数据库:
RMAN> backup database format
'/u01/app/oracle/rmanbak/whole_%d_%U';
--
备份整个数据库
4.1.2
备份脚本:
Run{
allocate channel ch1
type disk
--
手动分配一个通道
maxpiecesize=2g;
--
指定备份片诶分的大小为
2g
backup as compressed backupset
--
压缩备份集
format
'/u01/app/oracle/rmanbak/whole_%d_%U'
filesperset=3
--
指定备份集中允许容纳的文
件数为个
database;
release channel ch1;}
4.2
备份数据文件
4.2.1
备份为镜像:
RMAN>backupascopydatafile4--
备份类型为
镜像备份
2>format'/u01/app/oracl
e/rmanbak/df_%d_%U';
4.2.2
查询备份数据文件:
RMAN>listcopy;
4.2.3
备份为备份集
RMAN> backup datafile 4,5,6 format
'/u01/app/oracle/rmanbak/df_%d_%U';
--
备份类型为备份集
4.3.
备份表空间
RMAN> backup tablespace users,example
format '/u01/app/oracle/rmanbak/tb_%d_%U';
4.4.
备份控制文件
4.4.1
设置自动备份控制文件
RMAN> configure controlfile autobackup
on;
自动备份控制文件置为
on
状
态
,
将自动备份控制文件和参数文件
注:在备份
或
system
表空间时将会自动备份控制文件和参数文件,即
使自动
备份控制文件参数为
off
4.4.2
备份控制文件
--
单独备份控制文件及参数文件
RMAN> backup current controlfile;
4.4.3
备份数据文件时包含控制
文件
--
备份数据文件时包含控制文件
RMAN> backup datafile 4 include current
controlfile;
4.4.4
单独备份
spfile
--
单独备份
spfile
RMAN> backup spfile format
'/u01/app/oracle/rmanbak/sp_%d_%U';
4.5.
备份的其它特性
4.5.1
并发:
主要用于提高备份的速度,可以分为手动并发或自动并发
1
手动并发:
通过分配多个通道并将文件指定到特定的通道