Database Clone by rebuilding control file.

本文介绍了一种通过创建控制文件的方式,在另一台服务器上克隆Oracle数据库的方法。该方法涉及关闭原数据库、传输数据文件、配置环境变量及使用silent模式安装数据库等步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前面我们用了rman 里的duplicate方法去在本机clone个db, 这里我们用CREATE CONTROLFILE 方法在另一台服务器上Clone. 缺点是用这个方法clone, 需要shutdown 原数据库,传输datafile到另台服务器。

1- tar $ORACLE_HOME for 10.2.0 and 11.1.0 on ora6
tar –cvf

2- scp them to srv7 (if the file is too large, may face File is too large issue. use ulimit –a to see the limitation).

scp jxiaos@EAP-SRV6:/u01/app/oracle/product/ora11g.tar /u01

scp jxiaos@EAP-SRV6:/u04/oradata/OLD_DB/*.* /u04/oradata/CLONEDDB/

[@more@]

[oracle@EAP-SRV7] :/u01 > scp jxiaos@EAP-SRV6:/u01/app/oracle/product/ora11g.tar /u01/
jxiaos@EAP-SRV6's password:
ora11g.tar 1% 198MB 30.3MB/s 07:24 ETA

cp ~.profile to srv7

3- untar and relink

tar –xvf

export ORACLE_HOME=/u01/app/oracle/product/10.2.0
cd $ORACLE_HOME/oui/bin
$ORACLE_HOME/oui/bin/runInstaller -silent -clone ORACLE_BASE="/u01/app/oracle" ORACLE_HOME="/u01/app/oracle/product/10.2.0" ORACLE_HOME_NAME="OraClient10g_home1" -invPtrLoc="/etc"

export ORACLE_HOME=/u01/app/oracle/product/11.1.0
cd $ORACLE_HOME/oui/bin
./runInstaller -clone -silent -jreloc /usr/java5_64/jre -ignorePreReq ORACLE_HOME="/u01/app/oracle/product/11.1.0" ORACLE_HOME_NAME="OraDb11g_home1" ORACLE_BASE="/u01/app/oracle"


4-
Create cre_ctl.sql (create control file)
alter database backup controlfile to trace;
get the statement in /u01/app/oracle/admin/diag/rdbms/OLD_DB/OLD_DB/trace/OLD_DB_vktm_20775158.trc
--修改REUSE to SET,因为我们要不同的数据库名。
CREATE CONTROLFILE SET DATABASE "CLONEDDB" RESETLOGS NOARCHIVELOG
MAXLOGFILES 20
MAXLOGMEMBERS 3
MAXDATAFILES 1000
MAXINSTANCES 1
MAXLOGHISTORY 584
LOGFILE
GROUP 1 '/u02/oradata/CLONEDDB/CLONEDDB_redo01m1.log' SIZE 200M,
GROUP 2 '/u02/oradata/CLONEDDB/CLONEDDB_redo02m1.log' SIZE 200M,
GROUP 3 '/u02/oradata/CLONEDDB/CLONEDDB_redo03m1.log' SIZE 200M,
GROUP 4 '/u02/oradata/CLONEDDB/CLONEDDB_redo04m1.log' SIZE 200M,
GROUP 5 '/u02/oradata/CLONEDDB/CLONEDDB_redo05m1.log' SIZE 200M,
GROUP 6 '/u02/oradata/CLONEDDB/CLONEDDB_redo06m1.log' SIZE 200M,
GROUP 7 '/u02/oradata/CLONEDDB/CLONEDDB_redo07m1.log' SIZE 200M,
GROUP 8 '/u02/oradata/CLONEDDB/CLONEDDB_redo08m1.log' SIZE 200M
-- STANDBY LOGFILE
DATAFILE
'/u04/oradata/CLONEDDB/CLONEDDB_system01.dbf',
'/u04/oradata/CLONEDDB/CLONEDDB_sysaux01.dbf',
'/u04/oradata/CLONEDDB/CLONEDDB_undotbs1.dbf',
'/u04/oradata/CLONEDDB/CLONEDDB_cists01.dbf',
'/u04/oradata/CLONEDDB/CLONEDDB_tools01.dbf',
'/u04/oradata/CLONEDDB/CLONEDDB_tivoliorts01.dbf',
'/u04/oradata/CLONEDDB/CLONEDDB_cists03.dbf',
'/u04/oradata/CLONEDDB/CLONEDDB_cists04.dbf',
......

CHARACTER SET WE8ISO8859P1
;

Shutdown db OLD_DB
scp ~oracle/admin/OLD_DB/cre_ctl.sql to srv7
scp /u04/oradata/OLD_DB/* to srv7
(the oradata is very large, use nohup scp jxiaos@EAP-SRV6:/u04/oradata/OLD_DB/*.* /u04/oradata/CLONEDDB &
scp initCLONEDDB.ora

********************************************************************
1. nohup scp jxiaos@EAP-SRV6:/u04/oradata/OLD_DB/*.* /u04/oradata/CLONEDDB
2.输入密码
3.按Ctrl+z挂起当前进程
4.使用命令bg让挂起的进程继续运行 退出系统后,这种方法好像不行。 使用这种方法:echo "/pathname/script.sh"|at now
********************************************************************

5 create

/u01/app/oracle/admin/CLONEDDB/pfile/initCLONEDDB.ora
cd $ORACLE_HOME/dbs
ln -s /u01/app/oracle/admin/CLONEDDB/pfile/initCLONEDDB.ora .

~admin/CLONEDDB,/.. and CLONEDDB/adump,pfile,rman (diag will be created automatically after lsnrctl start once)
u*/oradata/CLONEDDB


/var/opt/oracle/oratab, -> CLONEDDB:/u01/app/oracle/product/11.1.0:Y
.profile
/opt/bin/oraenv and dbhome
/var/opt/oracle/*
ln -s /var/opt/oracle/listener.ora .
ln -s /var/opt/oracle/tnsnames.ora .


6 startup nomount
@cre_ctl.sql

7 Open resetlogs: alter database open resetlogs;

8 Change dbid ;
startup mount
nid target=/ (this command not on sqlplus)

startup mount;
alter database open resetlogs;

select dbid, name from v$database;

SQL> select dbid, name from v$database;

DBID NAME
---------- ---------
4134645123 CLONEDDB

9. add temp file:
alter tablespace TEMP add tempfile '/u04/oradata/CLONEDDB/CLONEDDB_temp01.dbf' size 4096M REUSE;

10 - start listener

11- copy dba directory to srv7 and configure cron (not done it yet)

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/14377/viewspace-1060424/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/14377/viewspace-1060424/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值