RMAN除了单纯的备份恢复功能 已经被赋予了越来越多的责任 比如创建Standby数据库 比如跨平台传输表空间中的表空间转换 Oracle g的RMAN倒是没有太多飞跃性的更新
自定义archivelog删除策略
我们知道在 g之前 只有backupset的删除策略可以定义 比如保留多长时间的备份或者保留多少份有效备份 而删除归档日志只有在delete命令中定义删除全部备份完毕的或者删除从哪一个时间点到哪一个时间点的 而在 g中我们已经可以通过configure命令来定义归档日志的删除策略的 比如增加了下面的语法 只有在磁带上备份了 次的归档日志才会被delete命令删除
CONFIGURE ARCHIVELOG DELETION POLICY TO BACKED UP TIMES TO DEVICE TYPE *** t
当然 仅仅是增加语法那就只能称为比较无聊的新功能了 除了configure语法之外 现在在 g中通过APPLIED ON STANDBY关键字可以定义只有对于所有的standby站点都已经applied的归档日志才会被删除 或者定义所有被成功传送到standby站点的归档日志就可以被删除 而以前这些都需要DBA自己撰写脚本从数据字典中查询到相关信息然后再通过脚本删除
直接通过网络复制数据库
在 g之前如果要使用duplicate命令来复制一份数据库 那么则需要源数据库 需要在目标机器上的一份有效备份 需要目标数据库 在 g中这一切被大大简化 通过FROM ACTIVE DATABASE关键字 我们只需要有一个源数据库 就可以简单地通过网络在另外一台机器上复制一个相同的数据库了 Oracle会通过一系列 Memory Script在内存中recover并且open目标数据库
另外 在 g之前 duplicate数据库是不会自动复制spfile的 而现在 我们通过下面的语句 就可以让Oracle在复制过程中自动生成一份spfile 并且其中的初始化参数允许额外定义
DUPLICATE TARGET DATABASETO aux_dbFROM ACTIVE DATABASESPFILE PARAMETER_VALUE_CONVERT /u /u SET SGA_MAX_SIZE = M SET SGA_TARGET = M SET LOG_FILE_NAME_CONVERT = /u /u DB_FILE_NAME_CONVERT /u /u
在 g中使用duplicate复制一个数据库的准备步骤只需要目标数据库(AUXILIARY实例)
a 通过一个最简单的pfile把实例启动到nomount状态 这个pfile中只需要包含DB_NAME和REMOTE_LOGIN_PASSWORFILE参数即可
b password文件必须事先建好 而且SYS密码需要跟source数据库中相同 这个通过orapwd可以轻松完成
c 目录结构需要事先创建好并且具有正确的权限
并行备份大文件
现在Oracle数据库中单个数据文件可以最大到 T 而在以前的版本中RMAN的最小备份单位就是datafile 那么对于以后可能出现的这种超大数据文件 RMAN备份就几乎无法 *** 作了 在 g中 通过backup命令中的SECTION SIZE关键字 我们可以对数据文件指定section了 每个section都作为一个独立单位来处理 每个数据文件可以最多指定 个 section
Section的好处在于 一可以并行备份多个section 提高备份速度 二可以分多个时间分别备份一个大文件的多个section 时间上化整为零 更具有 *** 作性
RMAN Catalog管理性增强
IMPORT CATALOG命令允许我们将一个catalog库中的信息转储到另外一个catalog库 这在以前完全需要手工 *** 作
lishixinzhi/Article/program/Oracle/201311/17666源服务器和目的服务器的 *** 作系统,oracle版本均一致
一:在源服务器上使用rman备份数据库,包括数据文件,归档日志文件和控制文件,参数文件的备份
二:在目的服务器上复制备份数据,并准备好相关的目录
三:在目的服务器上进行恢复,指定DBID,需要和源服务器的DBID一致
启动数据库到nomount状态,这里需要前面创建initorcl.ora文件,否则将报错 恢复参数文件 重启实例到nomout状态 恢复控制文件 还原数据库文件 恢复数据库文件,这里将报错
在sqlplus中对数据库进行until cancel *** 作后以resetlogs方式打开
要求:本地已有生产数据库prod,制定rman备份策略,将数据备份到制定目录/oracle/rman_bk下。现在需要做恢复测试,验证备份出来的数据是有效的。且不影响原有的生产数据库prod。解决思路:在备份出来的数据中(控制文件),包含了数据库名,数据文件,redo log等文件的存放路径,如果在本地直接做恢复,将和原有的数据库****,因此,需要修改这些信息,将备份出来的数据恢复到另外一个数据库中。具体步骤如下:
1.创建新数据库数据文件及跟踪文件存放目录
-bash-2.05b$mkdir -p /oracle/oradata/test
-bash-2.05b$mkdir -p /oracle/admin/test/bdump
-bash-2.05b$mkdir -p /oracle/admin/test/udump
-bash-2.05b$mkdir -p /oracle/admin/test/cdump
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 dual 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
本答案来自于互联网,仅供参考学习作用
如果您对我的回答有不满意的地方,还请您继续追问;
答题不易,互相理解,互相帮助!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)