[2025-06-20] RMAN 복제 DB 구성 Active Database 기능 실습 (12cR2에서 테스트)
RMAN Active Database Duplication은 소스
데이터베이스에 직접 연결해서 대상 서버로 데이터를 복사하는 방법이다.
소스 DB는
반드시 ARCHIVELOG 모드여야 한다.
11g에서는 이미지 복사(Image Copy) 방식으로 수행된다.
데이터파일 전체를 그대로 복사하기 때문에 사용하지 않는 블록도 포함된다.
예를 들어 데이터파일 크기가 31GB이고 실제 데이터는 10GB만 존재해도 네트워크로는
31GB가 전송된다.
또한 소스 서버에서 PUSH 방식으로 전송되므로 소스 서버의
부하가 크고 비효율적이다.
12c 이후부터는 Backupset 기반으로 Active
Duplication이 수행된다.
즉, 사용 중인 블록만 전송되기 때문에
데이터파일 크기가 31GB라도 실제 데이터 10GB만 네트워크로 전송된다.
이
방식은 네트워크 전송량이 줄고, 소스 서버 부하도 감소하여 훨씬 효율적이다.
정리하면, 11g에서는 빈 블록까지 포함해서 “31GB 전송”,
12c 이후에는 실제 데이터만 골라서 “10GB 전송”이라고 이해할 수
있다.
[실습 환경]
<소스>
OS : Oracle Linux Server 7.9 (Linux
rdb01d 5.4.17-2102.201.3.el7uek.x86_64)
DB : Oracle Database 12c Enterprise
Edition Release 12.2.0.1.0 - 64bit Production
(Database Jan 2022 Release Update : 12.2.0.1.220118 (33587128))
RAC1 :
rdb01d(192.168.0.31) : DRDB1
RAC2 : rdb02d(192.168.0.32) :
DRDB2
<타켓>
OS : Oracle Linux Server 7.9 (Linux
rdb01d 5.4.17-2102.201.3.el7uek.x86_64)
DB : Oracle Database 12c Enterprise
Edition Release 12.2.0.1.0 - 64bit Production
(Database Jan 2022 Release Update : 12.2.0.1.220118 (33587128))
SINGLE :
tdb01p(192.168.0.41) : DRDB로 복구
1. 소스와
타켓의 TNS 정보 확인
1-1. 소스
--RAC 1번 노드에서 작업
--리스너
확인
[+ASM1:grid@rdb01d][/home/grid]$ crsctl status resource ora.LISTENER.lsnr
-t
--------------------------------------------------------------------------------
Name
Target State
Server
State
details
--------------------------------------------------------------------------------
Local
Resources
--------------------------------------------------------------------------------
ora.LISTENER.lsnr
ONLINE ONLINE
rdb01d
STABLE
ONLINE ONLINE
rdb02d
STABLE
--------------------------------------------------------------------------------
[+ASM1:grid@rdb01d][/home/grid]$ srvctl config listener -listener
LISTENER
Name: LISTENER
Type: Database Listener
Network: 1, Owner:
grid
Home: <CRS home>
End points: TCP:1521
Listener is
enabled.
Listener is individually enabled on nodes:
Listener is
individually disabled on nodes:
[+ASM1:grid@rdb01d][/home/grid]$ lsnrctl status LISTENER
LSNRCTL for Linux: Version 12.2.0.1.0 - Production on 20-JUN-2025 22:15:48
Copyright (c) 1991, 2016, Oracle. All rights reserved.
Connectingto(DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=LISTENER)))
STATUS of the
LISTENER
------------------------
Alias
LISTENER
Version
TNSLSNR for Linux: Version 12.2.0.1.0 - Production
Start
Date
20-JUN-2025
12:40:06
Uptime
0 days 9 hr. 35 min. 41 sec
Trace
Level
off
Security
ON: Local OS
Authentication
SNMP
OFF
Listener Parameter File
/u01/app/12c/grid/network/admin/listener.ora
Listener Log
File
/u01/app/oracle/diag/tnslsnr/rdb01d/listener/alert/log.xml
Listening
Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=LISTENER)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.0.31)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.0.34)(PORT=1521)))
Services
Summary...
Service "+ASM" has 1 instance(s).
Instance "+ASM1",
status READY, has 1 handler(s) for this service...
Service "+ASM_CRS" has 1
instance(s).
Instance "+ASM1", status READY, has 1 handler(s) for this
service...
Service "+ASM_DATA1" has 1 instance(s).
Instance
"+ASM1", status READY, has 1 handler(s) for this service...
Service
"+ASM_FRA1" has 1 instance(s).
Instance "+ASM1", status READY, has 1
handler(s) for this service...
Service "+ASM_MGMT" has 1
instance(s).
Instance "+ASM1", status READY, has 1 handler(s) for this
service...
Service
"DRDB" has 1 instance(s).
Instance "DRDB1", status READY, has 1
handler(s) for this service...
Service "DRDBXDB" has 1 instance(s).
Instance "DRDB1", status READY, has 1 handler(s) for this service...
Service
"DRDB_CFG" has 1 instance(s).
Instance "DRDB1", status READY, has 1
handler(s) for this service...
Service "DRDB_DGB" has 1
instance(s).
Instance "DRDB1", status READY, has 1 handler(s) for this
service...
The command completed successfully
--위의 정보를 토대로 아래의 TNS 정보를
구성함
DRDB
=
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST =
192.168.0.34)(PORT = 1521))
(CONNECT_DATA
=
(SERVER =
DEDICATED)
(SERVICE_NAME =
DRDB)
)
)
--> 192.168.0.34 는 rac 1번 노드의 vip임
1-2. 타켓의 TNS 정보
확인
[DRDB:oracle@tdb01p][/home/oracle]$
ifconfig
enp0s3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu
1500
inet 192.168.0.41
netmask 255.255.255.0 broadcast
192.168.0.255
inet6
fe80::a00:27ff:fea8:67ad prefixlen 64 scopeid
0x20<link>
ether
08:00:27:a8:67:ad txqueuelen 1000
(Ethernet)
RX packets 912181
bytes 59689617 (56.9 MiB)
RX
errors 0 dropped 0 overruns 0 frame
0
TX packets 1635918 bytes
195446245 (186.3 MiB)
TX errors
0 dropped 0 overruns 0 carrier 0 collisions
0
lo:
flags=73<UP,LOOPBACK,RUNNING> mtu
65536
inet 127.0.0.1 netmask
255.0.0.0
inet6 ::1
prefixlen 128 scopeid
0x10<host>
loop
txqueuelen 1000 (Local
Loopback)
RX packets 47481
bytes 4690462 (4.4 MiB)
RX errors
0 dropped 0 overruns 0 frame
0
TX packets 47481 bytes
4690462 (4.4 MiB)
TX errors
0 dropped 0 overruns 0 carrier 0 collisions
0
[DRDB:oracle@tdb01p][/home/oracle]$ lsnrctl status LISTENER
LSNRCTL for Linux: Version 12.2.0.1.0 - Production on 20-JUN-2025 22:24:00
Copyright (c) 1991, 2016, Oracle. All rights reserved.
Connectingto(ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))
STATUS of the
LISTENER
------------------------
Alias
LISTENER
Version
TNSLSNR for Linux: Version 12.2.0.1.0 - Production
Start
Date
17-JUN-2025
22:04:59
Uptime
3 days 0 hr. 19 min. 1 sec
Trace
Level
off
Security
ON: Local OS
Authentication
SNMP
OFF
Listener Parameter File
/u01/app/12c/grid/network/admin/listener.ora
Listener Log
File
/u01/app/oracle/diag/tnslsnr/tdb01p/listener/alert/log.xml
Listening
Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=tdb01p)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
Services
Summary...
Service "+ASM" has 1 instance(s).
Instance "+ASM",
status READY, has 1 handler(s) for this service...
Service "+ASM_DATA1" has 1
instance(s).
Instance "+ASM", status READY, has 1 handler(s) for this
service...
Service "+ASM_FRA1" has 1 instance(s).
Instance "+ASM",
status READY, has 1 handler(s) for this service...
Service "PTDB" has 1
instance(s).
Instance "PTDB", status READY, has 1 handler(s) for this
service...
Service "PTDBXDB" has 1 instance(s).
Instance "PTDB",
status READY, has 1 handler(s) for this service...
The command completed
successfully
--위의 정보를 토대로 아래의 TNS 정보를 구성함
CDRDB
=
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST =
192.168.0.41)(PORT = 1522))
(CONNECT_DATA
=
(SERVER =
DEDICATED)
(SERVICE_NAME =
CDRDB)
)
)
--> 포트는
1522로 할것임
2. 소스와 타켓의 tnsnames.ora
세팅
2-1. 소스
[DRDB1:oracle@rdb01d][/home/oracle]$ alias
cdt
alias cdt='cd $ORACLE_HOME/network/admin'
[DRDB1:oracle@rdb01d][/home/oracle]$ cdt
[DRDB1:oracle@rdb01d][/u01/app/oracle/product/12c/db_1/network/admin]$
vi
tnsnames.ora
[DRDB1:oracle@rdb01d][/u01/app/oracle/product/12c/db_1/network/admin]$
cat tnsnames.ora
# tnsnames.ora Network Configuration
File: /u01/app/oracle/product/12c/db_1/network/admin/tnsnames.ora
# Generated
by Oracle configuration tools.
--소스임
DRDB
=
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST =
192.168.0.34)(PORT = 1521))
(CONNECT_DATA
=
(SERVER =
DEDICATED)
(SERVICE_NAME =
DRDB)
)
)
--타켓임
CDRDB
=
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST =
192.168.0.41)(PORT = 1522))
(CONNECT_DATA
=
(SERVER =
DEDICATED)
(SERVICE_NAME =
CDRDB)
)
)
2-2. 타켓
[DRDB:oracle@tdb01p][/home/oracle]$ alias cdt
alias cdt='cd
$ORACLE_HOME/network/admin'
[DRDB:oracle@tdb01p][/home/oracle]$ cdt
[DRDB:oracle@tdb01p][/u01/app/oracle/product/12c/db_1/network/admin]$
vi
tnsnames.ora
[DRDB:oracle@tdb01p][/u01/app/oracle/product/12c/db_1/network/admin]$
cat tnsnames.ora
# tnsnames.ora Network Configuration
File: /u01/app/oracle/product/12c/db_1/network/admin/tnsnames.ora
# Generated
by Oracle configuration tools.
LISTENER_PTDB =
(ADDRESS = (PROTOCOL = TCP)(HOST = tdb01p)(PORT =
1521))
PTDB
=
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST =
tdb01p)(PORT = 1521))
(CONNECT_DATA
=
(SERVER =
DEDICATED)
(SERVICE_NAME =
PTDB)
)
)
--소스임
DRDB
=
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST =
192.168.0.34)(PORT = 1521))
(CONNECT_DATA
=
(SERVER =
DEDICATED)
(SERVICE_NAME =
DRDB)
)
)
--타켓임
CDRDB
=
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST =
192.168.0.41)(PORT = 1522))
(CONNECT_DATA
=
(SERVER =
DEDICATED)
(SERVICE_NAME =
CDRDB)
)
)
3. 타켓에 정적 리스너 등록 및 시작
[DRDB:oracle@tdb01p][/u01/app/oracle/product/12c/db_1/network/admin]$
echo $ORACLE_HOME
/u01/app/oracle/product/12c/db_1
[+ASM:grid@tdb01p][/home/grid]$ alias cdt
alias cdt='cd
$ORACLE_HOME/network/admin'
[+ASM:grid@tdb01p][/home/grid]$
cdt
[+ASM:grid@tdb01p][/u01/app/12c/grid/network/admin]$ vi
listener.ora
[+ASM:grid@tdb01p][/u01/app/12c/grid/network/admin]$ cat
listener.ora
#Backup file is
/u01/app/12c/grid/network/admin/listener.ora.bak.tdb01p line added by Agent
#
listener.ora Network Configuration File:
/u01/app/12c/grid/network/admin/listener.ora
# Generated by Oracle
configuration tools.
LISTENER
=
(DESCRIPTION_LIST =
(DESCRIPTION
=
(ADDRESS = (PROTOCOL = TCP)(HOST =
tdb01p)(PORT = 1521))
(ADDRESS = (PROTOCOL =
IPC)(KEY = EXTPROC1521))
)
)
ENABLE_GLOBAL_DYNAMIC_ENDPOINT_LISTENER=ON
# line added by
Agent
VALID_NODE_CHECKING_REGISTRATION_LISTENER=SUBNET
# line added by Agent
LISTENER_CDRDB =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL =
TCP)(HOST = 192.168.0.41)(PORT = 1522))
)
)
SID_LIST_LISTENER_CDRDB =
(SID_LIST
=
(SID_DESC
=
(GLOBAL_DBNAME =
CDRDB)
(ORACLE_HOME =
/u01/app/oracle/product/12c/db_1)
(SID_NAME =
CDRDB)
)
)
--등록한 정적 리스너
시작
[+ASM:grid@tdb01p][/u01/app/12c/grid/network/admin]$ lsnrctl start
LISTENER_CDRDB
LSNRCTL for Linux: Version 12.2.0.1.0 - Production on 20-JUN-2025 22:37:52
Copyright (c) 1991, 2016, Oracle. All rights reserved.
Starting /u01/app/12c/grid/bin/tnslsnr: please wait...
TNSLSNR for
Linux: Version 12.2.0.1.0 - Production
System parameter file is
/u01/app/12c/grid/network/admin/listener.ora
Log messages written to
/u01/app/oracle/diag/tnslsnr/tdb01p/listener_cdrdb/alert/log.xml
Listeningon:(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.0.41)(PORT=1522)))
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.0.41)(PORT=1522)))
STATUS
of the
LISTENER
------------------------
Alias
LISTENER_CDRDB
Version
TNSLSNR for Linux: Version 12.2.0.1.0 - Production
Start
Date
20-JUN-2025
22:37:53
Uptime
0 days 0 hr. 0 min. 0 sec
Trace
Level
off
Security
ON: Local OS
Authentication
SNMP
OFF
Listener Parameter File
/u01/app/12c/grid/network/admin/listener.ora
Listener Log
File
/u01/app/oracle/diag/tnslsnr/tdb01p/listener_cdrdb/alert/log.xml
Listening
Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.0.41)(PORT=1522)))
Services
Summary...
Service "CDRDB" has 1 instance(s).
Instance "CDRDB", status
UNKNOWN, has 1 handler(s) for this service...
The command completed
successfully
--소스에서 타켓의 리스너로 붙을 수 있는 지
확인
[DRDB1:oracle@rdb01d][/u01/app/oracle/product/12c/db_1/network/admin]$
tnsping 192.168.0.41:1522
TNS Ping Utility for Linux: Version 12.2.0.1.0 - Production on 20-JUN-2025 22:39:26
Copyright (c) 1997, 2016, Oracle. All rights reserved.
Used parameter files:
Used
HOSTNAME adapter to resolve the alias
Attemptingtocontact(DESCRIPTION=(CONNECT_DATA=(SERVICE_NAME=))(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.0.41)(PORT=1522)))
OK
(30 msec)
--타켓에서 소스의 리스너로 붙을 수 있는지
확인
[+ASM:grid@tdb01p][/u01/app/12c/grid/network/admin]$ tnsping
192.168.0.41:1521
TNS Ping Utility for Linux: Version 12.2.0.1.0 - Production on 20-JUN-2025 23:11:11
Copyright (c) 1997, 2016, Oracle. All rights reserved.
Used
parameter
files:
/u01/app/12c/grid/network/admin/sqlnet.ora
Used
EZCONNECT adapter to resolve the alias
Attemptingtocontact(DESCRIPTION=(CONNECT_DATA=(SERVICE_NAME=))(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.0.41)(PORT=1521)))
OK
(10 msec)
4. 소스에서
pfile 생성 한 후 타켓으로 가져오기
[DRDB1:oracle@rdb01d][/home/oracle]$ alias ss
alias ss='rlwrap sqlplus "/as
sysdba"'
[DRDB1:oracle@rdb01d][/home/oracle]$
ss
SQL*Plus: Release 12.2.0.1.0 Production on Fri Jun 20 23:28:17 2025
Copyright (c) 1982, 2016, Oracle. All rights reserved.
Connected to:
Oracle Database 12c Enterprise Edition Release
12.2.0.1.0 - 64bit Production
[2025-06-20:23:28:17][rdb01d]<SYS@DRDB1> create pfile from spfile;
File created.
Elapsed: 00:00:00.08
[2025-06-20:23:28:17][rdb01d]<SYS@DRDB1> quit
Disconnected from Oracle Database 12c Enterprise Edition Release
12.2.0.1.0 - 64bit Production
[DRDB1:oracle@rdb01d][/home/oracle]$ alias
cdod
alias cdod='cd $ORACLE_HOME/dbs'
[DRDB1:oracle@rdb01d][/home/oracle]$
cdod
[DRDB1:oracle@rdb01d][/u01/app/oracle/product/12c/db_1/dbs]$ ls
-alrt
total 20376
-rw-r--r--. 1 oracle
oinstall 3079 May 15 2015 init.ora
drwxr-xr-x.
77 oracle oinstall 4096 Mar 19 23:10
..
-rw-rw----. 1 oracle asmadmin 1544 Apr
5 11:10 hc_DRDBC.dat
-rw-r-----. 1 oracle asmadmin
23040 Apr 9 00:08 spfileDRDB1.ora
-rw-r-----. 1 oracle
asmadmin 12288 Apr 26 18:53 dr2DRDB.dat
-rw-r-----. 1
oracle asmadmin 12288 Apr 26 18:53
dr1DRDB.dat
-rw-r-----. 1 oracle asmadmin 20791296 Apr 29 18:19
snapcf_DRDB1.f
drwxr-xr-x. 2 oracle oinstall
4096 Jun 20 12:40 .
-rw-rw----. 1 oracle
asmadmin 1544 Jun 20 12:50 hc_DRDB1.dat
-rw-r--r--. 1 oracle
asmadmin 2905 Jun 20 23:28
initDRDB1.ora
--> initDRDB1.ora 파일이
생김
-- 소스에서 타켓으로 생성한 파라미터 파일 scp 전송
(전송하면서 전송하는 파일의 이름을 initCDRDB.ora 로 함)
[DRDB1:oracle@rdb01d][/u01/app/oracle/product/12c/db_1/dbs]$ scp
/u01/app/oracle/product/12c/db_1/dbs/initDRDB1.ora
192.168.0.41:/u01/app/oracle/product/12c/db_1/dbs/initCDRDB.ora
oracle@192.168.0.41's
password:
initDRDB1.ora
100% 2905 654.6KB/s 00:00
--타켓에서
확인
[DRDB:oracle@tdb01p][/home/oracle]$ alias
cdod
alias cdod='cd $ORACLE_HOME/dbs'
[DRDB:oracle@tdb01p][/home/oracle]$
cdod
[DRDB:oracle@tdb01p][/u01/app/oracle/product/12c/db_1/dbs]$ ls
-arlt
total 30696
-rw-r--r--. 1 oracle
oinstall 3079 May 15 2015
init.ora
-rw-r-----. 1 oracle
asmadmin 24 Feb 9 19:12
lkPTDB
-rw-r-----. 1 oracle oinstall 3584
Feb 9 19:14 orapwPTDB
drwxrwxr-x. 77 oracle
oinstall 4096 Feb 9 19:18 ..
-rw-r--r--.
1 oracle asmadmin 3573 Feb 10 00:24
initPTDB.ora
-rw-r-----. 1 oracle asmadmin 10600448 Feb 10 00:27
snapcf_PTDB.f
-rw-r-----. 1 oracle
asmadmin 24 Apr 23 23:31
lkDRDB_STB
-rw-r-----. 1 oracle asmadmin 20791296 Jun 8 23:31
snapcf_DRDB.f
-rw-rw----. 1 oracle asmadmin
1544 Jun 10 18:17 hc_DRDB.dat
-rw-rw----. 1 oracle
asmadmin 1544 Jun 17 22:06
hc_PTDB.dat
drwxr-xr-x. 2 oracle oinstall 4096
Jun 20 23:32 .
-rw-r--r--. 1
oracle oinstall 2905 Jun 20 23:32
initCDRDB.ora
[DRDB:oracle@tdb01p][/u01/app/oracle/product/12c/db_1/dbs]$ cat
initCDRDB.ora
DRDB1.__data_transfer_cache_size=0
DRDB2.__data_transfer_cache_size=0
DRDB1.__db_cache_size=3774873600
DRDB2.__db_cache_size=3774873600
DRDB1.__inmemory_ext_roarea=0
DRDB2.__inmemory_ext_roarea=0
DRDB1.__inmemory_ext_rwarea=0
DRDB2.__inmemory_ext_rwarea=0
DRDB1.__java_pool_size=16777216
DRDB2.__java_pool_size=16777216
DRDB1.__large_pool_size=33554432
DRDB2.__large_pool_size=33554432
DRDB1.__oracle_base='/u01/app/oracle'#ORACLE_BASE
set from environment
DRDB2.__oracle_base='/u01/app/oracle'#ORACLE_BASE set
from
environment
DRDB1.__pga_aggregate_target=1694498816
DRDB2.__pga_aggregate_target=1694498816
DRDB1.__sga_target=5033164800
DRDB2.__sga_target=5033164800
DRDB1.__shared_io_pool_size=268435456
DRDB2.__shared_io_pool_size=268435456
DRDB1.__shared_pool_size=922746880
DRDB2.__shared_pool_size=922746880
DRDB1.__streams_pool_size=0
DRDB2.__streams_pool_size=0
*.archive_lag_target=0
*.audit_file_dest='/u01/app/oracle/admin/DRDB/adump'
*.audit_trail='db'
*.cluster_database=true
*.compatible='12.2.0'
*.control_files='+FRA1/DRDB/CONTROLFILE/current.256.1196204797','+DATA1/DRDB/CONTROLFILE/current.261.1196204797'
*.data_guard_sync_latency=0
*.db_block_size=8192
*.db_create_file_dest='+DATA1'
*.db_create_online_log_dest_1='+FRA1'
*.db_create_online_log_dest_2='+DATA1'
*.db_file_name_convert='DRDB_STB','DRDB'
*.db_flashback_retention_target=2880
*.db_name='DRDB'
*.db_recovery_file_dest='+FRA1'
*.db_recovery_file_dest_size=26492m
*.dg_broker_config_file1='+DATA1/ADG/dr1DRDB.dat'
*.dg_broker_config_file2='+DATA1/ADG/dr2DRDB.dat'
*.dg_broker_start=TRUE
*.diagnostic_dest='/u01/app/oracle'
*.dispatchers='(PROTOCOL=TCP)
(SERVICE=DRDBXDB)'
*.fal_client='TNS_DRDB'
*.fal_server=''
family:dw_helper.instance_mode='read-only'
DRDB1.instance_number=1
DRDB2.instance_number=2
*.local_listener='-oraagent-dummy-'
*.log_archive_config='DG_CONFIG=(DRDB,DRDB_STB)'
*.log_archive_dest_1='LOCATION=+FRA1
VALID_FOR=(ALL_LOGFILES,ALL_ROLES)
DB_UNIQUE_NAME=DRDB'
*.log_archive_dest_2='service="tns_drdb_stb"','ASYNC
NOAFFIRM delay=0 optional compression=disable max_failure=0 max_connections=1
reopen=300 db_unique_name=
"drdb_stb"net_timeout=30','valid_for=(online_logfile,all_roles)'
*.log_archive_dest_state_2='RESET'
DRDB1.log_archive_format='%t_%s_%r.dbf'
DRDB2.log_archive_format='%t_%s_%r.dbf'
*.log_archive_max_processes=8
*.log_archive_min_succeed_dest=1
DRDB1.log_archive_trace=255
DRDB2.log_archive_trace=255
*.log_file_name_convert='DRDB_STB','DRDB'
*.nls_language='AMERICAN'
*.nls_territory='KOREA'
*.open_cursors=300
*.optimizer_adaptive_plans=FALSE
*.optimizer_adaptive_reporting_only=TRUE
*.optimizer_adaptive_statistics=FALSE
*.optimizer_dynamic_sampling=0
*.pga_aggregate_target=1601m
*.processes=320
*.remote_login_passwordfile='exclusive'
*.sga_target=4800m
*.standby_file_management='AUTO'
DRDB2.thread=2
DRDB1.thread=1
DRDB2.undo_tablespace='UNDOTBS2'
DRDB1.undo_tablespace='UNDOTBS1'
5. 타켓에서
소스에서 가져온 pfile을 변경
--소스에서 데이티 파일과 redo log 위치 확인
[2025-06-20:23:49:01][rdb01d]<SYS@DRDB1> col name for
a50
[2025-06-20:23:49:01][rdb01d]<SYS@DRDB1> select name from v$datafile;
NAME
--------------------------------------------------
+DATA1/DRDB/DATAFILE/system.257.1196204603
+DATA1/DRDB/DATAFILE/tuner_data1.269.1197155159
+DATA1/DRDB/DATAFILE/sysaux.258.1196204689
+DATA1/DRDB/DATAFILE/undotbs1.259.1196204725
+DATA1/DRDB/DATAFILE/undotbs2.265.1196204885
+DATA1/DRDB/DATAFILE/users.260.1196204725
+DATA1/DRDB/DATAFILE/tuner_idx1.270.1197155177
7 rows selected.
Elapsed: 00:00:00.04
[2025-06-20:23:49:01][rdb01d]<SYS@DRDB1> col member for
a50
[2025-06-20:23:49:01][rdb01d]<SYS@DRDB1> select member from v$logfile;
MEMBER
--------------------------------------------------
+FRA1/DRDB/ONLINELOG/group_2.258.1196204803
+DATA1/DRDB/ONLINELOG/group_2.262.1196204803
+FRA1/DRDB/ONLINELOG/group_1.257.1196204803
+DATA1/DRDB/ONLINELOG/group_1.263.1196204805
+FRA1/DRDB/ONLINELOG/group_3.259.1196204957
+DATA1/DRDB/ONLINELOG/group_3.266.1196204959
+FRA1/DRDB/ONLINELOG/group_4.260.1196204965
+DATA1/DRDB/ONLINELOG/group_4.267.1196204967
+DATA1/DRDB/ONLINELOG/group_5.279.1199229347
+FRA1/DRDB/ONLINELOG/group_5.443.1199229351
+DATA1/DRDB/ONLINELOG/group_6.278.1199229355
+FRA1/DRDB/ONLINELOG/group_6.444.1199229359
+DATA1/DRDB/ONLINELOG/group_7.275.1199229363
+FRA1/DRDB/ONLINELOG/group_7.445.1199229367
+DATA1/DRDB/ONLINELOG/group_8.276.1199229369
+FRA1/DRDB/ONLINELOG/group_8.446.1199229371
+DATA1/DRDB/ONLINELOG/group_9.273.1199229373
+FRA1/DRDB/ONLINELOG/group_9.447.1199229375
+DATA1/DRDB/ONLINELOG/group_10.272.1199229377
+FRA1/DRDB/ONLINELOG/group_10.448.1199229377
+DATA1/DRDB/ONLINELOG/group_11.277.1200525255
+FRA1/DRDB/ONLINELOG/group_11.304.1200525261
+DATA1/DRDB/ONLINELOG/group_12.280.1200525269
+FRA1/DRDB/ONLINELOG/group_12.314.1200525277
+DATA1/DRDB/ONLINELOG/group_13.281.1200525285
+FRA1/DRDB/ONLINELOG/group_13.311.1200525295
+DATA1/DRDB/ONLINELOG/group_14.282.1200525309
+FRA1/DRDB/ONLINELOG/group_14.315.1200525315
28 rows selected.
Elapsed: 00:00:00.00
[2025-06-21:00:33:47][rdb01d]<SYS@DRDB1> select file#, name from v$tempfile;
FILE# NAME
----------
--------------------------------------------------
1
+DATA1/DRDB/TEMPFILE/temp.264.1196204817
2 +DATA1/DRDB/TEMPFILE/tuner_temp.271.1197155195
2 rows selected.
Elapsed: 00:00:00.08
[DRDB:oracle@tdb01p][/u01/app/oracle/product/12c/db_1/dbs]$ vi
/u01/app/oracle/product/12c/db_1/dbs/initCDRDB.ora
[DRDB:oracle@tdb01p][/u01/app/oracle/product/12c/db_1/dbs]$
cat
/u01/app/oracle/product/12c/db_1/dbs/initCDRDB.ora
*.audit_file_dest='/u01/app/oracle/admin/CDRDB/adump'
*.audit_trail='db'
*.cluster_database=false
*.compatible='12.2.0'
*.control_files='/home/oracle/CDRDB/control_file_01.ctl'
*.db_block_size=8192
*.db_create_file_dest='/home/oracle/CDRDB/DATAFILE'
*.db_create_online_log_dest_1='/home/oracle/CDRDB/ONLINELOG'
*.db_name='CDRDB'
*.diagnostic_dest='/u01/app/oracle'
*.dispatchers='(PROTOCOL=TCP)
(SERVICE=CDRDBXDB)'
family:dw_helper.instance_mode='read-only'
*.instance_number=1
*.log_archive_dest_1='LOCATION=/home/oracle/CDRDB/ARCH'
*.log_archive_format='%t_%s_%r.dbf'
*.nls_language='AMERICAN'
*.nls_territory='KOREA'
*.open_cursors=300
*.optimizer_adaptive_plans=FALSE
*.optimizer_adaptive_reporting_only=TRUE
*.optimizer_adaptive_statistics=FALSE
*.optimizer_dynamic_sampling=0
*.pga_aggregate_target=1601m
*.processes=320
*.remote_login_passwordfile='exclusive'
*.sga_target=4800m
*.standby_file_management='AUTO'
*.undo_tablespace='UNDOTBS1'
*.log_file_name_convert='+FRA1/DRDB/ONLINELOG','/home/oracle/CDRDB/ONLINELOG/MEMBER_1','+DATA1/DRDB/ONLINELOG','/home/oracle/CDRDB/ONLINELOG/MEMBER_2'
*.db_file_name_convert='+DATA1/DRDB/DATAFILE','/home/oracle/CDRDB/DATAFILE'
--타켓 DB가 필요한 디렉토리 생성
[DRDB:oracle@tdb01p][/home/oracle]$ mkdir -pv
/u01/app/oracle/admin/CDRDB/adump
mkdir: created directory
‘/u01/app/oracle/admin/CDRDB’
mkdir: created directory
‘/u01/app/oracle/admin/CDRDB/adump’
[DRDB:oracle@tdb01p][/home/oracle]$ mkdir -pv
/home/oracle/CDRDB/
mkdir: created directory
‘/home/oracle/CDRDB/’
[DRDB:oracle@tdb01p][/home/oracle]$ mkdir -pv
/home/oracle/CDRDB/DATAFILE
mkdir: created directory
‘/home/oracle/CDRDB/DATAFILE’
[DRDB:oracle@tdb01p][/home/oracle]$ mkdir -pv
/home/oracle/CDRDB/ONLINELOG
mkdir: created directory
‘/home/oracle/CDRDB/ONLINELOG’
[DRDB:oracle@tdb01p][/home/oracle]$ mkdir -pv
/home/oracle/CDRDB/ARCH
mkdir: created directory
‘/home/oracle/CDRDB/ARCH’
[DRDB:oracle@tdb01p][/home/oracle]$ mkdir -pv
/home/oracle/CDRDB/ONLINELOG/MEMBER_1
mkdir: created directory
‘/home/oracle/CDRDB/ONLINELOG/MEMBER_1’
[DRDB:oracle@tdb01p][/home/oracle]$ mkdir -pv
/home/oracle/CDRDB/ONLINELOG/MEMBER_2
mkdir: created directory
‘/home/oracle/CDRDB/ONLINELOG/MEMBER_2’
[DRDB:oracle@tdb01p][/home/oracle]$ mkdir -pv /home/oracle/CDRDB/TEMPFILE
6. 소스의
orapw 파일을 타켓으로 복사함
--> 소스에서 orapw 파일 확인
[DRDB1:oracle@rdb01d][/home/oracle]$ srvctl config database -db
drdb
Database unique name: DRDB
Database name:
Oracle home:
/u01/app/oracle/product/12c/db_1
Oracle user: oracle
Spfile:
+DATA1/DRDB/PARAMETERFILE/spfile.268.1198106043
Password file:
+DATA1/DRDB/PASSWORD/pwddrdb.256.1196204543
Domain:
Start options:
open
Stop options: immediate
Database role: PRIMARY
Management policy:
AUTOMATIC
Server pools:
Disk Groups: FRA1,DATA1
Mount point
paths:
Services:
Type: RAC
Start concurrency:
Stop
concurrency:
OSDBA group: dba
OSOPER group: oper
Database instances:
DRDB1,DRDB2
Configured nodes: rdb01d,rdb02d
CSS critical: no
CPU count:
0
Memory target: 0
Maximum memory: 0
Default network number for
database services:
Database is administrator
managed
[+ASM1:grid@rdb01d][/home/grid]$ asmcmd cp
+DATA1/DRDB/PASSWORD/pwddrdb.256.1196204543
/tmp/orapwDRDB
copying
+DATA1/DRDB/PASSWORD/pwddrdb.256.1196204543 ->
/tmp/orapwDRDB
--orapw 파일을 소스에서 타켓으로 scp
전송
[+ASM1:grid@rdb01d][/home/grid]$ chmod 775
/tmp/orapwDRDB
[DRDB1:oracle@rdb01d][/home/oracle]$ scp /tmp/orapwDRDB
192.168.0.41:/home/oracle/CDRDB/orapwCDRDB
oracle@192.168.0.41's password:
orapwDRDB
100% 3584 880.3KB/s 00:00
--타켓에서
확인
[DRDB:oracle@tdb01p][/home/oracle/CDRDB]$ ls -sl
/home/oracle/CDRDB/orapwCDRDB
4 -rwxr-xr-x. 1 oracle oinstall 3584
Jun 21 00:06 /home/oracle/CDRDB/orapwCDRDB
--기본 경로로
복사
[PTDB:oracle@tdb01p][/u01/app/oracle/product/12c/db_1/dbs]$ cp
/home/oracle/CDRDB/orapwCDRDB
/u01/app/oracle/product/12c/db_1/dbs/orapwCDRDB
7. 타켓 DB의 인스턴스를 nomount 모드로 시작
[DRDB:oracle@tdb01p][/home/oracle/CDRDB]$ export
ORACLE_SID=CDRDB
[CDRDB:oracle@tdb01p][/home/oracle/CDRDB]$ sqlplus "/as sysdba"
SQL*Plus: Release 12.2.0.1.0 Production on Sat Jun 21 00:15:59 2025
Copyright (c) 1982, 2016, Oracle. All rights reserved.
Connected to an idle instance.
[25/06/21][tdb01p]<SYS@CDRDB> startup nomount
pfile='/u01/app/oracle/product/12c/db_1/dbs/initCDRDB.ora';
ORACLE instance
started.
Total
System Global Area 5033164800 bytes
Fixed
Size
8631048 bytes
Variable
Size
1056967928 bytes
Database
Buffers 3959422976 bytes
Redo
Buffers
8142848 bytes
8. 타켓 서버에서 rman 접속 시 target은 소스DB로 붙고 auxiliary는 타켓DB로 붙은 후 active database 시작
[PTDB:oracle@tdb01p][/home/oracle]$ mkdir -pv
/home/oracle/CDRDB/TEMPFILE
mkdir: created directory
‘/home/oracle/CDRDB/TEMPFILE’
[CDRDB:oracle@tdb01p][/home/oracle/CDRDB]$ rlwrap rman target
sys/"Oracle123$"@DRDB auxiliary sys/"Oracle123$"@CDRDB
Recovery Manager: Release 12.2.0.1.0 - Production on Sat Jun 21 00:27:33 2025
Copyright (c) 1982, 2017, Oracle and/or its affiliates. All rights reserved.
connected
to target database: DRDB (DBID=1008397436)
connected to auxiliary database:
CDRDB (not mounted)
RMAN>
run
{
allocate channel src1 type disk;
allocate
channel src2 type disk;
allocate auxiliary channel aux1 type
disk;
allocate auxiliary channel aux2 type disk;
allocate auxiliary
channel aux3 type disk;
allocate auxiliary channel aux4 type disk;
SET
NEWNAME for tempfile 1 to
'/home/oracle/CDRDB/TEMPFILE/temp.264.1196204817';
SET NEWNAME for tempfile 2
to '/home/oracle/CDRDB/TEMPFILE/tuner_temp.271.1197155195';
duplicate target
database to CDRDB from active database USING BACKUPSET;
}
using
target database control file instead of recovery catalog
allocated channel:
src1
channel src1: SID=11 instance=DRDB1 device type=DISK
allocated
channel: src2
channel src2: SID=14 instance=DRDB1 device
type=DISK
allocated
channel: aux1
channel aux1: SID=261 device type=DISK
allocated
channel: aux2
channel aux2: SID=379 device type=DISK
allocated
channel: aux3
channel aux3: SID=11 device type=DISK
allocated
channel: aux4
channel aux4: SID=137 device type=DISK
executing command: SET NEWNAME
executing command: SET NEWNAME
Starting
Duplicate Db at 25/06/21
current log archived
contents of
Memory Script:
{
sql clone "create spfile from
memory";
}
executing Memory Script
sql statement: create spfile from memory
contents of
Memory Script:
{
shutdown clone immediate;
startup clone nomount;
}
executing Memory Script
Oracle instance shut down
connected
to auxiliary database (not started)
Oracle instance
started
Total System Global Area 5033164800 bytes
Fixed
Size
8631048 bytes
Variable
Size
1056967928 bytes
Database
Buffers
3959422976 bytes
Redo
Buffers
8142848 bytes
allocated channel: aux1
channel aux1: SID=261 device
type=DISK
allocated channel: aux2
channel aux2: SID=379 device
type=DISK
allocated channel: aux3
channel aux3: SID=10 device
type=DISK
allocated channel: aux4
channel aux4: SID=137 device
type=DISK
contents of
Memory Script:
{
sql clone "alter system set db_name
=
''DRDB'' comment=
''Modified by RMAN duplicate''
scope=spfile";
sql clone "alter system set db_unique_name
=
''CDRDB'' comment=
''Modified by RMAN duplicate''
scope=spfile";
shutdown clone immediate;
startup
clone force nomount
restore clone from service 'DRDB'
primary controlfile;
alter clone database
mount;
}
executing Memory Script
sql statement: alter system set db_name = ''DRDB'' comment= ''Modified by RMAN duplicate'' scope=spfile
sql statement: alter system set db_unique_name = ''CDRDB'' comment= ''Modified by RMAN duplicate'' scope=spfile
Oracle instance shut down
Oracle instance started
Total System Global Area 5033164800 bytes
Fixed
Size
8631048 bytes
Variable
Size
1056967928 bytes
Database
Buffers
3959422976 bytes
Redo
Buffers
8142848 bytes
allocated channel: aux1
channel aux1: SID=261 device
type=DISK
allocated channel: aux2
channel aux2: SID=379 device
type=DISK
allocated channel: aux3
channel aux3: SID=10 device
type=DISK
allocated channel: aux4
channel aux4: SID=137 device
type=DISK
Starting restore at 25/06/21
channel
aux1: starting datafile backup set restore
channel aux1: using network backup
set from service DRDB
channel aux1: restoring control file
channel aux1:
restore complete, elapsed time: 00:00:03
output file
name=/home/oracle/CDRDB/control_file_01.ctl
Finished restore at
25/06/21
database mounted
contents of
Memory Script:
{
sql clone 'alter database flashback
off';
set newname for datafile 1
to
"/home/oracle/CDRDB/DATAFILE/system.257.1196204603";
set newname for datafile 2
to
"/home/oracle/CDRDB/DATAFILE/tuner_data1.269.1197155159";
set newname for datafile 3
to
"/home/oracle/CDRDB/DATAFILE/sysaux.258.1196204689";
set newname for datafile 4
to
"/home/oracle/CDRDB/DATAFILE/undotbs1.259.1196204725";
set newname for datafile 5
to
"/home/oracle/CDRDB/DATAFILE/undotbs2.265.1196204885";
set newname for datafile 7
to
"/home/oracle/CDRDB/DATAFILE/users.260.1196204725";
set newname for datafile 8
to
"/home/oracle/CDRDB/DATAFILE/tuner_idx1.270.1197155177";
restore
from nonsparse from
service
'DRDB' clone database
;
sql 'alter system archive log current';
}
executing
Memory Script
sql statement: alter database flashback off
executing command: SET NEWNAME
executing command: SET NEWNAME
executing command: SET NEWNAME
executing command: SET NEWNAME
executing command: SET NEWNAME
executing command: SET NEWNAME
executing command: SET NEWNAME
Starting restore at 25/06/21
channel
aux1: starting datafile backup set restore
channel aux1: using network backup
set from service DRDB
channel aux1: specifying datafile(s) to restore from
backup set
channel aux1: restoring datafile 00001 to
/home/oracle/CDRDB/DATAFILE/system.257.1196204603
channel aux2: starting
datafile backup set restore
channel aux2: using network backup set from
service DRDB
channel aux2: specifying datafile(s) to restore from backup
set
channel aux2: restoring datafile 00002 to
/home/oracle/CDRDB/DATAFILE/tuner_data1.269.1197155159
channel aux3: starting
datafile backup set restore
channel aux3: using network backup set from
service DRDB
channel aux3: specifying datafile(s) to restore from backup
set
channel aux3: restoring datafile 00003 to
/home/oracle/CDRDB/DATAFILE/sysaux.258.1196204689
channel aux4: starting
datafile backup set restore
channel aux4: using network backup set from
service DRDB
channel aux4: specifying datafile(s) to restore from backup
set
channel aux4: restoring datafile 00004 to
/home/oracle/CDRDB/DATAFILE/undotbs1.259.1196204725
channel aux4: restore
complete, elapsed time: 00:00:26
channel aux4: starting datafile backup set
restore
channel aux4: using network backup set from service DRDB
channel
aux4: specifying datafile(s) to restore from backup set
channel aux4:
restoring datafile 00005 to
/home/oracle/CDRDB/DATAFILE/undotbs2.265.1196204885
channel aux4: restore
complete, elapsed time: 00:00:25
channel aux4: starting datafile backup set
restore
channel aux4: using network backup set from service DRDB
channel
aux4: specifying datafile(s) to restore from backup set
channel aux4:
restoring datafile 00007 to
/home/oracle/CDRDB/DATAFILE/users.260.1196204725
channel aux4: restore
complete, elapsed time: 00:00:14
channel aux4: starting datafile backup set
restore
channel aux4: using network backup set from service DRDB
channel
aux4: specifying datafile(s) to restore from backup set
channel aux4:
restoring datafile 00008 to
/home/oracle/CDRDB/DATAFILE/tuner_idx1.270.1197155177
channel aux2: restore
complete, elapsed time: 00:01:44
channel aux4: restore complete, elapsed
time: 00:00:24
channel aux1: restore complete, elapsed time:
00:01:55
channel aux3: restore complete, elapsed time: 00:02:19
Finished
restore at 25/06/21
sql
statement: alter system archive log current
current log
archived
contents of
Memory Script:
{
restore clone force from service
'DRDB'
archivelog from scn 14795577;
switch clone datafile
all;
}
executing Memory Script
Starting restore at 25/06/21
channel
aux1: starting archived log restore to default destination
channel aux1:
using network backup set from service DRDB
channel aux1: restoring archived
log
archived log thread=1 sequence=98
channel aux2: starting archived log
restore to default destination
channel aux2: using network backup set from
service DRDB
channel aux2: restoring archived log
archived log thread=1
sequence=99
channel aux3: starting archived log restore to default
destination
channel aux3: using network backup set from service
DRDB
channel aux3: restoring archived log
archived log thread=2
sequence=98
channel aux4: starting archived log restore to default
destination
channel aux4: using network backup set from service
DRDB
channel aux4: restoring archived log
archived log thread=2
sequence=99
channel aux1: restore complete, elapsed time: 00:00:01
channel
aux1: starting archived log restore to default destination
channel aux1:
using network backup set from service DRDB
channel aux1: restoring archived
log
archived log thread=2 sequence=100
channel aux2: restore complete,
elapsed time: 00:00:02
channel aux3: restore complete, elapsed time:
00:00:01
channel aux4: restore complete, elapsed time: 00:00:01
channel
aux1: restore complete, elapsed time: 00:00:02
Finished restore at
25/06/21
datafile 1
switched to datafile copy
input datafile copy RECID=14 STAMP=1204332672 file
name=/home/oracle/CDRDB/DATAFILE/system.257.1196204603
datafile 2 switched to
datafile copy
input datafile copy RECID=15 STAMP=1204332672 file
name=/home/oracle/CDRDB/DATAFILE/tuner_data1.269.1197155159
datafile 3
switched to datafile copy
input datafile copy RECID=16 STAMP=1204332672 file
name=/home/oracle/CDRDB/DATAFILE/sysaux.258.1196204689
datafile 4 switched to
datafile copy
input datafile copy RECID=17 STAMP=1204332672 file
name=/home/oracle/CDRDB/DATAFILE/undotbs1.259.1196204725
datafile 5 switched
to datafile copy
input datafile copy RECID=18 STAMP=1204332672 file
name=/home/oracle/CDRDB/DATAFILE/undotbs2.265.1196204885
datafile 7 switched
to datafile copy
input datafile copy RECID=19 STAMP=1204332672 file
name=/home/oracle/CDRDB/DATAFILE/users.260.1196204725
datafile 8 switched to
datafile copy
input datafile copy RECID=20 STAMP=1204332672 file
name=/home/oracle/CDRDB/DATAFILE/tuner_idx1.270.1197155177
contents of
Memory Script:
{
set until scn
14796732;
recover
clone
database
delete archivelog
;
}
executing Memory Script
executing command: SET until clause
Starting recover at 25/06/21
starting media recovery
archived
log for thread 1 with sequence 98 is already on disk as file
/home/oracle/CDRDB/ARCH/1_98_1200392658.dbf
archived log for thread 1 with
sequence 99 is already on disk as file
/home/oracle/CDRDB/ARCH/1_99_1200392658.dbf
archived log for thread 2 with
sequence 99 is already on disk as file
/home/oracle/CDRDB/ARCH/2_99_1200392658.dbf
archived log for thread 2 with
sequence 100 is already on disk as file
/home/oracle/CDRDB/ARCH/2_100_1200392658.dbf
archived log file
name=/home/oracle/CDRDB/ARCH/1_98_1200392658.dbf thread=1
sequence=98
archived log file
name=/home/oracle/CDRDB/ARCH/2_99_1200392658.dbf thread=2
sequence=99
archived log file
name=/home/oracle/CDRDB/ARCH/1_99_1200392658.dbf thread=1
sequence=99
archived log file
name=/home/oracle/CDRDB/ARCH/2_100_1200392658.dbf thread=2 sequence=100
media
recovery complete, elapsed time: 00:00:02
Finished recover at
25/06/21
released channel: src1
released channel: src2
released
channel: aux1
released channel: aux2
released channel: aux3
released
channel: aux4
Oracle instance started
Total System Global Area 5033164800 bytes
Fixed
Size
8631048 bytes
Variable
Size
1056967928 bytes
Database
Buffers
3959422976 bytes
Redo
Buffers
8142848 bytes
contents of
Memory Script:
{
sql clone "alter system set db_name
=
''CDRDB'' comment=
''Reset to original value by RMAN''
scope=spfile";
sql clone "alter system reset
db_unique_name scope=spfile";
}
executing Memory
Script
sql statement: alter system set db_name = ''CDRDB'' comment= ''Reset to original value by RMAN'' scope=spfile
sql
statement: alter system reset db_unique_name scope=spfile
Oracle
instance started
Total System Global Area 5033164800 bytes
Fixed
Size
8631048 bytes
Variable
Size
1056967928 bytes
Database
Buffers
3959422976 bytes
Redo
Buffers
8142848 bytes
sql statement: CREATE CONTROLFILE REUSE SET DATABASE "CDRDB"
RESETLOGS ARCHIVELOG
MAXLOGFILES 192
MAXLOGMEMBERS 3
MAXDATAFILES 1024
MAXINSTANCES 32
MAXLOGHISTORY 292
LOGFILE
GROUP 1 (
'/home/oracle/CDRDB/ONLINELOG/MEMBER_1/group_1.257.1196204803',
'/home/oracle/CDRDB/ONLINELOG/MEMBER_2/group_1.263.1196204805' ) SIZE 200
M REUSE,
GROUP 2 (
'/home/oracle/CDRDB/ONLINELOG/MEMBER_2/group_2.262.1196204803',
'/home/oracle/CDRDB/ONLINELOG/MEMBER_1/group_2.258.1196204803' ) SIZE 200
M REUSE,
GROUP 11 (
'/home/oracle/CDRDB/ONLINELOG/MEMBER_2/group_11.277.1200525255',
'/home/oracle/CDRDB/ONLINELOG/MEMBER_1/group_11.304.1200525261' ) SIZE 200
M REUSE
DATAFILE
'/home/oracle/CDRDB/DATAFILE/system.257.1196204603'
CHARACTER SET
KO16MSWIN949
sql statement: ALTER DATABASE ADD LOGFILE
INSTANCE 'i2'
GROUP 3 (
'/home/oracle/CDRDB/ONLINELOG/MEMBER_1/group_3.259.1196204957',
'/home/oracle/CDRDB/ONLINELOG/MEMBER_2/group_3.266.1196204959' ) SIZE 200
M REUSE,
GROUP 4 (
'/home/oracle/CDRDB/ONLINELOG/MEMBER_1/group_4.260.1196204965',
'/home/oracle/CDRDB/ONLINELOG/MEMBER_2/group_4.267.1196204967' ) SIZE 200
M REUSE,
GROUP 12 (
'/home/oracle/CDRDB/ONLINELOG/MEMBER_1/group_12.314.1200525277',
'/home/oracle/CDRDB/ONLINELOG/MEMBER_2/group_12.280.1200525269' ) SIZE 200
M REUSE
contents of
Memory Script:
{
set newname for tempfile 1
to
"/home/oracle/CDRDB/TEMPFILE/temp.264.1196204817";
set newname for tempfile 2
to
"/home/oracle/CDRDB/TEMPFILE/tuner_temp.271.1197155195";
switch clone tempfile all;
catalog clone datafilecopy
"/home/oracle/CDRDB/DATAFILE/tuner_data1.269.1197155159",
"/home/oracle/CDRDB/DATAFILE/sysaux.258.1196204689",
"/home/oracle/CDRDB/DATAFILE/undotbs1.259.1196204725",
"/home/oracle/CDRDB/DATAFILE/undotbs2.265.1196204885",
"/home/oracle/CDRDB/DATAFILE/users.260.1196204725",
"/home/oracle/CDRDB/DATAFILE/tuner_idx1.270.1197155177";
switch clone datafile all;
}
executing Memory Script
executing command: SET NEWNAME
executing command: SET NEWNAME
renamed
tempfile 1 to /home/oracle/CDRDB/TEMPFILE/temp.264.1196204817 in control
file
renamed tempfile 2 to
/home/oracle/CDRDB/TEMPFILE/tuner_temp.271.1197155195 in control
file
cataloged
datafile copy
datafile copy file
name=/home/oracle/CDRDB/DATAFILE/tuner_data1.269.1197155159 RECID=1
STAMP=1204332726
cataloged datafile copy
datafile copy file
name=/home/oracle/CDRDB/DATAFILE/sysaux.258.1196204689 RECID=2
STAMP=1204332726
cataloged datafile copy
datafile copy file
name=/home/oracle/CDRDB/DATAFILE/undotbs1.259.1196204725 RECID=3
STAMP=1204332726
cataloged datafile copy
datafile copy file
name=/home/oracle/CDRDB/DATAFILE/undotbs2.265.1196204885 RECID=4
STAMP=1204332726
cataloged datafile copy
datafile copy file
name=/home/oracle/CDRDB/DATAFILE/users.260.1196204725 RECID=5
STAMP=1204332726
cataloged datafile copy
datafile copy file
name=/home/oracle/CDRDB/DATAFILE/tuner_idx1.270.1197155177 RECID=6
STAMP=1204332726
datafile 2
switched to datafile copy
input datafile copy RECID=1 STAMP=1204332726 file
name=/home/oracle/CDRDB/DATAFILE/tuner_data1.269.1197155159
datafile 3
switched to datafile copy
input datafile copy RECID=2 STAMP=1204332726 file
name=/home/oracle/CDRDB/DATAFILE/sysaux.258.1196204689
datafile 4 switched to
datafile copy
input datafile copy RECID=3 STAMP=1204332726 file
name=/home/oracle/CDRDB/DATAFILE/undotbs1.259.1196204725
datafile 5 switched
to datafile copy
input datafile copy RECID=4 STAMP=1204332726 file
name=/home/oracle/CDRDB/DATAFILE/undotbs2.265.1196204885
datafile 7 switched
to datafile copy
input datafile copy RECID=5 STAMP=1204332726 file
name=/home/oracle/CDRDB/DATAFILE/users.260.1196204725
datafile 8 switched to
datafile copy
input datafile copy RECID=6 STAMP=1204332726 file
name=/home/oracle/CDRDB/DATAFILE/tuner_idx1.270.1197155177
Reenabling
controlfile options for auxiliary database
Executing: alter database force
logging
contents of
Memory Script:
{
Alter clone database open
resetlogs;
}
executing Memory Script
database
opened
Cannot remove created server parameter file
Finished Duplicate Db
at 25/06/21
9. 타켓에서 생성된
파일 확인
[CDRDB:oracle@tdb01p][/home/oracle/CDRDB]$ ls -alhR
/home/oracle/CDRDB
/home/oracle/CDRDB:
total
20M
drwxr-xr-x. 6 oracle oinstall 4.0K Jun 21 00:33 .
drwx------. 12
oracle oinstall 4.0K Jun 21 00:37 ..
drwxr-xr-x. 2 oracle oinstall 4.0K
Jun 21 00:51 ARCH
-rw-r-----. 1 oracle asmadmin 20M Jun 21 08:14
control_file_01.ctl
drwxr-xr-x. 2 oracle oinstall 4.0K Jun 21 00:49
DATAFILE
drwxr-xr-x. 5 oracle oinstall 51 Jun 21 00:52
ONLINELOG
-rwxr-xr-x. 1 oracle oinstall 3.5K Jun 21 00:06
orapwCDRDB
drwxr-xr-x. 2 oracle oinstall 66 Jun 21 00:52
TEMPFILE
/home/oracle/CDRDB/ARCH:
total 652K
drwxr-xr-x. 2 oracle oinstall
4.0K Jun 21 00:51 .
drwxr-xr-x. 6 oracle oinstall 4.0K Jun 21 00:33
..
-rw-r-----. 1 oracle asmadmin 169K Jun 21 00:51
1_98_1200392658.dbf
-rw-r-----. 1 oracle asmadmin 5.5K Jun 21 00:51
1_99_1200392658.dbf
-rw-r-----. 1 oracle asmadmin 3.0K Jun 21 00:51
2_100_1200392658.dbf
-rw-r-----. 1 oracle asmadmin 254K Jun 21 00:51
2_98_1200392658.dbf
-rw-r-----. 1 oracle asmadmin 204K Jun 21 00:51
2_99_1200392658.dbf
/home/oracle/CDRDB/DATAFILE:
total 5.1G
drwxr-xr-x. 2 oracle
oinstall 4.0K Jun 21 00:49 .
drwxr-xr-x. 6 oracle oinstall 4.0K Jun 21 00:33
..
-rw-r-----. 1 oracle asmadmin 1.5G Jun 21 08:14
sysaux.258.1196204689
-rw-r-----. 1 oracle asmadmin 851M Jun 21 08:13
system.257.1196204603
-rw-r-----. 1 oracle asmadmin 1.6G Jun 21 00:52
tuner_data1.269.1197155159
-rw-r-----. 1 oracle asmadmin 1.1G Jun 21 00:52
tuner_idx1.270.1197155177
-rw-r-----. 1 oracle asmadmin 186M Jun 21 08:13
undotbs1.259.1196204725
-rw-r-----. 1 oracle asmadmin 76M Jun 21 00:52
undotbs2.265.1196204885
-rw-r-----. 1 oracle asmadmin 5.1M Jun 21 00:52
users.260.1196204725
/home/oracle/CDRDB/ONLINELOG:
total 12K
drwxr-xr-x. 5 oracle
oinstall 51 Jun 21 00:52 .
drwxr-xr-x. 6 oracle oinstall 4.0K Jun
21 00:33 ..
drwxr-x---. 3 oracle asmadmin 23 Jun 21 00:52
CDRDB
drwxr-xr-x. 2 oracle oinstall 4.0K Jun 21 00:52 MEMBER_1
drwxr-xr-x.
2 oracle oinstall 4.0K Jun 21 00:52 MEMBER_2
/home/oracle/CDRDB/ONLINELOG/CDRDB:
total 0
drwxr-x---. 3 oracle
asmadmin 23 Jun 21 00:52 .
drwxr-xr-x. 5 oracle oinstall 51 Jun 21 00:52
..
drwxr-x---. 2 oracle asmadmin 6 Jun 21 00:52
onlinelog
/home/oracle/CDRDB/ONLINELOG/CDRDB/onlinelog:
total 0
drwxr-x---. 2
oracle asmadmin 6 Jun 21 00:52 .
drwxr-x---. 3 oracle asmadmin 23 Jun
21 00:52 ..
/home/oracle/CDRDB/ONLINELOG/MEMBER_1:
total 1.2G
drwxr-xr-x. 2
oracle oinstall 4.0K Jun 21 00:52 .
drwxr-xr-x. 5 oracle oinstall
51 Jun 21 00:52 ..
-rw-r-----. 1 oracle asmadmin 201M Jun 21 00:52
group_11.304.1200525261
-rw-r-----. 1 oracle asmadmin 201M Jun 21 00:52
group_12.314.1200525277
-rw-r-----. 1 oracle asmadmin 201M Jun 21 08:14
group_1.257.1196204803
-rw-r-----. 1 oracle asmadmin 201M Jun 21 00:52
group_2.258.1196204803
-rw-r-----. 1 oracle asmadmin 201M Jun 21 00:52
group_3.259.1196204957
-rw-r-----. 1 oracle asmadmin 201M Jun 21 00:52
group_4.260.1196204965
/home/oracle/CDRDB/ONLINELOG/MEMBER_2:
total 1.2G
drwxr-xr-x. 2
oracle oinstall 4.0K Jun 21 00:52 .
drwxr-xr-x. 5 oracle oinstall
51 Jun 21 00:52 ..
-rw-r-----. 1 oracle asmadmin 201M Jun 21 00:52
group_11.277.1200525255
-rw-r-----. 1 oracle asmadmin 201M Jun 21 00:52
group_12.280.1200525269
-rw-r-----. 1 oracle asmadmin 201M Jun 21 08:14
group_1.263.1196204805
-rw-r-----. 1 oracle asmadmin 201M Jun 21 00:52
group_2.262.1196204803
-rw-r-----. 1 oracle asmadmin 201M Jun 21 00:52
group_3.266.1196204959
-rw-r-----. 1 oracle asmadmin 201M Jun 21 00:52
group_4.267.1196204967
/home/oracle/CDRDB/TEMPFILE:
total 2.4M
drwxr-xr-x. 2 oracle
oinstall 66 Jun 21 00:52 .
drwxr-xr-x. 6 oracle oinstall 4.0K Jun
21 00:33 ..
-rw-r-----. 1 oracle asmadmin 47M Jun 21 06:00
temp.264.1196204817
-rw-r-----. 1 oracle asmadmin 129M Jun 21 00:52
tuner_temp.271.1197155195
10. 클라이언트에서 tnsnames.ora 정보 추가
CDRDB
=
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST =
192.168.0.41)(PORT = 1522))
(CONNECT_DATA
=
(SERVER =
DEDICATED)
(SERVICE_NAME =
CDRDB)
)
)
-->
접속이 가능한지 확인
11. 타켓 DB
정보 확인
[2025-06-21:08:22:16][tdb01p]<SYS@CDRDB> col name for
a20
[2025-06-21:08:22:16][tdb01p]<SYS@CDRDB> select name from v$database;
NAME
--------------------
CDRDB
1 row selected.
Elapsed: 00:00:00.01
[2025-06-21:09:01:38][tdb01p]<SYS@CDRDB> col name for
a50
[2025-06-21:09:01:38][tdb01p]<SYS@CDRDB> select name from v$controlfile;
NAME
--------------------------------------------------
/home/oracle/CDRDB/control_file_01.ctl
1 row selected.
Elapsed: 00:00:00.00
[2025-06-21:08:22:16][tdb01p]<SYS@CDRDB> col name for
a80
[2025-06-21:08:22:16][tdb01p]<SYS@CDRDB> select name from v$datafile;
NAME
--------------------------------------------------------------------------------
/home/oracle/CDRDB/DATAFILE/system.257.1196204603
/home/oracle/CDRDB/DATAFILE/tuner_data1.269.1197155159
/home/oracle/CDRDB/DATAFILE/sysaux.258.1196204689
/home/oracle/CDRDB/DATAFILE/undotbs1.259.1196204725
/home/oracle/CDRDB/DATAFILE/undotbs2.265.1196204885
/home/oracle/CDRDB/DATAFILE/users.260.1196204725
/home/oracle/CDRDB/DATAFILE/tuner_idx1.270.1197155177
7 rows selected.
Elapsed: 00:00:00.00
[2025-06-21:08:22:16][tdb01p]<SYS@CDRDB> col name for
a80
[2025-06-21:08:22:16][tdb01p]<SYS@CDRDB> select name from v$tempfile;
NAME
--------------------------------------------------------------------------------
/home/oracle/CDRDB/TEMPFILE/temp.264.1196204817
/home/oracle/CDRDB/TEMPFILE/tuner_temp.271.1197155195
2 rows selected.
Elapsed: 00:00:00.01
[2025-06-21:08:22:16][tdb01p]<SYS@CDRDB> col member for a80
[2025-06-21:08:22:16][tdb01p]<SYS@CDRDB> col status for a15
[2025-06-21:08:22:16][tdb01p]<SYS@CDRDB> select a.group#, a.thread#, a.bytes/1024/1024 as mb, a.members,
a.status, b.member from v$log a, v$logfile b where a.group# =
b.group#;
GROUP#
THREAD# MB
MEMBERS STATUS
MEMBER
---------- ---------- ---------- ---------- ---------------
--------------------------------------------------------------------------------
11
1
200 2
UNUSED
/home/oracle/CDRDB/ONLINELOG/MEMBER_2/group_11.277.1200525255
11
1
200 2
UNUSED
/home/oracle/CDRDB/ONLINELOG/MEMBER_1/group_11.304.1200525261
2
1
200 2
UNUSED
/home/oracle/CDRDB/ONLINELOG/MEMBER_2/group_2.262.1196204803
2
1
200 2
UNUSED
/home/oracle/CDRDB/ONLINELOG/MEMBER_1/group_2.258.1196204803
1
1
200 2
CURRENT
/home/oracle/CDRDB/ONLINELOG/MEMBER_1/group_1.257.1196204803
1
1
200 2
CURRENT
/home/oracle/CDRDB/ONLINELOG/MEMBER_2/group_1.263.1196204805
3
2
200 2
UNUSED
/home/oracle/CDRDB/ONLINELOG/MEMBER_1/group_3.259.1196204957
3
2
200 2
UNUSED
/home/oracle/CDRDB/ONLINELOG/MEMBER_2/group_3.266.1196204959
4
2
200 2
UNUSED
/home/oracle/CDRDB/ONLINELOG/MEMBER_1/group_4.260.1196204965
4
2
200 2
UNUSED
/home/oracle/CDRDB/ONLINELOG/MEMBER_2/group_4.267.1196204967
12
2
200 2
UNUSED
/home/oracle/CDRDB/ONLINELOG/MEMBER_1/group_12.314.1200525277
12
2
200 2
UNUSED
/home/oracle/CDRDB/ONLINELOG/MEMBER_2/group_12.280.1200525269
12 rows selected.
Elapsed: 00:00:00.00
[2025-06-21:08:23:15][tdb01p]<SYS@CDRDB> alter system switch logfile;
[2025-06-21:08:23:16][tdb01p]<SYS@CDRDB> col name for
a50
[2025-06-21:08:23:16][tdb01p]<SYS@CDRDB> select name from v$archived_log;
NAME
--------------------------------------------------
/home/oracle/CDRDB/ARCH/1_1_1204332726.dbf
1 row selected.
Elapsed: 00:00:00.00
12. 타켓 DB를 has에 등록
[2025-06-21:08:39:39][tdb01p]<SYS@CDRDB> show parameter spfile;
NAME
TYPE
VALUE
------------------------------------ ---------------------------------
------------------------------
spfile
string
/u01/app/oracle/product/12c/db_1/dbs/spfileCDRDB.ora
[CDRDB:oracle@tdb01p][/u01/app/oracle/product/12c/db_1/network/admin]$ srvctl add database -db CDRDB -dbname CDRDB -oraclehome /u01/app/oracle/product/12c/db_1 -pwfile '/home/oracle/CDRDB/orapwCDRDB' -spfile '/u01/app/oracle/product/12c/db_1/dbs/spfileCDRDB.ora' -instance CDRDB
[CDRDB:oracle@tdb01p][/u01/app/oracle/product/12c/db_1/network/admin]$ srvctl start database -db cdrdb
[+ASM:grid@tdb01p][/u01/app/12c/grid/network/admin]$ crsctl status
resource ora.cdrdb.db -t
--------------------------------------------------------------------------------
Name
Target State
Server
State
details
--------------------------------------------------------------------------------
Cluster
Resources
--------------------------------------------------------------------------------
ora.cdrdb.db
1 ONLINE
ONLINE
tdb01p
Open,HOME=/u01/app/o
racle/product/12c/db
_1,STABLE
--------------------------------------------------------------------------------