目的:在同一台机器上用rman 克隆库
环境:RedHat 4 + Oracle 10g
主库库名:db01
克隆库名: clonedb
1、主库db01 ,用rman进行备份(datafile、controlfile、archivelog file)
08:49:43 SQL> show parameter name ;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_file_name_convert string
db_name string cuug
db_unique_name string cuug
global_names boolean FALSE
instance_name string cuug
lock_name_space string
log_file_name_convert string
service_names string cuug
08:49:53 SQL> select current_scn from v$database;
CURRENT_SCN
-----------
1139339
08:50:17 SQL>
RMAN> run {
2> allocate channel c1 type disk;
3> allocate channel c2 type disk;
4> backup full database format '/disk2/rman/db01/hot_bak/%d_%s_%t.bak';
5> backup archivelog all format '/disk2/rman/db01/hot_bak/arch_%s.bak';
6> backup current controlfile format '/disk2/rman/db01/hot_bak/ctl_%s.bak';
7> }
08:58:59 SQL> col file_namr for a50
08:59:19 SQL> select file_id,file_name,tablespace_name from dba_data_files;
FILE_ID FILE_NAME TABLESPACE_NAME
---------- -------------------------------------------------- ------------------------------
5 /u01/app/oracle/oradata/db01/lxtb1.dbf LXTBS1
4 /u01/app/oracle/oradata/db01/users01.dbf USERS
3 /u01/app/oracle/oradata/db01/sysaux01.dbf SYSAUX
2 /u01/app/oracle/oradata/db01/rtbs01.dbf RTBS
1 /u01/app/oracle/oradata/db01/system01.dbf SYSTEM
8 /u01/app/oracle/oradata/db01/undotbs1.dbf UNDOTBS1
11 /u01/app/oracle/oradata/db01/tbsbig.dbf TBS_BIG
12 /u01/app/oracle/oradata/db01/indx01.dbf INDX
6 /u01/app/oracle/oradata/db01/lxtbs2.dbf LXTBS2
9 rows selected.
2、建立pfile 文件
08:59:31 SQL> create pfile from spfile;
File created.
3、建立克隆库的目录
[oracle@RH4 dbs]$ mkdir -p $ORACLE_BASE/admin/clonedb/bdump
[oracle@RH4 dbs]$ mkdir -p $ORACLE_BASE/admin/clonedb/cdump
[oracle@RH4 dbs]$ mkdir -p $ORACLE_BASE/admin/clonedb/udump
[oracle@RH4 dbs]$ mkdir -p $ORACLE_BASE/oradata/clonedb
4、将主库pfile 拷贝生成clone 库的pfile,并生成clone库的口令文件
[oracle@RH4 dbs]$ orapwd file=orapwclonedb.ora password=oracle entries=3;
[oracle@RH4 dbs]$ cp initdb01.ora initclonedb.ora
[oracle@RH4 dbs]$ vi initclonedb.ora
将db01 替换为 clonedb,并增加以下内容:
db_file_name_convert = ("/u01/app/oracle/oradata/db01" ,"/u01/app/oracle/oradata/clonedb")
log_file_name_convert = ("/disk1/oradata/db01","/disk1/oradata/clonedb","/disk2/oradata/db01","/disk2/oradata/clonedb")
5、将clone 库启动到nomount
[oracle@RH4 dbs]$ export ORACLE_SID=clonedb
[oracle@RH4 dbs]$ !sql
sqlplus '/as sysdba'
SQL*Plus: Release 10.2.0.1.0 - Production on Fri Mar 23 09:11:22 2012
Copyright (c) 1982, 2005, Oracle. All rights reserved.
Connected to an idle instance.
09:11:22 SQL> startup pfile=$ORACLE_HOME/dbs/initclonedb.ora nomount
ORACLE instance started.
Total System Global Area 314572800 bytes
Fixed Size 1219160 bytes
Variable Size 113247656 bytes
Database Buffers 197132288 bytes