① rman备份如何自动压缩备份文件
先定义好备份的过期策略,然后有两种方法。 1、可以使用Schele backup。 2、自己写脚本,并且使用操作系统上的定时任务,定期执行删除脚本。
② 如何估算rman 备份文件大小
backup validate database可以估计备份动作需要多久时间可以完成,实际并不备份数据库
③ RMAN可以备份哪些文件类型(选择所有正确
A.归档日志文件
B.控制文件
E.永久表空间数据文件
F.服务器参数文件
(望楼主采纳哦)
④ RMAN备份策略都有哪些
建立增量备份:
如果数据库运行于不归档模式下,只能在数据库干净关闭的情况下 ( 以 normal 、
immediate 、 transactional 方式关闭 ) 才能进行一致性的增量备份,如果数据库运行于归
档模式下,那即可以在数据库关闭状态进行,也可以在数据库打开状态进行备份。再
次说明了打开归档模式的优势,归档日志也就是多占些磁盘空间,可也相当于又给数
据加了层保护。建立增量备份,实质就是一个参数 incremental level=n ,在执行 backup
命令时加上即可,例如,建立一个增量级别 0 的全库备份:
rman> backup incremental level=0 database;
再例如,建立一个增量级别 1 的 users01.dbf 数据文件备份
rman> backup incremental level=1 tablespace system
datafile ‘e:\oracle\oraback\sj_data.dbf’;
注: rman 默认创建的增量备份是 differential 方式,如果要建立 cumulative 方式的增
量备份,在执行 backup 命令时显式指定即可,例如:
rman> backup incremental level=2 cumulative database;
建立镜像复制:
rman 中的镜像复制实质与通过操作系统 命令备份相同,甚至连命令的格式
都相似,只不过直接应用操作系统的 命令复制数据文件时,只是文件拷贝,而rman
的 则能够在复制的同时,验证数据的有效性。个人认为 rman 中的镜像复制应用
有限,而且也体现不出 rman 的优势,所以俺也只是大致了解了概念,没有进行过实际
操作,感兴趣的朋友可以自己做做试验,这里就不多做介绍了)
建立冗余备份
(
rman 提供了一种更谨慎的备份策略: plexed 方式备份,其实质即是在生成备份
集的同时,向指定位置生成指定份数 ( 最大不超过 4 份 ) 的备份集复制,以避免在灾难性
事故时数据库损坏和备份丢失的情况下导致完全崩溃,提高备份可用性。 rman 中提供
了三种方式实现 plexed 方式备份:
1) 在 rman 中执行 backup 命令时显式指定 copies 参数。例如:
rman> backup copies 3 database;
上述命令将会在全库备份的同时,自动生成当前备份集的 2 份拷贝到默认备份目录。
2) 在 run {}命令块中利用 set backup copies 命令为该命令块中所有的 backup命令设
置 plexed 方式,例如:
rman> run{
set backup copies 2;
backup device type disk format
‘e:\oracle\oraback\dyk1\%u’,'e:\oracle\oraback\dyk2\%u’
tablespace users,sales;
}
上述命令将生成两份备份集,分别存储到 e:\oracle\oraback\dyk1 和
e:\oracle\oraback\dyk2 目录。
3) 通过 configure ….. backup copies 命令设置预定义的备份 plexed 方式
configure … backup copies 命令格式,可以为指定设备类型设置默认备份拷贝数
量。这个配置仅适用于数据文件与归档重做日志文件和备份,并且,只有在使用自动
分配的通道时才能够使用 configure …
backup copies 命令设置的配置。例如:
rman> configure default device type to disk;
rman> configure datafile backup copies for device type disk to 2;
rman> configure archivelog backup copies for device type disk to 2;
上述命令将 disk 设置上数据文件与归档文件的拷备数量设置为 2 ,当再执行 backup
database 备份时,即会自动生成 2 份数据文件的备份集。
设置 rman 备份的保存策略
策略,如果数据库非常大,并且备份执行也比较频繁,有必要对这些备份文件的
保存制订合理的策略。在通过 rman 创建的备份片段中,由于备份文件也是由 rman创
建和维护,所以手工删除并不明智,并且 rman 也提供了备份保留策略,合理制订,由
rman 自动删除陈旧备份文件更加安全也更加方便, rman 中提供了两种备份保留策略:
基于时间,和基于冗余数量
为 rman 设置了备份保留策略之后, rman 会自动判断哪些备份集或镜像复制文件
不必再保留。这些备份文件将会被标记为 “ 废弃 (obsolete)” ,可以通过 report obsolete
命令查看当前处于废弃状态的备份文件,或者通过 delete obsolete 命令删除这些废弃的
备份。例如:
rman> report obsolete;
rman> delete obsolete;
在执行删除命令时有两点需要了解:
如果被判断为废弃的备份是一个单独数据文件的镜像复制,那么在执行 delete 命
令时将直接删除这个镜像复制文件;如果被判断为废弃的备份是一个备份集中的一部
分,则必须等到整个备份集中所有其它文件都被废弃之后,才能删除这个备份集。
1) 基于时间的备份保留策略。
说的简单些,就是你希望数据库最早能恢复到几天前。比如将恢复时间段设置为 7,那
么 rman 所保留的备份即是可以保证你将数据库恢复到一周内任何时刻下那些文件。设
置基于时间的备份保留策略可以通过 configure 命令,例如:
rman> configure retention policy to recovery window of n days;
注: n= 大于 0 的正整数执行该命令后, rman 将始终保留那些将数据库恢复到 n 天前的
状态时需要用到的备份,比如,恢复时间段被设置为 7 天,那么各个数据文件的备
份必须满足如下条件:
sysdate-(select checkpoint_time from v$datafile)>=7
任何不满足上述条件的备份都将被 rman 废弃并可通过 delete obsolete 命令删除。
2) 基于冗余数量的备份保留策略
基于冗余数量实质即某个数据文件以各种形式(包括备份集和镜像复制)存在的
备份的数量。如果某个数据文件的冗余备份数量超出了指定数量, rman 将废弃陈旧的
备份。同样,基于数量的备份保留策略也是通过 configure 命令设置,例如:
rman> configure retention policy to recovery window of n days;
同上: n= 大于 0 的正整数
也可以设置不保留任何数据的策略
rman> configure retention policy to none;
备份优化
rman 中的备份优化 (backup optimization) 是指在备份过程中,如果满足特定条件, rman
将自动跳过某些文件而不将它们包含在备份集中以节省时间和空间。通常满足如下几
个条件情况下,才能够启用备份优化的功能:
configure backup optimization 参数置为 on ;
执行的 backup database 或 backup archivelog 命令中带有 all 或 like 参数。
分配的通道仅使用了一种设备类型,也就是没有同时分配使用 sbt (磁带)与 disk
(磁盘)的多个通道。
打开备份优化设置通过如下命令:
rman> configure backup optimization on;
在进行备份优化时, rman 是如何判断要备份的文件是否需要被优化,这个算法就
相当复杂,可能影响优化算法的因素也非常多,假如某库在上午 9 点被执行过一次全
库备份,等下午 3 点再次执行全库备份时,备份的文件没有变动而且也已经被备份过
时,才会跳过这部分文件。所以理论上备份优化仅对于只读表空间或 offline 表空间起
作用。当然对于已经备份过的 archivelog 文件,它也会跳过
3 )基础补充
format 字符串替代变量,使用 format 参数时可使用的各种替换变量,如下:
%c :备份片的拷贝数 ( 从 1 开始编号 ) ;
%d :数据库名称;
%d :位于该月中的天数 (dd) ;
%m :位于该年中的月份 (mm) ;
%f :一个基于 dbid 唯一的名称 , 这个格式的形式为 C-IIIIIIIIII-YYYYMMDD-QQ, 其
中 IIIIIIIIII 为该数据库的 dbid , YYYYMMDD 为日期, QQ 是一个 1-256 的序列;
%n :数据库名称,并且会在右侧用 x 字符进行填充,使其保持长度为 8 ;
%u :是一个由备份集编号和建立时间压缩后组成的 8 字符名称。利用 %u 可以为每个
备份集生成一个唯一的名称;
%p :表示备份集中备份片段的编号,从 1 开始编号;
%u :是 %u_%p_%c 的简写形式,利用它可以为每一个备份片段(即磁盘文件)生成
一个唯一名称,这是最常用的命名方式;
%s :备份集的号;
%t :备份集时间戳;
%t :年月日格式 (yyyymmdd) ; s
注:如果在 backup 命令中没有指定 format 选项,则 rman 默认使用 %u 为备份片段命
名。
configure 配置项介绍
首先,先来查看一下当前配置,通过 show all 命令:
连接到目标数据库 : jssweb (dbid=3391142503)
rman> show all;
正在使用目标数据库控制文件替代恢复目录
rman 配置参数为 :
configure retention policy to recovery window of 3 days;
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 ‘e:\oracle\oraback\%f’;
configure device type disk parallelism 1; # 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 snapshot controlfile name to ‘e:\oracle\oraback\sj_data.ora’; #
default
rman>
show 命令在 rman 命令篇简单介绍过,同时也知道后跟 #default 表示该条配置仍
然是初始的默认配置,如果想把某条更改过配置选项再置为
初始设置,用如下命令: configure … clear; 例如:
rman> configure retention policy clear;
configure retention policy to recovery window of 3 days;
上述的各项配置,在前面章节中有一些已经有所体现,以下是详细介绍:
1)configure retention policy 配置备份保留策略
两种保留策略设置:
基于时间:
configure retention policy to recovery window of n days;
基于冗余数量:
configure retention policy to rendancy 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:\oracle\oraback\%f’;
在备份期间,将产生一个控制文件的快照,用于控制文件的读一致性,这个快照可以
通过如下配置: configure snapshot controlfile name to
‘e:\oracle\oraback\sj_data.ora’;
5)configure device type 设置并行备份
rman 支持并行备份与恢复,也可以在配置中指定默认的并行程度。例如:
configure device type disk parallelism 2;
指定在以后备份与恢复中,将采用并行度为 2 ,同时开启 2 个通道进行备份与恢复,
当然也可以在 run 中指定通道来决定备份与恢复的并行程度。并行的数目决定了开启
通道的个数。如果指定了通道配置,将采用指定的通道,如果没有指定通道,将采用
默认通道配置。默认情况下,自动分配通道的并行度为 1 ,如果你通过设置 parallelism
设置了并行通道为 2 ,那么在 run 块中,它会默认使用 2 条并行通道 ; 如果在 run命令
块中指定数个 allocate channel ,那么 rman 在执行备份命令时会以设置的 channel 为准,
而不管 configure 中配置了多个并行通道。需要注意的是,在 backup 命令中有一个
filesperset 参数,该参数是指 rman 建立的每个备份集中所能包含的备份片段 ( 即磁盘文
件 ) 的最大数,该参数默认值为 64 ;如果在执行 backup 命令时没有指定该参数值,那
么 rman 会仅使用第一个通道来执行备份,其它通道将处于空闲状态。关于通道数与
filesperset 值之间也有一个大小关系,即 filesperset 值不要小于设定通道数。
6) 设置备份文件冗余度
configure datafile backup copies
如下:
rman> run{
set backup copies 2;
backup device type disk format
‘e:\oracle\oraback\dyk1\%u’,'e:\oracle\oraback\dyk2\%u’
tablespace users,sales;
}
7)configure maxsetsize 配置备份集的最大尺寸
该配置限制通道上备份集的最大尺寸。单位支持 bytes,k,m,g 。默认值是 unlimited。
8) rman 备份相关的动态性能表
v$archived_log :本视图包含了所有归档重做日志文件的创建情况,备份情况以及其
他信息。
v$backup_corruption :这个视图显示了 rman 在哪些备份集中发现了损坏的数据坏。
在你使用 backup validate 命令对备份集进行检查时如果发现了损坏的数据块, rman
将在这个视图中写入记录。
v$_corruptio :本视图显示了哪些镜像复制备份文件已经被损坏。
v$backup_datafile :本视图通常用来获取每个数据文件中非空白数据块的数量,从
而帮助你创建出大小基本相等的备份集。另外,在视图中也包含了数据文件中损坏的
数据块的信息。
v$backup_redolog :本视图显示了在现有的备份集中饮食有哪些归档重做日志文件。
v$backup_set :本视图显示了已经创建的备份集的信息。
v$backup_piect :本视图显示了已经创建的备份片段的信息。
可以通过如下 sql 语句获得正在进行的镜像复制操作的状态信息:
select sid,
serial#,
context,
sofar,
totalwork,
round(sofar / totalwork * 100, 2) “% complete”
from v$session_longops
where opname like ‘rman:%’
and opname not like ‘rman:aggregate%’
通过如下 sql 获得 rman 用来完成备份操作的服务进程的 sid 与 spid 信息:
select sid,spid,client_info from v$process p,v$session s where p.addr=s.paddr and
client_info like ‘%id=rman%’
rman 通道
上次基础知识讲提到了通道, rman 通道实质是一个到存储设备的数据流。就像城市交
通道路,多建几个环路对于缓解交通是有意义的。在 rman 中可以通过手动方式或自动
方式分配通道。
1) 手工分配通道
在执行 backup 、 restore 、 delete 等需要进行磁盘 i/o 操作的命令时,可以将它们与 allocate
channel 命令放在一个 run 的命令块中,利用 allocate channel 为它们分配通道。例如:
run{
allocate channel ch1 device type disk format ‘e:\oracle\oraback\%u’;
backup datafile ‘e:\oracle\oradata\oradb1\sj_data.ora’;
}
需要注意的是, rman 中执行的每一条 backup 、 delete 等命令都至少要求使用一个通道,
通道数决定了这些操作执行的并行度。
⑤ oracle9i rman可以压缩备份吗
可以压缩备份
⑥ 怎么把文件系统的rman备份到asm中
1,全备数据库PROD
run{
allocate channel c1 device type disk;
allocate channel c2 device type disk;
backup tag 'SH_DB' as compressed backupset format ‘/home/Oracle/full_%U.bak' database
include current controlfile;
backup tag 'SH_ARCH' archivelog al format ‘/home/oracle/arch_%U.bak’l;
release channel c1;
release channel c2;
}
2,确认控制文件的备份片
RMAN> list backup of control file;
/home/oracle/full_03pkgtf4_1_1.bak
3,导出pfile,将控制文件修改为+DATA和+FRA
SYS@PROD >create pfile='/home/oracle/prodpfile' from spfile;
[oracle@single ~]$ vi /home/oracle/prodpfile
*.audit_file_dest='/u01/admin/PROD/amp'
*.audit_trail='db'
*.compatible='11.2.0.4.0'
##*.control_files='/u01/oradata/PROD/control01.ctl','/u01/fast_recovery_area/PROD/control02.ctl'
*.control_files='+DATA/PROD/controlfile/control01.ctl','+FRA/PROD/controlfile/control02.ctl'
*.db_block_size=8192
*.db_create_file_dest='+DATA'
*.db_domain=''
*.db_name='PROD'
##*.db_recovery_file_dest='/u01/fast_recovery_area'
*.db_recovery_file_dest='+FRA'
*.db_recovery_file_dest_size=4385144832
*.diagnostic_dest='/u01'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=PRODXDB)'
*.log_archive_format='%t_%s_%r.dbf'
*.memory_target=583008256
*.open_cursors=300
*.processes=150
*.remote_login_passwordfile='EXCLUSIVE'
*.undo_tablespace='UNDOTBS1'
4,删除PROD
SYS@PROD >startup force mount restrict;
SYS@PROD >drop database;
5,创建灾备端所需目录(DBCA删除数据库需要此步骤)
mkdir -p $ORACLE_BASE/admin/PROD/amp
6,创建数据库密码文件 (DBCA删除数据库需要此步骤)
orapwd file=$ORACLE_HOME/dbs/orapwPROD password=oracle entries=5 force=y
7,采用修改过的pfile启动到nomount
$ sqlplus / as sysdba
SYS@PROD >startup nomount pfile=/home/oracle/pfile;
8,将spfile文件创建到+DATA目录下,利用Oracle11g新特性from memory
SYS@PROD >create spfile='+DATA/PROD/spfilePROD.ora' from memory;
9,创建一个pfile来指向spfile。将红色字体内容填写在vi创建的pfile文件中。 在Oracle11g中安装过集群软件都需要这样配置,无论是单实例ASM还是RAC+ASM
SYS@PROD >!vi $ORACLE_HOME/dbs/initPROD.ora
SPFILE='+DATA/PROD/spfilePROD.ora’
10,恢复控制文件到+DATA
RMAN> startup force nomount;
RMAN> restore controlfile from '/home/oracle/full_03pkgtf4_1_1.bak';
11,启动到mount
RMAN> mount database;
12,识别备份集
RMAN> catalog start with '/home/oracle/';
13,恢复数据库,注意关键词set newname 和 switch datafile all是迁移文件系统到ASM的关键。
run{
set newname for datafile 1 to '+DATA';
set newname for datafile 2 to '+DATA';
set newname for datafile 3 to '+DATA';
set newname for datafile 4 to '+DATA';
set newname for tempfile 1 to '+DATA';
restore database;
switch datafile all;
recover database;
}
14,更改联机日志路径为+DATA
SYS@PROD >alter database rename file '/u01/oradata/PROD/redo01.log' to '+DATA';
SYS@PROD >alter database rename file '/u01/oradata/PROD/redo02.log' to '+DATA';
SYS@PROD >alter database rename file '/u01/oradata/PROD/redo03.log' to '+DATA';
15,open resetlogs开库
SYS@PROD >alter database open resetlogs;
16, 如果在set newname tempfile步骤不能成功的迁移tempfile使用下面的命令手工追加
SYS@PROD >alter tablespace temp add tempfile '+DATA' size 10m;
SYS@PROD >alter tablespace temp drop tempfile '/u01/oradata/PROD/temp01.dbf’;
转载,仅供参考。
⑦ Oracle RMAN 备份及恢复步骤
1、切换服务器归档模式,如果已经是归档模式可跳过此步:
%sqlplus /nolog (启动sqlplus)
SQL> conn / as sysdba (以DBA身份连接数据库)
SQL> shutdown immediate; (立即关闭数据库)
SQL> startup mount (启动实例并加载数据库,但不打开)
SQL> alter database archivelog; (更改数据库为归档模式)
SQL> alter database open; (打开数据库)
SQL> alter system archive log start; (启用自动归档)
SQL> exit (退出) 2、连接:
rman target=sys/comeon@orcl; (启动恢复管理器) 3、基本设置:
RMAN> configure default device type to disk; (设置默认的备份设备为磁盘)
RMAN> configure device type disk parallelism 2; (设置备份的并行级别,通道数)
RMAN> configure channel 1 device type disk fromat '/backup1/backup_%U'; (设置备份的文件格式,只适用于磁盘设备)
RMAN> configure channel 2 device type disk fromat '/backup2/backup_%U'; (设置备份的文件格式,只适用于磁盘设备)
RMAN> configure controlfile autobackup on; (打开控制文件与服务器参数文件的自动备份)
RMAN> configure controlfile autobackup format for device type disk to '/backup1/ctl_%F'; (设置控制文件与服务器参数文件自动备份的文件格式) 4、查看所有设置:
RMAN> show all 5、查看数据库方案报表:
RMAN> report schema; 6、备份全库:
RMAN> backup database plus archivelog delete input; (备份全库及控制文件、服务器参数文件与所有归档的重做日志,并删除旧的归档日志) 7、备份表空间:
RMAN> backup tablespace system plus archivelog delete input; (备份指定表空间及归档的重做日志,并删除旧的归档日志) 8、备份归档日志:
RMAN> backup archivelog all delete input; 9、复制数据文件:
RMAN> datafile 1 to '/oracle/dbs/system.'; 10、查看备份和文件复本:
RMAN> list backup; 11、验证备份:
RMAN> validate backupset 3; 12、从自动备份中恢复服务器参数文件:
RMAN> shutdown immediate; (立即关闭数据库)
RMAN> startup nomount; (启动实例)
RMAN> restore spfile to pfile '/backup1/mydb.ora' from autobackup; (从自动备份中恢复服务器参数文件) 13、从自动备份中恢复控制文件:
RMAN> shutdown immediate; (立即关闭数据库)
RMAN> startup nomount; (启动实例)
RMAN> restore controlfile to '/backup1' from autobackup; (从自动备份中恢复控制文件) 13、恢复和复原全数据库:
RMAN> shutdown immediate; (立即关闭数据库)
RMAN> exit (退出)
%mv /oracle/dbs/tbs_12.f /oracle/dbs/tbs_12.bak (将数据文件重命名)
%mv /oracle/dbs/tbs_13.f /oracle/dbs/tbs_13.bak (将数据文件重命名)
%mv /oracle/dbs/tbs_14.f /oracle/dbs/tbs_14.bak (将数据文件重命名)
%mv /oracle/dbs/tbs_15.f /oracle/dbs/tbs_15.bak (将数据文件重命名)
%rman target=rman/rman@mydb (启动恢复管理器)
RMAN> startup pfile=/oracle/admin/mydb/pfile/initmydb.ora (指定初始化参数文件启动数据库)
RMAN> restore database; (还原数据库)
RMAN> recover database; (恢复数据库)
RMAN> alter database open; (打开数据库) 14、恢复和复原表空间:
RMAN> sql 'alter tablespace users offline immediate'; (将表空间脱机)
RMAN> exit (退出恢复管理器)
%mv /oracle/dbs/users01.dbf /oracle/dbs/users01.bak (将表空间重命名)
%rman target=rman/rman@mydb (启动恢复管理器)
RMAN> restore tablespace users; (还原表空间)
RMAN> recover tablespace users; (恢复表空间)
RMAN> sql 'alter tablespace users online'; (将表空间联机)
⑧ rman备份和expdp备份的区别
rman是物理备份,expdp是逻辑备份,我觉得做了rman就没必要做expdp备份了。优缺点见下图:
⑨ exp备份和rman备份的区别
都可以用作备份,但是exp类似冷备份, 你只能够恢复到某一点
而rman的话,需要开启归档,那样就可以进行无数据丢失的恢复。
详细点说就是:
在不开归档日志的情况下,Oracle数据库的备份只能依赖exp命令(逻辑备份)导出数据文件(注意:不包括日志文件以及控制文件等),导出的所有数据仅仅以一个大文件的方式来存放,但是这种备份容易导致丢失数据。举个例子:如果5号晚上进行了exp数据导出,但是在6号的运行过程中发生宕机,数据丢失,这个时候从5号备份后一直到6号宕机前的数据将全部丢失(即使将日志文件和控制文件拷出来都无法恢复,因为exp导出的数据无法与这些日志文件一一对应起来恢复)。所以采用exp方式备份数据还是存在很大风险的。
另一种方式就是使用Oracle自带的备份工具rman。一次rman备份(物理备份)的全过程如下:
因为使用rman备份不会产生数据丢失的情况,所以必须有一个全备份的文件,使用rman需要先进行一次全备份,相当于将当前数据库里面的所有文件以及日志都全盘拷贝一份到备份介质中,然后通过归档日志(实时更新的)的记录看每个进程都对数据库做了哪些修改,只要保留了一份物理备份以及物理备份之后的所有归档日志,就能够将数据库恢复到宕机前一刻的状态,将数据丢失降到最低。(每个redo log写满之后就开始写到achive log里面进行归档,这个里面还是有个时间段的,不能做到完全的实时)
回答不容易,希望能帮到您,满意请帮忙采纳一下,谢谢 !