[oracle@orcl oradata]$ rman target /
2.RMAN> list backup of database;
3.RMAN> shutdown immediate
database closed
database dismounted
Oracle instance shut down
4.RMAN> startup mount
connected to target database (not started)
Oracle instance started
database mounted
Total System Global Area 2755870720 bytes
Fixed Size 2256432 bytes
Variable Size 671089104 bytes
Database Buffers 2063597568 bytes
Redo Buffers 18927616 bytes
5.RMAN> backup database format=‘/u01/app/oracle/oradata/Backup/oradb_%d_%s.bak‘;
6.RMAN> alter database open;
database opened
可以查看到备份的文件有两个,一个包括控制文件。一个包括数据文件
(二)、表空间备份
查看数据库下的表空间,选择你要备份的表空间,以example为例
SQL> select tablespace_name from dba_data_files;
TABLESPACE_NAME
------------------------------
USERS
UNDOTBS1
SYSAUX
SYSTEM
EXAMPLE
TABLESPACETEST01
6 rows selected.
[oracle@orcl oradata]$ rman target sys/410526 nocatalog;
RMAN> run{
2> allocate channel ch_1 type disk;
3> backup tablespace EXAMPLE
4> format ‘/u01/app/oracle/oradata/Backup/%d_%p_%t_%c.dbf‘;
5> }
RMAN> list backup of tablespace EXAMPLE;
RMAN备份数据库与表空间
标签:oca database smo sys 关闭 sel use 关闭数据库 数据
小编还为您整理了以下内容,可能对您也有帮助:
rman做全库备份和每个表空间分别备份有区别吗
表空间备份是部分备份,全备份是全部备份.
可以每周做一次level0的全备份其余时间做level1,2的增量备份.
归档日志每周清除一次
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 中的镜像复制实质与通过操作系统 copy 命令备份相同,甚至连命令的格式
都相似,只不过直接应用操作系统的 copy 命令复制数据文件时,只是文件拷贝,而rman
的 copy 则能够在复制的同时,验证数据的有效性。个人认为 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$copy_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 等命令都至少要求使用一个通道,
通道数决定了这些操作执行的并行度。
RMAN是什么,有何特点
1.RMAN(Recovery Manager)是一种用于备份(backup)、还原(restore)和恢复(recover)数据库的 Oracle 工具。
2.RMAN只能用于ORACLE8或更高的版本中。
RMAN特点:
1 跳过未使用的数据块。
当备份一个RMAN备份集时,RMAN不会备份从未被写入的数据块,而传统的方式无法获知已经使用哪些数据块。
2 备份压缩
RMAN使用Oracle特有的二进制压缩模式,与传统备份的压缩方式相比,能够最大程度地压缩数据块中的一些典型数据。
3 执行增量备份
增量备份:每次都备份上次备份以来变化的数据块,这样可以节省大量磁盘空间,I/O时间,cpu时间和备份时间
4块级别的恢复
只需要还原或修复标识为损坏的少量数据块,在rman修复损坏的数据块时,表空间的其他部分已经表空间中的对象任可以联机。
RMAN是什么,有何特点
1.RMAN(Recovery Manager)是一种用于备份(backup)、还原(restore)和恢复(recover)数据库的 Oracle 工具。
2.RMAN只能用于ORACLE8或更高的版本中。
RMAN特点:
1 跳过未使用的数据块。
当备份一个RMAN备份集时,RMAN不会备份从未被写入的数据块,而传统的方式无法获知已经使用哪些数据块。
2 备份压缩
RMAN使用Oracle特有的二进制压缩模式,与传统备份的压缩方式相比,能够最大程度地压缩数据块中的一些典型数据。
3 执行增量备份
增量备份:每次都备份上次备份以来变化的数据块,这样可以节省大量磁盘空间,I/O时间,cpu时间和备份时间
4块级别的恢复
只需要还原或修复标识为损坏的少量数据块,在rman修复损坏的数据块时,表空间的其他部分已经表空间中的对象任可以联机。
如何利用RMAN通过IP将数据库备份到其他计算机
要求:本地已有生产数据库prod,制定rman备份策略,将数据备份到制定目录/oracle/rman_bk下。现在需要做恢复测试,验证备份出来的数据是有效的。且不影响原有的生产数据库prod。
解决思路:在备份出来的数据中(控制文件),包含了数据库名,数据文件,redo log等文件的存放路径,如果在本地直接做恢复,将和原有的数据库****,因此,需要修改这些信息,将备份出来的数据恢复到另外一个数据库中。具体步骤如下:
创建新数据库数据文件及跟踪文件存放目录
-bash-2.05b$mkdir -p /oracle/oradata/test
-bash-2.05b$mkdir -p /oracle/admin/test/bmp
-bash-2.05b$mkdir -p /oracle/admin/test/ump
-bash-2.05b$mkdir -p /oracle/admin/test/cmp
2.登录到生产数据库。查看当前数据文件信息:
-bash-2.05b$ sqlplus '/ as sysdba'
SQL> select file#,name from v$datafile;
FILE# NAME
---------- --------------------------------------------------
1 /oracle/oradata/test/system01.dbf
2 /oracle/oradata/test/undo01.dbf
3 /oracle/oradata/test/users01.dbf
3.利用rman更改数据文件存放路径并restore到新的路径
run {
set newname for datafile 1 to '/oracle/oradata/test/system01.dbf';
set newname for datafile 2 to '/oracle/oradata/test/undo01.dbf';
set newname for datafile 3 to '/oracle/oradata/test/users01.dbf';
restore datafile 1;
restore datafile 2;
restore datafile 3;
}
4。重建控制文件
CREATE CONTROLFILE REUSE set DATABASE "test" RESETLOGS ARCHIVELOG
-- SET STANDBY TO MAXIMIZE PERFORMANCE
MAXLOGFILES 16
MAXLOGMEMBERS 2
MAXDATAFILES 30
MAXINSTANCES 1
MAXLOGHISTORY 453
LOGFILE
GROUP 1 '/oracle/oradata/test/redo01.log' SIZE 10M,
GROUP 2 '/oracle/oradata/test/redo02.log' SIZE 10M,
GROUP 3 '/oracle/oradata/test/redo03.log' SIZE 10M
-- STANDBY LOGFILE
DATAFILE
'/oracle/oradata/test/system01.dbf',
'/oracle/oradata/test/undo01.dbf',
'/oracle/oradata/test/users01.dbf'
CHARACTER SET ZHS16GBK
;
5.打开数据库
SQL> alter database open resetlogs;
backup archivelog all delete input format '/rman/rman_%t_%s_%p.arc';
with a as
(select rownum p from al connect by level<=21)
select
7 + CEIL(
(7 + CEIL(
(7 + CEIL(p/3))
/3))
/3)
from a;
7+CEIL((7+CEIL((7+CEIL(p/3))/3))/3
本答案来自于互联网,仅供参考学习作用
如果您对我的回答有不满意的地方,还请您继续追问;
答题不易,互相理解,互相帮助!
如何利用RMAN通过IP将数据库备份到其他计算机
要求:本地已有生产数据库prod,制定rman备份策略,将数据备份到制定目录/oracle/rman_bk下。现在需要做恢复测试,验证备份出来的数据是有效的。且不影响原有的生产数据库prod。
解决思路:在备份出来的数据中(控制文件),包含了数据库名,数据文件,redo log等文件的存放路径,如果在本地直接做恢复,将和原有的数据库****,因此,需要修改这些信息,将备份出来的数据恢复到另外一个数据库中。具体步骤如下:
创建新数据库数据文件及跟踪文件存放目录
-bash-2.05b$mkdir -p /oracle/oradata/test
-bash-2.05b$mkdir -p /oracle/admin/test/bmp
-bash-2.05b$mkdir -p /oracle/admin/test/ump
-bash-2.05b$mkdir -p /oracle/admin/test/cmp
2.登录到生产数据库。查看当前数据文件信息:
-bash-2.05b$ sqlplus '/ as sysdba'
SQL> select file#,name from v$datafile;
FILE# NAME
---------- --------------------------------------------------
1 /oracle/oradata/test/system01.dbf
2 /oracle/oradata/test/undo01.dbf
3 /oracle/oradata/test/users01.dbf
3.利用rman更改数据文件存放路径并restore到新的路径
run {
set newname for datafile 1 to '/oracle/oradata/test/system01.dbf';
set newname for datafile 2 to '/oracle/oradata/test/undo01.dbf';
set newname for datafile 3 to '/oracle/oradata/test/users01.dbf';
restore datafile 1;
restore datafile 2;
restore datafile 3;
}
4。重建控制文件
CREATE CONTROLFILE REUSE set DATABASE "test" RESETLOGS ARCHIVELOG
-- SET STANDBY TO MAXIMIZE PERFORMANCE
MAXLOGFILES 16
MAXLOGMEMBERS 2
MAXDATAFILES 30
MAXINSTANCES 1
MAXLOGHISTORY 453
LOGFILE
GROUP 1 '/oracle/oradata/test/redo01.log' SIZE 10M,
GROUP 2 '/oracle/oradata/test/redo02.log' SIZE 10M,
GROUP 3 '/oracle/oradata/test/redo03.log' SIZE 10M
-- STANDBY LOGFILE
DATAFILE
'/oracle/oradata/test/system01.dbf',
'/oracle/oradata/test/undo01.dbf',
'/oracle/oradata/test/users01.dbf'
CHARACTER SET ZHS16GBK
;
5.打开数据库
SQL> alter database open resetlogs;
backup archivelog all delete input format '/rman/rman_%t_%s_%p.arc';
with a as
(select rownum p from al connect by level<=21)
select
7 + CEIL(
(7 + CEIL(
(7 + CEIL(p/3))
/3))
/3)
from a;
7+CEIL((7+CEIL((7+CEIL(p/3))/3))/3
本答案来自于互联网,仅供参考学习作用
如果您对我的回答有不满意的地方,还请您继续追问;
答题不易,互相理解,互相帮助!
用oracle的rman对数据库全备份时,加上plus archivelog参数后,为什么比不加该参数的备份大小要小很多。
plus archivelog 应该是把 归档日志文件,也备份了。
归档日志文件 大的原因是,归档日志 要记录历史状态。
而数据文件,仅仅记录当前。
下面举一个例子。
假如你的数据库里面,只有一个 TEST (id INT, val VARCHAR2(10) ) 表。
一开始表里面没有数据
后来有人执行了
INSERT INTO TEST VALUES(1, 'A');
COMMIT;
UPDATE TEST SET val = 'B' WHERE id = 1;
COMMIT;
DELETE FROM TEST WHERE id = 1;
COMMIT;
那么当你备份的时候,Test 表里面没有数据,因此不占用什么空间。
但是归档日志文件中,包含了
INSERT INTO TEST VALUES(1, 'A');
COMMIT;
UPDATE TEST SET val = 'B' WHERE id = 1;
COMMIT;
DELETE FROM TEST WHERE id = 1;
COMMIT;
这一系列的语句。
因此有plus archivelog 参数时,备份大小有900M左右,而不加该参数,只有150M左右。
你可能还需要去设置一下,定期清理太久以前的归档日志文件。
因为一般的故障恢复的步骤是,首先恢复到最近一次备份的时间点上,然后使用归档日志,从最近一次的备份的时间点,恢复到故障发生的时间点。
假如你是每周全备份一次的。那么,你服务器上面还保存一个月以前的归档日志,其实意义不大。追问大哥,我确信我没有说错,的确是加了plus archivelog 参数时,备份反而小,才150M,不加该参数,会有900多。
哦,我发现最没有小,加了plus archivelog 参数时,oracle9i还在dbs目录里还生成了900M左右的文件,奇怪
追答Oracle9i开始Rman提供plus archivelog选项,极大的简化了Rman备份的操作。
当你定义plus archivelog语句时,RMAN执行如下步骤的操作:
1。运行一个ALTER SYSTEM ARCHIVELOG CURRENT命令
2。运行BACKUP ARCHIVELOG ALL命令。注意如果备份优化被启用,RMAN只会备份未备份过的日志
3。备份BACKUP命令中定义的文件
4。运行ALTER SYSTEM ARCHIVELOG CURRENT命令
5。备份所有的剩下的归档日志
RMAN> list backup of archivelog all 列出归档日志备份集详细信息;
你去查询看看归档日志的信息。
oracle RMAN 的使用
3. 恢复目录
3.1.恢复目录的概念
恢复目录是由RMAN使用、维护的用来放置备份信息的仓库。RMAN利用恢复目录记载的信息去判断如何执行需要的备份恢复操作。
恢复目录可以存在于ORACLE数据库的计划中。
虽然恢复目录可以用来备份多个数据库,建议为恢复目录数据库创建一个单独的数据库。
恢复目录数据库不能使用恢复目录备份自身。
3.2.建立恢复目录
第一步,在目录数据库中创建恢复目录所用表空间:
SQL> create tablespace rman_ts datafile 'd:\oracle\oradata\rman\rman_ts.dbf' size 20M;
表空间已创建。
第二步,在目录数据库中创建RMAN 用户并授权:
SQL> create user rman identified by rman default tablespace rman_ts temporary tablespace temp quota unlimited on rman_ts;
用户已创建。
SQL> grant recovery_catalog_owner to rman ;
授权成功。
SQL> grant connect, resource to rman ;
授权成功。
第三步,在目录数据库中创建恢复目录
C:\>rman catalog rman/rman
恢复管理器:版本8.1.6.0.0 - Proction
RMAN-06008:连接到恢复目录数据库
RMAN-06428:未安装恢复目录
RMAN>create catalog tablespace rman_ts;
RMAN-06431:恢复目录已创建
注意:虽然使用RMAN不一定必需恢复目录,但是推荐使用。因为恢复目录记载的信息大部分可以通过控制文件来记载,RMAN在恢复数据库时使用这些信息。不使用恢复目录将会对备份恢复操作有。
3.3.使用恢复目录的优势
可以存储脚本;
记载较长时间的备份恢复操作;
4. 启动RMAN
RMAN为交互式命令行处理界面,也可以从企业管理器中运行。
为了使用下面的实例,先检查环境符合:
the target database is called "his" and has the same TNS alias
user rman has been granted "recovery_catalog_owner "privileges
目标数据库的连接用户为internal帐号,或者以其他SYSDBA类型帐号连接
the recovery catalog database is called "rman" and has the same TNS alias
the schema containing the recovery catalog is "rman" (same password)
在使用RMAN前,设置NLS_DATE_FORMAT 和NLS_LANG环境变量,很多RMAN LIST命令的输出结果是与日期时间相关的,这点在用户希望执行以时间为基准的恢复工作也很重要。
下例是环境变量的示范:
NLS_LANG= SIMPLIFIED CHINESE_CHINA.ZHS16GBK
NLS_DATE_FORMAT=DD-MON-YYYY HH24:MI:SS
为了保证RMAN使用时能连接恢复目录,恢复目录数据库必须打开,目标数据库至少要STARTED(unmount),否则RMAN会返回一个错误,目标数据库必须置于归档模式下。
4.1.使用不带恢复目录的RMAN
设置目标数据库的 ORACLE_SID ,执行:
% rman nocatalog
RMAN> connect target
RMAN> connect target internal/<password>@his
4.2.使用带恢复目录的RMAN
% rman rman_ts rman/rman@rman
RMAN> connect target
% rman rman_ts rman/rman@rman target internal/<password>@his
4.3.使用RMAN
一旦连接到目标数据库,可以通过交互界面或者事先存储的脚本执行指定RMAN命令, 下面是一个使用RMAN交互界面的实例:
RMAN> resync catalog;
RMAN-03022:正在编译命令:resync
RMAN-03023:正在执行命令:resync
RMAN-08002:正在启动全部恢复目录的 resync
RMAN-08004:完成全部 resync
使用脚本的实例:
RMAN> execute script alloc_1_disk;
创建或者替代存储的脚本:
RMAN> replace script alloc_1_disk {
2> allocate channel d1 type disk;
3> }
5.注册或者注销目标数据库
5.1.注册目标数据库
数据库状态:
恢复目录状态:打开
目标数据库:加载或者打开
目标数据库在第一次使用RMAN之前必须在恢复目录中注册:
第一步,启动恢复管理器,并且连接目标数据库:
C:\>rman target internal/oracle@his catalog rman/rman@rman
恢复管理器:版本8.1.6.0.0 - Proction
RMAN-06005:连接到目标数据库:HIS (DBID=3021445076)
RMAN-06008:连接到恢复目录数据库
第二步,注册数据库:
RMAN> register database;
RMAN-03022:正在编译命令:register
RMAN-03023:正在执行命令:register
RMAN-08006:注册在恢复目录中的数据库
RMAN-03023:正在执行命令:full resync
RMAN-08002:正在启动全部恢复目录的resync
RMAN-08004:完成全部resync
5.2.注销目标数据库
RMAN提供了一个注销工具,叫DBMS_RCVCAT工具包,请注意一旦注销了该目标数据库,就不可以使用恢复目录中含有的备份集来恢复数据库了。
为了能注销数据库,需要获得数据库的标识码(DB_ID)和数据库键值(DB_KEY)。其中连接目标数据库时将会获得DB_ID。
C:\>rman target internal/oracle@his catalog rman/rman@rman
恢复管理器:版本8.1.6.0.0 - Proction
RMAN-06005:连接到目标数据库:HIS (DBID=3021445076)
RMAN-06008:连接到恢复目录数据库
其中DBID=3021445076,利用DBID=3021445076查询数据库键值码:
连接到目标数据库,查询db表:
SQL> select * from db;
DB_KEY DB_ID CURR_DBINC_KEY
---------- ---------- --------------
1 3021445076 2
获得DB_KEY=1,这样,该目标数据库DB_KEY=1,DBID=3021445076,利用两个值使用DBMS_RCVCAT工具包就可以注销数据库:
SQL> execute dbms_rcvcat.unregisterdatabase(1,3021445076);
PL/SQL 过程已成功完成。
至此,注销数据库操作完成。
... ...
请采纳。