先介绍一下rman
RMAN(Recovery Manager)是一种用于备份(backup)、还原(restore)和恢复(recover)数据库的 Oracle 工具。RMAN只能用于ORACLE8或更高的版本中。它能够备份整个数据库或数据库部件,如表空间、数据文件、控制文件、归档文件以及Spfile参数文件。RMAN也允许您进行增量数据块级别的备份,增量RMAN备份是时间和空间有效的,因为他们只备份自上次备份以来有变化的那些数据块。而且,通过RMAN提供的接口,第三方的备份与恢复软件如veritas将提供更强大的备份与恢复的管理功能。通过RMAN,也提供了其它更多功能,如数据库的克隆、采用RMAN建立备用数据库、利用RMAN备份与移动裸设备(RAW)上的文件等工作将变得更方便简单。9i的RMAN通过增强的自动配置与管理功能,以及特有的块级别的恢复,将使备份与恢复工作变得更加快捷与完美。
这是来自百度百科给我的介绍
接下来我们直接开始干!!!!
第一步:首先介绍一下先进入Rman
1.本地连接方式
rman target /
2.远程连接方式
第二步:关于rman的一些指令
这句sql的意思就是对单实例数据库或RAC中的当前实例执行日志切换。
SQL ‘ALTER SYSTEM SWITCH LOGFILE’;
建议参考更多资料了解:下面是一个有关链接
显示rman的默认配置
SHOW ALL;
#default 表示该条配置仍然是初始的默认配置。
如果我们想把某条更改过的配置再置为初始应该怎么办呢
我们可以使用这个命令
configure ... clear;
CONFIGURE RETENTION POLICY CLEAR;
第三步:看一下备份的配置
1、CONFIGURE RETENTION POLICY 配置备份保留策略
两种保留策略:
基于时间:
CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF n DAYS;
基于冗余数量:
CONFIGURE RETENTION POLICY TO REDUNDANCY n;
也可以取消备份保留策略:
CONFIGURE RETENTION POLICY TO NONE;
2、CONFIGURE BACKUP OPTIMIZATION 配置备份优化
如果优化设置打开,将对备份的数据文件、归档日志或备份集运行一个优化算法。
备份优化,包括OFF 和ON 两个状态
打开备份优化:
CONFIGURE BACKUP OPTIMIZATION ON;
关闭备份优化:
CONFIGURE BACKUP OPTIMIZATION OFF;
3、CONFIGURE DEFAULT DEVICE TYPE 配置IO 设备类型
RMAN 支持的 IO 设备类型有两种:磁盘(DISK)和磁带(SBT),默认情况下为磁盘。
使用磁盘设备:
CONFIGURE DEFAULT DEVICE TYPE TO DISK;
使用磁带设置:
CONFIGURE DEFAULT DEVICE TYPE TO SBT;
在这里需要注意的一点是:如果IO 设备发生变化,相关配置项也需要修改。例如:
RMAN> CONFIGURE DEVICE TYPE DISK PARALLELISM 2;?
4、CONFIGURE CONTROLFILE AUTOBACKUP 配置控制文件自动备份
是否自动备份,包含两个状态:OFF 和ON
打开自动备份
CONFIGURE CONTROLFILE AUTOBACKUP ON;
禁止自动备份
CONFIGURE CONTROLFILE AUTOBACKUP OFF;
同时可以通过如下配置指定备份的控制格式,路径。例如:
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO ‘E:/backup/%F‘;
在备份期间,将产生一个控制文件的快照,用于控制文件的读一致性,这个快照可
以通过如下配置:
`CONFIGURE SNAPSHOT CONTROLFILE NAME TO
‘E:/BACKUP/ZTEST.ORA‘;`
5、CONFIGURE DEVICE TYPE 设置并行备份
RMAN 支持并行备份与恢复,也可以在配置中指定默认的并行程度。例如:
CONFIGURE DEVICE TYPE DISK PARALLELISM 2;
指定在以后的备份与恢复中,将采用并行度为2,同时开启2个通道进行备份与恢复,当然也可以在run 中指定通道来决定备份与恢复的并行程度。
默认情况下,自动分配通道的并行度为1,如果你通过设置PARALLELISM 设置了
并行通道为2,那么在run 块中,如果你没有单独通过ALLOCATE CHANNEL 命令指定通道,它会默认使用2 条并行通道,如果你在run 命令块中指定了数个ALLOCATE?CHANNEL,那么rman 在执行备份命令时会以你设置的channel 为准,而不管configure中配置了多少个并行通道。
需要注意的一点是,在backup 命令中有一个 FILESPERSET 参数该参数是指
rman建立的每个备份集中所能包含的备份片段(即磁盘文件)的最大数,该参数默认值为64,如果在执行backup 命令时没有指定该参数值,那么rman 会仅使用第一个通道来执行备份,其它通道将处于空闲状态。filesperset 值不要小于你设定的通道数。
6、CONFIGURE DATAFILE BACKUP COPIES 设置备份文件冗余度
7、CONFIGURE MAXSETSIZE 配置备份集的最大尺寸
该配置限制通道上备份集的最大尺寸。单位支持bytes,K,M,G。默认值是unlimited。
RMAN> show channel; // 通道分配 RMAN> show device type; // IO 设备类型 RMAN> show retention policy; // 保存策略 RMAN> show datafile backup copies; // 多个备份的拷贝数目 RMAN> show maxsetsize; // 备份集大小的最大值 RMAN> show exclude; // 不必备份的表空间 RMAN> show backup optimization; // 备份的优化?
第四步:备份信息的查看
1.列出备份信息
列出数据库中所有文件的备份信息:
RMAN>LIST BACKUP OF DATABASE;
列出指定表空间的备份信息:
RMAN>LIST COPY OF TABLESPACE ‘SYSTEM‘;
二.删除备份信息
1.删除陈旧备份
当使用 RMAN 执行备份操作时,RMAN 会根据备份冗余策略确定陈旧备份。
RMAN> delete obsolete;
2.删除 EXPIRED 备份
执行 crosscheck 命令核对备份集,如果备份集丢失或者损坏,那么会将该备份集标记
为 EXPIRED 状态。为了删除相应的备份记录,可以执行 delete expired backup 命令。
RMAN> delete expired backup;
3.删除 EXPIRED 副本
RMAN> delete expired copy;
4.删除特定备份集
RMAN> delete backupset 19;
5.删除特定备份片
RMAN> delete backuppiece ‘d:\backup\DEMO_19.bak‘;
6.删除所有备份集
RMAN> delete backup;
7.删除特定映像副本
RMAN> delete datafilecopy ‘d:\backup\DEMO_19.bak‘;
8.删除所有映像副本
RMAN> delete copy;
9.在备份后删除输入对象
RMAN> delete archivelog all delete input;
RMAN> delete backupset 22 format = ‘‘E:\backup\%u.bak‘‘ delete input;?
rman简单的一些操作就到这里吧
下面我们进行一个实验操作系统:WINDOWS 2007
ORACLE版本:10G
ORACLE_SID:ZXTEST
首先我进入数据库管理员最高的权限
`SQLPLUS /NOLOG
CONNECT / AS SYSDBA`
我的目标数据库
ZXTEST
第一步准备工作
找到我们的数据库表空间TABLESPACE所在位置
select * from dba_data_files;
创建表空间
`CREATE TABLESPACE demo
DATAFILE ‘C:\app\admin\oradata\ZXTEST\DEMO.DBF‘
SIZE 20M AUTOEXTEND ON NEXT 20M
MAXSIZE UNLIMITED LOGGING EXTENT MANAGEMENT LOCAL
SEGMENT SPACE MANAGEMENT AUTO;`
创建用户
CREATE USER zhb IDENTIFIED BY zhbzhb** **DEFAULT TABLESPACE DEMO** **TEMPORARY TABLESPACE TEMP** **QUOTA UNLIMITED ON DEMO;
给用户授权
`GRANT CONNECT,DBA,RESOURCE,EXP_FULL_DATABASE,IMP_FULL_DATABASE
TO zhb WITH ADMIN OPTION;
GRANT CREATE ANY INDEX,CREATE ANY TABLE,DELETE ANY TABLE,
CREATE SESSION,CREATE TABLE,CREATE VIEW,UNDER ANY TABLE,
UNLIMITED TABLESPACE TO zhb WITH ADMIN OPTION;`
我们再创建一个Rman (基于catalog)
把我们的备份数据放这里
创建表空间
CREATE TABLESPACE space_for_backup DATAFILE ‘C:\app\admin\oradata\ZXTEST\space_for_backup.DBF‘ SIZE 50M;
创建用户
CREATE USER rman IDENTIFIED BY rman TEMPORARY TABLESPACE TEMP DEFAULT TABLESPACE space_for_backup QUOTA UNLIMITED ON space_for_backup;
给用户授权
GRANT CONNECT,RESOURCE,RECOVERY_CATALOG_OWNER TO rman;
第二步开始玩起来---备份阶段
创建恢复资料数
登录到恢复资料数据库
RMAN>connect catalog rman/rman;
创建恢复资料 (如果没有这个,你注册目标数据库的时候一定会报错的)
RMAN>CREATE CATALOG TABLESPACE space_for_backup;
注册目标数据库
知道怎么进入rman的把上面已经说过了
`RMAN>connect catalog rman/rman;
RMAN>connect target /;
RMAN>register database;注册目标数据库
RMAN>report schema;查看注册是否成功
`
注册目标数据库
查看注册是否成功
开始备份实例
-----全库备份
注意这里C盘指定的文件夹需要提前创建好不然会找不到的
`
RMAN>connect catalog rman/rman;
RMAN>connect target /;
RMAN>backup database format ‘c:\backup\db0_%s_%p_%t‘;`
-----备份表空间
`RMAN>connect catalog rman/rman;
RMAN>connect target /;
RMAN> backup tablespace demo format ‘c:\backup\exoa_%s_%p_%t‘;`
-----备份归档日志
RMAN> backup archivelog all format ‘c:\backup\archive_%U‘;
-----备份控制文件
`RMAN>connect catalog rman/rman;
RMAN>connect target /;
RMAN> backup current controlfile format ‘c:\backup\controlfile_%s_%p_%t‘;`
-----备份参数文件SPFILE
`RMAN>connect catalog rman/rman;
RMAN>connect target /;
RMAN> backup spfile format ‘c:\backup\spfile_%s_%p_%t‘;`
好了该备份的基本都已经备份好了,接下来就是要恢复了
恢复实例
恢复数据库(可以将数据库文件全部删除,模拟数据库损坏现象)
SQL> connect / as sysdba;
已连接到空闲例程。
startup mount;
ORACLE 例程已经启动。
RMAN> connect catalog rman/rman;
还原数据库
connect target /;
恢复数据库
recover database;
数据库已更改。
alter database open;
恢复表空间(可以将表空间文件文件删除,模拟表空间损坏现象) 这些刚才我们都做了备份
已连接到空闲例程。
connect / as sysdba
例程已经启动。
startup
`connect catalog rman/rman;
connect target /;`
`run
{
restore tablespace demo;
switch datafile all;
recover tablespace demo;
}`
alter tablespace exoa online;
数据库已更改。
alter database open;
表空间已更改
alter tablespace exoa online;
原文:https://www.cnblogs.com/zhuhuibiao/p/13046813.html