RMAN(Recovery Manager)是一种用于备份(backup),还原(restore),恢复(recover)数据库的oracle工具.它只能用于Oracle 8i或以上版本,能备份整个数据管理或数据库组件,如:表空间,数据文件,控制文件,归档文件以及Spfile参数文件,同时也支持增量备份.
通过RMAN可以实现数据库克隆,建立备份数据库和移动裸设备文件
RMAN结构说明
1.RMAN:起源于oracle 8,位于$ORACLE_HOME/bin目录下,通过"rman"来启动工具.
2.Server Session:RMAN服务进程用于RMAN工具与数据库或磁盘/磁带等IO设置之间的通信.
3.Channel:是服务进程与IO设备之间读写的途径,一个通道对应一个进程.
4.Target Database:就是RMAN进行备份与恢复的数据库,可备份数据,控制,归档日志文件和spfile.
5.Catalog:用来保存备份与恢复信息的数据库(最好不在目标数据库上),利用恢复目录可以管理多个目标数据库,存储更多的备份信息和备份脚本,如不使用恢复目录,也可用控制文件代替.
6.Media Manager Layer:第三方工具或软件,用于管理对磁带的读写与文件的跟踪管理.
7.Backup,Backup Sets与Backup Pieces:一个完整的备份包含一个或多个备份集,备份集包含一组物理文件,即备份片.
恢复目录
当选择把RMAN的信息存储在控制文件时,控制文件的丢失时将导致备份将不能进行恢复。所以若采用RMAN做备份,推荐一定采用RMAN CATALOG数据库来单独存放备份信息。这个单独的数据库(称为CATALOG数据库)只需要很小的空间,既可以和被备份的数据库放在同一主机上,也可以单独放在另一台主机上(如果条件允许,推荐放在一台单独的主机上来确保最大的可恢复性)
恢复目录的创建
9i默认为nocatalog,不使用恢复目录,如要使用可通过以下步骤来实现
SQL>create tablespace rmants datafile 'z:\oracle\oradata\zhiandb\rmants.ora' size 20m
#在目录数据库中创建恢复目录所用表空间
SQL>create user rman identified by rman default tablesace rmants temporary tablespace temp quota unlimited on rmants;
#在目录数据库中创建RMAN用户
SQL>grant recovery_catalog_owner to rman;
#并授权
c:\>rman target sys/abc123@orcl catalog rman/rman@orcl #target为连接数据库,catalog为连接恢复目录数据库
#会提示未安装恢复目录
RMAN>create catalog tablespace rmants;
#在目录数据库中创建恢复目录
RMAN>register database;
#注册数据库
数据库完全备份
RMAN> run {
2> allocate channel dev1 type disk;
3> backup
4> full
5> tag full_db_backup
6> format '/oracle/backups/db_t%t_s%s_p%p'
7> (database);
8> release channel dev1;
9> }
备份表空间
RMAN> run {
2> allocate channel dev1 type disk;
3> backup
4> tag tbs_users_read_only
5> format '/oracle/backups/tbs_users_t%t_s%s'
6> (tablespace users)
7> }
备份单独数据文件
RMAN> run {
2> allocate channel dev1 type 'SBT_TAPE';
3> backup
4> format '%d_%u'
5> (datafile '/oracle/dbs/sysbigdb.dbf');
6> release channel dev1;
7> }
备份数据文件
RMAN> run {
2> allocate channel dev1 type 'SBT_TAPE';
3> copy datafile '/oracle/dbs/temp.dbf' to '/oracle/backups/temp.dbf';
4> release channel dev1;
5> }
备份控制文件
RMAN> run {
2> allocate channel dev1 type 'SBT_TAPE';
3> backup
4> format 'cf_t%t_s%s_p%p'
5> tag cf_monday_night
6> (current controlfile);
7> release channel dev1;
8> }
维护RMAN
检查RMAN备份信息,列出已经过时的备份:
RMAN>report obsolete;
删除过时的备份信息
RMAN> allocate channel for maintenance type disk;
RMAN> change backupset id delete;
RMAN> release channel;
当手工删除了数据库的归档文件后,要执行以下脚本进行同步:
RMAN> allocate channel for maintenance type disk;
RMAN> change archivelog all crosscheck;
RMAN> release channel;
当手工删除了数据库的RMAN备份文件后,要执行以下脚本进行同步:
RMAN> allocate channel for maintenance type disk;
RMAN> crosscheck backup;
RMAN> delete expired backup;
RMAN> release channel;
使用RMAN进行恢复
恢复整个数据库
svrmgrl>startup mount
rman catalog rman/rman target sys/abc123;
run {
allocate channel 'dev1' type disk ;
restore database ;
recover database ;
release channel dev1 ;
}
恢复单个表空间
svrmgrl>startup mount
svrmgrl>alter tablespace users offline;
rman catalog rman/rman target sys/abc123;
run {
allocate channel 'dev1' type disk ;
restore tablespace users ;
recover tablespace users
release channel dev1 ;
}
通过RMAN可以实现数据库克隆,建立备份数据库和移动裸设备文件
![按此在新窗口打开图片](http://59.61.206.83:2234/photo/net018.gif)
RMAN结构说明
1.RMAN:起源于oracle 8,位于$ORACLE_HOME/bin目录下,通过"rman"来启动工具.
2.Server Session:RMAN服务进程用于RMAN工具与数据库或磁盘/磁带等IO设置之间的通信.
3.Channel:是服务进程与IO设备之间读写的途径,一个通道对应一个进程.
4.Target Database:就是RMAN进行备份与恢复的数据库,可备份数据,控制,归档日志文件和spfile.
5.Catalog:用来保存备份与恢复信息的数据库(最好不在目标数据库上),利用恢复目录可以管理多个目标数据库,存储更多的备份信息和备份脚本,如不使用恢复目录,也可用控制文件代替.
6.Media Manager Layer:第三方工具或软件,用于管理对磁带的读写与文件的跟踪管理.
7.Backup,Backup Sets与Backup Pieces:一个完整的备份包含一个或多个备份集,备份集包含一组物理文件,即备份片.
恢复目录
当选择把RMAN的信息存储在控制文件时,控制文件的丢失时将导致备份将不能进行恢复。所以若采用RMAN做备份,推荐一定采用RMAN CATALOG数据库来单独存放备份信息。这个单独的数据库(称为CATALOG数据库)只需要很小的空间,既可以和被备份的数据库放在同一主机上,也可以单独放在另一台主机上(如果条件允许,推荐放在一台单独的主机上来确保最大的可恢复性)
恢复目录的创建
9i默认为nocatalog,不使用恢复目录,如要使用可通过以下步骤来实现
SQL>create tablespace rmants datafile 'z:\oracle\oradata\zhiandb\rmants.ora' size 20m
#在目录数据库中创建恢复目录所用表空间
SQL>create user rman identified by rman default tablesace rmants temporary tablespace temp quota unlimited on rmants;
#在目录数据库中创建RMAN用户
SQL>grant recovery_catalog_owner to rman;
#并授权
c:\>rman target sys/abc123@orcl catalog rman/rman@orcl #target为连接数据库,catalog为连接恢复目录数据库
#会提示未安装恢复目录
RMAN>create catalog tablespace rmants;
#在目录数据库中创建恢复目录
RMAN>register database;
#注册数据库
![按此在新窗口打开图片](http://59.61.206.83:2234/photo/net019.gif)
数据库完全备份
RMAN> run {
2> allocate channel dev1 type disk;
3> backup
4> full
5> tag full_db_backup
6> format '/oracle/backups/db_t%t_s%s_p%p'
7> (database);
8> release channel dev1;
9> }
备份表空间
RMAN> run {
2> allocate channel dev1 type disk;
3> backup
4> tag tbs_users_read_only
5> format '/oracle/backups/tbs_users_t%t_s%s'
6> (tablespace users)
7> }
备份单独数据文件
RMAN> run {
2> allocate channel dev1 type 'SBT_TAPE';
3> backup
4> format '%d_%u'
5> (datafile '/oracle/dbs/sysbigdb.dbf');
6> release channel dev1;
7> }
备份数据文件
RMAN> run {
2> allocate channel dev1 type 'SBT_TAPE';
3> copy datafile '/oracle/dbs/temp.dbf' to '/oracle/backups/temp.dbf';
4> release channel dev1;
5> }
备份控制文件
RMAN> run {
2> allocate channel dev1 type 'SBT_TAPE';
3> backup
4> format 'cf_t%t_s%s_p%p'
5> tag cf_monday_night
6> (current controlfile);
7> release channel dev1;
8> }
维护RMAN
检查RMAN备份信息,列出已经过时的备份:
RMAN>report obsolete;
删除过时的备份信息
RMAN> allocate channel for maintenance type disk;
RMAN> change backupset id delete;
RMAN> release channel;
当手工删除了数据库的归档文件后,要执行以下脚本进行同步:
RMAN> allocate channel for maintenance type disk;
RMAN> change archivelog all crosscheck;
RMAN> release channel;
当手工删除了数据库的RMAN备份文件后,要执行以下脚本进行同步:
RMAN> allocate channel for maintenance type disk;
RMAN> crosscheck backup;
RMAN> delete expired backup;
RMAN> release channel;
使用RMAN进行恢复
恢复整个数据库
svrmgrl>startup mount
rman catalog rman/rman target sys/abc123;
run {
allocate channel 'dev1' type disk ;
restore database ;
recover database ;
release channel dev1 ;
}
恢复单个表空间
svrmgrl>startup mount
svrmgrl>alter tablespace users offline;
rman catalog rman/rman target sys/abc123;
run {
allocate channel 'dev1' type disk ;
restore tablespace users ;
recover tablespace users
release channel dev1 ;
}
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/370491/viewspace-214970/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/370491/viewspace-214970/