您的位置:首页 > 数据库 > Oracle

Oracle RMAN active 克隆数据库

2015-09-06 20:14 676 查看

一.环境介绍

1. 主数据库环境

生产库称为master

操作系统版本 : redhat5 x64

数据库版本 : Oracle 11.2.0.3 x64

数据库名 : dg1

数据库SID : dg1

db_unique_name: dg1

IP:192.168.58.5

hostname:oradg1

2. 备库环境

备用库称为secondary

操作系统版本 : redhat5 x64

数据库版本 : Oracle 11.2.0.3 x64

数据库名 : dg1

数据库SID : dg1

db_unique_name: dg1

IP:192.168.58.6

hostname:oradg2

3.前提条件

master: 1.安装oracle数据库软件,2.创建数据库,3.安装监听,4.开启归档模式

secondary:只安装oracle数据库软件,不用创建数据库也不安装监听

安装数据库参考考:静默安装oracle 11g r2

离线参考:

离线RMAN克隆

都是爷写的

二. 开始配置

1. 在secondary 创建pfile 参数文件:

dg1是实例名

[oracle@qs-dmm-rh2 dbs]$ vim /u01/app/oracle/product/11.2.0/db_1/dbs/initdg1.ora

db_name=dg1


只有一行.

2. 在secondary库上创建口令文件

注意修改成自己的密码

[oracle@qs-dmm-rh2 admin]$ orapwd file=?/dbs/orapwdg1 password=oracle


3. 在secondary库创建相关的目录结构:

路径一定要和生产库的一样,不然要做各种修改很麻烦。参考这个文件就知道目录了$ORACLE_HOME/dbs/initdg1.ora,dg1是实例名

[oracle@qs-dmm-rh2 trace]$ mkdir -p /u01/app/oracle/oradata/dg1


4. 在master 和secondary 都配置Listener.ora 、 tnsnames.ora

secondary因为没有创建数据库和安装监听,并没有这两个文件,故要新建。

1.分别在master,secondary配置lisener监听文件,secondary需要新建

下面master与secondary配置HOST不同,注意修改!

master:HOST = oradg1;secondary:HOST = oradg2

$ vim /u01/app/oracle/product/11.2.0/db_1/network/admin/listener.ora

LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = oradg2)(PORT = 1521))
)
)
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = dg1)
(ORACLE_HOME = /u01/app/oracle/product/11.2.0/db_1)
(SID_NAME = dg1)
)
)
ADR_BASE_LISTENER = /u01/app


2. 分别在master,secondary配置tnsname.ora文件,secondary需要新建

说明:dg1是服务名,oradg1是master主机。(以下master,secondary内容完全一样)

$ vim /u01/app/oracle/product/11.2.0/db_1/network/admin/tnsnames.ora

TARGETORCL =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = oradg2)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = dg1)
)
)
master =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = oradg1)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = dg1)
)
)
secondary =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = oradg2)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = dg1)
)
)


5. 启动secondary 到nomout 状态:

[oracle@qs-dmm-rh2 admin]$

sqlplus /nolog
SQL> conn / as sysdba;
SQL> startup nomount pfile=?/dbs/initdg1.ora


三.开始克隆

说明:如果master和secondary库的目录结构相同,记得加上nofilenamecheck参数,不然会报如下错误:

如果目录不同,在pfile里加如下2个参数进行转换:具体怎么转换童鞋们查找资料.

db_file_name_convert

log_file_name_convert.

a.此时secondary要开启监听,不然会报没有监听的错误

su -oracle

lsnrctl start


b.连通两个库,开始克隆

[oracle@qs-dmm-rh2 dbs]$ rman target sys/oracle@master auxiliary sys/oracle@secondary

RMAN> duplicate target database to dg1 from active database nofilenamecheck;


Finished Duplicate Db at 06-SEP-15 看到这个代表克隆完成啦

四.测试

克隆完已经可以用PLSQL打开了。

因为已经自动nomount,mount,open了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  oracle