RMAN基于备份的duplicate非常麻烦
首先,源库需要一个完整的备份,包括数据文件,控制文件,spfile和归档日志。
其次,需要将备份传输到目的数据库一模一样的位置上
Oracle11g推出了duplicate from active database
他可以在没有备份的情况下,直接复制数据库,简化了很多操作。
基于备份的duplicate有如下的步骤
1.配置两台服务器的监听器和tnsnames
2.源库创建密码文件,传输至目的数据库
3.源库创建pfile,传输至目的数据库
4.将源库的备份传输至目的数据库,要求备份的位置和源库的位置一模一样.(因为备份的位置记录在了控制文件)
5.在目的数据库创建相应的目录
6.在目的数据库启动辅助实例
7.在源库使用rman开始复制
其中基于备份的duplicate,一定要注意,备份需要包括归档日志
而duplicate from active database则简单很多
1.配置两台服务器的监听器和tnsnames
2.源库创建密码文件,传输至目的数据库
3.在目的数据库创建相应的目录
4.在目的数据库创建一个pfile,启动辅助实例.(pfile仅有一个参数就是db_name)
5.在源库使用rman开始复制
实验环境如下
数据库版本:11.2.0.3
源库:192.168.1.1
源库sid:orcl
目的库:192.168.1.2 仅安装数据库软件,没有安装任何实例
实验目的
将192.168.1.1的数据库复制到192.168.1.2
1.配置两台服务器的监听器和tnsnames
两台服务器的tnsnames.ora都是一样的配置
SOURCE =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.1)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = orcl)
)
)
TARGET =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.2)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = orcl)
)
)
源库的监听器配置(目的数据库修改监听的IP地址)
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = orcl)
(ORACLE_HOME = /home/oracle/app/oracle/product/11.2.0/dbhome_1)
(SID_NAME = orcl)
)
)
LISTENER =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.1)(PORT = 1521))
)
ADR_BASE_LISTENER = /home/oracle/app/oracle
2.源库创建密码文件,传输至目的数据库
在源库的$ORACLE_HOME/dbs目录下创建密钥文件
密钥文件的命名必须是 orapw+sid
[oracle@master dbs]$ pwd
/home/oracle/app/oracle/product/11.2.0/dbhome_1/dbs
[oracle@master dbs]$ orapwd file=orapworcl password=123456
一定要注意,在源库生成密钥文件,再通过scp传输到目的数据库
不能以相同的密码在目的数据库创建密钥文件,否则在duplicate的时候报错.
3. 在目的数据库创建相应的目录
查询源库的参数文件,将里面涉及的目录,在目的数据库创建.
[oracle@slaveOne ~]$ mkdir -p /home/oracle/app/oracle/admin/orcl/adump
[oracle@slaveOne ~]$ mkdir -p /home/oracle/app/oracle/oradata/orcl/
[oracle@slaveOne ~]$ mkdir -p /home/oracle/app/oracle/fast_recovery_area/orcl/
4.在目的数据库创建一个pfile,启动辅助实例.(pfile仅有一个参数就是db_name)
5. 在源库使用rman开始复制
[oracle@master ~]$ rman target / auxiliary sys/123456@target
Recovery Manager: Release 11.2.0.3.0 - Production on Tue Oct 28 19:18:17 2014
Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.
connected to target database: ORCL (DBID=1388624007)
connected to auxiliary database: ORCL (not mounted)
RMAN> duplicate target database to orcl from active database nofilenamecheck PASSWORD FILE SPFILE;
辅助实例的密码就是密钥文件中设置的密码,
如果源库和目标库的文件位置一样,则需要 nofilenamecheck 忽略文件检查
如果源库和目标库的文件位置不一样,则需要用db_file_name_convert参数指定目录.
参考:
http://blog.csdn.net/tianlesoftware/article/details/6230498
首先,源库需要一个完整的备份,包括数据文件,控制文件,spfile和归档日志。
其次,需要将备份传输到目的数据库一模一样的位置上
Oracle11g推出了duplicate from active database
他可以在没有备份的情况下,直接复制数据库,简化了很多操作。
基于备份的duplicate有如下的步骤
1.配置两台服务器的监听器和tnsnames
2.源库创建密码文件,传输至目的数据库
3.源库创建pfile,传输至目的数据库
4.将源库的备份传输至目的数据库,要求备份的位置和源库的位置一模一样.(因为备份的位置记录在了控制文件)
5.在目的数据库创建相应的目录
6.在目的数据库启动辅助实例
7.在源库使用rman开始复制
其中基于备份的duplicate,一定要注意,备份需要包括归档日志
而duplicate from active database则简单很多
1.配置两台服务器的监听器和tnsnames
2.源库创建密码文件,传输至目的数据库
3.在目的数据库创建相应的目录
4.在目的数据库创建一个pfile,启动辅助实例.(pfile仅有一个参数就是db_name)
5.在源库使用rman开始复制
实验环境如下
数据库版本:11.2.0.3
源库:192.168.1.1
源库sid:orcl
目的库:192.168.1.2 仅安装数据库软件,没有安装任何实例
实验目的
将192.168.1.1的数据库复制到192.168.1.2
1.配置两台服务器的监听器和tnsnames
两台服务器的tnsnames.ora都是一样的配置
SOURCE =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.1)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = orcl)
)
)
TARGET =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.2)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = orcl)
)
)
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = orcl)
(ORACLE_HOME = /home/oracle/app/oracle/product/11.2.0/dbhome_1)
(SID_NAME = orcl)
)
)
LISTENER =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.1)(PORT = 1521))
)
ADR_BASE_LISTENER = /home/oracle/app/oracle
在源库的$ORACLE_HOME/dbs目录下创建密钥文件
密钥文件的命名必须是 orapw+sid
[oracle@master dbs]$ pwd
/home/oracle/app/oracle/product/11.2.0/dbhome_1/dbs
[oracle@master dbs]$ orapwd file=orapworcl password=123456
不能以相同的密码在目的数据库创建密钥文件,否则在duplicate的时候报错.
3. 在目的数据库创建相应的目录
查询源库的参数文件,将里面涉及的目录,在目的数据库创建.
[oracle@slaveOne ~]$ mkdir -p /home/oracle/app/oracle/admin/orcl/adump
[oracle@slaveOne ~]$ mkdir -p /home/oracle/app/oracle/oradata/orcl/
[oracle@slaveOne ~]$ mkdir -p /home/oracle/app/oracle/fast_recovery_area/orcl/
4.在目的数据库创建一个pfile,启动辅助实例.(pfile仅有一个参数就是db_name)
5. 在源库使用rman开始复制
[oracle@master ~]$ rman target / auxiliary sys/123456@target
Recovery Manager: Release 11.2.0.3.0 - Production on Tue Oct 28 19:18:17 2014
Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.
connected to target database: ORCL (DBID=1388624007)
connected to auxiliary database: ORCL (not mounted)
RMAN> duplicate target database to orcl from active database nofilenamecheck PASSWORD FILE SPFILE;
辅助实例的密码就是密钥文件中设置的密码,
如果源库和目标库的文件位置一样,则需要 nofilenamecheck 忽略文件检查
如果源库和目标库的文件位置不一样,则需要用db_file_name_convert参数指定目录.
参考:
http://blog.csdn.net/tianlesoftware/article/details/6230498
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29254281/viewspace-1312231/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/29254281/viewspace-1312231/