[제목]
[2025-10-19] 멀티태넌트 환경에서 RAC to Single 로 동일 서버에서 크론 디비 생성하여 아카이브를 적용하는 실습 (19c에서 테스트)
[테스트 개요]
Oracle RAC
환경에서 멀티태넌트 DB (CDB/PDB) 구조를 동일 서버 내 Single Instance (비RAC) 로
복제(clone)하여,
백업본과 아카이브 로그를 이용해 복구하는 절차를 검증하는 실습이다.
테스트는 Oracle
19c (19.28 RU, Linux 8.10) 환경에서 수행되었으며,
소스 RAC DB(ORA19RS)의 백업을
기반으로 Single 타켓 DB(CLONEDB)를 구성한다.
[테스트
환경]
<원천(소스)
DB의 정보>
OS : Oracle
Linux Server 8.10 (grep ^PRETTY_NAME= /etc/os-release | cut -d= -f2- | tr -d
'"')
OS Kernal : 5.15.0-206.153.7.1.el8uek.x86_64 (uname -r)
Oracle
Version : Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
(echo -e "set pages 0 lines 200 feedback off heading off\nselect banner from
v\$version where banner like 'Oracle Database%';" | sqlplus -s / as
sysdba)
Oracle Configuration
DB명 : ORA19RS (echo
-e 'set pages 0 feedback off heading off verify off\nselect '\''DB명 : '\''||name
from v$database;' | sqlplus -s / as sysdba) '
PDB명 : ORA19RSP1 (echo -e
"set pages 0 feedback off heading off verify off\nselect 'PDB명 : '||name from
v\$pdbs where name <> 'PDB\$SEED';" | sqlplus -s / as
sysdba)
RAC Node 1
Hostname : ol8ora19rs1
(hostname)
Public IP : 192.168.240.41 (getent ahostsv4
`hostname` | awk '{print $1; exit}')
Instance Name :
ORA19RS1 (echo -e 'set pages 0 feedback off heading off verify off\nselect
'\''Instance Name : '\''||instance_name from v$instance;' | sqlplus -s / as
sysdba) '
RAC Node 2
Hostname :
ol8ora19rs2
Public IP : 192.168.240.42 (getent ahostsv4
`hostname` | awk '{print $1; exit}')
Instance Name :
ORA19RS2 (echo -e 'set pages 0 feedback off heading off verify off\nselect
'\''Instance Name : '\''||instance_name from v$instance;' | sqlplus -s / as
sysdba) '
Patch Info
Grid (opatch lspatches) (grid os
user)
38124772;TOMCAT RELEASE UPDATE 19.0.0.0.0
(38124772)
37962946;OCW RELEASE UPDATE 19.28.0.0.0
(37962946)
37962938;ACFS RELEASE UPDATE 19.28.0.0.0
(37962938)
37960098;Database Release Update : 19.28.0.0.250715
(37960098)
36758186;DBWLM RELEASE UPDATE 19.0.0.0.0
(36758186)
Oracle (opatch lspatches) (oracle os
user)
37962946;OCW RELEASE UPDATE 19.28.0.0.0
(37962946)
37960098;Database Release Update : 19.28.0.0.250715
(37960098)
<목표(타켓)
DB의 정보>
DB명 : CLONEDB
인스턴스명 : CLONEDB
[내용]
1. 소스 DB 백업 받기
1-1. 테이블 스페이스 단위 백업본으로 백업 받기
[ORA19RS1:oracle@ol8ora19rs1][/home/oracle]$ alias
ss
alias ss='rlwrap sqlplus "/as sysdba"'
[ORA19RS1:oracle@ol8ora19rs1][/home/oracle]$ ss
SQL*Plus:
Release 19.0.0.0.0 - Production on Thu Oct 16 23:50:16 2025
Version
19.28.0.0.0
Copyright (c) 1982, 2025, Oracle. All rights reserved.
Connected to:
Oracle Database 19c Enterprise Edition Release
19.0.0.0.0 - Production
Version 19.28.0.0.0
--테이스 스페이스 단위 백업 스크립트
생성
[ol8ora19rs1]<SYS@ORA19RS1>$ show con_name
CON_NAME
------------------------------
CDB$ROOT
[ol8ora19rs1]<SYS@ORA19RS1>$
col
backup_script for a150
set linesize 200
SELECT 'RUN
{' || CHR(10) ||
'CONFIGURE CONTROLFILE AUTOBACKUP OFF;' || CHR(10)
||
'sql ''alter system archive log current'';' || CHR(10) ||
'sql ''alter
system checkpoint'';' || CHR(10) ||
'crosscheck backupset;' || CHR(10)
||
'crosscheck backup;' || CHR(10) ||
'crosscheck copy;' || CHR(10)
||
'crosscheck archivelog all;' AS BACKUP_SCRIPT FROM DUAL
UNION
ALL
SELECT 'BACKUP AS COMPRESSED BACKUPSET TABLESPACE
'
|| CASE WHEN CON_NM = 'CDB$ROOT' THEN
TS_NM
WHEN CON_NM = 'PDB$SEED' THEN
'"'||CON_NM||'"'||':'||TS_NM
ELSE
CON_NM||':'||TS_NM
END
|| ' FORMAT '
|| ''''|| '/home/oracle/ORA19RS_BACKUP/'
||
CASE WHEN CON_NM = 'CDB$ROOT' THEN 'CDB' ||
'_'
WHEN CON_NM = 'PDB$SEED' THEN 'PDBSEED'
||'_'
ELSE CON_NM ||
'_'
END
||TS_NM||'_%U.bkp' || '''' || ';'
AS BACKUP_SCRIPT
FROM
(
SELECT
(SELECT L.NAME FROM V$CONTAINERS L WHERE L.CON_ID = A.CON_ID) AS
CON_NM
, A.TABLESPACE_NAME AS TS_NM
FROM CDB_TABLESPACES A
WHERE A.CONTENTS IN ('PERMANENT',
'UNDO')
UNION ALL
SELECT 'PDB$SEED' AS CON_NM,
'SYSTEM' AS TS_NM FROM DUAL UNION ALL
SELECT
'PDB$SEED' AS CON_NM, 'SYSAUX' AS TS_NM FROM DUAL UNION
ALL
SELECT 'PDB$SEED' AS CON_NM, 'UNDOTBS1' AS TS_NM FROM
DUAL
ORDER BY CON_NM, TS_NM
) A
UNION
ALL
SELECT 'backup current controlfile format
''/home/oracle/ORA19RS_BACKUP/ORA19RS_CTL_%U_%T'';' || CHR(10) FROM
DUAL
union all
SELECT 'delete noprompt obsolete;' || CHR(10) ||
'delete
noprompt expired backup;' AS BACKUP_SCRIPT
FROM DUAL
union all
select
'CONFIGURE CONTROLFILE AUTOBACKUP ON;' || CHR(10)
|| '}'
from
dual
;
--아래의 결과가
출력됨
BACKUP_SCRIPT
------------------------------------------------------------------------------------------------------------------------------------------------------
RUN
{
CONFIGURE CONTROLFILE AUTOBACKUP OFF;
sql 'alter system archive log
current';
sql 'alter system checkpoint';
crosscheck
backupset;
crosscheck backup;
crosscheck copy;
crosscheck archivelog
all;
BACKUP AS
COMPRESSED BACKUPSET TABLESPACE SYSAUX FORMAT
'/home/oracle/ORA19RS_BACKUP/CDB_SYSAUX_%U.bkp';
BACKUP AS COMPRESSED
BACKUPSET TABLESPACE SYSTEM FORMAT
'/home/oracle/ORA19RS_BACKUP/CDB_SYSTEM_%U.bkp';
BACKUP AS COMPRESSED
BACKUPSET TABLESPACE UNDOTBS1 FORMAT
'/home/oracle/ORA19RS_BACKUP/CDB_UNDOTBS1_%U.bkp';
BACKUP AS COMPRESSED
BACKUPSET TABLESPACE UNDOTBS2 FORMAT
'/home/oracle/ORA19RS_BACKUP/CDB_UNDOTBS2_%U.bkp';
BACKUP AS COMPRESSED
BACKUPSET TABLESPACE USERS FORMAT
'/home/oracle/ORA19RS_BACKUP/CDB_USERS_%U.bkp';
BACKUP AS COMPRESSED
BACKUPSET TABLESPACE ORA19RSP1:SYSAUX FORMAT
'/home/oracle/ORA19RS_BACKUP/ORA19RSP1_SYSAUX_%U.bkp';
BACKUP AS COMPRESSED
BACKUPSET TABLESPACE ORA19RSP1:SYSTEM FORMAT
'/home/oracle/ORA19RS_BACKUP/ORA19RSP1_SYSTEM_%U.bkp';
BACKUP AS COMPRESSED
BACKUPSET TABLESPACE ORA19RSP1:TUNER_DATA1 FORMAT
'/home/oracle/ORA19RS_BACKUP/ORA19RSP1_TUNER_DATA1_%U.bkp';
BACKUP AS
COMPRESSED BACKUPSET TABLESPACE ORA19RSP1:TUNER_IDX1 FORMAT
'/home/oracle/ORA19RS_BACKUP/ORA19RSP1_TUNER_IDX1_%U.bkp';
BACKUP AS
COMPRESSED BACKUPSET TABLESPACE ORA19RSP1:UNDOTBS1 FORMAT
'/home/oracle/ORA19RS_BACKUP/ORA19RSP1_UNDOTBS1_%U.bkp';
BACKUP AS COMPRESSED
BACKUPSET TABLESPACE ORA19RSP1:UNDO_2 FORMAT
'/home/oracle/ORA19RS_BACKUP/ORA19RSP1_UNDO_2_%U.bkp';
BACKUP AS COMPRESSED
BACKUPSET TABLESPACE ORA19RSP1:USERS FORMAT
'/home/oracle/ORA19RS_BACKUP/ORA19RSP1_USERS_%U.bkp';
BACKUP AS COMPRESSED
BACKUPSET TABLESPACE "PDB$SEED":SYSAUX FORMAT
'/home/oracle/ORA19RS_BACKUP/PDBSEED_SYSAUX_%U.bkp';
BACKUP AS COMPRESSED
BACKUPSET TABLESPACE "PDB$SEED":SYSTEM FORMAT
'/home/oracle/ORA19RS_BACKUP/PDBSEED_SYSTEM_%U.bkp';
BACKUP AS COMPRESSED
BACKUPSET TABLESPACE "PDB$SEED":UNDOTBS1 FORMAT
'/home/oracle/ORA19RS_BACKUP/PDBSEED_UNDOTBS1_%U.bkp';
backup current
controlfile format '/home/oracle/ORA19RS_BACKUP/ORA19RS_CTL_%U_%T';
delete
noprompt obsolete;
delete noprompt expired backup;
CONFIGURE
CONTROLFILE AUTOBACKUP ON;
}
--소스DB를 백업 받을 디렉토리
생성
[ORA19RS1:oracle@ol8ora19rs1][/home/oracle]$ mkdir -pv
/home/oracle/ORA19RS_BACKUP/
mkdir: created directory
'/home/oracle/ORA19RS_BACKUP/'
--RMAN 접속
[ORA19RS1:oracle@ol8ora19rs1][/home/oracle/ORA19RS_BACKUP]$
export NLS_DATE_FORMAT='YYYY-MM-DD HH24:MI:SS'
[ORA19RS1:oracle@ol8ora19rs1][/home/oracle/ORA19RS_BACKUP]$
alias rt
alias rt='rman target /'
[ORA19RS1:oracle@ol8ora19rs1][/home/oracle/ORA19RS_BACKUP]$
rt
Recovery Manager:
Release 19.0.0.0.0 - Production on Thu Oct 16 23:53:57 2025
Version 19.28.0.0.0
Copyright (c) 1982, 2019, Oracle and/or its affiliates. All rights reserved.
connected to target database: ORA19RS (DBID=1936516987)
RMAN>
RUN {
CONFIGURE CONTROLFILE AUTOBACKUP OFF;
sql 'alter system archive log current';
sql 'alter system checkpoint';
crosscheck backupset;
crosscheck
backup;
crosscheck copy;
crosscheck archivelog all;
BACKUP AS
COMPRESSED BACKUPSET TABLESPACE SYSAUX FORMAT
'/home/oracle/ORA19RS_BACKUP/CDB_SYSAUX_%U.bkp';
BACKUP
AS COMPRESSED BACKUPSET TABLESPACE SYSTEM FORMAT
'/home/oracle/ORA19RS_BACKUP/CDB_SYSTEM_%U.bkp';
BACKUP
AS COMPRESSED BACKUPSET TABLESPACE UNDOTBS1 FORMAT
'/home/oracle/ORA19RS_BACKUP/CDB_UNDOTBS1_%U.bkp';
BACKUP AS COMPRESSED BACKUPSET TABLESPACE UNDOTBS2 FORMAT
'/home/oracle/ORA19RS_BACKUP/CDB_UNDOTBS2_%U.bkp';
BACKUP AS COMPRESSED BACKUPSET TABLESPACE USERS FORMAT
'/home/oracle/ORA19RS_BACKUP/CDB_USERS_%U.bkp';
BACKUP
AS COMPRESSED BACKUPSET TABLESPACE ORA19RSP1:SYSAUX FORMAT
'/home/oracle/ORA19RS_BACKUP/ORA19RSP1_SYSAUX_%U.bkp';
BACKUP AS COMPRESSED BACKUPSET TABLESPACE ORA19RSP1:SYSTEM
FORMAT '/home/oracle/ORA19RS_BACKUP/ORA19RSP1_SYSTEM_%U.bkp';
BACKUP AS COMPRESSED BACKUPSET TABLESPACE
ORA19RSP1:TUNER_DATA1 FORMAT
'/home/oracle/ORA19RS_BACKUP/ORA19RSP1_TUNER_DATA1_%U.bkp';
BACKUP AS COMPRESSED BACKUPSET TABLESPACE
ORA19RSP1:TUNER_IDX1 FORMAT
'/home/oracle/ORA19RS_BACKUP/ORA19RSP1_TUNER_IDX1_%U.bkp';
BACKUP AS COMPRESSED BACKUPSET TABLESPACE
ORA19RSP1:UNDOTBS1 FORMAT
'/home/oracle/ORA19RS_BACKUP/ORA19RSP1_UNDOTBS1_%U.bkp';
BACKUP AS COMPRESSED BACKUPSET TABLESPACE ORA19RSP1:UNDO_2
FORMAT '/home/oracle/ORA19RS_BACKUP/ORA19RSP1_UNDO_2_%U.bkp';
BACKUP AS COMPRESSED BACKUPSET TABLESPACE ORA19RSP1:USERS
FORMAT '/home/oracle/ORA19RS_BACKUP/ORA19RSP1_USERS_%U.bkp';
BACKUP AS COMPRESSED BACKUPSET TABLESPACE "PDB$SEED":SYSAUX
FORMAT '/home/oracle/ORA19RS_BACKUP/PDBSEED_SYSAUX_%U.bkp';
BACKUP AS COMPRESSED BACKUPSET TABLESPACE "PDB$SEED":SYSTEM
FORMAT '/home/oracle/ORA19RS_BACKUP/PDBSEED_SYSTEM_%U.bkp';
BACKUP AS COMPRESSED BACKUPSET TABLESPACE
"PDB$SEED":UNDOTBS1 FORMAT
'/home/oracle/ORA19RS_BACKUP/PDBSEED_UNDOTBS1_%U.bkp';
backup current controlfile format
'/home/oracle/ORA19RS_BACKUP/ORA19RS_CTL_%U_%T';
delete
noprompt obsolete;
delete noprompt expired
backup;
CONFIGURE
CONTROLFILE AUTOBACKUP ON;
}
1-2. 아카이브 로그 백업 받기
run {
crosscheck archivelog all;
backup
archivelog all format '/home/oracle/ORA19RS_BACKUP/ARCHIVE_%d_%T_%u_s%s_p%p';
}
1-3. 소스 DB에서 컨트롤 파일 스크립트 생성
[ORA19RS1:oracle@ol8ora19rs1][/home/oracle]$ alias
ss
alias ss='rlwrap
sqlplus "/as sysdba"'
[ORA19RS1:oracle@ol8ora19rs1][/home/oracle]$
ss
SQL*Plus: Release
19.0.0.0.0 - Production on Sat Oct 18 17:45:16 2025
Version 19.28.0.0.0
Copyright (c) 1982, 2025, Oracle. All rights reserved.
Connected to:
Oracle Database 19c
Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.28.0.0.0
[ol8ora19rs1]<SYS@ORA19RS1>$ show con_name
CON_NAME
------------------------------
CDB$ROOT
[ol8ora19rs1]<SYS@ORA19RS1>$ alter database backup controlfile to trace as
'/home/oracle/ORA19RS_BACKUP/ORA19RS_controlfile_script_backup.sql';
Database altered.
Elapsed: 00:00:00.03
[ORA19RS1:oracle@ol8ora19rs1][/home/oracle]$ ls -l
/home/oracle/ORA19RS_BACKUP/ORA19RS_controlfile_script_backup.sql
-rw-r--r--. 1
oracle asmadmin 15643 Oct 19 10:49
/home/oracle/ORA19RS_BACKUP/ORA19RS_controlfile_script_backup.sql
1-4. 백업 파일 확인
[ORA19RS1:oracle@ol8ora19rs1][/home/oracle]$ ls -l
/home/oracle/ORA19RS_BACKUP
total 1726876
-rw-r-----. 1 oracle
asmadmin 15872 Oct 19 10:46
ARCHIVE_ORA19RS_20251019_9g46k2n9_s304_p1
-rw-r-----. 1
oracle asmadmin 444588032 Oct 19 10:43 CDB_SYSAUX_8v46k2iq_287_1_1.bkp
-rw-r-----. 1 oracle asmadmin 469172224 Oct 19 10:44
CDB_SYSTEM_9046k2jk_288_1_1.bkp
-rw-r-----. 1 oracle
asmadmin 1196032 Oct 19 10:44 CDB_SYSTEM_9146k2kd_289_1_1.bkp
-rw-r-----. 1 oracle asmadmin 2211840 Oct 19
10:44 CDB_UNDOTBS1_9246k2kf_290_1_1.bkp
-rw-r-----. 1
oracle asmadmin 2211840 Oct 19 10:44
CDB_UNDOTBS2_9346k2kg_291_1_1.bkp
-rw-r-----. 1 oracle
asmadmin 1245184 Oct 19 10:44 CDB_USERS_9446k2kh_292_1_1.bkp
-rw-r--r--. 1 oracle asmadmin 15643
Oct 19 10:49 ORA19RS_controlfile_script_backup.sql
-rw-r-----. 1 oracle asmadmin 20021248 Oct 19 10:45
ORA19RS_CTL_9f46k2m9_303_1_1_20251019
-rw-r-----. 1
oracle asmadmin 75816960 Oct 19 10:44
ORA19RSP1_SYSAUX_9546k2ki_293_1_1.bkp
-rw-r-----. 1
oracle asmadmin 277159936 Oct 19 10:44 ORA19RSP1_SYSTEM_9646k2kp_294_1_1.bkp
-rw-r-----. 1 oracle asmadmin 30720000 Oct 19 10:44
ORA19RSP1_TUNER_DATA1_9746k2l8_295_1_1.bkp
-rw-r-----. 1
oracle asmadmin 14860288 Oct 19 10:45
ORA19RSP1_TUNER_IDX1_9846k2lb_296_1_1.bkp
-rw-r-----. 1
oracle asmadmin 1073152 Oct 19 10:45
ORA19RSP1_UNDO_2_9a46k2le_298_1_1.bkp
-rw-r-----. 1
oracle asmadmin 1171456 Oct 19 10:45
ORA19RSP1_UNDOTBS1_9946k2ld_297_1_1.bkp
-rw-r-----. 1
oracle asmadmin 1073152 Oct 19 10:45
ORA19RSP1_USERS_9b46k2lf_299_1_1.bkp
-rw-r-----. 1
oracle asmadmin 66289664 Oct 19 10:45
PDBSEED_SYSAUX_9c46k2lg_300_1_1.bkp
-rw-r-----. 1 oracle
asmadmin 275431424 Oct 19 10:45 PDBSEED_SYSTEM_9d46k2lj_301_1_1.bkp
-rw-r-----. 1 oracle asmadmin 84041728 Oct 19 10:45
PDBSEED_UNDOTBS1_9e46k2m2_302_1_1.bkp
--> 데이터 파일, 컨트롤 파일, 아카이브 로그 파일, 컨트롤 파일 생성 스크립트가 모두 백업되었음
2. 소스 DB에서 pfile 생성 후 수정 (생성 및 수정하는 pfile은 타켓 DB가 사용할 것임!)
[ORA19RS1:oracle@ol8ora19rs1][/home/oracle]$ cd
/home/oracle/ORA19RS_BACKUP/
[ORA19RS1:oracle@ol8ora19rs1][/home/oracle/ORA19RS_BACKUP]$
alias ss
alias ss='rlwrap sqlplus "/as
sysdba"'
[ORA19RS1:oracle@ol8ora19rs1][/home/oracle/ORA19RS_BACKUP]$
ss
SQL*Plus: Release
19.0.0.0.0 - Production on Fri Oct 17 21:37:32 2025
Version 19.28.0.0.0
Copyright (c) 1982, 2025, Oracle. All rights reserved.
Connected to:
Oracle Database 19c
Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.28.0.0.0
[ol8ora19rs1]<SYS@ORA19RS1>$ show con_name
CON_NAME
------------------------------
CDB$ROOT
--현재 소스 DB는 spfile을 사용중임,
spfile로 부터 pfile을 생성
[ol8ora19rs1]<SYS@ORA19RS1>$ create pfile='/home/oracle/ORA19RS_BACKUP/initCLONEDB.ora'
from spfile;
File created.
Elapsed: 00:00:00.03
[ol8ora19rs1]<SYS@ORA19RS1>$ quit
Disconnected from Oracle Database 19c Enterprise Edition
Release 19.0.0.0.0 - Production
Version
19.28.0.0.0
[ORA19RS1:oracle@ol8ora19rs1][/home/oracle]$ ls -l
/home/oracle/ORA19RS_BACKUP/initCLONEDB.ora
-rw-r--r--. 1
oracle asmadmin 2466 Oct 19 10:50
/home/oracle/ORA19RS_BACKUP/initCLONEDB.ora
--내용 확인
[ORA19RS1:oracle@ol8ora19rs1][/home/oracle]$ cat
/home/oracle/ORA19RS_BACKUP/initCLONEDB.ora
ORA19RS1.__data_transfer_cache_size=0
ORA19RS2.__data_transfer_cache_size=0
ORA19RS1.__db_cache_size=3657433088
ORA19RS2.__db_cache_size=3808428032
ORA19RS1.__inmemory_ext_roarea=0
ORA19RS2.__inmemory_ext_roarea=0
ORA19RS1.__inmemory_ext_rwarea=0
ORA19RS2.__inmemory_ext_rwarea=0
ORA19RS1.__java_pool_size=0
ORA19RS2.__java_pool_size=0
ORA19RS1.__large_pool_size=33554432
ORA19RS2.__large_pool_size=33554432
ORA19RS1.__oracle_base='/u01/app/oracle'#ORACLE_BASE set
from environment
ORA19RS2.__oracle_base='/u01/app/oracle'#ORACLE_BASE set
from environment
ORA19RS1.__pga_aggregate_target=1677721600
ORA19RS2.__pga_aggregate_target=1677721600
ORA19RS1.__sga_target=5033164800
ORA19RS2.__sga_target=5033164800
ORA19RS1.__shared_io_pool_size=134217728
ORA19RS2.__shared_io_pool_size=134217728
ORA19RS1.__shared_pool_size=1191182336
ORA19RS2.__shared_pool_size=1040187392
ORA19RS1.__streams_pool_size=0
ORA19RS2.__streams_pool_size=0
ORA19RS1.__unified_pga_pool_size=0
ORA19RS2.__unified_pga_pool_size=0
*.audit_file_dest='/u01/app/oracle/admin/ORA19RS/adump'
*.audit_sys_operations=TRUE
*.audit_trail='OS'
*.cluster_database=true
*.compatible='19.0.0'
*.control_files='+FRA1/ORA19RS/CONTROLFILE/current.256.1214089019','+DATA1/ORA19RS/CONTROLFILE/current.261.1214089019'
*.db_block_size=8192
*.db_create_file_dest='+DATA1'
*.db_create_online_log_dest_1='+FRA1'
*.db_create_online_log_dest_2='+DATA1'
*.db_name='ORA19RS'
*.db_recovery_file_dest='+FRA1'
*.db_recovery_file_dest_size=32767m
*.diagnostic_dest='/u01/app/oracle'
*.disk_asynch_io=TRUE
*.dispatchers='(PROTOCOL=TCP) (SERVICE=ORA19RSXDB)'
*.enable_pluggable_database=true
*.filesystemio_options='SETALL'
*.heat_map='OFF'
family:dw_helper.instance_mode='read-only'
ORA19RS1.instance_number=1
ORA19RS2.instance_number=2
*.local_listener='-oraagent-dummy-'
*.log_archive_dest_1='LOCATION=+FRA1'
*.log_archive_format='%t_%s_%r.ARC'
*.nls_language='AMERICAN'
*.nls_territory='KOREA'
*.open_cursors=300
*.optimizer_adaptive_plans=FALSE
*.optimizer_adaptive_reporting_only=TRUE
*.optimizer_dynamic_sampling=0
*.parallel_force_local=TRUE
*.parallel_min_servers=0
*.pga_aggregate_limit=0m
*.pga_aggregate_target=1599m
*.processes=1432
*.remote_login_passwordfile='exclusive'
*.resource_manager_plan='FORCE:'
*.sga_target=4794m
ORA19RS2.thread=2
ORA19RS1.thread=1
*.undo_retention=3600
ORA19RS2.undo_tablespace='UNDOTBS2'
ORA19RS1.undo_tablespace='UNDOTBS1'
*.uniform_log_timestamp_format=FALSE
*.use_large_pages='ONLY'
--grid os user로 접속 후 리스너 정보를
조회
[+ASM1:grid@ol8ora19rs1][/home/grid]$ lsnrctl
status
LSNRCTL for Linux: Version 19.0.0.0.0 - Production on 19-OCT-2025 10:57:40
Copyright (c) 1991, 2025, Oracle. All rights reserved.
Connecting to
(DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=LISTENER)))
STATUS of the LISTENER
------------------------
Alias
LISTENER
Version
TNSLSNR for Linux: Version 19.0.0.0.0 - Production
Start
Date
19-OCT-2025 10:26:06
Uptime
0 days 0 hr. 31 min. 34 sec
Trace
Level
off
Security
ON: Local OS Authentication
SNMP
OFF
Listener Parameter File
/u01/app/19c/grid/network/admin/listener.ora
Listener
Log File
/u01/app/oracle/diag/tnslsnr/ol8ora19rs1/listener/alert/log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=LISTENER)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.240.41)(PORT=1521))) --> 타켓 DB의 local_listener 파라미터를 이걸로 설정할 것임
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.240.44)(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
"40bb61da40640933e0632af0a8c05571" has 1 instance(s).
Instance "ORA19RS1", status READY, has 1 handler(s)
for this service...
Service "ORA19RS" has 1
instance(s).
Instance "ORA19RS1", status READY,
has 1 handler(s) for this service...
Service
"ORA19RSXDB" has 1 instance(s).
Instance
"ORA19RS1", status READY, has 1 handler(s) for this service...
Service "ora19rsp1" has 1 instance(s).
Instance "ORA19RS1", status READY, has 1 handler(s)
for this service...
The command completed
successfully
--생성한 pfile의 복제본 생성(백업받아 두는
것임)
[ORA19RS1:oracle@ol8ora19rs1][/home/oracle]$ cp /home/oracle/ORA19RS_BACKUP/initCLONEDB.ora /home/oracle/ORA19RS_BACKUP/initCLONEDB.ora.bak
--생성한 pfile을 수정함 (타켓
DB를 구동 시킬 수 있게 바꾸는 것임, 매우 중요한 부분)
[ORA19RS1:oracle@ol8ora19rs1][/home/oracle/ORA19RS_BACKUP]$
vi /home/oracle/ORA19RS_BACKUP/initCLONEDB.ora
[ORA19RS1:oracle@ol8ora19rs1][/home/oracle/ORA19RS_BACKUP]$
cat /home/oracle/ORA19RS_BACKUP/initCLONEDB.ora
*.audit_file_dest='/u01/app/oracle/admin/CLONEDB/adump' #
adump 경로 지정
*.audit_sys_operations=TRUE
*.audit_trail='OS'
*.compatible='19.0.0'
*.control_files='/home/oracle/CLONEDB/controlfile/ctl_file01.ctl','/home/oracle/CLONEDB/controlfile/ctl_file02.ctl'
# 컨트롤 파일 경로
*.db_block_size=8192
*.db_create_file_dest='/home/oracle/CLONEDB' # datafile 생성
위치
*.db_create_online_log_dest_1='/home/oracle/CLONEDB/onlinelog_1'
# 리두로그 파일 위치
*.db_create_online_log_dest_2='/home/oracle/CLONEDB/onlinelog_2'
# 리두로그 파일 위치
*.db_name='ORA19RS' # DB_NAME은 동일하게 지정
*.db_unique_name='CLONEDB' # DB_UNQUE_NAME은 다르게 지정해야함 (crs와
충돌하기 때문에)
*.db_recovery_file_dest='/home/oracle/CLONEDB/fra' # FRA 경로
지정
*.db_recovery_file_dest_size=32767m
*.diagnostic_dest='/u01/app/oracle'
*.disk_asynch_io=TRUE
*.dispatchers='(PROTOCOL=TCP) (SERVICE=CLONEDBXDB)' #
CLONEDBXDB 로 지정
*.enable_pluggable_database=true # 멀태태넌트
환경이므로 반드시 true여야함
*.filesystemio_options='SETALL'
*.heat_map='OFF'
family:dw_helper.instance_mode='read-only'
*.local_listener='(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.240.41)(PORT=1521)))'
# 리스너 주소 지정
*.log_archive_dest_1='LOCATION=/home/oracle/CLONEDB/arch' #
아카이브 로그 위치 지정
*.log_archive_format='%t_%s_%r.ARC'
*.nls_language='AMERICAN'
*.nls_territory='KOREA'
*.open_cursors=300
*.optimizer_adaptive_plans=FALSE
*.optimizer_adaptive_reporting_only=TRUE
*.optimizer_dynamic_sampling=0
*.parallel_force_local=TRUE
*.parallel_min_servers=0
*.pga_aggregate_limit=0m
*.pga_aggregate_target=768m # 메모리 설정
*.processes=1432
*.remote_login_passwordfile='exclusive'
*.resource_manager_plan='FORCE:'
*.sga_target=1024m # 메모리 설정
*.undo_retention=3600
*.undo_tablespace='UNDOTBS1' # 언두 테이블 스페이스는 하나만
*.uniform_log_timestamp_format=FALSE
*.use_large_pages='true' # Large Pages는 true로
지정
3. 타켓 DB를 NOMOUNT 모드로 기동
--타켓 DB를 NOMOUNT 모드로 기동하기 위한
디렉토리 생성
[CLONEDB:oracle@ol8ora19rs1][/home/oracle]$ mkdir -pv
/u01/app/oracle/admin/CLONEDB/adump
[CLONEDB:oracle@ol8ora19rs1][/home/oracle]$ mkdir -pv
/home/oracle/CLONEDB/controlfile/
[CLONEDB:oracle@ol8ora19rs1][/home/oracle]$ mkdir -pv
/home/oracle/CLONEDB/onlinelog_1
[CLONEDB:oracle@ol8ora19rs1][/home/oracle]$ mkdir -pv
/home/oracle/CLONEDB/onlinelog_2
[CLONEDB:oracle@ol8ora19rs1][/home/oracle]$ mkdir -pv
/home/oracle/CLONEDB/arch
[CLONEDB:oracle@ol8ora19rs1][/home/oracle]$ mkdir -pv
/home/oracle/CLONEDB/fra
[ORA19RS1:oracle@ol8ora19rs1][/home/oracle]$ export ORACLE_SID=CLONEDB
[CLONEDB:oracle@ol8ora19rs1][/home/oracle]$ alias
ss
alias ss='rlwrap
sqlplus "/as sysdba"'
[CLONEDB:oracle@ol8ora19rs1][/home/oracle]$
ss
SQL*Plus: Release
19.0.0.0.0 - Production on Sat Oct 18 13:11:57 2025
Version 19.28.0.0.0
Copyright (c) 1982, 2025, Oracle. All rights reserved.
Connected to an idle instance.
[ol8ora19rs1]<SYS@CLONEDB>$ startup nomount
pfile='/home/oracle/ORA19RS_BACKUP/initCLONEDB.ora'
ORACLE instance
started.
Total System
Global Area 1073738760 bytes
Fixed
Size
9188360 bytes
Variable
Size
427819008 bytes
Database
Buffers 629145600 bytes
Redo
Buffers
7585792 bytes
4. 소스 DB에서 set new name 스크립트 생성 (타켓 DB의 Restore 작업을
위한)
[ol8ora19rs1]<SYS@ORA19RS1>$
col
set_new_name_datafile for a100
select 'set newname for
datafile '
||
file#
|| ' '
|| 'to '
|| ''''
||
'/home/oracle/CLONEDB/datafile/'
|| replace(con_name,
'$', '_DOLLAR_')
||
'_'
|| ts_name
|| '_'
|| file#
|| '.dbf'
|| ''''
|| ';' as
set_new_name_datafile
from
(
select
a.file#
, a.con_id
, (select l.name from V$CONTAINERS
l where l.con_id = a.con_id) as con_name
, (select l.name from V$tablespace
l where l.ts# = a.ts# and l.con_id = a.con_id) as ts_name
from v$datafile a
) a
order
by a.con_id, a.file#
;
SET_NEW_NAME_DATAFILE
----------------------------------------------------------------------------------------------------
set newname for datafile 1 to
'/home/oracle/CLONEDB/datafile/CDB_DOLLAR_ROOT_SYSTEM_1.dbf';
set newname for datafile 3 to
'/home/oracle/CLONEDB/datafile/CDB_DOLLAR_ROOT_SYSAUX_3.dbf';
set newname for datafile 4 to
'/home/oracle/CLONEDB/datafile/CDB_DOLLAR_ROOT_UNDOTBS1_4.dbf';
set newname for datafile 7 to
'/home/oracle/CLONEDB/datafile/CDB_DOLLAR_ROOT_USERS_7.dbf';
set newname for datafile 9 to
'/home/oracle/CLONEDB/datafile/CDB_DOLLAR_ROOT_UNDOTBS2_9.dbf';
set newname for datafile 5 to
'/home/oracle/CLONEDB/datafile/PDB_DOLLAR_SEED_SYSTEM_5.dbf';
set newname for datafile 6 to
'/home/oracle/CLONEDB/datafile/PDB_DOLLAR_SEED_SYSAUX_6.dbf';
set newname for datafile 8 to
'/home/oracle/CLONEDB/datafile/PDB_DOLLAR_SEED_UNDOTBS1_8.dbf';
set newname for datafile 10 to
'/home/oracle/CLONEDB/datafile/ORA19RSP1_SYSTEM_10.dbf';
set newname for datafile 11 to
'/home/oracle/CLONEDB/datafile/ORA19RSP1_SYSAUX_11.dbf';
set newname for datafile 12 to
'/home/oracle/CLONEDB/datafile/ORA19RSP1_UNDOTBS1_12.dbf';
set newname for datafile 13 to
'/home/oracle/CLONEDB/datafile/ORA19RSP1_UNDO_2_13.dbf';
set newname for datafile 14 to
'/home/oracle/CLONEDB/datafile/ORA19RSP1_USERS_14.dbf';
set newname for datafile 15 to
'/home/oracle/CLONEDB/datafile/ORA19RSP1_TUNER_DATA1_15.dbf';
set newname for datafile 16 to
'/home/oracle/CLONEDB/datafile/ORA19RSP1_TUNER_IDX1_16.dbf';
--> 타켓 DB의 Restore 시 사용할 것임
5. 타켓 DB에서 컨트롤 파일 복구 (소스 DB에서 백업받은 컨트롤 파일 백업을 이용하여 복구)
[ORA19RS1:oracle@ol8ora19rs1][/home/oracle/ORA19RS_BACKUP]$
ls -l /home/oracle/ORA19RS_BACKUP/*CTL*
-rw-r-----. 1
oracle asmadmin 20021248 Oct 19 10:45
/home/oracle/ORA19RS_BACKUP/ORA19RS_CTL_9f46k2m9_303_1_1_20251019
--> 소스 DB의 컨트롤 파일 백업본 확인
[ORA19RS1:oracle@ol8ora19rs1][/home/oracle]$ export
ORACLE_SID=CLONEDB
[CLONEDB:oracle@ol8ora19rs1][/home/oracle]$ export
NLS_DATE_FORMAT='YYYY-MM-DD HH24:MI:SS'
[CLONEDB:oracle@ol8ora19rs1][/home/oracle]$ alias rt
alias rt='rman target /'
[CLONEDB:oracle@ol8ora19rs1][/home/oracle]$ rt
Recovery Manager:
Release 19.0.0.0.0 - Production on Sat Oct 18 13:27:49 2025
Version 19.28.0.0.0
Copyright (c) 1982, 2019, Oracle and/or its affiliates. All rights reserved.
connected to target database: CLONEDB (not mounted)
RMAN> restore
controlfile from
'/home/oracle/ORA19RS_BACKUP/ORA19RS_CTL_9f46k2m9_303_1_1_20251019';
restore
controlfile from
'/home/oracle/ORA19RS_BACKUP/ORA19RS_CTL_9f46k2m9_303_1_1_20251019';
Starting restore at 2025-10-19 13:41:05
using target database control file instead of recovery
catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=277 device
type=DISK
channel
ORA_DISK_1: restoring control file
channel ORA_DISK_1:
restore complete, elapsed time: 00:00:01
output file
name=/home/oracle/CLONEDB/controlfile/ctl_file01.ctl
output file
name=/home/oracle/CLONEDB/controlfile/ctl_file02.ctl
Finished restore at 2025-10-19 13:41:06
--타켓 DB를 MOUNT 모드로
변경
RMAN> alter
database mount;
alter database mount;
released channel:
ORA_DISK_1
Statement processed
6. 타켓 DB의 데이터 파일 Restore
--> set newname for
datafile 지정으로 각각의 datafile에 대한 datafile 위치를 새로 지정으로
--> restore database로 백업본을 새롭게 지정한 datafile 위치에 restore
시킴
--> switch datafile all 명령으로 컨트롤 파일의 내용까지 변경 (새롭게
지정한 데이터파일을 컨트롤 파일이 바라보도록 함)
RMAN>
run
{
allocate channel ch1 device type
disk ;
allocate channel ch2 device type disk
;
set newname for
datafile 1 to '/home/oracle/CLONEDB/datafile/CDB_DOLLAR_ROOT_SYSTEM_1.dbf';
set newname for datafile 3 to
'/home/oracle/CLONEDB/datafile/CDB_DOLLAR_ROOT_SYSAUX_3.dbf';
set newname for datafile 4 to
'/home/oracle/CLONEDB/datafile/CDB_DOLLAR_ROOT_UNDOTBS1_4.dbf';
set newname for datafile 7 to
'/home/oracle/CLONEDB/datafile/CDB_DOLLAR_ROOT_USERS_7.dbf';
set newname for datafile 9 to
'/home/oracle/CLONEDB/datafile/CDB_DOLLAR_ROOT_UNDOTBS2_9.dbf';
set newname for datafile 5 to
'/home/oracle/CLONEDB/datafile/PDB_DOLLAR_SEED_SYSTEM_5.dbf';
set newname for datafile 6 to
'/home/oracle/CLONEDB/datafile/PDB_DOLLAR_SEED_SYSAUX_6.dbf';
set newname for datafile 8 to
'/home/oracle/CLONEDB/datafile/PDB_DOLLAR_SEED_UNDOTBS1_8.dbf';
set newname for datafile 10 to
'/home/oracle/CLONEDB/datafile/ORA19RSP1_SYSTEM_10.dbf';
set newname for datafile 11 to
'/home/oracle/CLONEDB/datafile/ORA19RSP1_SYSAUX_11.dbf';
set newname for datafile 12 to
'/home/oracle/CLONEDB/datafile/ORA19RSP1_UNDOTBS1_12.dbf';
set newname for datafile 13 to
'/home/oracle/CLONEDB/datafile/ORA19RSP1_UNDO_2_13.dbf';
set newname for datafile 14 to
'/home/oracle/CLONEDB/datafile/ORA19RSP1_USERS_14.dbf';
set newname for datafile 15 to
'/home/oracle/CLONEDB/datafile/ORA19RSP1_TUNER_DATA1_15.dbf';
set newname for datafile 16 to
'/home/oracle/CLONEDB/datafile/ORA19RSP1_TUNER_IDX1_16.dbf';
restore
database;
switch datafile all;
release channel
ch1;
release channel ch2;
}
--타켓 DB의 Datafile이 정상적으로
Restore 된것을 확인
[CLONEDB:oracle@ol8ora19rs1][/home/oracle]$ ls -l
/home/oracle/CLONEDB/datafile/
total 12386488
-rw-r-----. 1 oracle
asmadmin 3279953920 Oct 19 14:26 CDB_DOLLAR_ROOT_SYSAUX_3.dbf
-rw-r-----. 1 oracle asmadmin 1226842112 Oct 19 14:26
CDB_DOLLAR_ROOT_SYSTEM_1.dbf
-rw-r-----. 1 oracle
asmadmin 854597632 Oct 19 14:26 CDB_DOLLAR_ROOT_UNDOTBS1_4.dbf
-rw-r-----. 1 oracle asmadmin 104865792 Oct 19 14:26
CDB_DOLLAR_ROOT_UNDOTBS2_9.dbf
-rw-r-----. 1 oracle
asmadmin 5251072 Oct 19 14:26 CDB_DOLLAR_ROOT_USERS_7.dbf
-rw-r-----. 1 oracle asmadmin 2147491840 Oct 19 14:26
ORA19RSP1_SYSAUX_11.dbf
-rw-r-----. 1 oracle
asmadmin 524296192 Oct 19 14:26 ORA19RSP1_SYSTEM_10.dbf
-rw-r-----. 1 oracle asmadmin 1610620928 Oct 19 14:26
ORA19RSP1_TUNER_DATA1_15.dbf
-rw-r-----. 1 oracle
asmadmin 1073750016 Oct 19 14:26 ORA19RSP1_TUNER_IDX1_16.dbf
-rw-r-----. 1 oracle asmadmin 288366592 Oct 19 14:26
ORA19RSP1_UNDO_2_13.dbf
-rw-r-----. 1 oracle
asmadmin 288366592 Oct 19 14:26 ORA19RSP1_UNDOTBS1_12.dbf
-rw-r-----. 1 oracle asmadmin 5251072 Oct
19 14:26 ORA19RSP1_USERS_14.dbf
-rw-r-----. 1 oracle
asmadmin 471867392 Oct 19 14:26 PDB_DOLLAR_SEED_SYSAUX_6.dbf
-rw-r-----. 1 oracle asmadmin 513810432 Oct 19 14:26
PDB_DOLLAR_SEED_SYSTEM_5.dbf
-rw-r-----. 1 oracle
asmadmin 288366592 Oct 19 14:26
PDB_DOLLAR_SEED_UNDOTBS1_8.dbf
7. 타켓 DB의 컨트롤 파일 재생성 작업
7-1. 타켓 DB의 pfile에서 db_name 파라미터의 값을 변경함
[CLONEDB:oracle@ol8ora19rs1][/home/oracle]$ vi
/home/oracle/ORA19RS_BACKUP/initCLONEDB.ora
[CLONEDB:oracle@ol8ora19rs1][/home/oracle]$ cat
/home/oracle/ORA19RS_BACKUP/initCLONEDB.ora | grep -i db_name
*.db_name='CLONEDB'
7-2. 타켓 DB를 shutdown한 후 다시 nomount모드로 기동
[CLONEDB:oracle@ol8ora19rs1][/home/oracle]$ alias
ss
alias ss='rlwrap
sqlplus "/as sysdba"'
[CLONEDB:oracle@ol8ora19rs1][/home/oracle]$ echo
$ORACLE_SID
CLONEDB
[CLONEDB:oracle@ol8ora19rs1][/home/oracle]$ ss
SQL*Plus: Release
19.0.0.0.0 - Production on Sat Oct 18 17:50:15 2025
Version 19.28.0.0.0
Copyright (c) 1982, 2025, Oracle. All rights reserved.
Connected to:
Oracle Database 19c
Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.28.0.0.0
[ol8ora19rs1]<SYS@CLONEDB>$ shutdown immediate;
ORA-01109:
database not open
Database dismounted.
ORACLE
instance shut down.
[ol8ora19rs1]<SYS@CLONEDB>$ startup nomount
pfile='/home/oracle/ORA19RS_BACKUP/initCLONEDB.ora'
ORACLE instance
started.
Total System
Global Area 1073738760 bytes
Fixed
Size
9188360 bytes
Variable
Size
427819008 bytes
Database
Buffers 629145600 bytes
Redo
Buffers
7585792 bytes
7-3. 타켓 DB의 컨트롤 파일을 재생성 (db_name을 기존 ORA19RS에서 CLONEDB로 바꾸는
것임)
--타켓 DB의 컨트롤 파일
백업
[CLONEDB:oracle@ol8ora19rs1][/home/oracle]$ mv
/home/oracle/CLONEDB/controlfile/ctl_file01.ctl
/home/oracle/CLONEDB/controlfile/ctl_file01.ctl.bak
[CLONEDB:oracle@ol8ora19rs1][/home/oracle]$ mv
/home/oracle/CLONEDB/controlfile/ctl_file02.ctl
/home/oracle/CLONEDB/controlfile/ctl_file02.ctl.bak
--컨트롤 파일 재생성 시 사용할 데이터 파일 목록
출력
[ORA19RS1:oracle@ol8ora19rs1][/home/oracle]$ ls -1
/home/oracle/CLONEDB/datafile/*.dbf | sed "s|^/|, '/|" | sed
"s|$|'|"
,
'/home/oracle/CLONEDB/datafile/CDB_DOLLAR_ROOT_SYSAUX_3.dbf'
,
'/home/oracle/CLONEDB/datafile/CDB_DOLLAR_ROOT_SYSTEM_1.dbf'
,
'/home/oracle/CLONEDB/datafile/CDB_DOLLAR_ROOT_UNDOTBS1_4.dbf'
,
'/home/oracle/CLONEDB/datafile/CDB_DOLLAR_ROOT_UNDOTBS2_9.dbf'
,
'/home/oracle/CLONEDB/datafile/CDB_DOLLAR_ROOT_USERS_7.dbf'
,
'/home/oracle/CLONEDB/datafile/ORA19RSP1_SYSAUX_11.dbf'
,
'/home/oracle/CLONEDB/datafile/ORA19RSP1_SYSTEM_10.dbf'
,
'/home/oracle/CLONEDB/datafile/ORA19RSP1_TUNER_DATA1_15.dbf'
,
'/home/oracle/CLONEDB/datafile/ORA19RSP1_TUNER_IDX1_16.dbf'
,
'/home/oracle/CLONEDB/datafile/ORA19RSP1_UNDO_2_13.dbf'
,
'/home/oracle/CLONEDB/datafile/ORA19RSP1_UNDOTBS1_12.dbf'
, '/home/oracle/CLONEDB/datafile/ORA19RSP1_USERS_14.dbf'
,
'/home/oracle/CLONEDB/datafile/PDB_DOLLAR_SEED_SYSAUX_6.dbf'
,
'/home/oracle/CLONEDB/datafile/PDB_DOLLAR_SEED_SYSTEM_5.dbf'
,
'/home/oracle/CLONEDB/datafile/PDB_DOLLAR_SEED_UNDOTBS1_8.dbf'
--> 맨에 "/"로 시작하는 부분을 ", '/"
로 치환
--> 맨 뒤에 "'"를 하나 추가
--컨트롤 파일 재생성
스크립트 작성 (기존 소스DB에서 저장했었던 컨트롤 파일 생성 스크립트 참고해서 작성)
--SET
DATABASE로 DB_NAME을 CLONEDB로 지정
--온라인 리두로그 위치 지정
--데이터 파일 위치 지정
MAXLOGFILES 192
MAXLOGMEMBERS 3
MAXDATAFILES 1024
MAXINSTANCES 32
MAXLOGHISTORY 292
LOGFILE
GROUP 1 (
'/home/oracle/CLONEDB/onlinelog_1/group_1_1.LOG',
'/home/oracle/CLONEDB/onlinelog_1/group_1_2.LOG'
) SIZE 200M BLOCKSIZE 512,
GROUP 2 (
'/home/oracle/CLONEDB/onlinelog_1/group_2_1.LOG',
'/home/oracle/CLONEDB/onlinelog_1/group_2_2.LOG'
) SIZE 200M BLOCKSIZE 512,
GROUP 3 (
'/home/oracle/CLONEDB/onlinelog_1/group_3_1.LOG',
'/home/oracle/CLONEDB/onlinelog_1/group_3_2.LOG'
) SIZE 200M BLOCKSIZE 512
DATAFILE
'/home/oracle/CLONEDB/datafile/CDB_DOLLAR_ROOT_SYSAUX_3.dbf'
, '/home/oracle/CLONEDB/datafile/CDB_DOLLAR_ROOT_SYSTEM_1.dbf'
, '/home/oracle/CLONEDB/datafile/CDB_DOLLAR_ROOT_UNDOTBS1_4.dbf'
, '/home/oracle/CLONEDB/datafile/CDB_DOLLAR_ROOT_UNDOTBS2_9.dbf'
, '/home/oracle/CLONEDB/datafile/CDB_DOLLAR_ROOT_USERS_7.dbf'
, '/home/oracle/CLONEDB/datafile/ORA19RSP1_SYSAUX_11.dbf'
, '/home/oracle/CLONEDB/datafile/ORA19RSP1_SYSTEM_10.dbf'
, '/home/oracle/CLONEDB/datafile/ORA19RSP1_TUNER_DATA1_15.dbf'
, '/home/oracle/CLONEDB/datafile/ORA19RSP1_TUNER_IDX1_16.dbf'
, '/home/oracle/CLONEDB/datafile/ORA19RSP1_UNDO_2_13.dbf'
, '/home/oracle/CLONEDB/datafile/ORA19RSP1_UNDOTBS1_12.dbf'
, '/home/oracle/CLONEDB/datafile/ORA19RSP1_USERS_14.dbf'
, '/home/oracle/CLONEDB/datafile/PDB_DOLLAR_SEED_SYSAUX_6.dbf'
, '/home/oracle/CLONEDB/datafile/PDB_DOLLAR_SEED_SYSTEM_5.dbf'
, '/home/oracle/CLONEDB/datafile/PDB_DOLLAR_SEED_UNDOTBS1_8.dbf'
CHARACTER SET AL32UTF8
;
[CLONEDB:oracle@ol8ora19rs1][/home/oracle]$ echo
$ORACLE_SID
CLONEDB
[CLONEDB:oracle@ol8ora19rs1][/home/oracle]$ alias
ss
alias ss='rlwrap
sqlplus "/as sysdba"'
[CLONEDB:oracle@ol8ora19rs1][/home/oracle]$ ss
SQL*Plus: Release
19.0.0.0.0 - Production on Sat Oct 18 18:00:26 2025
Version 19.28.0.0.0
Copyright (c) 1982, 2025, Oracle. All rights reserved.
Connected to:
Oracle Database 19c
Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.28.0.0.0
[ol8ora19rs1]<SYS@CLONEDB>$
CREATE CONTROLFILE SET DATABASE "CLONEDB" RESETLOGS
ARCHIVELOG
MAXLOGFILES 192
MAXLOGMEMBERS 3
MAXDATAFILES 1024
MAXINSTANCES 32
MAXLOGHISTORY 292
LOGFILE
GROUP 1 (
'/home/oracle/CLONEDB/onlinelog_1/group_1_1.LOG',
'/home/oracle/CLONEDB/onlinelog_1/group_1_2.LOG'
) SIZE 200M BLOCKSIZE 512,
GROUP 2 (
'/home/oracle/CLONEDB/onlinelog_1/group_2_1.LOG',
'/home/oracle/CLONEDB/onlinelog_1/group_2_2.LOG'
) SIZE 200M BLOCKSIZE 512,
GROUP 3 (
'/home/oracle/CLONEDB/onlinelog_1/group_3_1.LOG',
'/home/oracle/CLONEDB/onlinelog_1/group_3_2.LOG'
) SIZE 200M BLOCKSIZE 512
DATAFILE
'/home/oracle/CLONEDB/datafile/CDB_DOLLAR_ROOT_SYSAUX_3.dbf'
,
'/home/oracle/CLONEDB/datafile/CDB_DOLLAR_ROOT_SYSTEM_1.dbf'
,
'/home/oracle/CLONEDB/datafile/CDB_DOLLAR_ROOT_UNDOTBS1_4.dbf'
,
'/home/oracle/CLONEDB/datafile/CDB_DOLLAR_ROOT_UNDOTBS2_9.dbf'
,
'/home/oracle/CLONEDB/datafile/CDB_DOLLAR_ROOT_USERS_7.dbf'
,
'/home/oracle/CLONEDB/datafile/ORA19RSP1_SYSAUX_11.dbf'
,
'/home/oracle/CLONEDB/datafile/ORA19RSP1_SYSTEM_10.dbf'
,
'/home/oracle/CLONEDB/datafile/ORA19RSP1_TUNER_DATA1_15.dbf'
,
'/home/oracle/CLONEDB/datafile/ORA19RSP1_TUNER_IDX1_16.dbf'
,
'/home/oracle/CLONEDB/datafile/ORA19RSP1_UNDO_2_13.dbf'
,
'/home/oracle/CLONEDB/datafile/ORA19RSP1_UNDOTBS1_12.dbf'
, '/home/oracle/CLONEDB/datafile/ORA19RSP1_USERS_14.dbf'
,
'/home/oracle/CLONEDB/datafile/PDB_DOLLAR_SEED_SYSAUX_6.dbf'
,
'/home/oracle/CLONEDB/datafile/PDB_DOLLAR_SEED_SYSTEM_5.dbf'
,
'/home/oracle/CLONEDB/datafile/PDB_DOLLAR_SEED_UNDOTBS1_8.dbf'
CHARACTER SET AL32UTF8
;
Control file created.
Elapsed:
00:00:00.11
[ol8ora19rs1]<SYS@CLONEDB>$ alter database mount;
alter database
mount
*
ERROR at line 1:
ORA-01100: database already mounted
Elapsed: 00:00:00.00
8. 소스 DB의 현재 상태 확인(SCN 확인)
[ORA19RS1:oracle@ol8ora19rs1][/home/oracle]$ echo
$ORACLE_SID
ORA19RS1
[ORA19RS1:oracle@ol8ora19rs1][/home/oracle]$ alias
ss
alias ss='rlwrap
sqlplus "/as sysdba"'
[ORA19RS1:oracle@ol8ora19rs1][/home/oracle]$
ss
SQL*Plus: Release
19.0.0.0.0 - Production on Sat Oct 18 21:40:31 2025
Version 19.28.0.0.0
Copyright (c) 1982, 2025, Oracle. All rights reserved.
Connected to:
Oracle Database 19c
Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.28.0.0.0
[ol8ora19rs1]<SYS@ORA19RS1>$ show con_name
CON_NAME
------------------------------
CDB$ROOT
[ol8ora19rs1]<SYS@ORA19RS1>$
SET LINESIZE
220
SET PAGESIZE 100
SET
NUMWIDTH 20
COLUMN
DBID
FORMAT 999999999999 HEADING 'DBID'
COLUMN
NAME
FORMAT A10 HEADING
'DB_NAME'
COLUMN
OPEN_MODE FORMAT
A12 HEADING
'OPEN_MODE'
COLUMN
DB_UNIQUE_NAME FORMAT
A15 HEADING
'DB_UNIQUE_NAME'
COLUMN RESETLOGS_CHANGE#
FORMAT 999999999999 HEADING 'RESETLOGS|CHANGE#'
COLUMN
RESETLOGS_TIME FORMAT
A19 HEADING
'RESETLOGS_TIME'
COLUMN CHECKPOINT_CHANGE# FORMAT
999999999999 HEADING 'CHECKPOINT|CHANGE#'
COLUMN
ARCHIVE_CHANGE# FORMAT 999999999999 HEADING
'ARCHIVE|CHANGE#'
COLUMN CONTROLFILE_CHANGE# FORMAT
999999999999 HEADING 'CONTROLFILE|CHANGE#'
COLUMN
CURRENT_SCN FORMAT 999999999999
HEADING 'CURRENT|SCN'
COLUMN
CDB
FORMAT A3
HEADING 'CDB'
ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY-MM-DD HH24:MI:SS';
SELECT
DBID
, NAME
, OPEN_MODE
, RESETLOGS_CHANGE#
, RESETLOGS_TIME
, CHECKPOINT_CHANGE#
, ARCHIVE_CHANGE#
, CONTROLFILE_CHANGE#
, CURRENT_SCN
, DB_UNIQUE_NAME
, CDB
FROM
V$DATABASE;
RESETLOGS
CHECKPOINT ARCHIVE
CONTROLFILE CURRENT
DBID
DB_NAME
OPEN_MODE CHANGE#
RESETLOGS_TIME
CHANGE#
CHANGE#
CHANGE# SCN
DB_UNIQUE_NAME CDB
------------- ----------
------------ ------------- ------------------- ------------- -------------
------------- ------------- --------------- ---
1936516987 ORA19RS READ
WRITE 1920977 2025-10-09
22:57:02
5061675
5061672
5215221 5215238 ORA19RS
YES
1 row selected.
Elapsed: 00:00:00.01
--> 현재 소스 DB의 Current SCN이 5215238
임
SET LINESIZE
250
SET PAGESIZE 100
SET
NUMWIDTH 20
COLUMN
FILE#
FORMAT 9999 HEADING
'FILE#'
COLUMN
STATUS
FORMAT A10
HEADING 'STATUS'
COLUMN
TABLESPACE_NAME FORMAT
A20 HEADING
'TABLESPACE_NAME'
COLUMN RESETLOGS_CHANGE# FORMAT
999999999999 HEADING 'RESETLOGS|CHANGE#'
COLUMN
NAME
FORMAT A90
HEADING 'DATAFILE_NAME'
COLUMN CHECKPOINT_CHANGE# FORMAT
999999999999 HEADING 'CHECKPOINT|CHANGE#'
COLUMN
ERROR
FORMAT A12
HEADING 'ERROR'
COLUMN
CON_NAME FORMAT
A12 HEADING
'CON_NAME'
SELECT
a.FILE#
, a.STATUS
, a.TABLESPACE_NAME
, a.RESETLOGS_CHANGE#
, a.NAME
, a.CHECKPOINT_CHANGE#
, a.ERROR
, (SELECT l.name
FROM
v$containers l
WHERE l.con_id =
a.con_id) AS con_name
FROM
v$datafile_header a
ORDER BY
a.FILE#;
RESETLOGS
CHECKPOINT
FILE# STATUS
TABLESPACE_NAME
CHANGE#
DATAFILE_NAME
CHANGE# ERROR CON_NAME
----- ---------- -------------------- -------------
------------------------------------------------------------------------------------------
------------- ------------ ------------
1 ONLINE
SYSTEM
1920977
+DATA1/ORA19RS/DATAFILE/system.257.1214088939
5061672 (NULL) CDB$ROOT
3 ONLINE
SYSAUX
1920977
+DATA1/ORA19RS/DATAFILE/sysaux.258.1214088965
5061672
(NULL) CDB$ROOT
4 ONLINE
UNDOTBS1
1920977
+DATA1/ORA19RS/DATAFILE/undotbs1.259.1214088979
5061672 (NULL) CDB$ROOT
5 ONLINE
SYSTEM
1920977
+DATA1/ORA19RS/86B637B62FE07A65E053F706E80A27CA/DATAFILE/system.266.1214089353
2463120 (NULL) PDB$SEED
6 ONLINE
SYSAUX
1920977
+DATA1/ORA19RS/86B637B62FE07A65E053F706E80A27CA/DATAFILE/sysaux.267.1214089353
2463120 (NULL) PDB$SEED
7 ONLINE
USERS
1920977
+DATA1/ORA19RS/DATAFILE/users.260.1214088981
5061672 (NULL) CDB$ROOT
8 ONLINE
UNDOTBS1
1920977
+DATA1/ORA19RS/86B637B62FE07A65E053F706E80A27CA/DATAFILE/undotbs1.268.1214089353
2463120 (NULL) PDB$SEED
9 ONLINE
UNDOTBS2
1920977
+DATA1/ORA19RS/DATAFILE/undotbs2.270.1214089557
5061672 (NULL) CDB$ROOT
10 ONLINE
SYSTEM
1920977
+DATA1/ORA19RS/40BB61DA40640933E0632AF0A8C05571/DATAFILE/system.277.1214089911
5061672 (NULL) ORA19RSP1
11 ONLINE
SYSAUX
1920977
+DATA1/ORA19RS/40BB61DA40640933E0632AF0A8C05571/DATAFILE/sysaux.276.1214089911
5061672 (NULL) ORA19RSP1
12 ONLINE
UNDOTBS1
1920977
+DATA1/ORA19RS/40BB61DA40640933E0632AF0A8C05571/DATAFILE/undotbs1.275.1214089911
5061672 (NULL) ORA19RSP1
13 ONLINE
UNDO_2
1920977
+DATA1/ORA19RS/40BB61DA40640933E0632AF0A8C05571/DATAFILE/undo_2.279.1214089919
5061672 (NULL) ORA19RSP1
14 ONLINE
USERS
1920977
+DATA1/ORA19RS/40BB61DA40640933E0632AF0A8C05571/DATAFILE/users.280.1214089923
5061672 (NULL) ORA19RSP1
15 ONLINE
TUNER_DATA1
1920977
+DATA1/ORA19RS/40BB61DA40640933E0632AF0A8C05571/DATAFILE/tuner_data1.282.1214210173
5061672 (NULL) ORA19RSP1
16 ONLINE
TUNER_IDX1
1920977
+DATA1/ORA19RS/40BB61DA40640933E0632AF0A8C05571/DATAFILE/tuner_idx1.283.1214210175
5061672 (NULL) ORA19RSP1
15 rows selected.
Elapsed: 00:00:00.01
9. 타켓 DB의 현재 상태 확인(SCN 확인)
[ORA19RS1:oracle@ol8ora19rs1][/home/oracle]$ export
ORACLE_SID=CLONEDB
[CLONEDB:oracle@ol8ora19rs1][/home/oracle]$ alias ss
alias ss='rlwrap sqlplus "/as
sysdba"'
[CLONEDB:oracle@ol8ora19rs1][/home/oracle]$
ss
SQL*Plus: Release
19.0.0.0.0 - Production on Sat Oct 18 21:43:07 2025
Version 19.28.0.0.0
Copyright (c) 1982, 2025, Oracle. All rights reserved.
Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 -
Production
Version 19.28.0.0.0
[ol8ora19rs1]<SYS@CLONEDB>$ show con_name
CON_NAME
------------------------------
CDB$ROOT
[ol8ora19rs1]<SYS@CLONEDB>$
SET LINESIZE
220
SET PAGESIZE 100
SET
NUMWIDTH 20
COLUMN
DBID
FORMAT 999999999999 HEADING 'DBID'
COLUMN
NAME
FORMAT A10 HEADING
'DB_NAME'
COLUMN
OPEN_MODE FORMAT
A12 HEADING
'OPEN_MODE'
COLUMN
DB_UNIQUE_NAME FORMAT
A15 HEADING
'DB_UNIQUE_NAME'
COLUMN RESETLOGS_CHANGE#
FORMAT 999999999999 HEADING 'RESETLOGS|CHANGE#'
COLUMN
RESETLOGS_TIME FORMAT
A19 HEADING
'RESETLOGS_TIME'
COLUMN CHECKPOINT_CHANGE# FORMAT
999999999999 HEADING 'CHECKPOINT|CHANGE#'
COLUMN
ARCHIVE_CHANGE# FORMAT 999999999999 HEADING
'ARCHIVE|CHANGE#'
COLUMN CONTROLFILE_CHANGE# FORMAT
999999999999 HEADING 'CONTROLFILE|CHANGE#'
COLUMN
CURRENT_SCN FORMAT 999999999999
HEADING 'CURRENT|SCN'
COLUMN
CDB
FORMAT A3
HEADING 'CDB'
ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY-MM-DD HH24:MI:SS';
SELECT
DBID
, NAME
, OPEN_MODE
, RESETLOGS_CHANGE#
, RESETLOGS_TIME
, CHECKPOINT_CHANGE#
, ARCHIVE_CHANGE#
, CONTROLFILE_CHANGE#
, CURRENT_SCN
, DB_UNIQUE_NAME
, CDB
FROM
V$DATABASE;
RESETLOGS
CHECKPOINT ARCHIVE
CONTROLFILE CURRENT
DBID
DB_NAME
OPEN_MODE CHANGE#
RESETLOGS_TIME
CHANGE#
CHANGE#
CHANGE# SCN
DB_UNIQUE_NAME CDB
------------- ----------
------------ ------------- ------------------- ------------- -------------
------------- ------------- --------------- ---
1936516987 CLONEDB
MOUNTED
1920977 2025-10-09
22:57:02
0
0
0 0
CLONEDB YES
-->
mount 상태이므로 scn 작업을 안하고 있음
SET LINESIZE 250
SET PAGESIZE
100
SET NUMWIDTH 20
COLUMN
FILE#
FORMAT 9999 HEADING
'FILE#'
COLUMN
STATUS
FORMAT A10
HEADING 'STATUS'
COLUMN
TABLESPACE_NAME FORMAT
A20 HEADING
'TABLESPACE_NAME'
COLUMN RESETLOGS_CHANGE# FORMAT
999999999999 HEADING 'RESETLOGS|CHANGE#'
COLUMN
NAME
FORMAT A90
HEADING 'DATAFILE_NAME'
COLUMN CHECKPOINT_CHANGE# FORMAT
999999999999 HEADING 'CHECKPOINT|CHANGE#'
COLUMN
ERROR
FORMAT A12
HEADING 'ERROR'
COLUMN
CON_NAME FORMAT
A20 HEADING
'CON_NAME'
SELECT
a.FILE#
, a.STATUS
, a.TABLESPACE_NAME
, a.RESETLOGS_CHANGE#
, a.NAME
, a.CHECKPOINT_CHANGE#
, a.ERROR
, (SELECT l.name
FROM
v$containers l
WHERE l.con_id =
a.con_id) AS con_name
FROM
v$datafile_header a
ORDER BY
a.FILE#;
RESETLOGS
CHECKPOINT
FILE# STATUS
TABLESPACE_NAME
CHANGE#
DATAFILE_NAME
CHANGE# ERROR CON_NAME
----- ---------- -------------------- -------------
------------------------------------------------------------------------------------------
------------- ------------ --------------------
1 ONLINE
SYSTEM
1920977
/home/oracle/CLONEDB/datafile/CDB_DOLLAR_ROOT_SYSTEM_1.dbf
5061316 (NULL) CDB$ROOT
3 ONLINE
SYSAUX
1920977
/home/oracle/CLONEDB/datafile/CDB_DOLLAR_ROOT_SYSAUX_3.dbf
5061290 (NULL) CDB$ROOT
4 ONLINE
UNDOTBS1
1920977
/home/oracle/CLONEDB/datafile/CDB_DOLLAR_ROOT_UNDOTBS1_4.dbf
5061359 (NULL) CDB$ROOT
5 ONLINE
SYSTEM
1920977
/home/oracle/CLONEDB/datafile/PDB_DOLLAR_SEED_SYSTEM_5.dbf
2463120 (NULL) PDB$SEED
6 ONLINE
SYSAUX
1920977
/home/oracle/CLONEDB/datafile/PDB_DOLLAR_SEED_SYSAUX_6.dbf
2463120 (NULL) PDB$SEED
7 ONLINE
USERS
1920977
/home/oracle/CLONEDB/datafile/CDB_DOLLAR_ROOT_USERS_7.dbf
5061384 (NULL) CDB$ROOT
8 ONLINE
UNDOTBS1
1920977
/home/oracle/CLONEDB/datafile/PDB_DOLLAR_SEED_UNDOTBS1_8.dbf
2463120 (NULL) PDB$SEED
9 ONLINE
UNDOTBS2
1920977
/home/oracle/CLONEDB/datafile/CDB_DOLLAR_ROOT_UNDOTBS2_9.dbf
5061371 (NULL) CDB$ROOT
10 ONLINE
SYSTEM
1920977
/home/oracle/CLONEDB/datafile/ORA19RSP1_SYSTEM_10.dbf
5061417 (NULL) _###_UNKNOWN_PDB_#_3
11 ONLINE
SYSAUX
1920977
/home/oracle/CLONEDB/datafile/ORA19RSP1_SYSAUX_11.dbf
5061398 (NULL) _###_UNKNOWN_PDB_#_3
12 ONLINE
UNDOTBS1
1920977
/home/oracle/CLONEDB/datafile/ORA19RSP1_UNDOTBS1_12.dbf
5061472 (NULL) _###_UNKNOWN_PDB_#_3
13 ONLINE
UNDO_2
1920977
/home/oracle/CLONEDB/datafile/ORA19RSP1_UNDO_2_13.dbf
5061486 (NULL) _###_UNKNOWN_PDB_#_3
14 ONLINE
USERS
1920977
/home/oracle/CLONEDB/datafile/ORA19RSP1_USERS_14.dbf
5061501 (NULL) _###_UNKNOWN_PDB_#_3
15 ONLINE
TUNER_DATA1
1920977
/home/oracle/CLONEDB/datafile/ORA19RSP1_TUNER_DATA1_15.dbf
5061441 (NULL) _###_UNKNOWN_PDB_#_3
16 ONLINE
TUNER_IDX1
1920977
/home/oracle/CLONEDB/datafile/ORA19RSP1_TUNER_IDX1_16.dbf
5061457 (NULL) _###_UNKNOWN_PDB_#_3
--> 소스의
Current SCN이 5215238 인 상황에서 타켓 DB는 당연히 모든 데이터 파일이 소스 DB의 Current SCN보다
낮음
SET LINESIZE
200
SET PAGESIZE 100
SET
NUMWIDTH 20
COLUMN MIN_CHECKPOINT_CHANGE# FORMAT
999999999999 HEADING 'MIN|CHECKPOINT_CHANGE#'
COLUMN
MAX_CHECKPOINT_CHANGE# FORMAT 999999999999 HEADING
'MAX|CHECKPOINT_CHANGE#'
SELECT
MIN(a.CHECKPOINT_CHANGE#) AS
MIN_CHECKPOINT_CHANGE#
,
MAX(a.CHECKPOINT_CHANGE#) AS MAX_CHECKPOINT_CHANGE#
FROM
(
SELECT
a.FILE#
, a.STATUS
, a.TABLESPACE_NAME
, a.RESETLOGS_CHANGE#
, a.NAME
, a.CHECKPOINT_CHANGE#
, a.ERROR
, (SELECT l.name
FROM v$containers l
WHERE l.con_id = a.con_id) AS CON_NAME
FROM
v$datafile_header a
ORDER BY
a.FILE#
) a
WHERE
CON_NAME
<> 'PDB$SEED';
MIN
MAX
CHECKPOINT_CHANGE# CHECKPOINT_CHANGE#
------------------ ------------------
5061290
5061501
1 row selected.
Elapsed: 00:00:00.02
--> 현재 타켓 DB의 각 Datafile의
SCN의 MAX값은 5061501 임
--> 소스 DB의 아카이브 로그를 이용하여 타켓 DB의
SCN을 5061501 까지 Recover 할 것임
10. 소스 DB에서 타켓 DB를 SCN 5061501 까지 복구 시키는데 필요한 아카이브 로그를 조회
[ORA19RS1:oracle@ol8ora19rs1][/home/oracle]$ echo
$ORACLE_SID
ORA19RS1
[ORA19RS1:oracle@ol8ora19rs1][/home/oracle]$ alias
ss
alias ss='rlwrap
sqlplus "/as sysdba"'
[ORA19RS1:oracle@ol8ora19rs1][/home/oracle]$
ss
SQL*Plus: Release
19.0.0.0.0 - Production on Sun Oct 19 15:06:42 2025
Version 19.28.0.0.0
Copyright (c) 1982, 2025, Oracle. All rights reserved.
Connected to:
Oracle Database 19c
Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.28.0.0.0
[ol8ora19rs1]<SYS@ORA19RS1>$ show con_name
CON_NAME
------------------------------
CDB$ROOT
[ol8ora19rs1]<SYS@ORA19RS1>$
SET LINESIZE
220
SET PAGESIZE 200
SET
NUMWIDTH 20
COLUMN
THREAD# FORMAT
999 HEADING 'THR'
COLUMN
SEQUENCE# FORMAT 999999 HEADING
'SEQ'
COLUMN RESETLOGS_CHANGE# FORMAT 999999999999
HEADING 'RESETLOGS|CHANGE#'
COLUMN
FIRST_CHANGE# FORMAT 999999999999 HEADING 'FIRST|CHANGE#'
COLUMN NEXT_CHANGE# FORMAT 999999999999
HEADING 'NEXT|CHANGE#'
COLUMN
ARCHIVED FORMAT
A8 HEADING 'ARCHIVED'
COLUMN
DELETED FORMAT
A8 HEADING 'DELETED'
COLUMN
NAME FORMAT
A100 HEADING 'ARCHIVELOG NAME'
SELECT
A.NAME
, A.THREAD#
, A.SEQUENCE#
, A.RESETLOGS_CHANGE#
, A.FIRST_CHANGE#
, A.NEXT_CHANGE#
, A.ARCHIVED
, A.DELETED
FROM V$ARCHIVED_LOG A
WHERE 1=1
AND A.FIRST_CHANGE# <= 5061501
--타켓 DB가 가야할 지점은 5061501이므로 FIRST_CHANGE# 이 5061501 보다 작거나 같은 것은 복구
대상임
AND A.NEXT_CHANGE# >=
5061292 --타켓 DB은 5061291 까지 적용된 상태이므로 A.NEXT_CHANGE# 이
5061291+1=5061292 보다 같거나 큰 것은 복구대상임
ORDER BY A.THREAD#, A.SEQUENCE#
;
--타켓 DB를 5061501 (MAX) 까지 복구
시킬려면 5061290 (MIN) 까지는 완전히 적용된 상태이므로
--SCN
5061290~5061501 MIN~MAX 구간이 위의 출력값에 나온 아카이브에 모두 출력되어야함
RESETLOGS
FIRST NEXT
ARCHIVELOG
NAME
THR SEQ
CHANGE#
CHANGE# CHANGE# ARCHIVED DELETED
----------------------------------------------------------------------------------------------------
---- ------- ------------- ------------- ------------- -------- --------
+FRA1/ORA19RS/ARCHIVELOG/2025_10_19/thread_1_seq_64.271.1214909161
1 64
1920977
5061203 5061675
YES NO
+FRA1/ORA19RS/ARCHIVELOG/2025_10_19/thread_2_seq_49.272.1214909161
2 49
1920977
5061207 5061672
YES NO
2 rows selected.
Elapsed: 00:00:00.01
--> 위에서 나온 출력값에서 MIN값은
5061203 이고 MAX값은 5061675 임
--> 이 구간은 타켓 DB의 복구 조건인
5061290~5061501 구간을 완전히 만족함
--> 그러므로 위 2개의 파일만
Recover시키면 타켓 DB를 5061501 까지 복구해서 Resetlogs OPEN 시킬 수 있는 상황인
것임
[ORA19RS1:oracle@ol8ora19rs1][/home/oracle]$ echo
$ORACLE_SID
ORA19RS1
[ORA19RS1:oracle@ol8ora19rs1][/home/oracle]$ alias
rt
alias rt='rman
target /'
[ORA19RS1:oracle@ol8ora19rs1][/home/oracle]$
rt
Recovery Manager:
Release 19.0.0.0.0 - Production on Sun Oct 19 15:35:16 2025
Version 19.28.0.0.0
Copyright (c) 1982, 2019, Oracle and/or its affiliates. All rights reserved.
connected to target database: ORA19RS (DBID=1936516987)
RMAN> list
backup;
...
BS
Key Size Device Type Elapsed Time
Completion Time
------- ---------- -----------
------------ -------------------
301 15.00K
DISK 00:00:00
2025-10-19 10:46:01
BP Key:
301 Status: AVAILABLE Compressed: NO Tag:
TAG20251019T104601
Piece Name:
/home/oracle/ORA19RS_BACKUP/ARCHIVE_ORA19RS_20251019_9g46k2n9_s304_p1
List of Archived Logs in backup set 301
Thrd Seq Low
SCN Low
Time Next
SCN Next Time
---- ------- ----------
------------------- ---------- ---------
1 64 5061203
2025-10-19 10:43:35 5061675 2025-10-19 10:46:01
2 49
5061207 2025-10-19 10:43:37 5061672
2025-10-19 10:46:01
--> thread 1의 seqeunce
64와
--> thread 2의 sequence 49는
-->
/home/oracle/ORA19RS_BACKUP/ARCHIVE_ORA19RS_20251019_9g46k2n9_s304_p1 파일로 백업되어
있음
11. 타켓 디비에서 아카이브 파일 적용
[ORA19RS1:oracle@ol8ora19rs1][/home/oracle]$ export
ORACLE_SID=CLONEDB
[CLONEDB:oracle@ol8ora19rs1][/home/oracle]$ alias rt
alias rt='rman target /'
[CLONEDB:oracle@ol8ora19rs1][/home/oracle]$
rt
Recovery Manager:
Release 19.0.0.0.0 - Production on Sat Oct 18 22:25:56 2025
Version 19.28.0.0.0
Copyright (c) 1982, 2019, Oracle and/or its affiliates. All rights reserved.
connected to target database: CLONEDB (DBID=1936516987, not open)
RMAN> catalog
start with
'/home/oracle/ORA19RS_BACKUP/ARCHIVE_ORA19RS_20251019_9g46k2n9_s304_p1';
catalog start with
'/home/oracle/ORA19RS_BACKUP/ARCHIVE_ORA19RS_20251019_9g46k2n9_s304_p1';
using target database control file instead of recovery
catalog
searching for all files that match the pattern
/home/oracle/ORA19RS_BACKUP/ARCHIVE_ORA19RS_20251019_9g46k2n9_s304_p1
List of Files
Unknown to the Database
=====================================
File Name:
/home/oracle/ORA19RS_BACKUP/ARCHIVE_ORA19RS_20251019_9g46k2n9_s304_p1
Do you really want
to catalog the above files (enter YES or NO)? YES
cataloging files...
cataloging
done
List of Cataloged
Files
=======================
File Name:
/home/oracle/ORA19RS_BACKUP/ARCHIVE_ORA19RS_20251019_9g46k2n9_s304_p1
RMAN> list backup;
list
backup;
List of Backup
Sets
===================
BS Key Size
Device Type Elapsed Time Completion Time
-------
---------- ----------- ------------ -------------------
1
15.00K DISK
00:00:00 2025-10-19 10:46:01
BP Key:
1 Status: AVAILABLE Compressed: NO Tag:
TAG20251019T104601
Piece Name:
/home/oracle/ORA19RS_BACKUP/ARCHIVE_ORA19RS_20251019_9g46k2n9_s304_p1
List of
Archived Logs in backup set 1
Thrd
Seq Low SCN Low
Time Next
SCN Next Time
---- ------- ----------
------------------- ---------- ---------
1 64 5061203
2025-10-19 10:43:35 5061675 2025-10-19 10:46:01
2 49
5061207 2025-10-19 10:43:37 5061672
2025-10-19 10:46:01
--> 위의 아카이브 로그를 가지고 5061675-1=5061674 까지 복구가 가능함
--> 반드시 해줄 필요는 없음 recover database하면 자동으로 백업본에서 읽어서
recover 시키게됨 (연습용)
RMAN> RESTORE
ARCHIVELOG SEQUENCE 64 THREAD 1;
RESTORE ARCHIVELOG SEQUENCE 64 THREAD 1;
Starting restore at 2025-10-19 15:40:36
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=1639 device
type=DISK
channel
ORA_DISK_1: starting archived log restore to default destination
channel ORA_DISK_1: restoring archived log
archived log thread=1 sequence=64
channel ORA_DISK_1: reading from backup piece
/home/oracle/ORA19RS_BACKUP/ARCHIVE_ORA19RS_20251019_9g46k2n9_s304_p1
channel ORA_DISK_1: piece
handle=/home/oracle/ORA19RS_BACKUP/ARCHIVE_ORA19RS_20251019_9g46k2n9_s304_p1
tag=TAG20251019T104601
channel ORA_DISK_1: restored
backup piece 1
channel ORA_DISK_1: restore complete,
elapsed time: 00:00:01
Finished restore at 2025-10-19
15:40:37
--> 반드시 해줄 필요는 없음
recover database하면 자동으로 백업본에서 읽어서 recover 시키게됨 (연습용)
RMAN> RESTORE
ARCHIVELOG SEQUENCE 49 THREAD 2;
RESTORE ARCHIVELOG SEQUENCE 49 THREAD 2;
Starting restore at 2025-10-19 15:40:56
using channel ORA_DISK_1
channel
ORA_DISK_1: starting archived log restore to default destination
channel ORA_DISK_1: restoring archived log
archived log thread=2 sequence=49
channel ORA_DISK_1: reading from backup piece
/home/oracle/ORA19RS_BACKUP/ARCHIVE_ORA19RS_20251019_9g46k2n9_s304_p1
channel ORA_DISK_1: piece
handle=/home/oracle/ORA19RS_BACKUP/ARCHIVE_ORA19RS_20251019_9g46k2n9_s304_p1
tag=TAG20251019T104601
channel ORA_DISK_1: restored
backup piece 1
channel ORA_DISK_1: restore complete,
elapsed time: 00:00:01
Finished restore at 2025-10-19
15:40:57
RMAN> host 'ls
-l /home/oracle/CLONEDB/arch';
host 'ls -l /home/oracle/CLONEDB/arch';
total 16
-rw-r-----. 1 oracle
asmadmin 9728 Oct 19 15:40 1_64_1214089022.ARC
-rw-r-----. 1 oracle asmadmin 2560 Oct 19 15:40
2_49_1214089022.ARC
host command
complete
--타켓 DB를 SCN 5061501 까지
Recover 시킴
RUN {
SET UNTIL
SCN 5061501;
RECOVER DATABASE;
}
executing command: SET until clause
Starting recover
at 2025-10-19 15:42:49
using channel
ORA_DISK_1
starting media recovery
archived log for thread
1 with sequence 64 is already on disk as file
/home/oracle/CLONEDB/arch/1_64_1214089022.ARC
archived
log for thread 2 with sequence 49 is already on disk as file
/home/oracle/CLONEDB/arch/2_49_1214089022.ARC
archived
log file name=/home/oracle/CLONEDB/arch/1_64_1214089022.ARC thread=1
sequence=64
archived log file
name=/home/oracle/CLONEDB/arch/2_49_1214089022.ARC thread=2 sequence=49
media recovery complete, elapsed time: 00:00:00
Finished recover at 2025-10-19 15:42:50
--> 복구 시킨 아카이브는 5061674 까지
복구 가능
--> 그것보다 작은 5061501 까지 복구 시켰으니 제대로
완료됨
[ol8ora19rs1]<SYS@CLONEDB>$
SET LINESIZE
250
SET PAGESIZE 100
SET
NUMWIDTH 20
COLUMN
FILE#
FORMAT 9999 HEADING
'FILE#'
COLUMN
STATUS
FORMAT A10
HEADING 'STATUS'
COLUMN
TABLESPACE_NAME FORMAT
A20 HEADING
'TABLESPACE_NAME'
COLUMN RESETLOGS_CHANGE# FORMAT
999999999999 HEADING 'RESETLOGS|CHANGE#'
COLUMN
NAME
FORMAT A90
HEADING 'DATAFILE_NAME'
COLUMN CHECKPOINT_CHANGE# FORMAT
999999999999 HEADING 'CHECKPOINT|CHANGE#'
COLUMN
ERROR
FORMAT A12
HEADING 'ERROR'
COLUMN
CON_NAME FORMAT
A20 HEADING
'CON_NAME'
SELECT
a.FILE#
, a.STATUS
, a.TABLESPACE_NAME
, a.RESETLOGS_CHANGE#
, a.NAME
, a.CHECKPOINT_CHANGE#
, a.ERROR
, (SELECT l.name
FROM
v$containers l
WHERE l.con_id =
a.con_id) AS con_name
FROM
v$datafile_header a
ORDER BY
a.FILE#;
FILE# STATUS
TABLESPACE_NAME
CHANGE#
DATAFILE_NAME
CHANGE# ERROR CON_NAME
----- ---------- -------------------- -------------
-------------------------------------------------------------- -------------
------------ --------------------
1
ONLINE
SYSTEM
1920977
/home/oracle/CLONEDB/datafile/CDB_DOLLAR_ROOT_SYSTEM_1.dbf
5061501 (NULL) CDB$ROOT
3 ONLINE
SYSAUX
1920977
/home/oracle/CLONEDB/datafile/CDB_DOLLAR_ROOT_SYSAUX_3.dbf
5061501 (NULL) CDB$ROOT
4 ONLINE
UNDOTBS1
1920977
/home/oracle/CLONEDB/datafile/CDB_DOLLAR_ROOT_UNDOTBS1_4.dbf
5061501 (NULL) CDB$ROOT
5 ONLINE
SYSTEM
1920977
/home/oracle/CLONEDB/datafile/PDB_DOLLAR_SEED_SYSTEM_5.dbf
2463120 (NULL) PDB$SEED
6 ONLINE
SYSAUX
1920977
/home/oracle/CLONEDB/datafile/PDB_DOLLAR_SEED_SYSAUX_6.dbf
2463120 (NULL) PDB$SEED
7 ONLINE
USERS
1920977
/home/oracle/CLONEDB/datafile/CDB_DOLLAR_ROOT_USERS_7.dbf
5061501 (NULL) CDB$ROOT
8 ONLINE
UNDOTBS1
1920977
/home/oracle/CLONEDB/datafile/PDB_DOLLAR_SEED_UNDOTBS1_8.dbf
2463120 (NULL) PDB$SEED
9 ONLINE
UNDOTBS2
1920977
/home/oracle/CLONEDB/datafile/CDB_DOLLAR_ROOT_UNDOTBS2_9.dbf
5061501 (NULL) CDB$ROOT
10 ONLINE
SYSTEM
1920977
/home/oracle/CLONEDB/datafile/ORA19RSP1_SYSTEM_10.dbf
5061501 (NULL) _###_UNKNOWN_PDB_#_3
11 ONLINE
SYSAUX
1920977
/home/oracle/CLONEDB/datafile/ORA19RSP1_SYSAUX_11.dbf
5061501 (NULL) _###_UNKNOWN_PDB_#_3
12 ONLINE
UNDOTBS1
1920977
/home/oracle/CLONEDB/datafile/ORA19RSP1_UNDOTBS1_12.dbf
5061501 (NULL) _###_UNKNOWN_PDB_#_3
13 ONLINE
UNDO_2
1920977
/home/oracle/CLONEDB/datafile/ORA19RSP1_UNDO_2_13.dbf
5061501 (NULL) _###_UNKNOWN_PDB_#_3
14 ONLINE
USERS
1920977
/home/oracle/CLONEDB/datafile/ORA19RSP1_USERS_14.dbf
5061501 (NULL) _###_UNKNOWN_PDB_#_3
15 ONLINE
TUNER_DATA1
1920977
/home/oracle/CLONEDB/datafile/ORA19RSP1_TUNER_DATA1_15.dbf
5061501 (NULL) _###_UNKNOWN_PDB_#_3
16 ONLINE
TUNER_IDX1
1920977
/home/oracle/CLONEDB/datafile/ORA19RSP1_TUNER_IDX1_16.dbf
5061501 (NULL) _###_UNKNOWN_PDB_#_3
-->
5061501 까지 정상적으로 Recover 된 것을 알 수 있음
15 rows selected.
Elapsed: 00:00:00.01
SET LINESIZE 200
SET PAGESIZE
100
SET NUMWIDTH 20
COLUMN
MIN_CHECKPOINT_CHANGE# FORMAT 999999999999 HEADING 'MIN|CHECKPOINT_CHANGE#'
COLUMN MAX_CHECKPOINT_CHANGE# FORMAT 999999999999 HEADING
'MAX|CHECKPOINT_CHANGE#'
SELECT
MIN(a.CHECKPOINT_CHANGE#) AS
MIN_CHECKPOINT_CHANGE#
,
MAX(a.CHECKPOINT_CHANGE#) AS MAX_CHECKPOINT_CHANGE#
FROM
(
SELECT
a.FILE#
, a.STATUS
, a.TABLESPACE_NAME
, a.RESETLOGS_CHANGE#
, a.NAME
, a.CHECKPOINT_CHANGE#
, a.ERROR
, (SELECT l.name
FROM v$containers l
WHERE l.con_id = a.con_id) AS CON_NAME
FROM
v$datafile_header a
ORDER BY
a.FILE#
) a
WHERE
CON_NAME
<> 'PDB$SEED';
MIN
MAX
CHECKPOINT_CHANGE# CHECKPOINT_CHANGE#
------------------ ------------------
5061501
5061501
1 row selected.
Elapsed: 00:00:00.02
--> 이 상태에서 타켓 DB를 Resetlogs
OPEN 시키면 됨
--> 하지만 이번 테스트는 이 상태에서
--> 소스 DB에서 신규 트랜잭션을 일으킨 후
--> 그것까지 타켓 DB에 적용한 후 Resetlogs OPEN 시킬
것임
12. 소스 DB 에서 트랜잭션 발생
[ORA19RS1:oracle@ol8ora19rs1][/home/oracle/oracle_scripts]$
alias ss
alias ss='rlwrap sqlplus "/as sysdba"'
[ORA19RS1:oracle@ol8ora19rs1][/home/oracle/oracle_scripts]$
echo $ORACLE_SID
ORA19RS1
[ORA19RS1:oracle@ol8ora19rs1][/home/oracle/oracle_scripts]$
ss
SQL*Plus: Release
19.0.0.0.0 - Production on Sat Oct 18 22:54:31 2025
Version 19.28.0.0.0
Copyright (c) 1982, 2025, Oracle. All rights reserved.
Connected to:
Oracle Database 19c
Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.28.0.0.0
[ol8ora19rs1]<SYS@ORA19RS1>$
SET LINESIZE
220
SET PAGESIZE 100
SET
NUMWIDTH 20
COLUMN
DBID
FORMAT 999999999999 HEADING 'DBID'
COLUMN
NAME
FORMAT A10 HEADING
'DB_NAME'
COLUMN
OPEN_MODE FORMAT
A12 HEADING
'OPEN_MODE'
COLUMN
DB_UNIQUE_NAME FORMAT
A15 HEADING
'DB_UNIQUE_NAME'
COLUMN RESETLOGS_CHANGE#
FORMAT 999999999999 HEADING 'RESETLOGS|CHANGE#'
COLUMN
RESETLOGS_TIME FORMAT
A19 HEADING
'RESETLOGS_TIME'
COLUMN CHECKPOINT_CHANGE# FORMAT
999999999999 HEADING 'CHECKPOINT|CHANGE#'
COLUMN
ARCHIVE_CHANGE# FORMAT 999999999999 HEADING
'ARCHIVE|CHANGE#'
COLUMN CONTROLFILE_CHANGE# FORMAT
999999999999 HEADING 'CONTROLFILE|CHANGE#'
COLUMN
CURRENT_SCN FORMAT 999999999999
HEADING 'CURRENT|SCN'
COLUMN
CDB
FORMAT A3
HEADING 'CDB'
ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY-MM-DD HH24:MI:SS';
SELECT
DBID
, NAME
, OPEN_MODE
, RESETLOGS_CHANGE#
, RESETLOGS_TIME
, CHECKPOINT_CHANGE#
, ARCHIVE_CHANGE#
, CONTROLFILE_CHANGE#
, CURRENT_SCN
, DB_UNIQUE_NAME
, CDB
FROM
V$DATABASE;
RESETLOGS
CHECKPOINT ARCHIVE
CONTROLFILE CURRENT
DBID
DB_NAME
OPEN_MODE CHANGE#
RESETLOGS_TIME
CHANGE#
CHANGE#
CHANGE# SCN
DB_UNIQUE_NAME CDB
------------- ----------
------------ ------------- ------------------- ------------- -------------
------------- ------------- --------------- ---
1936516987 ORA19RS READ
WRITE 1920977 2025-10-09
22:57:02
5402848
5196008
5422296 5422310 ORA19RS
YES
1 row selected.
Elapsed: 00:00:00.00
--현재 소스 DB의 Current SCN은 5422310
임
SET LINESIZE 220
SET PAGESIZE
100
SET NUMWIDTH 20
COLUMN
GROUP# FORMAT 999
HEADING 'GROUP#'
COLUMN
THREAD# FORMAT 99
HEADING 'THR'
COLUMN
SEQUENCE# FORMAT 99999 HEADING 'SEQ#'
COLUMN
MEMBER FORMAT A70
HEADING 'MEMBER (REDO LOG FILE PATH)'
COLUMN
A.STATUS FORMAT A10 HEADING
'FILE|STATUS'
COLUMN
A.TYPE FORMAT
A5 HEADING 'TYPE'
COLUMN
MB
FORMAT 9990 HEADING 'SIZE(MB)'
COLUMN
B.STATUS FORMAT A10 HEADING
'LOG|STATUS'
COLUMN
B.ARCHIVED FORMAT A9 HEADING
'ARCHIVED'
COLUMN B.FIRST_CHANGE# FORMAT
999999999999 HEADING 'FIRST|CHANGE#'
COLUMN
B.NEXT_CHANGE# FORMAT 999999999999 HEADING
'NEXT|CHANGE#'
SELECT A.GROUP#
, B.THREAD#
, B.SEQUENCE#
, A.MEMBER
, A.STATUS
, A.TYPE
, B.BYTES/1024/1024 AS MB
, B.STATUS
, b.ARCHIVED
, b.FIRST_CHANGE#
, b.NEXT_CHANGE#
FROM V$LOGFILE A
, V$LOG B
WHERE A.GROUP# = B.GROUP#
ORDER BY A.GROUP#, B.THREAD#, B.SEQUENCE#
;
GROUP# THR SEQ# MEMBER (REDO LOG FILE
PATH)
STATUS TYPE SIZE(MB)
STATUS
ARC
FIRST_CHANGE# NEXT_CHANGE#
------ --- ------
---------------------------------------------------------------------- -------
------- -------- ---------------- --- --------------------
--------------------
1 1 67
+DATA1/ORA19RS/ONLINELOG/group_1.264.1214089053
(NULL) ONLINE 200
INACTIVE
YES
5325220
5402848
1
1 67
+FRA1/ORA19RS/ONLINELOG/group_1.257.1214089021
(NULL) ONLINE 200
INACTIVE
YES
5325220
5402848
2
1 68
+FRA1/ORA19RS/ONLINELOG/group_2.258.1214089021
(NULL) ONLINE 200
CURRENT
NO
5402848 9295429630892703743
2
1 68
+DATA1/ORA19RS/ONLINELOG/group_2.262.1214089021
(NULL) ONLINE 200
CURRENT
NO
5402848 9295429630892703743
3 1 66
+DATA1/ORA19RS/ONLINELOG/group_3.263.1214089021
(NULL) ONLINE 200
INACTIVE
YES
5323867
5324158
3
1 66
+FRA1/ORA19RS/ONLINELOG/group_3.259.1214089021
(NULL) ONLINE 200
INACTIVE
YES
5323867
5324158
4
2 52
+FRA1/ORA19RS/ONLINELOG/group_4.260.1214089813
(NULL) ONLINE 200
INACTIVE
YES
5196008
5323868
4
2 52
+DATA1/ORA19RS/ONLINELOG/group_4.271.1214089813
(NULL) ONLINE 200
INACTIVE
YES
5196008
5323868
5
2 53
+FRA1/ORA19RS/ONLINELOG/group_5.261.1214089813
(NULL) ONLINE 200
INACTIVE
YES
5323868
5416859
5
2 53
+DATA1/ORA19RS/ONLINELOG/group_5.272.1214089813
(NULL) ONLINE 200
INACTIVE
YES
5323868
5416859
6
2 54
+FRA1/ORA19RS/ONLINELOG/group_6.262.1214089813
(NULL) ONLINE 200
CURRENT
NO
5416859 9295429630892703743
6
2 54
+DATA1/ORA19RS/ONLINELOG/group_6.273.1214089813
(NULL) ONLINE 200
CURRENT
NO
5416859 9295429630892703743
12 rows selected.
Elapsed: 00:00:00.02
--현재 그룹 2와 그룹 6이 사용중인
상태임
--CDB에서 트랜잭션
실행
[ol8ora19rs1]<SYS@ORA19RS1>$
create table
sys.cdb_root_tran_test_01
(
test_01_no number(15)
)
;
insert into
sys.cdb_root_tran_test_01
select level from dual connect
by level <= 1000;
commit;
--PDB에서 트랜잭션
실행
[ol8ora19rs1]<SYS@ORA19RS1>$ alter session set container=ORA19RSP1;
[ol8ora19rs1]<SYS@ORA19RS1>$ show con_name
CON_NAME
------------------------------
ORA19RSP1
create table sys.pdb_tran_test_01
(
test_01_no
number(15)
)
;
insert into
sys.pdb_tran_test_01
select level from dual connect by
level <= 1000;
commit;
[ol8ora19rs1]<SYS@ORA19RS1>$ alter session set container=CDB$ROOT;
Session altered.
Elapsed: 00:00:00.00
[ol8ora19rs1]<SYS@ORA19RS1>$ show con_name
CON_NAME
------------------------------
CDB$ROOT
SET LINESIZE 220
SET PAGESIZE
100
SET NUMWIDTH 20
COLUMN
DBID
FORMAT 999999999999 HEADING 'DBID'
COLUMN
NAME
FORMAT A10 HEADING
'DB_NAME'
COLUMN
OPEN_MODE FORMAT
A12 HEADING
'OPEN_MODE'
COLUMN
DB_UNIQUE_NAME FORMAT
A15 HEADING
'DB_UNIQUE_NAME'
COLUMN RESETLOGS_CHANGE#
FORMAT 999999999999 HEADING 'RESETLOGS|CHANGE#'
COLUMN
RESETLOGS_TIME FORMAT
A19 HEADING
'RESETLOGS_TIME'
COLUMN CHECKPOINT_CHANGE# FORMAT
999999999999 HEADING 'CHECKPOINT|CHANGE#'
COLUMN
ARCHIVE_CHANGE# FORMAT 999999999999 HEADING
'ARCHIVE|CHANGE#'
COLUMN CONTROLFILE_CHANGE# FORMAT
999999999999 HEADING 'CONTROLFILE|CHANGE#'
COLUMN
CURRENT_SCN FORMAT 999999999999
HEADING 'CURRENT|SCN'
COLUMN
CDB
FORMAT A3
HEADING 'CDB'
ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY-MM-DD HH24:MI:SS';
SELECT
DBID
, NAME
, OPEN_MODE
, RESETLOGS_CHANGE#
, RESETLOGS_TIME
, CHECKPOINT_CHANGE#
, ARCHIVE_CHANGE#
, CONTROLFILE_CHANGE#
, CURRENT_SCN
, DB_UNIQUE_NAME
, CDB
FROM
V$DATABASE;
RESETLOGS
CHECKPOINT ARCHIVE
CONTROLFILE CURRENT
DBID
DB_NAME
OPEN_MODE CHANGE#
RESETLOGS_TIME
CHANGE#
CHANGE#
CHANGE# SCN
DB_UNIQUE_NAME CDB
------------- ----------
------------ ------------- ------------------- ------------- -------------
------------- ------------- --------------- ---
1936516987 ORA19RS READ
WRITE 1920977 2025-10-09
22:57:02
5402848
5196008
5422504 5422523 ORA19RS
YES
1 row selected.
Elapsed: 00:00:00.00
-->
소스 DB에서 트랜잭션을 일으킨 직후 SCN은 5422523 임 결국 해당 시점까지 타켓 DB를 복구하면 소스 DB에서 발생한 트랜잭션까지 타켓
DB로 적용되는 것임
SET LINESIZE 220
SET PAGESIZE
100
SET NUMWIDTH 20
COLUMN
GROUP# FORMAT 999
HEADING 'GROUP#'
COLUMN
THREAD# FORMAT 99
HEADING 'THR'
COLUMN
SEQUENCE# FORMAT 99999 HEADING 'SEQ#'
COLUMN
MEMBER FORMAT A70
HEADING 'MEMBER (REDO LOG FILE PATH)'
COLUMN
A.STATUS FORMAT A10 HEADING
'FILE|STATUS'
COLUMN
A.TYPE FORMAT
A5 HEADING 'TYPE'
COLUMN
MB
FORMAT 9990 HEADING 'SIZE(MB)'
COLUMN
B.STATUS FORMAT A10 HEADING
'LOG|STATUS'
COLUMN
B.ARCHIVED FORMAT A9 HEADING
'ARCHIVED'
COLUMN B.FIRST_CHANGE# FORMAT
999999999999 HEADING 'FIRST|CHANGE#'
COLUMN
B.NEXT_CHANGE# FORMAT 999999999999 HEADING
'NEXT|CHANGE#'
SELECT A.GROUP#
, B.THREAD#
, B.SEQUENCE#
, A.MEMBER
, A.STATUS
, A.TYPE
, B.BYTES/1024/1024 AS MB
, B.STATUS
, b.ARCHIVED
, b.FIRST_CHANGE#
, b.NEXT_CHANGE#
FROM V$LOGFILE A
, V$LOG B
WHERE A.GROUP# = B.GROUP#
ORDER BY A.GROUP#, B.THREAD#, B.SEQUENCE#
;
GROUP#
THR SEQ# MEMBER (REDO LOG FILE
PATH)
STATUS TYPE SIZE(MB)
STATUS
ARC
FIRST_CHANGE# NEXT_CHANGE#
------ --- ------
---------------------------------------------------------------------- -------
------- -------- ---------------- --- --------------------
--------------------
1 1 67
+DATA1/ORA19RS/ONLINELOG/group_1.264.1214089053
(NULL) ONLINE 200
INACTIVE
YES
5325220
5402848
1
1 67
+FRA1/ORA19RS/ONLINELOG/group_1.257.1214089021
(NULL) ONLINE 200
INACTIVE
YES
5325220
5402848
2
1 68
+FRA1/ORA19RS/ONLINELOG/group_2.258.1214089021
(NULL) ONLINE 200
CURRENT
NO
5402848 9295429630892703743
2
1 68
+DATA1/ORA19RS/ONLINELOG/group_2.262.1214089021
(NULL) ONLINE 200
CURRENT
NO
5402848 9295429630892703743
3
1 66
+DATA1/ORA19RS/ONLINELOG/group_3.263.1214089021
(NULL) ONLINE 200
INACTIVE
YES
5323867
5324158
3
1 66
+FRA1/ORA19RS/ONLINELOG/group_3.259.1214089021
(NULL) ONLINE 200
INACTIVE
YES
5323867
5324158
4
2 52
+FRA1/ORA19RS/ONLINELOG/group_4.260.1214089813
(NULL) ONLINE 200
INACTIVE
YES
5196008
5323868
4
2 52
+DATA1/ORA19RS/ONLINELOG/group_4.271.1214089813
(NULL) ONLINE 200
INACTIVE
YES
5196008
5323868
5
2 53
+FRA1/ORA19RS/ONLINELOG/group_5.261.1214089813
(NULL) ONLINE 200
INACTIVE
YES
5323868
5416859
5
2 53
+DATA1/ORA19RS/ONLINELOG/group_5.272.1214089813
(NULL) ONLINE 200
INACTIVE
YES
5323868
5416859
6 2 54 +DATA1/ORA19RS/ONLINELOG/group_6.273.1214089813 (NULL) ONLINE 200 CURRENT NO 5416859 9295429630892703743
12 rows selected.
Elapsed: 00:00:00.01
--목표 SCN은 5422523 인 상황이고 현재 그룹 2 (thread 1의
sequence 68과 thread 2의 sequence 54에 걸쳐 있는 상황임)
--각각의 노드에서 아카이브를
생성함
--1번
노드
[ol8ora19rs1]<SYS@ORA19RS1>$ ALTER SYSTEM ARCHIVE LOG CURRENT;
--2번 노드
[ORA19RS2:oracle@ol8ora19rs2][/home/oracle]$ echo
$ORACLE_SID
ORA19RS2
[ORA19RS2:oracle@ol8ora19rs2][/home/oracle]$ alias
ss
alias ss='rlwrap
sqlplus "/as sysdba"'
[ORA19RS2:oracle@ol8ora19rs2][/home/oracle]$ ss
SQL*Plus: Release
19.0.0.0.0 - Production on Sat Oct 18 23:11:57 2025
Version 19.28.0.0.0
Copyright (c) 1982, 2025, Oracle. All rights reserved.
Connected to:
Oracle Database 19c
Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.28.0.0.0
[ol8ora19rs2]<SYS@ORA19RS2>$ ALTER SYSTEM ARCHIVE LOG CURRENT;
System altered.
Elapsed: 00:00:04.94
--1번 노드에서 확인
SET LINESIZE
220
SET PAGESIZE 100
SET
NUMWIDTH 20
COLUMN
GROUP# FORMAT 999
HEADING 'GROUP#'
COLUMN
THREAD# FORMAT 99
HEADING 'THR'
COLUMN
SEQUENCE# FORMAT 99999 HEADING 'SEQ#'
COLUMN
MEMBER FORMAT A70
HEADING 'MEMBER (REDO LOG FILE PATH)'
COLUMN
A.STATUS FORMAT A10 HEADING
'FILE|STATUS'
COLUMN
A.TYPE FORMAT
A5 HEADING 'TYPE'
COLUMN
MB
FORMAT 9990 HEADING 'SIZE(MB)'
COLUMN
B.STATUS FORMAT A10 HEADING
'LOG|STATUS'
COLUMN
B.ARCHIVED FORMAT A9 HEADING
'ARCHIVED'
COLUMN B.FIRST_CHANGE# FORMAT
999999999999 HEADING 'FIRST|CHANGE#'
COLUMN
B.NEXT_CHANGE# FORMAT 999999999999 HEADING
'NEXT|CHANGE#'
SELECT A.GROUP#
, B.THREAD#
, B.SEQUENCE#
, A.MEMBER
, A.STATUS
, A.TYPE
, B.BYTES/1024/1024 AS MB
, B.STATUS
, b.ARCHIVED
, b.FIRST_CHANGE#
, b.NEXT_CHANGE#
FROM V$LOGFILE A
, V$LOG B
WHERE A.GROUP# = B.GROUP#
ORDER BY A.GROUP#, B.THREAD#, B.SEQUENCE#
;
GROUP# THR SEQ# MEMBER (REDO LOG FILE
PATH)
STATUS TYPE SIZE(MB)
STATUS
ARC
FIRST_CHANGE# NEXT_CHANGE#
------ --- ------
---------------------------------------------------------------------- -------
------- -------- ---------------- --- --------------------
--------------------
1 1 70
+DATA1/ORA19RS/ONLINELOG/group_1.264.1214089053
(NULL) ONLINE 200
CURRENT
NO
5422725 9295429630892703743
1
1 70
+FRA1/ORA19RS/ONLINELOG/group_1.257.1214089021
(NULL) ONLINE 200
CURRENT
NO
5422725 9295429630892703743
2
1 68
+FRA1/ORA19RS/ONLINELOG/group_2.258.1214089021
(NULL) ONLINE 200
ACTIVE
YES
5402848
5422694
2
1 68
+DATA1/ORA19RS/ONLINELOG/group_2.262.1214089021
(NULL) ONLINE 200
ACTIVE
YES
5402848
5422694
3
1 69
+DATA1/ORA19RS/ONLINELOG/group_3.263.1214089021
(NULL) ONLINE 200
ACTIVE
YES
5422694
5422725
3
1 69
+FRA1/ORA19RS/ONLINELOG/group_3.259.1214089021
(NULL) ONLINE 200
ACTIVE
YES
5422694
5422725
4
2 55
+FRA1/ORA19RS/ONLINELOG/group_4.260.1214089813
(NULL) ONLINE 200
ACTIVE
YES
5422691
5422728
4
2 55
+DATA1/ORA19RS/ONLINELOG/group_4.271.1214089813
(NULL) ONLINE 200
ACTIVE
YES
5422691
5422728
5
2 56
+FRA1/ORA19RS/ONLINELOG/group_5.261.1214089813
(NULL) ONLINE 200
CURRENT
NO
5422728 9295429630892703743
5
2 56
+DATA1/ORA19RS/ONLINELOG/group_5.272.1214089813
(NULL) ONLINE 200
CURRENT
NO
5422728 9295429630892703743
6
2 54
+FRA1/ORA19RS/ONLINELOG/group_6.262.1214089813
(NULL) ONLINE 200
ACTIVE
YES
5416859
5422691
6
2 54
+DATA1/ORA19RS/ONLINELOG/group_6.273.1214089813
(NULL) ONLINE 200
ACTIVE
YES
5416859
5422691
12 rows selected.
Elapsed: 00:00:00.01
--thread 1의 sequence 68과 thread 2의 sequence
54가 아카이빙 되었음
SET LINESIZE
220
SET PAGESIZE 200
SET
NUMWIDTH 20
COLUMN
THREAD# FORMAT
999 HEADING 'THR'
COLUMN
SEQUENCE# FORMAT 999999 HEADING
'SEQ'
COLUMN RESETLOGS_CHANGE# FORMAT 999999999999
HEADING 'RESETLOGS|CHANGE#'
COLUMN
FIRST_CHANGE# FORMAT 999999999999 HEADING 'FIRST|CHANGE#'
COLUMN NEXT_CHANGE# FORMAT 999999999999
HEADING 'NEXT|CHANGE#'
COLUMN
ARCHIVED FORMAT
A8 HEADING 'ARCHIVED'
COLUMN
DELETED FORMAT
A8 HEADING 'DELETED'
COLUMN
NAME FORMAT
A100 HEADING 'ARCHIVELOG NAME'
SELECT
A.NAME
, A.THREAD#
, A.SEQUENCE#
, A.RESETLOGS_CHANGE#
, A.FIRST_CHANGE#
, A.NEXT_CHANGE#
, A.ARCHIVED
, A.DELETED
FROM V$ARCHIVED_LOG A
WHERE 1=1
AND
A.FIRST_CHANGE# <= 5422523 --타켓 DB가 가야할 지점은 5422523 이므로
FIRST_CHANGE# 이 5422523 보다 작거나 같은 것은 복구 대상임
AND
A.NEXT_CHANGE# >= 5061502 --타켓 DB은 5061501 까지 적용된 상태이므로
A.NEXT_CHANGE# 이 5061501+1=5061502 보다 같거나 큰 것은 복구대상임
ORDER BY A.THREAD#, A.SEQUENCE#
;
RESETLOGS
FIRST NEXT
ARCHIVELOG
NAME
THR SEQ
CHANGE#
CHANGE# CHANGE# ARCHIVED DELETED
----------------------------------------------------------------------------------------------------
---- ------- ------------- ------------- ------------- -------- --------
+FRA1/ORA19RS/ARCHIVELOG/2025_10_19/thread_1_seq_64.271.1214909161
1 64
1920977
5061203 5061675
YES NO
+FRA1/ORA19RS/ARCHIVELOG/2025_10_19/thread_1_seq_65.268.1214926435
1 65
1920977
5061675 5323867
YES NO
+FRA1/ORA19RS/ARCHIVELOG/2025_10_19/thread_1_seq_66.263.1214926437
1 66
1920977
5323867 5324158
YES NO
+FRA1/ORA19RS/ARCHIVELOG/2025_10_19/thread_1_seq_67.264.1214947837
1 67
1920977
5325220 5402848
YES NO
+FRA1/ORA19RS/ARCHIVELOG/2025_10_19/thread_1_seq_68.275.1214951381
1 68
1920977
5402848 5422694
YES NO
+FRA1/ORA19RS/ARCHIVELOG/2025_10_19/thread_2_seq_49.272.1214909161
2 49
1920977
5061207 5061672
YES NO
+FRA1/ORA19RS/ARCHIVELOG/2025_10_19/thread_2_seq_50.270.1214919547
2 50
1920977
5061672 5195057
YES NO
+FRA1/ORA19RS/ARCHIVELOG/2025_10_19/thread_2_seq_51.269.1214919549
2 51
1920977
5195057 5195059
YES NO
+FRA1/ORA19RS/ARCHIVELOG/2025_10_19/thread_2_seq_52.267.1214926433
2 52
1920977
5196008 5323868
YES NO
+FRA1/ORA19RS/ARCHIVELOG/2025_10_19/thread_2_seq_53.277.1214949643
2 53
1920977
5323868 5416859
YES NO
+FRA1/ORA19RS/ARCHIVELOG/2025_10_19/thread_2_seq_54.276.1214951381
2 54
1920977
5416859 5422691
YES NO
11 rows selected.
Elapsed: 00:00:00.01
--> 결국 위의 아카이브 로그를 타켓 DB에서
Recover 시켜야 목표 SCN인 5422523 까지 갈 수 있음
--> Thread 1의
sequnece 64와 thread 2의 sequence 49는 이미 타켓 DB에 restore된 상황임
--소스 DB에서 타켓 DB를
Recover하는데 필요한 아카이브 로그를 백업받음
[ORA19RS1:oracle@ol8ora19rs1][/home/oracle]$ alias
rt
alias rt='rman
target /'
[ORA19RS1:oracle@ol8ora19rs1][/home/oracle]$ echo
$ORACLE_SID
ORA19RS1
[ORA19RS1:oracle@ol8ora19rs1][/home/oracle]$
rt
Recovery Manager:
Release 19.0.0.0.0 - Production on Sun Oct 19 22:40:54 2025
Version 19.28.0.0.0
Copyright (c) 1982, 2019, Oracle and/or its affiliates. All rights reserved.
connected to target database: ORA19RS (DBID=1936516987)
run {
crosscheck archivelog all;
BACKUP
ARCHIVELOG FROM SEQUENCE 65 UNTIL SEQUENCE 68 THREAD 1 format
'/home/oracle/ORA19RS_BACKUP/ARCHIVE_%d_%T_%u_s%s_p%p';
BACKUP ARCHIVELOG FROM SEQUENCE 50 UNTIL SEQUENCE 54 THREAD
2 format '/home/oracle/ORA19RS_BACKUP/ARCHIVE_%d_%T_%u_s%s_p%p';
}
...
Starting backup at 2025-10-19 22:41:10
using channel ORA_DISK_1
channel
ORA_DISK_1: starting archived log backup set
channel
ORA_DISK_1: specifying archived log(s) in backup set
input archived log thread=1 sequence=65 RECID=103
STAMP=1214926436
input archived log thread=1 sequence=66
RECID=104 STAMP=1214926436
input archived log thread=1
sequence=67 RECID=105 STAMP=1214947838
input archived
log thread=1 sequence=68 RECID=108 STAMP=1214951380
channel ORA_DISK_1: starting piece 1 at 2025-10-19
22:41:10
channel ORA_DISK_1: finished piece 1 at
2025-10-19 22:41:11
piece
handle=/home/oracle/ORA19RS_BACKUP/ARCHIVE_ORA19RS_20251019_9i46lck6_s306_p1
tag=TAG20251019T224110 comment=NONE
channel ORA_DISK_1:
backup set complete, elapsed time: 00:00:01
Finished
backup at 2025-10-19 22:41:11
Starting backup at
2025-10-19 22:41:11
using channel ORA_DISK_1
channel ORA_DISK_1: starting archived log backup set
channel ORA_DISK_1: specifying archived log(s) in backup
set
input archived log thread=2 sequence=50 RECID=100
STAMP=1214919547
input archived log thread=2 sequence=51
RECID=101 STAMP=1214919548
input archived log thread=2
sequence=52 RECID=102 STAMP=1214926432
input archived
log thread=2 sequence=53 RECID=106 STAMP=1214949643
input archived log thread=2 sequence=54 RECID=107
STAMP=1214951380
channel ORA_DISK_1: starting piece 1 at
2025-10-19 22:41:11
channel ORA_DISK_1: finished piece 1
at 2025-10-19 22:41:12
piece
handle=/home/oracle/ORA19RS_BACKUP/ARCHIVE_ORA19RS_20251019_9j46lck7_s307_p1
tag=TAG20251019T224111 comment=NONE
channel ORA_DISK_1:
backup set complete, elapsed time: 00:00:01
Finished
backup at 2025-10-19 22:41:12
Starting Control
File and SPFILE Autobackup at 2025-10-19 22:41:12
piece
handle=/home/oracle/rman_backup/ORA19RS/autobackup/c-1936516987-20251019-0a
comment=NONE
Finished Control File and SPFILE Autobackup
at 2025-10-19 22:41:13
--thread 1의 sequence 65~68 까지
저장된 아카이브 로그 백업 파일
[ORA19RS1:oracle@ol8ora19rs1][/home/oracle]$ ls -l
/home/oracle/ORA19RS_BACKUP/ARCHIVE_ORA19RS_20251019_9i46lck6_s306_p1
-rw-r-----. 1
oracle asmadmin 332779008 Oct 19 22:41
/home/oracle/ORA19RS_BACKUP/ARCHIVE_ORA19RS_20251019_9i46lck6_s306_p1
--thread 2의 sequence 50~54 까지
저장된 아카이브 로그 백업 파일
[ORA19RS1:oracle@ol8ora19rs1][/home/oracle]$ ls -l
/home/oracle/ORA19RS_BACKUP/ARCHIVE_ORA19RS_20251019_9j46lck7_s307_p1
-rw-r-----. 1
oracle asmadmin 330820096 Oct 19 22:41
/home/oracle/ORA19RS_BACKUP/ARCHIVE_ORA19RS_20251019_9j46lck7_s307_p1
RMAN> list backup of archivelog all;
list backup of
archivelog all;
using target database control file
instead of recovery catalog
List of Backup
Sets
===================
BS Key Size
Device Type Elapsed Time Completion Time
-------
---------- ----------- ------------ -------------------
301 15.00K
DISK 00:00:00
2025-10-19 10:46:01
BP Key:
301 Status: AVAILABLE Compressed: NO Tag:
TAG20251019T104601
Piece Name:
/home/oracle/ORA19RS_BACKUP/ARCHIVE_ORA19RS_20251019_9g46k2n9_s304_p1
List of
Archived Logs in backup set 301
Thrd
Seq Low SCN Low
Time Next
SCN Next Time
---- ------- ----------
------------------- ---------- ---------
1 64 5061203
2025-10-19 10:43:35 5061675 2025-10-19 10:46:01
2 49
5061207 2025-10-19 10:43:37 5061672
2025-10-19 10:46:01
BS Key
Size Device Type Elapsed Time Completion
Time
------- ---------- ----------- ------------
-------------------
303
317.36M DISK
00:00:01 2025-10-19 22:41:11
BP Key:
303 Status: AVAILABLE Compressed: NO Tag:
TAG20251019T224110
Piece Name:
/home/oracle/ORA19RS_BACKUP/ARCHIVE_ORA19RS_20251019_9i46lck6_s306_p1
List of Archived Logs in backup set 303
Thrd
Seq Low SCN Low
Time Next
SCN Next Time
---- ------- ----------
------------------- ---------- ---------
1 65 5061675
2025-10-19 10:46:01 5323867 2025-10-19 15:33:51
1 66
5323867 2025-10-19 15:33:51 5324158
2025-10-19 15:33:55
1
67 5325220 2025-10-19 15:34:15
5402848 2025-10-19 21:30:37
1 68 5402848
2025-10-19 21:30:37 5422694 2025-10-19 22:29:40
BS Key
Size Device Type Elapsed Time Completion
Time
------- ---------- ----------- ------------
-------------------
304
315.49M DISK
00:00:01 2025-10-19 22:41:12
BP Key:
304 Status: AVAILABLE Compressed: NO Tag:
TAG20251019T224111
Piece Name:
/home/oracle/ORA19RS_BACKUP/ARCHIVE_ORA19RS_20251019_9j46lck7_s307_p1
List of Archived Logs in backup set 304
Thrd
Seq Low SCN Low
Time Next
SCN Next Time
---- ------- ----------
------------------- ---------- ---------
2 50 5061672
2025-10-19 10:46:01 5195057 2025-10-19 13:39:06
2 51
5195057 2025-10-19 13:39:06 5195059
2025-10-19 13:39:06
2
52 5196008 2025-10-19 13:40:37
5323868 2025-10-19 15:33:52
2 53 5323868
2025-10-19 15:33:52 5416859 2025-10-19 22:00:43
2 54
5416859 2025-10-19 22:00:43 5422691
2025-10-19 22:29:40
13. 타켓에서 아카이브 적용
[ORA19RS1:oracle@ol8ora19rs1][/home/oracle]$ export
ORACLE_SID=CLONEDB
[CLONEDB:oracle@ol8ora19rs1][/home/oracle]$ alias rt
alias rt='rman target /'
[CLONEDB:oracle@ol8ora19rs1][/home/oracle]$
rt
Recovery Manager:
Release 19.0.0.0.0 - Production on Sun Oct 19 00:38:45 2025
Version 19.28.0.0.0
Copyright (c) 1982, 2019, Oracle and/or its affiliates. All rights reserved.
connected to target database: CLONEDB (DBID=1936516987, not open)
RMAN> catalog
start with
'/home/oracle/ORA19RS_BACKUP/ARCHIVE_ORA19RS_20251019_9i46lck6_s306_p1';
catalog start with
'/home/oracle/ORA19RS_BACKUP/ARCHIVE_ORA19RS_20251019_9i46lck6_s306_p1';
using target database control file instead of recovery
catalog
searching for all files that match the pattern
/home/oracle/ORA19RS_BACKUP/ARCHIVE_ORA19RS_20251019_9i46lck6_s306_p1
List of Files
Unknown to the Database
=====================================
File Name:
/home/oracle/ORA19RS_BACKUP/ARCHIVE_ORA19RS_20251019_9i46lck6_s306_p1
Do you really want
to catalog the above files (enter YES or NO)? YES
cataloging files...
cataloging
done
List of Cataloged
Files
=======================
File Name:
/home/oracle/ORA19RS_BACKUP/ARCHIVE_ORA19RS_20251019_9i46lck6_s306_p1
RMAN> catalog
start with
'/home/oracle/ORA19RS_BACKUP/ARCHIVE_ORA19RS_20251019_9j46lck7_s307_p1';
catalog start with
'/home/oracle/ORA19RS_BACKUP/ARCHIVE_ORA19RS_20251019_9j46lck7_s307_p1';
searching for all files that match the pattern
/home/oracle/ORA19RS_BACKUP/ARCHIVE_ORA19RS_20251019_9j46lck7_s307_p1
List of Files
Unknown to the Database
=====================================
File Name:
/home/oracle/ORA19RS_BACKUP/ARCHIVE_ORA19RS_20251019_9j46lck7_s307_p1
Do you really want
to catalog the above files (enter YES or NO)? YES
cataloging files...
cataloging
done
List of Cataloged
Files
=======================
File Name:
/home/oracle/ORA19RS_BACKUP/ARCHIVE_ORA19RS_20251019_9j46lck7_s307_p1
--이미 아카이브 로그의 백업본을 타켓 DB의
RMAN이 알고 있으므로 이 작업은 필수는 아님(연습용)
RMAN> RESTORE ARCHIVELOG FROM SEQUENCE 65 UNTIL SEQUENCE
68 THREAD 1;
RESTORE ARCHIVELOG FROM SEQUENCE 65 UNTIL SEQUENCE 68
THREAD 1;
Starting restore at 2025-10-19 22:47:01
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=1366 device
type=DISK
channel
ORA_DISK_1: starting archived log restore to default destination
channel ORA_DISK_1: restoring archived log
archived log thread=1 sequence=65
channel ORA_DISK_1: restoring archived log
archived log thread=1 sequence=66
channel ORA_DISK_1: restoring archived log
archived log thread=1 sequence=67
channel ORA_DISK_1: restoring archived log
archived log thread=1 sequence=68
channel ORA_DISK_1: reading from backup piece
/home/oracle/ORA19RS_BACKUP/ARCHIVE_ORA19RS_20251019_9i46lck6_s306_p1
channel ORA_DISK_1: piece
handle=/home/oracle/ORA19RS_BACKUP/ARCHIVE_ORA19RS_20251019_9i46lck6_s306_p1
tag=TAG20251019T224110
channel ORA_DISK_1: restored
backup piece 1
channel ORA_DISK_1: restore complete,
elapsed time: 00:00:07
Finished restore at 2025-10-19
22:47:08
--이미 아카이브 로그의 백업본을 타켓 DB의
RMAN이 알고 있으므로 이 작업은 필수는 아님(연습용)
RMAN> RESTORE ARCHIVELOG FROM SEQUENCE 50 UNTIL SEQUENCE
54 THREAD 2;
RESTORE ARCHIVELOG FROM SEQUENCE 50 UNTIL SEQUENCE 54
THREAD 2;
Starting restore at 2025-10-19 22:47:39
using channel ORA_DISK_1
channel
ORA_DISK_1: starting archived log restore to default destination
channel ORA_DISK_1: restoring archived log
archived log thread=2 sequence=50
channel ORA_DISK_1: restoring archived log
archived log thread=2 sequence=51
channel ORA_DISK_1: restoring archived log
archived log thread=2 sequence=52
channel ORA_DISK_1: restoring archived log
archived log thread=2 sequence=53
channel ORA_DISK_1: restoring archived log
archived log thread=2 sequence=54
channel ORA_DISK_1: reading from backup piece
/home/oracle/ORA19RS_BACKUP/ARCHIVE_ORA19RS_20251019_9j46lck7_s307_p1
channel ORA_DISK_1: piece
handle=/home/oracle/ORA19RS_BACKUP/ARCHIVE_ORA19RS_20251019_9j46lck7_s307_p1
tag=TAG20251019T224111
channel ORA_DISK_1: restored
backup piece 1
channel ORA_DISK_1: restore complete,
elapsed time: 00:00:25
Finished restore at 2025-10-19
22:48:04
RMAN> host 'ls
-l /home/oracle/CLONEDB/arch';
host 'ls -l
/home/oracle/CLONEDB/arch';
total 648096
-rw-r-----. 1 oracle asmadmin
9728 Oct 19 15:40 1_64_1214089022.ARC
-rw-r-----. 1
oracle asmadmin 118173184 Oct 19 22:47 1_65_1214089022.ARC
-rw-r-----. 1 oracle asmadmin
1024 Oct 19 22:47 1_66_1214089022.ARC
-rw-r-----. 1
oracle asmadmin 185360384 Oct 19 22:47 1_67_1214089022.ARC
-rw-r-----. 1 oracle asmadmin 29239808 Oct 19 22:47
1_68_1214089022.ARC
-rw-r-----. 1 oracle
asmadmin 2560 Oct 19 15:40 2_49_1214089022.ARC
-rw-r-----. 1 oracle asmadmin 61614592 Oct 19 22:48
2_50_1214089022.ARC
-rw-r-----. 1 oracle
asmadmin 1024 Oct 19 22:47 2_51_1214089022.ARC
-rw-r-----. 1 oracle asmadmin 78998528 Oct 19 22:48
2_52_1214089022.ARC
-rw-r-----. 1 oracle asmadmin
182635008 Oct 19 22:48 2_53_1214089022.ARC
-rw-r-----. 1
oracle asmadmin 7565824 Oct 19 22:47 2_54_1214089022.ARC
host command complete
--> 타켓 DB를 복구하는데 필요한 모든 아카이브 로그가 저장된
상황
RUN {
SET UNTIL SCN 5422523;
RECOVER DATABASE;
}
Starting recover
at 2025-10-19 22:50:17
using channel
ORA_DISK_1
starting media recovery
archived log for thread 1 with sequence 64 is already on
disk as file /home/oracle/CLONEDB/arch/1_64_1214089022.ARC
archived log for thread 1 with sequence 65 is already on
disk as file /home/oracle/CLONEDB/arch/1_65_1214089022.ARC
archived log for thread 1 with sequence 66 is already on
disk as file /home/oracle/CLONEDB/arch/1_66_1214089022.ARC
archived log for thread 1 with sequence 67 is already on
disk as file /home/oracle/CLONEDB/arch/1_67_1214089022.ARC
archived log for thread 1 with sequence 68 is already on
disk as file /home/oracle/CLONEDB/arch/1_68_1214089022.ARC
archived log for thread 2 with sequence 49 is already on
disk as file /home/oracle/CLONEDB/arch/2_49_1214089022.ARC
archived log for thread 2 with sequence 50 is already on
disk as file /home/oracle/CLONEDB/arch/2_50_1214089022.ARC
archived log for thread 2 with sequence 51 is already on
disk as file /home/oracle/CLONEDB/arch/2_51_1214089022.ARC
archived log for thread 2 with sequence 52 is already on
disk as file /home/oracle/CLONEDB/arch/2_52_1214089022.ARC
archived log for thread 2 with sequence 53 is already on
disk as file /home/oracle/CLONEDB/arch/2_53_1214089022.ARC
archived log for thread 2 with sequence 54 is already on
disk as file /home/oracle/CLONEDB/arch/2_54_1214089022.ARC
archived log file
name=/home/oracle/CLONEDB/arch/1_64_1214089022.ARC thread=1 sequence=64
archived log file
name=/home/oracle/CLONEDB/arch/2_49_1214089022.ARC thread=2 sequence=49
archived log file
name=/home/oracle/CLONEDB/arch/2_50_1214089022.ARC thread=2 sequence=50
archived log file
name=/home/oracle/CLONEDB/arch/1_65_1214089022.ARC thread=1 sequence=65
archived log file
name=/home/oracle/CLONEDB/arch/2_51_1214089022.ARC thread=2 sequence=51
archived log file
name=/home/oracle/CLONEDB/arch/2_52_1214089022.ARC thread=2 sequence=52
archived log file
name=/home/oracle/CLONEDB/arch/1_66_1214089022.ARC thread=1 sequence=66
archived log file
name=/home/oracle/CLONEDB/arch/2_53_1214089022.ARC thread=2 sequence=53
archived log file
name=/home/oracle/CLONEDB/arch/1_67_1214089022.ARC thread=1 sequence=67
archived log file
name=/home/oracle/CLONEDB/arch/1_68_1214089022.ARC thread=1 sequence=68
archived log file
name=/home/oracle/CLONEDB/arch/2_54_1214089022.ARC thread=2 sequence=54
media recovery complete, elapsed time: 00:00:06
Finished recover at 2025-10-19 22:50:23
--> 목표
SCN까지 복구가 완료됨
RMAN>
quit
quit
Recovery Manager complete.
[CLONEDB:oracle@ol8ora19rs1][/home/oracle]$ alias
ss
alias ss='rlwrap
sqlplus "/as sysdba"'
[CLONEDB:oracle@ol8ora19rs1][/home/oracle]$ echo
$ORACLE_SID
CLONEDB
[CLONEDB:oracle@ol8ora19rs1][/home/oracle]$
ss
SQL*Plus: Release
19.0.0.0.0 - Production on Sun Oct 19 00:44:10 2025
Version 19.28.0.0.0
Copyright (c) 1982, 2025, Oracle. All rights reserved.
Connected to:
Oracle Database 19c
Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.28.0.0.0
SET LINESIZE 250
SET PAGESIZE
100
SET NUMWIDTH 20
COLUMN
FILE#
FORMAT 9999 HEADING
'FILE#'
COLUMN
STATUS
FORMAT A10
HEADING 'STATUS'
COLUMN
TABLESPACE_NAME FORMAT
A20 HEADING
'TABLESPACE_NAME'
COLUMN RESETLOGS_CHANGE# FORMAT
999999999999 HEADING 'RESETLOGS|CHANGE#'
COLUMN
NAME
FORMAT A90
HEADING 'DATAFILE_NAME'
COLUMN CHECKPOINT_CHANGE# FORMAT
999999999999 HEADING 'CHECKPOINT|CHANGE#'
COLUMN
ERROR
FORMAT A12
HEADING 'ERROR'
COLUMN
CON_NAME FORMAT
A20 HEADING
'CON_NAME'
SELECT
a.FILE#
, a.STATUS
, a.TABLESPACE_NAME
, a.RESETLOGS_CHANGE#
, a.NAME
, a.CHECKPOINT_CHANGE#
, a.ERROR
, (SELECT l.name
FROM
v$containers l
WHERE l.con_id =
a.con_id) AS con_name
FROM
v$datafile_header a
ORDER BY
a.FILE#;
FILE# STATUS
TABLESPACE_NAME
CHANGE#
DATAFILE_NAME
CHANGE# ERROR CON_NAME
----- ---------- -------------------- -------------
------------------------------------------------------------------------------------------
------------- ------------ --------------------
1 ONLINE
SYSTEM
1920977
/home/oracle/CLONEDB/datafile/CDB_DOLLAR_ROOT_SYSTEM_1.dbf
5422523 (NULL) CDB$ROOT
3 ONLINE
SYSAUX
1920977
/home/oracle/CLONEDB/datafile/CDB_DOLLAR_ROOT_SYSAUX_3.dbf
5422523 (NULL) CDB$ROOT
4 ONLINE
UNDOTBS1
1920977
/home/oracle/CLONEDB/datafile/CDB_DOLLAR_ROOT_UNDOTBS1_4.dbf
5422523 (NULL) CDB$ROOT
5 ONLINE
SYSTEM
1920977
/home/oracle/CLONEDB/datafile/PDB_DOLLAR_SEED_SYSTEM_5.dbf
2463120 (NULL) PDB$SEED
6 ONLINE
SYSAUX
1920977
/home/oracle/CLONEDB/datafile/PDB_DOLLAR_SEED_SYSAUX_6.dbf
2463120 (NULL) PDB$SEED
7 ONLINE
USERS
1920977
/home/oracle/CLONEDB/datafile/CDB_DOLLAR_ROOT_USERS_7.dbf
5422523 (NULL) CDB$ROOT
8 ONLINE
UNDOTBS1
1920977
/home/oracle/CLONEDB/datafile/PDB_DOLLAR_SEED_UNDOTBS1_8.dbf
2463120 (NULL) PDB$SEED
9 ONLINE
UNDOTBS2
1920977
/home/oracle/CLONEDB/datafile/CDB_DOLLAR_ROOT_UNDOTBS2_9.dbf
5422523 (NULL) CDB$ROOT
10 ONLINE
SYSTEM
1920977
/home/oracle/CLONEDB/datafile/ORA19RSP1_SYSTEM_10.dbf
5422523 (NULL) _###_UNKNOWN_PDB_#_3
11 ONLINE
SYSAUX
1920977
/home/oracle/CLONEDB/datafile/ORA19RSP1_SYSAUX_11.dbf
5422523 (NULL) _###_UNKNOWN_PDB_#_3
12 ONLINE
UNDOTBS1
1920977
/home/oracle/CLONEDB/datafile/ORA19RSP1_UNDOTBS1_12.dbf
5422523 (NULL) _###_UNKNOWN_PDB_#_3
13 ONLINE
UNDO_2
1920977
/home/oracle/CLONEDB/datafile/ORA19RSP1_UNDO_2_13.dbf
5422523 (NULL) _###_UNKNOWN_PDB_#_3
14 ONLINE
USERS
1920977
/home/oracle/CLONEDB/datafile/ORA19RSP1_USERS_14.dbf
5422523 (NULL) _###_UNKNOWN_PDB_#_3
15 ONLINE
TUNER_DATA1
1920977
/home/oracle/CLONEDB/datafile/ORA19RSP1_TUNER_DATA1_15.dbf
5422523 (NULL) _###_UNKNOWN_PDB_#_3
16 ONLINE
TUNER_IDX1
1920977
/home/oracle/CLONEDB/datafile/ORA19RSP1_TUNER_IDX1_16.dbf
5422523 (NULL) _###_UNKNOWN_PDB_#_3
--> 목표
SCN인 5422523 까지 Recover가 완료됨!
15 rows
selected.
Elapsed: 00:00:00.02
[ol8ora19rs1]<SYS@CLONEDB>$ alter database open;
alter database
open
*
ERROR at line 1:
ORA-01589: must use RESETLOGS or NORESETLOGS option for
database open
Elapsed: 00:00:00.03
[ol8ora19rs1]<SYS@CLONEDB>$ alter database open resetlogs;
Database altered.
Elapsed: 00:00:25.65
SET LINESIZE 220
SET PAGESIZE
100
SET NUMWIDTH 20
COLUMN
GROUP# FORMAT 999
HEADING 'GROUP#'
COLUMN
THREAD# FORMAT 99
HEADING 'THR'
COLUMN
SEQUENCE# FORMAT 99999 HEADING 'SEQ#'
COLUMN
MEMBER FORMAT A80
HEADING 'MEMBER (REDO LOG FILE PATH)'
COLUMN
A.STATUS FORMAT A10 HEADING
'FILE|STATUS'
COLUMN
A.TYPE FORMAT
A5 HEADING 'TYPE'
COLUMN
MB
FORMAT 9990 HEADING 'SIZE(MB)'
COLUMN
B.STATUS FORMAT A10 HEADING
'LOG|STATUS'
COLUMN
B.ARCHIVED FORMAT A9 HEADING
'ARCHIVED'
COLUMN B.FIRST_CHANGE# FORMAT
999999999999 HEADING 'FIRST|CHANGE#'
COLUMN
B.NEXT_CHANGE# FORMAT 999999999999 HEADING
'NEXT|CHANGE#'
SELECT A.GROUP#
, B.THREAD#
, B.SEQUENCE#
, A.MEMBER
, A.STATUS
, A.TYPE
, B.BYTES/1024/1024 AS MB
, B.STATUS
, b.ARCHIVED
, b.FIRST_CHANGE#
, b.NEXT_CHANGE#
FROM V$LOGFILE A
, V$LOG B
WHERE A.GROUP# = B.GROUP#
ORDER BY A.GROUP#, B.THREAD#, B.SEQUENCE#
;
GROUP# THR SEQ# MEMBER (REDO LOG FILE
PATH)
STATUS TYPE SIZE(MB)
STATUS ARC
FIRST_CHANGE# NEXT_CHANGE#
------ --- ------
--------------------------------------------------------------------------------
---------- ------- -------- ---------- --- --------------------
--------------------
1 1 1
/home/oracle/CLONEDB/onlinelog_1/group_1_1.LOG
(NULL) ONLINE 200
CURRENT
NO
5422524 9295429630892703743
1
1 1
/home/oracle/CLONEDB/onlinelog_1/group_1_2.LOG
(NULL) ONLINE 200
CURRENT
NO
5422524 9295429630892703743
2
1 0
/home/oracle/CLONEDB/onlinelog_1/group_2_1.LOG
(NULL) ONLINE 200
UNUSED
YES
0
0
2
1 0
/home/oracle/CLONEDB/onlinelog_1/group_2_2.LOG
(NULL) ONLINE 200
UNUSED
YES
0
0
3
1 0
/home/oracle/CLONEDB/onlinelog_1/group_3_2.LOG
(NULL) ONLINE 200
UNUSED
YES
0
0
3
1 0
/home/oracle/CLONEDB/onlinelog_1/group_3_1.LOG
(NULL) ONLINE 200
UNUSED
YES
0
0
4
2 1
/home/oracle/CLONEDB/onlinelog_1/CLONEDB/onlinelog/o1_mf_4_nh9v8bh0_.log
(NULL) ONLINE 100
INACTIVE
YES
5422524
5422708
4
2 1
/home/oracle/CLONEDB/onlinelog_2/CLONEDB/onlinelog/o1_mf_4_nh9v8bl9_.log
(NULL) ONLINE 100
INACTIVE
YES
5422524
5422708
5
2 0
/home/oracle/CLONEDB/onlinelog_2/CLONEDB/onlinelog/o1_mf_5_nh9v8brp_.log
(NULL) ONLINE 100
UNUSED
YES
0
0
5
2 0
/home/oracle/CLONEDB/onlinelog_1/CLONEDB/onlinelog/o1_mf_5_nh9v8bol_.log
(NULL) ONLINE 100
UNUSED
YES
0
0
-->
OPEN하는 과정에서 그룹 4와 그룹 5가 생긴 것임 (정상적인 동작임) (소스 DB가 2 Node RAC였기 때문에 thread 2가 필요한
최소한의 로그 그룹 2개가 생성된 것임)
10 rows selected.
Elapsed: 00:00:00.01
[ol8ora19rs1]<SYS@CLONEDB>$ show pdbs;
CON_ID
CON_NAME
OPEN MODE RESTRICTED
--------------------
------------------------------ ---------- ----------
2
PDB$SEED
READ ONLY NO
3
ORA19RSP1
MOUNTED (NULL)
[ol8ora19rs1]<SYS@CLONEDB>$ alter pluggable database ora19rsp1 open;
Pluggable database altered.
Elapsed: 00:00:00.76
[ol8ora19rs1]<SYS@CLONEDB>$ select name from v$tempfile;
no rows selected
Elapsed: 00:00:00.00
--> 현재 tempfile이 자동으로 만들어지지 않은
상황임
--지금부터 타켓 DB의 테이블 스페이스 상황을
조사함
[ol8ora19rs1]<SYS@CLONEDB>$
SET LINESIZE
220
SET PAGESIZE 100
COLUMN
CON_ID FORMAT
999 HEADING 'CON_ID'
COLUMN
CON_NAME FORMAT A12
HEADING 'CONTAINER'
COLUMN TABLESPACE_NAME FORMAT
A20 HEADING 'TABLESPACE'
COLUMN
CONTENTS FORMAT A10
HEADING 'CONTENTS'
COLUMN
STATUS FORMAT
A10 HEADING 'STATUS'
COLUMN
EXT_MANAGEMENT FORMAT A10 HEADING 'EXTENT|MGMT'
COLUMN ALLOC_TYPE
FORMAT A10 HEADING 'ALLOC|TYPE'
COLUMN
SEG_SPACE_MGMT FORMAT A10 HEADING 'SEGMENT|SPACE'
COLUMN
BIGFILE FORMAT
A7 HEADING 'BIGFILE'
COLUMN
BLOCK_SIZE FORMAT 9999 HEADING 'BLK|SIZE'
COLUMN
LOGGING FORMAT
A10 HEADING 'LOGGING'
SELECT c.con_id
,
c.name
AS con_name
,
t.tablespace_name
,
t.contents
, t.status
,
t.extent_management
AS ext_management
,
t.allocation_type
AS alloc_type
,
t.segment_space_management
AS seg_space_mgmt
,
t.bigfile
, t.block_size
, t.logging
FROM cdb_tablespaces t
JOIN v$containers c
ON t.con_id = c.con_id
ORDER BY c.con_id
,
t.tablespace_name;
EXTENT ALLOC
SEGMENT
BLK
CON_ID CONTAINER
TABLESPACE
CONTENTS STATUS
MGMT
TYPE SPACE
BIGFILE SIZE LOGGING
------ ------------
-------------------- ---------- ---------- ---------- ---------- ----------
------- ----- ----------
1
CDB$ROOT
SYSAUX
PERMANENT ONLINE
LOCAL SYSTEM
AUTO NO
8192 LOGGING
1
CDB$ROOT
SYSTEM
PERMANENT ONLINE
LOCAL SYSTEM
MANUAL NO 8192
LOGGING
1
CDB$ROOT
TEMP
TEMPORARY ONLINE
LOCAL UNIFORM
MANUAL NO 8192
NOLOGGING
1
CDB$ROOT
UNDOTBS1
UNDO ONLINE
LOCAL SYSTEM
MANUAL NO 8192
LOGGING
1
CDB$ROOT
UNDOTBS2
UNDO ONLINE
LOCAL SYSTEM
MANUAL NO 8192
LOGGING
1
CDB$ROOT
USERS
PERMANENT ONLINE
LOCAL SYSTEM
AUTO NO
8192 LOGGING
--> CDB$ROOT에 템프 테이블 스페이스 있음
6 rows selected.
Elapsed: 00:00:00.00
[ol8ora19rs1]<SYS@CLONEDB>$ alter session set container=PDB$SEED;
Session altered.
Elapsed: 00:00:00.03
[ol8ora19rs1]<SYS@CLONEDB>$ show con_name
CON_NAME
------------------------------
PDB$SEED
SET LINESIZE
220
SET PAGESIZE 100
COLUMN
CON_ID FORMAT
999 HEADING 'CON_ID'
COLUMN
CON_NAME FORMAT A12
HEADING 'CONTAINER'
COLUMN TABLESPACE_NAME FORMAT
A20 HEADING 'TABLESPACE'
COLUMN
CONTENTS FORMAT A10
HEADING 'CONTENTS'
COLUMN
STATUS FORMAT
A10 HEADING 'STATUS'
COLUMN
EXT_MANAGEMENT FORMAT A10 HEADING 'EXTENT|MGMT'
COLUMN ALLOC_TYPE
FORMAT A10 HEADING 'ALLOC|TYPE'
COLUMN
SEG_SPACE_MGMT FORMAT A10 HEADING 'SEGMENT|SPACE'
COLUMN
BIGFILE FORMAT
A7 HEADING 'BIGFILE'
COLUMN
BLOCK_SIZE FORMAT 9999 HEADING 'BLK|SIZE'
COLUMN
LOGGING FORMAT
A10 HEADING 'LOGGING'
SELECT c.con_id
,
c.name
AS con_name
,
t.tablespace_name
,
t.contents
, t.status
,
t.extent_management
AS ext_management
,
t.allocation_type
AS alloc_type
,
t.segment_space_management
AS seg_space_mgmt
,
t.bigfile
, t.block_size
, t.logging
FROM cdb_tablespaces t
JOIN v$containers c
ON t.con_id = c.con_id
ORDER BY c.con_id
,
t.tablespace_name;
EXTENT ALLOC
SEGMENT
BLK
CON_ID CONTAINER
TABLESPACE
CONTENTS STATUS
MGMT
TYPE SPACE
BIGFILE SIZE LOGGING
------ ------------
-------------------- ---------- ---------- ---------- ---------- ----------
------- ----- ----------
2
PDB$SEED
SYSAUX
PERMANENT ONLINE
LOCAL SYSTEM
AUTO NO
8192 LOGGING
2
PDB$SEED
SYSTEM
PERMANENT ONLINE
LOCAL SYSTEM
MANUAL NO 8192
LOGGING
2
PDB$SEED
TEMP
TEMPORARY ONLINE
LOCAL UNIFORM
MANUAL NO 8192
NOLOGGING
2
PDB$SEED
UNDOTBS1
UNDO ONLINE
LOCAL SYSTEM
MANUAL NO 8192
LOGGING
--> PDB$SEED에 템프 테이블 스페이스 있음
4 rows selected.
Elapsed: 00:00:00.03
[ol8ora19rs1]<SYS@CLONEDB>$ alter session set container=CDB$ROOT;
Session altered.
Elapsed: 00:00:00.01
[ol8ora19rs1]<SYS@CLONEDB>$ alter pluggable database ORA19RSP1
open;
Pluggable database altered.
Elapsed: 00:00:00.77
[ol8ora19rs1]<SYS@CLONEDB>$ alter session set container=ORA19RSP1;
Session altered.
Elapsed: 00:00:00.03
SET LINESIZE
220
SET PAGESIZE 100
COLUMN
CON_ID FORMAT
999 HEADING 'CON_ID'
COLUMN
CON_NAME FORMAT A12
HEADING 'CONTAINER'
COLUMN TABLESPACE_NAME FORMAT
A20 HEADING 'TABLESPACE'
COLUMN
CONTENTS FORMAT A10
HEADING 'CONTENTS'
COLUMN
STATUS FORMAT
A10 HEADING 'STATUS'
COLUMN
EXT_MANAGEMENT FORMAT A10 HEADING 'EXTENT|MGMT'
COLUMN ALLOC_TYPE
FORMAT A10 HEADING 'ALLOC|TYPE'
COLUMN
SEG_SPACE_MGMT FORMAT A10 HEADING 'SEGMENT|SPACE'
COLUMN
BIGFILE FORMAT
A7 HEADING 'BIGFILE'
COLUMN
BLOCK_SIZE FORMAT 9999 HEADING 'BLK|SIZE'
COLUMN
LOGGING FORMAT
A10 HEADING 'LOGGING'
SELECT c.con_id
,
c.name
AS con_name
,
t.tablespace_name
,
t.contents
, t.status
,
t.extent_management
AS ext_management
,
t.allocation_type
AS alloc_type
,
t.segment_space_management
AS seg_space_mgmt
,
t.bigfile
, t.block_size
, t.logging
FROM cdb_tablespaces t
JOIN v$containers c
ON t.con_id = c.con_id
ORDER BY c.con_id
,
t.tablespace_name;
CON_ID CONTAINER
TABLESPACE
CONTENTS STATUS
MGMT
TYPE SPACE
BIGFILE SIZE LOGGING
------ ------------
-------------------- ---------- ---------- ---------- ---------- ----------
------- ----- ----------
3
ORA19RSP1
SYSAUX
PERMANENT ONLINE
LOCAL SYSTEM
AUTO NO
8192 LOGGING
3
ORA19RSP1
SYSTEM
PERMANENT ONLINE
LOCAL SYSTEM
MANUAL NO 8192
LOGGING
3
ORA19RSP1
TEMP
TEMPORARY ONLINE
LOCAL UNIFORM
MANUAL NO 8192
NOLOGGING
3
ORA19RSP1
TUNER_DATA1
PERMANENT ONLINE
LOCAL SYSTEM
AUTO NO
8192 LOGGING
3
ORA19RSP1
TUNER_IDX1
PERMANENT ONLINE
LOCAL SYSTEM
AUTO NO
8192 LOGGING
3
ORA19RSP1
TUNER_TEMP
TEMPORARY ONLINE
LOCAL UNIFORM
MANUAL NO 8192
NOLOGGING
3
ORA19RSP1
UNDOTBS1
UNDO ONLINE
LOCAL SYSTEM
MANUAL NO 8192
LOGGING
3
ORA19RSP1
UNDO_2
UNDO ONLINE
LOCAL SYSTEM
MANUAL NO 8192
LOGGING
3
ORA19RSP1
USERS
PERMANENT ONLINE
LOCAL SYSTEM
AUTO NO
8192 LOGGING
--> ORA19RSP1 PDB에 템프 테이블 스페이스
있음
9 rows selected.
Elapsed: 00:00:00.05
--> 결국 템프 테이블 스페이스는 정상적으로 존재하지만 tempfile 이 생성안된 케이스임
--소스 DB에서 생성했었던 컨트롤 파일
생성 스크립트의 내용을 조회함
[ORA19RS1:oracle@ol8ora19rs1][/home/oracle/ORA19RS_BACKUP]$
cat
/home/oracle/ORA19RS_BACKUP/ORA19RS_controlfile_script_backup.sql
...
ALTER TABLESPACE TEMP ADD
TEMPFILE '+DATA1/ORA19RS/TEMPFILE/temp.265.1214089055'
SIZE 258998272 REUSE
AUTOEXTEND ON NEXT 655360 MAXSIZE 32767M;
ALTER
SESSION SET CONTAINER = "PDB$SEED";
ALTER TABLESPACE
TEMP ADD TEMPFILE
'+DATA1/ORA19RS/40BB407F722818D1E06329F0A8C04CFD/TEMPFILE/temp.269.1214089361'
SIZE 221249536 REUSE
AUTOEXTEND ON NEXT 655360 MAXSIZE 32767M;
ALTER
SESSION SET CONTAINER = "ORA19RSP1";
ALTER TABLESPACE
TEMP ADD TEMPFILE
'+DATA1/ORA19RS/40BB61DA40640933E0632AF0A8C05571/TEMPFILE/temp.278.1214089913'
SIZE 221249536 REUSE
AUTOEXTEND ON NEXT 655360 MAXSIZE 32767M;
ALTER
TABLESPACE TUNER_TEMP ADD TEMPFILE
'+DATA1/ORA19RS/40BB61DA40640933E0632AF0A8C05571/TEMPFILE/tuner_temp.284.1214210175'
SIZE 134217728 REUSE
AUTOEXTEND ON NEXT 104857600 MAXSIZE 32767M;
...
--> 위와 같은 내용이 존재함
--소스 DB에 접속에서 아래와 같이 템프 테이블
스페이스의 정보를 조회함
[ORA19RS1:oracle@ol8ora19rs1][/home/oracle]$ echo
$ORACLE_SID
ORA19RS1
[ORA19RS1:oracle@ol8ora19rs1][/home/oracle]$ alias
ss
alias ss='rlwrap
sqlplus "/as sysdba"'
[ORA19RS1:oracle@ol8ora19rs1][/home/oracle]$ ss
SQL*Plus: Release
19.0.0.0.0 - Production on Sun Oct 19 23:07:55 2025
Version 19.28.0.0.0
Copyright (c) 1982, 2025, Oracle. All rights reserved.
Connected to:
Oracle Database 19c
Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.28.0.0.0
[ol8ora19rs1]<SYS@ORA19RS1>$
SET LINESIZE
220
SET PAGESIZE 100
COLUMN
CON_ID FORMAT
999 HEADING 'CON_ID'
COLUMN
CON_NAME FORMAT A12
HEADING 'CONTAINER'
COLUMN TABLESPACE_NAME FORMAT
A20 HEADING 'TEMP TABLESPACE'
COLUMN
FILE_NAME FORMAT A90 HEADING
'FILE NAME'
COLUMN
SIZE_MB FORMAT 999,999,999
HEADING 'SIZE(MB)'
SELECT
c.con_id
AS con_id
,
c.name
AS con_name
,
ts.name
AS tablespace_name
,
tf.name
AS file_name
,
ROUND(tf.bytes/1024/1024) AS size_mb
FROM v$tempfile tf
JOIN v$tablespace ts
ON ts.ts# = tf.ts#
AND ts.con_id = tf.con_id
JOIN v$containers c
ON c.con_id = tf.con_id
ORDER BY c.con_id
, ts.name
,
tf.name;
CON_ID
CONTAINER TEMP TABLESPACE FILE
NAME
SIZE(MB)
------ ------------ --------------------
------------------------------------------------------------------------------------------
------------
1
CDB$ROOT
TEMP
+DATA1/ORA19RS/TEMPFILE/temp.265.1214089055
247
2
PDB$SEED
TEMP
+DATA1/ORA19RS/40BB407F722818D1E06329F0A8C04CFD/TEMPFILE/temp.269.1214089361
211
3
ORA19RSP1
TEMP
+DATA1/ORA19RS/40BB61DA40640933E0632AF0A8C05571/TEMPFILE/temp.278.1214089913
211
3
ORA19RSP1
TUNER_TEMP
+DATA1/ORA19RS/40BB61DA40640933E0632AF0A8C05571/TEMPFILE/tuner_temp.284.1214210175
128
4 rows selected.
Elapsed: 00:00:00.01
--> 위와 같은 상황임
--결국 타켓 DB에 아래와 같이 템프 테이블
스페이스를 생성해줌
[ORA19RS1:oracle@ol8ora19rs1][/home/oracle/CLONEDB]$ mkdir
-pv /home/oracle/CLONEDB/tempfile
mkdir: created
directory '/home/oracle/CLONEDB/tempfile'
[ORA19RS1:oracle@ol8ora19rs1][/home/oracle/CLONEDB]$ export
ORACLE_SID=CLONEDB
[CLONEDB:oracle@ol8ora19rs1][/home/oracle/CLONEDB]$ alias
ss
alias ss='rlwrap sqlplus "/as
sysdba"'
[CLONEDB:oracle@ol8ora19rs1][/home/oracle/CLONEDB]$
ss
SQL*Plus: Release
19.0.0.0.0 - Production on Sun Oct 19 23:11:10 2025
Version 19.28.0.0.0
Copyright (c) 1982, 2025, Oracle. All rights reserved.
Connected to:
Oracle Database 19c
Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.28.0.0.0
--타켓 DB에 새로 tempfile을 생성함
(reuse 옵션을 빼기)
ALTER SESSION SET
CONTAINER = "CDB$ROOT";
ALTER TABLESPACE TEMP ADD
TEMPFILE '/home/oracle/CLONEDB/tempfile/CDB_DOLLAR_ROOT_TEMP_1.dbf'
SIZE 258998272 AUTOEXTEND ON
NEXT 655360 MAXSIZE 32767M;
ALTER SESSION SET
CONTAINER = "PDB$SEED";
ALTER TABLESPACE TEMP ADD
TEMPFILE '/home/oracle/CLONEDB/tempfile/PDB_DOLLAR_SEED_TEMP_1.dbf'
SIZE 221249536 AUTOEXTEND ON
NEXT 655360 MAXSIZE 32767M;
ALTER SESSION SET
CONTAINER = "ORA19RSP1";
ALTER TABLESPACE TEMP ADD
TEMPFILE '/home/oracle/CLONEDB/tempfile/ORA19RSP1_TEMP_1.dbf'
SIZE 221249536 AUTOEXTEND ON
NEXT 655360 MAXSIZE 32767M;
ALTER TABLESPACE
TUNER_TEMP ADD TEMPFILE
'/home/oracle/CLONEDB/tempfile/ORA19RSP1_TUNER_TEMP_1.dbf'
SIZE 134217728 AUTOEXTEND ON
NEXT 104857600 MAXSIZE 32767M;
--> 생성 완료됨 확인함
[ol8ora19rs1]<SYS@CLONEDB>$ ALTER SESSION SET CONTAINER = "CDB$ROOT";
Session altered.
Elapsed: 00:00:00.01
[ol8ora19rs1]<SYS@CLONEDB>$ show con_name;
CON_NAME
------------------------------
CDB$ROOT
SET LINESIZE 220
SET PAGESIZE
100
COLUMN
CON_ID FORMAT
999 HEADING 'CON_ID'
COLUMN
CON_NAME FORMAT A12
HEADING 'CONTAINER'
COLUMN TABLESPACE_NAME FORMAT
A20 HEADING 'TEMP TABLESPACE'
COLUMN
FILE_NAME FORMAT A90 HEADING
'FILE NAME'
COLUMN
SIZE_MB FORMAT 999,999,999
HEADING 'SIZE(MB)'
SELECT
c.con_id
AS con_id
,
c.name
AS con_name
,
ts.name
AS tablespace_name
,
tf.name
AS file_name
,
ROUND(tf.bytes/1024/1024) AS size_mb
FROM v$tempfile tf
JOIN v$tablespace ts
ON ts.ts# = tf.ts#
AND ts.con_id = tf.con_id
JOIN v$containers c
ON c.con_id = tf.con_id
ORDER BY c.con_id
, ts.name
,
tf.name;
CON_ID
CONTAINER TEMP TABLESPACE FILE
NAME
SIZE(MB)
------ ------------ --------------------
------------------------------------------------------------------------------------------
------------
1
CDB$ROOT
TEMP
/home/oracle/CLONEDB/tempfile/CDB_DOLLAR_ROOT_TEMP_1.dbf
247
2
PDB$SEED
TEMP
/home/oracle/CLONEDB/tempfile/PDB_DOLLAR_SEED_TEMP_1.dbf
211
3
ORA19RSP1
TEMP
/home/oracle/CLONEDB/tempfile/ORA19RSP1_TEMP_1.dbf
211
3
ORA19RSP1
TUNER_TEMP
/home/oracle/CLONEDB/tempfile/ORA19RSP1_TUNER_TEMP_1.dbf
128
4 rows selected.
Elapsed: 00:00:00.02
--> 정상적으로 tempfile 이 생성된 것을
확인함
--> 지금부터 소스 DB에서 발생시킨 트랜잭션이
타켓 DB에도 정상적으로 적용된것인지 실제 데이터 확인
[ol8ora19rs1]<SYS@CLONEDB>$ show con_name
CON_NAME
------------------------------
CDB$ROOT
[ol8ora19rs1]<SYS@CLONEDB>$ select count(*) from sys.cdb_root_tran_test_01;
COUNT(*)
--------------------
1000
1 row selected.
Elapsed: 00:00:00.02
[ol8ora19rs1]<SYS@CLONEDB>$ alter session set container=ORA19RSP1;
Session altered.
Elapsed: 00:00:00.05
[ol8ora19rs1]<SYS@CLONEDB>$ show con_name
CON_NAME
------------------------------
ORA19RSP1
[ol8ora19rs1]<SYS@CLONEDB>$ select count(*) from sys.pdb_tran_test_01;
COUNT(*)
--------------------
1000
1 row selected.
Elapsed: 00:00:00.02
14. 타켓 DB에서 redo log thread 2는 필요 없으므로 제거 (타켓 DB는 Single DB인 상황임)
[ol8ora19rs1]<SYS@CLONEDB>$ alter session set container=CDB$ROOT;
Session altered.
Elapsed:
00:00:00.02
[ol8ora19rs1]<SYS@CLONEDB>$ show con_name
CON_NAME
------------------------------
CDB$ROOT
[ol8ora19rs1]<SYS@CLONEDB>$
COL STATUS FORMAT
A10
COL ENABLED FORMAT A10
SELECT THREAD#, STATUS, ENABLED FROM
V$THREAD;
THR
STATUS ENABLED
--- ----------
----------
1
OPEN PUBLIC
2
CLOSED PUBLIC
2 rows selected.
[ol8ora19rs1]<SYS@CLONEDB>$ ALTER DATABASE DISABLE THREAD 2;
Database altered.
SET LINESIZE 220
SET PAGESIZE
100
SET NUMWIDTH 20
COLUMN
GROUP# FORMAT 999
HEADING 'GROUP#'
COLUMN
THREAD# FORMAT 99
HEADING 'THR'
COLUMN
SEQUENCE# FORMAT 99999 HEADING 'SEQ#'
COLUMN
MEMBER FORMAT A80
HEADING 'MEMBER (REDO LOG FILE PATH)'
COLUMN
A.STATUS FORMAT A10 HEADING
'FILE|STATUS'
COLUMN
A.TYPE FORMAT
A5 HEADING 'TYPE'
COLUMN
MB
FORMAT 9990 HEADING 'SIZE(MB)'
COLUMN
B.STATUS FORMAT A10 HEADING
'LOG|STATUS'
COLUMN
B.ARCHIVED FORMAT A9 HEADING
'ARCHIVED'
COLUMN B.FIRST_CHANGE# FORMAT
999999999999 HEADING 'FIRST|CHANGE#'
COLUMN
B.NEXT_CHANGE# FORMAT 999999999999 HEADING
'NEXT|CHANGE#'
SELECT A.GROUP#
, B.THREAD#
, B.SEQUENCE#
, A.MEMBER
, A.STATUS
, A.TYPE
, B.BYTES/1024/1024 AS MB
, B.STATUS
, b.ARCHIVED
, b.FIRST_CHANGE#
, b.NEXT_CHANGE#
FROM V$LOGFILE A
, V$LOG B
WHERE A.GROUP# = B.GROUP#
ORDER BY A.GROUP#, B.THREAD#, B.SEQUENCE#
;
GROUP#
THR SEQ# MEMBER (REDO LOG FILE
PATH)
STATUS TYPE SIZE(MB)
STATUS ARC
FIRST_CHANGE# NEXT_CHANGE#
------ --- ------
--------------------------------------------------------------------------------
---------- ------- -------- ---------- --- --------------------
--------------------
1 1 1
/home/oracle/CLONEDB/onlinelog_1/group_1_1.LOG
(NULL) ONLINE 200
CURRENT
NO
5422524 9295429630892703743
1
1 1
/home/oracle/CLONEDB/onlinelog_1/group_1_2.LOG
(NULL) ONLINE 200
CURRENT
NO
5422524 9295429630892703743
2
1 0
/home/oracle/CLONEDB/onlinelog_1/group_2_1.LOG
(NULL) ONLINE 200
UNUSED
YES
0
0
2
1 0
/home/oracle/CLONEDB/onlinelog_1/group_2_2.LOG
(NULL) ONLINE 200
UNUSED
YES
0
0
3
1 0
/home/oracle/CLONEDB/onlinelog_1/group_3_2.LOG
(NULL) ONLINE 200
UNUSED
YES
0
0
3
1 0
/home/oracle/CLONEDB/onlinelog_1/group_3_1.LOG
(NULL) ONLINE 200
UNUSED
YES
0
0
4
2 1
/home/oracle/CLONEDB/onlinelog_1/CLONEDB/onlinelog/o1_mf_4_nh9v8bh0_.log
(NULL) ONLINE 100
INACTIVE
YES
5422524
5422708
4
2 1
/home/oracle/CLONEDB/onlinelog_2/CLONEDB/onlinelog/o1_mf_4_nh9v8bl9_.log
(NULL) ONLINE 100
INACTIVE
YES
5422524
5422708
5
2 0
/home/oracle/CLONEDB/onlinelog_2/CLONEDB/onlinelog/o1_mf_5_nh9v8brp_.log
(NULL) ONLINE 100
UNUSED
YES
0
0
5
2 0
/home/oracle/CLONEDB/onlinelog_1/CLONEDB/onlinelog/o1_mf_5_nh9v8bol_.log
(NULL) ONLINE 100
UNUSED
YES
0
0
10 rows selected.
Elapsed: 00:00:00.01
[ol8ora19rs1]<SYS@CLONEDB>$ ALTER DATABASE DROP LOGFILE GROUP 4;
[ol8ora19rs1]<SYS@CLONEDB>$ ALTER DATABASE DROP LOGFILE GROUP 5;
COL STATUS FORMAT
A10
COL ENABLED FORMAT A10
SELECT THREAD#, STATUS, ENABLED FROM
V$THREAD;
THR
STATUS ENABLED
--- ----------
----------
1
OPEN PUBLIC
1 row selected.
Elapsed: 00:00:00.01
SET LINESIZE
220
SET PAGESIZE 100
SET
NUMWIDTH 20
COLUMN
GROUP# FORMAT 999
HEADING 'GROUP#'
COLUMN
THREAD# FORMAT 99
HEADING 'THR'
COLUMN
SEQUENCE# FORMAT 99999 HEADING 'SEQ#'
COLUMN
MEMBER FORMAT A80
HEADING 'MEMBER (REDO LOG FILE PATH)'
COLUMN
A.STATUS FORMAT A10 HEADING
'FILE|STATUS'
COLUMN
A.TYPE FORMAT
A5 HEADING 'TYPE'
COLUMN
MB
FORMAT 9990 HEADING 'SIZE(MB)'
COLUMN
B.STATUS FORMAT A10 HEADING
'LOG|STATUS'
COLUMN
B.ARCHIVED FORMAT A9 HEADING
'ARCHIVED'
COLUMN B.FIRST_CHANGE# FORMAT
999999999999 HEADING 'FIRST|CHANGE#'
COLUMN
B.NEXT_CHANGE# FORMAT 999999999999 HEADING
'NEXT|CHANGE#'
SELECT A.GROUP#
, B.THREAD#
, B.SEQUENCE#
, A.MEMBER
, A.STATUS
, A.TYPE
, B.BYTES/1024/1024 AS MB
, B.STATUS
, b.ARCHIVED
, b.FIRST_CHANGE#
, b.NEXT_CHANGE#
FROM V$LOGFILE A
, V$LOG B
WHERE A.GROUP# = B.GROUP#
ORDER BY A.GROUP#, B.THREAD#, B.SEQUENCE#
;
GROUP#
THR SEQ# MEMBER (REDO LOG FILE
PATH)
STATUS TYPE SIZE(MB)
STATUS ARC
FIRST_CHANGE# NEXT_CHANGE#
------ --- ------
--------------------------------------------------------------------------------
---------- ------- -------- ---------- --- --------------------
--------------------
1 1 1
/home/oracle/CLONEDB/onlinelog_1/group_1_1.LOG
(NULL) ONLINE 200
CURRENT
NO
5422524 9295429630892703743
1
1 1
/home/oracle/CLONEDB/onlinelog_1/group_1_2.LOG
(NULL) ONLINE 200
CURRENT
NO
5422524 9295429630892703743
2
1 0
/home/oracle/CLONEDB/onlinelog_1/group_2_1.LOG
(NULL) ONLINE 200
UNUSED
YES
0
0
2
1 0
/home/oracle/CLONEDB/onlinelog_1/group_2_2.LOG
(NULL) ONLINE 200
UNUSED
YES
0
0
3
1 0
/home/oracle/CLONEDB/onlinelog_1/group_3_1.LOG
(NULL) ONLINE 200
UNUSED
YES
0
0
3
1 0
/home/oracle/CLONEDB/onlinelog_1/group_3_2.LOG
(NULL) ONLINE 200
UNUSED
YES
0
0
6 rows selected.
Elapsed: 00:00:00.00
99. 작업 후 정리 (작업 전 상태로 원상 복구 하는 것임)
99-1. 소스 DB
정리
[ORA19RS1:oracle@ol8ora19rs1][/home/oracle]$ alias
ss
alias ss='rlwrap
sqlplus "/as sysdba"'
[ORA19RS1:oracle@ol8ora19rs1][/home/oracle]$ echo
$ORACLE_SID
ORA19RS1
[ORA19RS1:oracle@ol8ora19rs1][/home/oracle]$
ss
SQL*Plus: Release
19.0.0.0.0 - Production on Sun Oct 19 01:03:08 2025
Version 19.28.0.0.0
Copyright (c) 1982, 2025, Oracle. All rights reserved.
Connected to:
Oracle Database 19c
Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.28.0.0.0
[ol8ora19rs1]<SYS@ORA19RS1>$ show con_name
CON_NAME
------------------------------
CDB$ROOT
[ol8ora19rs1]<SYS@ORA19RS1>$ drop table sys.cdb_root_tran_test_01
purge;
Table dropped.
Elapsed: 00:00:00.12
[ol8ora19rs1]<SYS@ORA19RS1>$ alter session set container=ORA19RSP1;
Session altered.
Elapsed: 00:00:00.01
[ol8ora19rs1]<SYS@ORA19RS1>$ drop table sys.pdb_tran_test_01 purge;
Table dropped.
Elapsed: 00:00:00.10
[ORA19RS1:oracle@ol8ora19rs1][/home/oracle]$ rm -rf ORA19RS_BACKUP
99-2. 타켓 DB 정리
[ORA19RS1:oracle@ol8ora19rs1][/home/oracle]$ export
ORACLE_SID=CLONEDB
[CLONEDB:oracle@ol8ora19rs1][/home/oracle]$ alias ss
alias ss='rlwrap sqlplus "/as
sysdba"'
[CLONEDB:oracle@ol8ora19rs1][/home/oracle]$
ss
SQL*Plus: Release
19.0.0.0.0 - Production on Sun Oct 19 01:03:57 2025
Version 19.28.0.0.0
Copyright (c) 1982, 2025, Oracle. All rights reserved.
Connected to:
Oracle Database 19c
Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.28.0.0.0
[ol8ora19rs1]<SYS@CLONEDB>$ shutdown abort;
ORACLE instance
shut down.
[CLONEDB:oracle@ol8ora19rs1][/home/oracle/CLONEDB]$ rm -rf
/home/oracle/CLONEDB
[CLONEDB:oracle@ol8ora19rs1][/home/oracle/CLONEDB]$ rm -rf
/u01/app/oracle/admin/CLONEDB/adump
[CLONEDB:oracle@ol8ora19rs1][/home/oracle/CLONEDB]$ rm -rf
/u01/app/oracle/diag/rdbms/clonedb
[root@ol8ora19rs1][/root]$ rm -rf /u01/app/oracle/admin/CLONEDB
[root@ol8ora19rs1][/root]$ find /u01/app/oracle | grep -i
clonedb \
| grep -v /clonedb.pl \
| grep -v cloneDBCreation1R.log \
| grep -v cloneDBCreation.sql \
| awk '{print "rm -rf \"" $0
"\""}'
--> 실전에서는 이런 식으로 파일
지우지 말것
--> 지우지 말던가 꼭 지울꺼면 파일 하나하나 해당 경로로 들어가서 확인하면서
돌다리 두들기면서 지울것
rm -rf
"/u01/app/oracle/product/19c/db_1/rdbms/audit/CLONEDB_ora_4904_20251018130345956274982471.aud"
rm -rf
"/u01/app/oracle/product/19c/db_1/rdbms/log/clonedb_ora_4904.trc"
rm -rf
"/u01/app/oracle/product/19c/db_1/rdbms/log/clonedb_ora_10179.trc"
rm -rf
"/u01/app/oracle/product/19c/db_1/rdbms/log/clonedb_ora_4014.trc"
rm -rf
"/u01/app/oracle/product/19c/db_1/rdbms/log/clonedb_ora_9337.trc"
rm -rf
"/u01/app/oracle/product/19c/db_1/rdbms/log/clonedb_ora_1608.trc"
rm -rf
"/u01/app/oracle/product/19c/db_1/rdbms/log/clonedb_ora_4072.trc"
rm -rf
"/u01/app/oracle/product/19c/db_1/rdbms/log/clonedb_ora_4541.trc"
rm -rf
"/u01/app/oracle/product/19c/db_1/rdbms/log/clonedb_ora_8413.trc"
rm -rf
"/u01/app/oracle/product/19c/db_1/rdbms/log/clonedb_ora_9287.trc"
rm -rf
"/u01/app/oracle/product/19c/db_1/rdbms/log/clonedb_ora_5819.trc"
rm -rf
"/u01/app/oracle/product/19c/db_1/rdbms/log/clonedb_ora_9499.trc"
rm -rf
"/u01/app/oracle/product/19c/db_1/rdbms/log/clonedb_ora_9377.trc"
rm -rf
"/u01/app/oracle/product/19c/db_1/rdbms/log/clonedb_ora_5704.trc"
rm -rf
"/u01/app/oracle/product/19c/db_1/rdbms/log/clonedb_ora_6577.trc"
rm -rf
"/u01/app/oracle/product/19c/db_1/dbs/hc_CLONEDB.dat"
rm
-rf "/u01/app/oracle/product/19c/db_1/dbs/snapcf_CLONEDB.f"
rm -rf
"/u01/app/oracle/diag/asm/+asm/+ASM1/trace/+ASM1_ufg_1181_CLONEDB_CLONEDB.trc"
rm -rf
"/u01/app/oracle/diag/asm/+asm/+ASM1/trace/+ASM1_ufg_1181_CLONEDB_CLONEDB.trm"
rm -rf
"/u01/app/oracle/diag/asm/+asm/+ASM1/trace/+ASM1_ufg_1315_CLONEDB_CLONEDB.trc"
rm -rf
"/u01/app/oracle/diag/asm/+asm/+ASM1/trace/+ASM1_ufg_1315_CLONEDB_CLONEDB.trm"
rm -rf "/u01/app/oracle/audit/CLONEDB"
rm -rf
"/u01/app/oracle/audit/CLONEDB/40BB61DA40640933E0632AF0A8C05571"
rm -rf
"/u01/app/oracle/audit/CLONEDB/40BB407F722818D1E06329F0A8C04CFD"
rm -rf
"/u01/app/oracle/audit/CLONEDB/40BB407F722818D1E06329F0A8C04CFD/ora_audit_0831.bin"
--삭제 확인. 결과가
안나와야함
[root@ol8ora19rs1][/root]$ find /u01/app/oracle | grep -i
clonedb \
| grep -v /clonedb.pl \
| grep -v cloneDBCreation1R.log \
| grep -v cloneDBCreation.sql \
| awk '{print "rm -rf \"" $0 "\""}'