rman学习笔记

[复制链接]
查看11 | 回复0 | 2007-3-16 12:26:00 | 显示全部楼层 |阅读模式
Oracle9i恢复管理器(RMAN)
一、
什么是RMAN?
恢复管理器(Recovery Manager,RMAN)是一个与操作系统无关的数据库备份工具,可以跨越不同的操作系统进行数据库备份。RMAN必须运行在一个数据库上。与常用的数据库备份、逻辑数据库备份不同,RMAN使用数据库对数据库进行备份的原理。
在RMAN中,可以使用COPY命令将数据库文件复制到磁盘或磁带上,也可以用BACKUP命令对整个数据库、一个指定的表空间、控制文件、日志文件进行备份。
二、
什么是恢复目录?
恢复目录(Recovery Catalog)是建立在RMAN数据库上的一种存储对象,由RMAN自动维护。通过恢复目录,RMAN可以从目录数据库控制文件中自动获得信息。
创建恢复目录:
1、
创建恢复目录数据库(详见手动创建数据库)
系统表空间SYSTEM:300M
RBS表空间:10M
临时表空间:10M
日志文件设置:3个日志文件组,每组两个日志成员,大小10M
Catalog表空间:表空间名为cattbs,大小为50M
2、
创建RMAN用户
SQL>Create user rman identifiey by rman default tablespace cattbs temporary tablespace temp;
SQL>Grant connect,resource to rman;
SQL>Grant recovery_catalog_owner to rman;
3、
创建恢复目录
$rman catalog rman/rman@rman
RMAN>create catalog;
三、
连接到目标数据库
1、
连接到目录数据库
无恢复目录
$rman nocatalog
RMAN>connect target sys/passwd@网络连接串
有恢复目录
$rman catalog rman/rman@rman
RMAN>connect target sys/passwd@网络连接串
2、
注册与注销数据库
注册数据库
RMAN>register database;
注销数据库
$sqlplus rman/rman@rman
SQL>select * from db;#查看已注册数据库的db_key,db_id
SQL>exec dbms_rcvcat.unregisterdatabase(db_key,db_id);
3、
将目标数据库与恢复目录同步
RMAN>resync catalog;
除手工同步外可以在参数文件中增加参数
CONTROL_FILE_RECORD_KEEP_TIME设置同步时间,该参数默认为7天。
四、
RMAN命令分类
启动与关闭数据库命令:
RMAN>shutdown immediate;
RMAN>startup;
RMAN>startup mount;
RMAN>startup pfile=’/u01/app/oracle/product/9.2.1/dbs/initora9i.ora’;
RMAN>alter database open;
数据库备份与恢复命令
RMAN>copy datafile 2 to ‘/backup/undotbs.dbf’;
RMAN>backup database;
RMAN>backup tablespace users;
RMAN>restore database;
RMAN>recover database;
RMAN>restore tablespace users;
RMAN>recover tablespace users;
恢复目录维护命令
RMAN>report schema;
RMAN>list copy;
RMAN>list backup;
RMAN>change datafilecopy ‘/backup/undotbs.dbf’ delete;
RMAN>delete copy;
RMAN>delete backup;
五、
配置RMAN
1、
通道
RMAN在执行数据库备份与恢复操作时,都要使用操作系统进程,启动操作系统进程是通过分配通道来实现的,每分配一个通道RMAN启动一个服务器进程。
手动分配通道
Run {
Allocate channel ora_sbt_1 device type sbt rate 200k; #rate限定通道的传输速率/秒
Allocate channel ora_sbt_2 device type sbt rate 500k; # ora_sbt_2通道名可任意取
Backup
(tablespace system,users channel ora_sbt_1)
(tablespace example channel ora_sbt_2);
}
自动通道配置
在RUN外部使用backup,restore,delete命令,或在RUN中使用这些命令但未定义通道时RMAN自动使用自动通道配置。
例:
backup tablespace users;
run {restore tablespace examples;}
定义自动通道语法如下:
Configure device type sbt/disk parallelism n
Configure default device type to disk/sbt
Configure channel device type
Configure channel n device type
例:分配3个磁盘通道2个磁带通道
RMAN>Configure device type disk parallelism 3;
RMAN>configure device type sbt parallelism 2 ;
例:指定通道的默认设备
RMAN>configure default device type to disk; 磁盘设备或
RMAN>configure default device type to sbt;磁带设备
例:自动通道的参数配置
RMAN>Configure channel device type disk format=’/backup/%U’ maxpiecesize 200M;
RMAN>Configure channel device type sbt format=’/store/%U.dbf’ maxpiecesize 200M;
Format 参数指定备份集的存储目录及格式,maxpiecesize指定每个备份集的最大字节数。
也可指定某一个通道的配置
RMAN> Configure channel 2 device type sbt format=’/%s_%t.dbf’ maxpiecesize 200M
清除自动分配通道设置,将通道清除为默认状态。
Configure device type disk clear;
Configure default device type clear;
Configure channel device type disk/sbt clear;
查看默认配置
RMAN>show all;
通道控制参数
Filesperset:限制backup时备份集的文件个数。
例:
RMAN>backup database filesperset=2;#指定每两个文件备份为一个备份集。
Connect:设置数据库实例,RMAN充许连接到多个不同的数据库实例上。
例:定义三个通道分别连接3个数据库实例。
Configure channel 1 device type sbt connect=’sys/passwc@prod1’;
Configure channel 2 device type sbt connect=’sys/passwc@prod2’;
Configure channel 3 device type sbt connect=’sys/passwc@prod3’;
Format:备份文件存储格式
%c 表示备份片中的文件备份片号。
%d 指定数据库名
%D 以DD格式显示日
%M 以MM格式显示月份
%Y 以YYYY格式显示年度
%F 结全数据库标识DBID、日、月、年及序列构成的惟一的自动产生的名称
%n 字符串在数据库名右边拉加若干字母构成8个字符长度的字符串,如ora9i自动形成为ora9iXXX
%p 文件备份片号,在备份集中的备份文件片编码,从1开始每次增加1。
%s 备份集号,此数字是控制文件中随备份集增加的一个计数器,从1开始。
%t 指定备份集的时间戳,是一个4字节值的秒数值。%t与%s结全构成惟一的备份集名称
%T 指定年、月、日,格式为YYYYMMDD
%u 指定备份集编码及备份集创建的时间构成的8个字符的文件名称
%U 指定一个便于使用的由%u_%p_%c构成的确保不会重复的备份文件名称,RMAN默认使用%U格式
%% 指定字符串‘%’,如%%Y表示为%Y
在定义format的格式时,可以在backup语句中定义,也可以在channel语句中定义。例:
Backup dtabase format ‘/oracle/backup/%U’ ;

Run
{
Allocate channel dev_1 device type disk format ‘/disk1/%d_backups/%U’;
Allocate channel dev_2 device type disk format ‘/disk2/%d_backups/%U’;
Allocate channel dev_3 device type disk format ‘/disk3/%d_backups/%U’;
Backup database;
}
Maxpiecesizeformatrate前例中有说明及用法。
六、
备份数据库
1、
使用copy命令
使用多个手工通道备份数据文件及控制文件
RMAN>run
{
Allocate channel dev1 device type disk;
Allocate channel dev2 device type disk;
Allocate channel dev3 device type disk;
Copy
Datafile‘/oracle/oradata/ora9i/tools01.dbf’to/backup/tools01.dbf.cp’,

‘/oracle/oradata/ora9i/user01.dbf’ to/backup/user01.dbf.cp’,

Current controlfile to ‘/backup/control01.ctl.cp’;
}
使用自动通道备份数据文件及控制文件
Copy
Datafile 1 to ‘/backup/datafile_1.dbf.cp’,
Datafile 2 to ‘/backup/datafile_2.dbf.cp’,
Datafile 3 to ‘/backup/datafile_3.dbf.cp’,
Current controlfile to ‘/backup/control_cp.ctl’;
备份数据文件的备份文件及归档日志文件
Copy
Datafilecopy ‘/backup/tools01.dbf.cp’ to ‘/disk2/backup/tools01.dbf.cp’,
Archivelog ‘/oracle/archive/ora9i_1.arc’ to ‘/backup/archive/ora9i_1.arc.cp’;
显示copy备份结果
RMAN>list copy;
显示使用copy命令备份的文件信息
RMAN>list copy of database;显示使用copy命令备份的数据库信息
RMAN>list copy of tablespace usres;显示使用copy命令备份的指定表空间信息
RMAN>list copy like ‘/backup/%’;显示使用copy命令备份的指定备份文件信息
2、
使用backup命令(一般常用backup对数据库进行备份)
Backup命令语法:
RMAN>backup( 是备份增量级,可以取值为full或incremental,full表示全备份,incremental表示增量备份,共有4级增量(1、2、3、4)0是全备份,归档日志不能增量备份。
是备份对象,包括以下方面:
Database 全部数据库
Tablespace 表空间
Datafile
数据文件
Archivelog [all] 归档日志文件
Current controlfile 控制文件
Datafilecopy [tag]使用copy命令备份的数据文件
Controlfilecopy使用copy命令备份的控制文件
Backupset [all]使用backup命令备份的文件
是可选项,主要参数如下:
Tag
标记
Format
文件存储格式
Include current controlfile
备份控制文件
Filesperset
每个备份集所包含的文件
Channel
指定备份通道
Delete [all] input
备份结束后是否删除归档日志
Maxsetsize
备份集的最大尺寸
Skip [offline、readonly、inaccessible]可以选择备份条件,可不备份特殊属性的表空间
例:
RMAN>backup database
RMAN>backup database format ‘/backup/ora9i_%U.dbf’ filesperset=2 maxsetsize=2G;
RMAN>backup database include current controlfile tag=’ora_full_backup’;
RMAN>backup incremental level=0 database;
RMAN>backup datafile 1,2,3,4,5,6 filesperset=3;
RMAN>backup current controlfile;
RMAN>backup archivelog all delete all input;
RMAN>backup archivelog from time ‘sysdate-30’ until time ‘sysdate’;

七、
恢复数据库
1、
restore命令
restore命令将copy及backup命令备份的文件复制到目标数据库,如果是copy命令备份的文件,则直接将文件复制到指定的目录,如果是备份集,则实施数据的恢复,恢复的结果自动产生目标数据库的物理结构文件。
语法:
RMAN>restore;
是备份文件对象,包括如下:
Datafile、tablespace、database、controlfile to、archivelog all
是选项,包括如下方面;
Channel=channel_id
Parms=’channel_parms’
From backupset |datafilecopy
Untilclause
From tag=’tag_name’
Validate
Check logical
Check readonly
2、
recover命令
recover命令将restore命令恢复到目标数据库中的数据文件实施数据库同步恢复。
语法:
Recover
是要恢复的对象,包括如下:
Datafile 、tablespace、database
是选项,包括如下
Delete archivelog
Check readonly
Noredo
Check logical
From tag
Archivelog tag=’tag_name’
数据库恢复例子:
恢复数据库
SQL>startup mount;
RMAN>restore database;
RMAN>recover database delete archivelog skip tablespace temp;
SQL>alter database open;

恢复表空间
RMAN>sql ‘alter tablespace users offline’;
RMAN>restore tablespace users;
RMAN>recover tablespace users;
RMAN>sql ‘alter tablespace users online;
恢复控制文件
SQL>startup nomount;
RMAN>restore controlfile;
SQL>alter database mount;
RMAN>restore database;
RMAN>recover database;
SQL>alter database open resetlogs;
恢复一个没有备份的数据文件,没有备份时不能通过restore命令,必须在物理上创建一个新的数据文件,通过日志对新数据文件进行恢复。
将破坏的数据文件离线
RMAN>sql ”alter database datafile ‘’/oracle/oradata/user01.dbf’’ offline”;
创建一个新的数据文件
RMAN>sql ”alter database create datafile ’’/oracle/oradata/user01.dbf’’”;
通过日志恢复数据文件
RMAN>recover datafile ‘/oracle/backup/user01.dbf’;
将数据文件联机
RMAN>sql “alter database datafile ‘’/oracle/oradata/user01.dbf’’ online”;
八、
恢复目录维护命令
Delete命令:用于删除backup、copy命令备份的物理文件,当物理文件被删除时,恢复目录中的信息同时被删除。
在使用delete命令时,必须为RMAN分配一个维护通道,指定设备类型。
例:
Allocate channel for maintenance device type desk; 分配维护通道
Delete controlfilecopy ‘/backup/control.ctl.cp’; 删除控制文件备份
Delete archivelog until sequence=1788;
删除指定范围内的日志文件
Delete backup of tablespace users;
删除指定表空间的备份文件
Delete expired backup;
Delete expired copy;
删除过期文件
Delete copy;
删除全部备份数据
Delete backup;
Change命令:用于将备份文件在恢复目录中的信息状态修改为(vailable)可用或(unavailable)不可用。
例:
将指定的数据文件备份修改为不可用
Change datafilecopy ‘/backup/user01.dbf.cp’ unavailable;
将指定的日志序列号范围内的日志文件修改为不可用
Change copy of archivelog sequence between 1000 and 1200 unavailable;
将指定的备份集修改为不可用
Change backupset 122 unavailable
将指定的备份集修改为可用
Change backupset 122 available
Crosscheck命令:用于验证使用backup或copy命令备份的文件物理上是否存在。
例:
对copy文件进行验证
RMAN>crosscheck copy;
对backup文件进行验证
RMAN>crosscheck backup;
验证所有的日志文件的备份文件
RMAN>crosscheck backup of archivelog all;
List命令:用于显示存储在恢复目录中的备份集、备份文件的状态信息。
例:
显示copy命令备份的文件信息
RMAN>list copy;
显示backup命令备份的文件信息
RMAN>list backup;
显示恢复目录中过期的备份文件信息
RMAN>list expired copy;
RMAN>list expired backup;
Report命令:用于报告数据库中需要备份的对象,可以用于对数据库、表空间、数据文件进行报告。
例:
报告数据库需要备份的对象信息
RMAN >Report need backup;
报告数据库中不可恢复的信息
RMAN>report unrecoverable database;
RMAN>report unrecoverable tablespace users;
报告数据库当前对象信息
RMAN>report schema;
报告目标数据库中一周前的对象信息
RMAN>report schema at time ‘sysdate-7’;
报告过期的备份
RMAN>report obsolute

Show 命令:用于显示当前RMAN的配置
例:
显示所有配置
RMAN>show all;
显示通道配置信息
RMAN> show channel;
RMAN>show device type;
RMAN>show default device type;
RMAN>show maxsetsize;
显示备份参数设置信息
RMAN>show exclude;
RMAN>show datafile backup copies;
RMAN>show maxsetsize;
RMAN>show backup optimization;
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行