Oracle 11gR2使用RMAN duplicate复制数据库
11g的RMAN duplicate 个人感觉比10g的先进了很多,10g需在rman备份的基础上进行复制,使用RMAN duplicate创建一个数据完全相同但DBID不同的数据库。而11g的RMAN duplicate 可通过Active database duplicate和Backup-based duplicate两种方法实现。
Active database duplicate方式不需要先把目标数据库进行rman备份,只要目标数据库处于归档模式下即可直接通过网络对数据库进行copy,且copy完成后自动open数据库。这对于大数据特别是T级别的数据库来说优点非常明显,复制前不需要进行备份,减少了备份和传送备份的时间,同时节省备份空间。
案例一:RMAN duplicate的Active database duplicate方式
1、环境(同机测试,异机区别不大)
target DB(ip:192.168.1.1;hostname:oradba;oraclesid:prod)
auxiliary DB(ip:192.168.1.1;hostname:oradba;oraclesid:stby)
2、创建auxiliary DB参数文件,启动实例到nomount状态
可根据target DB参数文件进行修改使用,内容略,但需注意如下:
db_file_name_convert=('/u01/app/oracle/oradata/prod/','/u01/app/oracle/oradata/stby/')
log_file_name_convert=('/u01/app/oracle/oradata/prod/','/u01/app/oracle/oradata/stby/')
为同一机器不同实例,参数文件中必须添加如上内容,否则复制时会报无法创建数据文件,如果异机复制 ,且两实例数据目录完全一致,这两参数可省略,另因同机,参数文件中的db_name不能一样,如果是异机复制,db_name完全可以一样。
3、创建参数文件中相关目录并修改权限
mkdir /u01/app/oracle/oradata/stby/ -pv
mkdir /u01/app/oracle/fast_recovery_area/stby/ -pv
chown oracle:oinstall /u01 -R
4、启动实例到nomount状态
SQL> startup nomount pfile='/u01/app/oracle/product/11.2.0/db_1/dbs/initstby.ora';
5、创建密码文件,必须保持target DB和auxiliary DB的密码一致
此处选择复制target DB的密码文件:cp orapwprod orapwstby
6、配置网络
# cat ../network/admin/listener.ora
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(ORACLE_HOME = /u01/app/oracle/product/11.2.0/db_1)
(SID_NAME =prod)
)
(SID_DESC =
(ORACLE_HOME = /u01/app/oracle/product/11.2.0/db_1)
(SID_NAME =stby)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = oradba)(PORT = 1521))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
)
ADR_BASE_LISTENER = /u01/app/oracle
# cat ../network/admin/tnsnames.ora
prod =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = oradba)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = prod)
))
stby =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = oradba)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = stby)
))
7、开始复制,复制时需注意是否使用nofilenamecheck参数,如果两个实例相关数据目录结构完全相同,则需要指定,否则会报错。这里不需使用。
$ export ORACLE_SID=stby --------异机操作可省略此步操作
$rman target sys/oracle@prod auxiliary sys/oracle@stby
/*RMAN> duplicate target database to stby from active database nofilenamecheck;*/
RMAN> duplicate target database to stby from active database;
8、检查结果
select name from v$datafile;
select status from v$instance;
show parameter name
show parameter pfile
数据库已经open,各项参数正常,且已创建spfile并使用!整个复制过程完成!
案例二:RMAN duplicate的Backup-based duplicate方式
需求:将使用文件系统存储的数据库修改为ASM方式的存储。
需求实现:可通过RMAN的backup as copy tablespace xx format '+DATA'等多种方式实现,这里使用duplicate方式。
本次为实验测试,打算在单机实现,即先创建文件系统的prod数据库,rman备份后,删除文件系统方式的prod数据库,再创建ASM存储的prod数据库,再通过duplicate复制数据库。注意,不能在生产库上实施。大致步骤如下:
1)DBCA创建文件系统存储的数据库prod
2)rman方式备份文件系统存储的数据库prod
3)备份pfile,导出控制文件到trace文件
4)删除文件系统存储的数据库prod
5)创建ASM实例,创建ASM磁盘组
6)创建ASM存储方式的prod数据的所需目录
7)创建ASM存储方式的prod数据库的监听
8)使用文件系统prod数据库的全备duplicate复制数据库
操作步骤如下:
1、查看文件系统方式的prod数据库
select name from v$datafile;
select name from v$tempfile;
select member from v$logfile;
2、文件系统方式prod数据库创建pfile
create pfile='/home/oracle/pfile' from spfile;
修改pfile将控制文件路径修改为ASM磁盘组+DATA和+FRA上,修改快速恢复区路径为+FRA
##*.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_recovery_file_dest='/u01/fast_recovery_area'
*.db_recovery_file_dest='+FRA'
3、文件系统方式prod数据库执行一次全备,保存路径为/home/oracle
run{
allocate channel c1 device type disk;
backup tag 'prod_db' as compressed backupset format '/home/oracle/full_%U.bak' database
include current controlfile;
backup tag 'prod_arch' archivelog all format '/home/oracle/arch_%U.bak';
release channel c1;
}
4、DBCA方式删除数据库,即文件系统方式的prod数据库不存在了,可以创建ASM方式的prod数据库了。
5、创建ASM方式的prod数据库的所需目录
mkdir -p $ORACLE_BASE/admin/PROD/adump
6、创建ASM方式的prod数据库(即auxiliary数据库)密码文件
$ orapwd file=$ORACLE_HOME/dbs/orapwPROD password=oracle entries=5
7、在grid用户下为auxiliary数据库添加静态监听连接
$ vi /grid/app/11.2.0/grid/network/admin/listener.ora
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = single)(PORT = 1521))
)
)
SID_LIST_LISTENER=
(SID_LIST=
(SID_DESC=
(SID_NAME=PROD)
(ORACLE_HOME=/u01/oracle)
(GLOBAL_DBNAME=PROD)))
ADR_BASE_LISTENER = /grid
ENABLE_GLOBAL_DYNAMIC_ENDPOINT_LISTENER=ON # line added by Agent
8、auxiliary数据库使用修改过的pfile启动数据库到nomount状态
startup nomount pfile=/home/oracle/pfile;
9、使用rman登录auxiliary数据库
[oracle@single ~]$ rman auxiliary /
10、使用RMAN执行duplicate复制灾备数据库
在这一步需要从删除前的文件系统方式的prod数据库通过alter database backup controlfile to trace导出脚本,在使用select value from v$diag_info找到该trace的路径。将生成控制文件脚本中的数据库文件路径进行参考来写入set newname for datafile n,因为之前的数据库为文件系统,现在打算创建ASM方式的数据库。所以需要set newname来修改路径
run{
allocate auxiliary channel dup1 type disk;
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';
duplicate target database to PROD backup location '/home/oracle'
logfile
group 1('+DATA') size 50m reuse,
group 2('+DATA') size 50m reuse,
group 3('+DATA') size 50m reuse;
}
11、验证auxiliary数据库的复制结果,对比之前的文件系统目标库
select name from v$datafile;
select name from v$tempfile;
select member from v$logfile;
show parameter control_file;
select name,open_mode from v$database;
12、auxiliary数据库从内存中创建参数文件到ASM磁盘组+DATA/PROD
create spfile='+DATA/PROD/spfilePROD.ora' from memory;
13、创建auxiliary的pfile文件,指定spfile所在路径.红色字体内容是需要添加的。
$ vi $ORACLE_HOME/dbs/initPROD.ora
SPFILE='+DATA/PROD/spfilePROD.ora’
14、使用新创建的initPROD.ora来启动auxiliary数据库
shutdown immediate;
startup;
show parameter spfile;
Oracle 11gR2使用RMAN duplicate复制数据库的更多相关文章
- Oracle 11gR2 使用RMAN Duplicate复制数据库
Oracle 11gR2 使用RMAN Duplicate复制数据库 前言: 上周刚做完一个项目,用户要求RAC的数据库可以自己主动备份到另外一个单节点上,单节点可以正常拿起来就能用. ...
- 11g 使用rman duplicate复制数据库,创建辅助实例
一,创建所需目录 1)创建审计文件目录 PROD1@dbrac1 /dsg/oracle11$ cd $ORACLE_BASE/admin PROD1@dbrac1 /u01/app/oracle/a ...
- Oracle Study之--Oracle 11gR2通过RMAN克隆数据库
Oracle Study之--Oracle 11gR2通过RMAN克隆数据库 Purpose of Database Duplication A duplicate database is usefu ...
- 使用RMAN创建复制数据库
我的实验环境: - 源数据库A机: RHEL6.4 + Oracle 11.2.0.4 IP地址:192.168.99.159 db_name=oradb 数据库已正常运行 - 复制数据库B机: RH ...
- Duplicate复制数据库并创建物理StandBy(spfile+不同实例名+不同路径)
过程和Duplicate复制数据库并创建物理StandBy类似,只是不需要重启数据库. 目的:创建standby,不重启源数据库 1设定环境如下: Primary数据库 IP 172.17.22.16 ...
- Duplicate复制数据库并创建物理StandBy(spfile+不同实例名)
过程和Duplicate复制数据库并创建物理StandBy类似,只是不需要重启数据库. 目的:创建standby,不重启源数据库 1设定环境如下: Primary数据库 IP 172.17.22.16 ...
- Duplicate复制数据库并创建物理StandBy(spfile版本)
过程和Duplicate复制数据库并创建物理StandBy类似,只是不需要重启数据库. 目的:创建standby,不重启源数据库 1设定环境如下: Primary数据库 IP 172.17.22.16 ...
- 使用rman中的duplicate复制数据库
目标库和复制库环境: OS: Linux Red Hat AS 4 DB Version: 10.2.0.1 1.目标库和复制库信息 Rman 中的目标库(target database)指的是被 ...
- 【Oracle】RMAN duplicate复制库
基础环境: 172.17.4.60 操作系统:Linux 6.4 数据库:Oracle11gR2 (源数据库) 172.17.4.61 操作系统:Linux 6.4 数据库:Oracle11gR2 ( ...
随机推荐
- PHP与MySQL的关系?
1).mysqli和PDO 属于MySQL的拓展包extension 2)my.ini开启拓展命令 extension=php_mysqli.dll extension=php_pdo_mysql.d ...
- [HEOI2017] 寿司餐厅 + 最大权闭合子图的总结
Description 太长了自己看叭 点这里! Solution 先学一波什么叫最大权闭合子图. 先要明白什么是闭合子图,闭合子图就是给定一个有向图,从中选择一些点组成一个点集V.对于V中任意一个点 ...
- 在服务器上搭建wordpress个人博客 php7.2+nginx+mysql+wordperss
买了台VPS,准备搭建一个博客.用过几个博客框架还是觉得Wordpress好用.主题多,插件也非常的便利,而且大多还免费开源.搭建也很简单,其实安装好php+mysql+nginx+wordpress ...
- 学了9天java,没什么感觉,有点害怕,总结一下for循环。
for(int i=0; i<100; i++){ if(i%3==0){ continue://满足条件的跳过 } System.out.print(i); } //最后输出的数中没有满足3的 ...
- 漫画 | Spring AOP的底层原理是什么?
1.Spring中配置的bean是在什么时候实例化的? 2.描述一下Spring中的IOC.AOP和DI IOC和AOP是Spring的两大核心思想 3.谈谈IOC.AOP和DI在项目开发中的应用场景 ...
- 设计模式之观察者模式(Observer)
观察者模式通常的叫法叫做订阅-发布模式,类似于报刊杂志的订阅,观察者和被观察者就是读者和邮局的关系,读者先要在邮局订阅想要的报刊,当报刊发行时,邮局会将报刊邮寄到读者家里.观察者(Observer)和 ...
- jsp使用servlet实现文件上传
1.在index.jsp中写入以下代码 <form method="post" action="demo3" enctype="multipar ...
- php 对象转数组
//参考网上 但是别人给的方法有错误的地方public function eleme_callback(){ $res = (object) array('1' => 'foo'); $data ...
- Manjaro使用笔记-使用中国源的方法
我的邮箱地址:zytrenren@163.com欢迎大家交流学习纠错!生成可用中国镜像站列表: sudo pacman-mirrors -i -c China -m rank 勾选弹窗里面的所有源刷新 ...
- 【读书笔记】iOS-Interface Builder
IBOutlet或IBAction符号对编译不产生任何影响,它们只是标记,用于告诉Xcode这些对象可以和UI控件进行关联,以便于在编辑Interface Builder上的UI控件的时候Xcode可 ...