oracle11g使用活动数据库复制数据库
Steps to Duplicate a Database From a Active Database
# 环境
OS:Red Hat Enterprise Linux Server release 6.4
DB:oracle 11g 11.2.0.4.0
源库:jason
辅助库:iris
1. 打开源库
$ sqlplus /nolog
SQL> CONN / AS SYSDBA;
SQL> STARTUP;
2. 创建辅助实例的口令文件
$ export ORACLE_SID=iris
$ orapwd file=$ORACLE_HOME/dbs/orapwiris
3. 建立到辅助实例的连接
vi $ORACLE_HOME/network/admin/tnsnames.ora
iris =
(DESCRIPTION =
(ADDRESS = (PROTOCOL =
TCP)(HOST = 192.168.133.120)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = iris)
)
)
建立辅助实例的静态监听.
vi $ORACLE_HOME/network/admin/listener.ora
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = iris)
(ORACLE_HOME = /u01/app/oracle/product/11.2.0/db_1)
(SID_NAME = iris)
)
)
重启监听,让新的辅助实例监听生效
$ lsnrctl stop
$ lsnrctl start
$ lsnrctl status
测试一下连接到辅助实例
$ tnsping iris
4. 建立初始参数
4.1 从源库产生一个文本型的初始参数
$ export ORACLE_SID=jason
$ sqlplus /nolog
SQL> CONN / AS SYSDBA;
SQL> CREATE PFILE='/home/oracle/initiris.ora' FROM
SPFILE;
4.2 修改产生的初始参数(根据需要)
修改后为:
*.audit_file_dest='/u01/app/oracle/admin/iris/adump'
*.audit_trail='db'
*.compatible='11.2.0.4.0'
*.control_files='/u01/app/oracle/oradata/iris/controlfile/control01.ctl','/u01/app/oracle/fast_recovery_area/iris/controlfile/control02.ctl'
*.db_block_size=8192
*.db_create_file_dest='/u01/app/oracle/oradata'
*.db_domain='com'
*.db_name='iris'
*.db_recovery_file_dest='/u01/app/oracle/fast_recovery_area'
*.db_recovery_file_dest_size=4353687552
*.db_unique_name='iris'
*.diagnostic_dest='/u01/app/oracle'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=irisXDB)'
*.log_archive_format='%t_%s_%r.dbf'
*.memory_target=629145600
*.open_cursors=300
*.processes=150
*.remote_login_passwordfile='EXCLUSIVE'
*.undo_tablespace='UNDOTBS1'
4.3 根据参数,建立相应的目录
$ mkdir -p /u01/app/oracle/admin/iris/adump
$ mkdir -p /u01/app/oracle/admin/iris/dpdump
$ mkdir -p /u01/app/oracle/admin/iris/pfile
$ mkdir -p
/u01/app/oracle/fast_recovery_area/iris/archivelog
$ mkdir -p
/u01/app/oracle/fast_recovery_area/iris/controlfile
$ mkdir -p
/u01/app/oracle/fast_recovery_area/iris/onlinelog
$ mkdir -p /u01/app/oracle/oradata/iris/controlfile
$ mkdir -p /u01/app/oracle/oradata/iris/datafile
$ mkdir -p /u01/app/oracle/oradata/iris/onlinelog
5. 启动辅助数据库到nomount
$ export ORACLE_SID=iris
$ sqlplus /nolog
SQL> CONN / AS SYSDBA;
SQL> STARTUP NOMOUNT
PFILE='/home/oracle/initiris.ora';
创建服务参数文件
SQL> CREATE SPFILE FROM
PFILE='/home/oracle/initiris.ora';
使用新的服务参数文件启动数据库到nomount
SQL> SHUTDOWN IMMEDIATE
SQL> STARTUP NOMOUNT;
6. 使用rman连接到辅助库和源库
$ rman auxiliary sys/oracle@iris
RMAN> CONNECT TARGET sys/oracle@jason
执行复制
RMAN> RUN {
ALLOCATE
AUXILIARY CHANNEL aux1 DEVICE TYPE DISK;
ALLOCATE
CHANNEL c1 DEVICE TYPE DISK;
ALLOCATE
CHANNEL c2 DEVICE TYPE DISK;
ALLOCATE
CHANNEL c3 DEVICE TYPE DISK;
DUPLICATE
TARGET DATABASE TO iris FROM ACTIVE DATABASE;
}
执行...
此处省略 ...
一直到 Finished Duplicate Db at 28-OCT-17
7.取消辅助实例的静态监听.
vi $ORACLE_HOME/network/admin/listener.ora
删除以下内容
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = iris)
(ORACLE_HOME = /u01/app/oracle/product/11.2.0/db_1)
(SID_NAME = iris)
)
)
重启监听,让新配置生效
$ lsnrctl stop
$ lsnrctl start
$ lsnrctl status
!!The End!!