[2025-06-06] ASM 내에 파일을 원격지의 ASM 위치로 copy 하기 (19c)
[실습 환경]
<소스>
OS : Oracle Linux Server 7.9 (Linux
rdb01d 5.4.17-2102.201.3.el7uek.x86_64)
DB : Oracle Database 19c Enterprise
Edition Release 19.0.0.0.0 - Production (Version 19.27.0.0.0)
RAC1 :
ol7ora19r1(192.168.0.21) : ORA19R1
RAC2 : ol7ora19r2(192.168.0.22) :
ORA19R2
<타켓>
OS : Oracle Linux Server 7.9 (Linux
rdb01d 5.4.17-2102.201.3.el7uek.x86_64)
DB : Oracle Database 19c Enterprise
Edition Release 19.0.0.0.0 - Production (Version 19.26.0.0.0)
SINGLE :
tdb01t(192.168.0.51) : ORCL
1. asmcmd 사용
1-1. 타켓에서
테스트용 디렉토리 생성
[+ASM:grid@tdb01t][/home/grid]$ asmcmd
ASMCMD [+] > cd DATA1
ASMCMD
[+DATA1] > mkdir TEST
[+ASM:grid@tdb01t][/home/grid]$ lsnrctl status LISTENER_ORCL
LSNRCTL for Linux: Version 19.0.0.0.0 - Production on 06-JUN-2025 22:12:03
Copyright (c) 1991, 2024, Oracle. All rights reserved.
Connecting to
(DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=LISTENER_ORCL)))
STATUS of the
LISTENER
------------------------
Alias
LISTENER_ORCL
Version
TNSLSNR for Linux: Version 19.0.0.0.0 - Production
Start
Date
06-JUN-2025
21:28:26
Uptime
0 days 0 hr. 43 min. 37 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/tdb01t/listener_orcl/alert/log.xml
Listening
Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=LISTENER_ORCL)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.0.51)(PORT=1521)))
Services
Summary...
Service "+ASM" has 1 instance(s).
Instance "+ASM", status READY, has 1 handler(s) for this
service...
Service "+ASM_DATA1" has 1 instance(s).
Instance
"+ASM", status READY, has 1 handler(s) for this service...
Service
"+ASM_FRA1" has 1 instance(s).
Instance "+ASM", status READY, has 1
handler(s) for this service...
Service "ORCL" has 1 instance(s).
Instance "ORCL", status READY, has 1 handler(s) for this service...
Service
"ORCLXDB" has 1 instance(s).
Instance "ORCL", status READY, has 1
handler(s) for this service...
The command completed
successfully
-->
+ASM으로 접속 가능한 상태임을 확인
1-2. 소스에서 타켓으로 파일 복사
--DBI_TRACE 환경 변수를 1로 세팅
[+ASM1:grid@ol7ora19r1][/home/grid]$ export
DBI_TRACE=1
--> 소스에서 원격지로 파일 복사
[+ASM1:grid@ol7ora19r1][/home/grid]$ asmcmd cp
+DATA1_NEW/ORA19R/DATAFILE/USERS.268.1202826071 sys/oracle@192.168.0.51.+ASM:+DATA1/TEST/users.dbf
--만약 포트를 지정한다면
asmcmd cp --port 1522 +DATA1_NEW/ORA19R/DATAFILE/USERS.268.1202826071
sys/oracle@192.168.0.51.+ASM:+DATA1/TEST/users.dbf
--> 이렇게 포트를 지정하면됨
DBI 1.644-ithread default trace level set to 0x0/1
(pid 4578 pi 98c010) at DBI.pm line 297 via asmcmdshare.pm line
456
->
DBI->connect(dbi:Oracle:(DESCRIPTION=(ADDRESS=(PROTOCOL=beq)(PROGRAM=/u01/app/19c/grid/bin/oracle)(ARGV0=oracle+ASM1_asmcmd)(ENVS='ORACLE_HOME=/u01/app/19c/grid,ORACLE_SID=+ASM1,ORA_SERVER_BROKER_MODE=NONE')(ARGS='(DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))'))(CONNECT_DATA=(ORACLE_HOME=/u01/app/19c/grid)(SID=+ASM1))(SECURITY=(AUTHENTICATION_SERVICE=beq))(enable=setuser)),
, ****, HASH(0x1d695f0))
->
DBI->install_driver(Oracle) for linux perl=5.038002 pid=4578 ruid=54322
euid=54322
install_driver: DBD::Oracle
version 1.90 loaded from
/u01/app/19c/grid/perl/lib/site_perl/5.38.2/x86_64-linux-thread-multi/DBD/Oracle.pm
<- STORE('ShowErrorStatement', 1)= ( 1 ) [1 items] at Oracle.pm line
80
<- install_driver=
DBI::dr=HASH(0x2a4e7e0)
<- default_user(undef, undef,
...)= ( undef undef ) [2 items] at DBI.pm line 670
<-
DESTROY(DBI::st=HASH(0x2a2ece0))= ( ) [0 items] at Oracle.pm line
347
<-
connect('(DESCRIPTION=(ADDRESS=(PROTOCOL=beq)(PROGRAM=/u01/app/19c/grid/bin/oracle)(ARGV0=oracle+ASM1_asmcmd)(ENVS='ORACLE_HOME=/u01/app/19c/grid,ORACLE_SID=+ASM1,ORA_SERVER_BROKER_MODE=NONE')(ARGS='(DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))'))(CONNECT_DATA=(ORACLE_HOME=/u01/app/19c/grid)(SID=+ASM1))(SECURITY=(AUTHENTICATION_SERVICE=beq))(enable=setuser))',
undef, ...)= ( DBI::db=HASH(0x2a2eb18) ) [1 items] at DBI.pm line
682
<- STORE('PrintError', 0)= ( 1 ) [1 items] at
DBI.pm line 734
<- STORE('AutoCommit', 1)= ( 1 ) [1
items] at DBI.pm line 734
<- STORE('Username', undef)=
( 1 ) [1 items] at DBI.pm line 737
<-
connected('dbi:Oracle:(DESCRIPTION=(ADDRESS=(PROTOCOL=beq)(PROGRAM=/u01/app/19c/grid/bin/oracle)(ARGV0=oracle+ASM1_asmcmd)(ENVS='ORACLE_HOME=/u01/app/19c/grid,ORACLE_SID=+ASM1,ORA_SERVER_BROKER_MODE=NONE')(ARGS='(DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))'))(CONNECT_DATA=(ORACLE_HOME=/u01/app/19c/grid)(SID=+ASM1))(SECURITY=(AUTHENTICATION_SERVICE=beq))(enable=setuser))',
undef, ...)= ( undef ) [1 items] at DBI.pm line 744
<-
connect= DBI::db=HASH(0x2a2eb18)
<-
STORE('dbi_connect_closure', CODE(0x2a2e248))= ( 1 ) [1 items] at DBI.pm line
753
<- prepare('/* ASMCMD */ select instance_name from
v$instance')= ( DBI::st=HASH(0x2a2ec38) ) [1 items] at asmcmdshare.pm line
4008
<- execute= ( '0E0' ) [1 items] at asmcmdshare.pm
line 4311
<- fetchrow_hashref= ( HASH(0x2a0e158)1keys )
[1 items] row1 at asmcmdshare.pm line 4034
<- finish= (
1 ) [1 items] at asmcmdshare.pm line 4055
<-
DESTROY(DBI::st=HASH(0x2a2ed40))= ( ) [0 items] at asmcmdshare.pm line
6531
<- prepare('/* ASMCMD */ select version_full from
v$instance')= ( DBI::st=HASH(0x2a58708) ) [1 items] at asmcmdshare.pm line
4008
<- execute= ( '0E0' ) [1 items] at asmcmdshare.pm
line 4311
<- fetchrow_hashref= ( HASH(0x2a0e0f8)1keys )
[1 items] row1 at asmcmdshare.pm line 4034
<- finish= (
1 ) [1 items] at asmcmdshare.pm line 4055
<-
DESTROY(DBI::st=HASH(0x2a2ece0))= ( ) [0 items] at asmcmdshare.pm line
2294
->
DBI->connect(dbi:Oracle:(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.0.51)(PRIVILEGE=sysdba)(INTERNAL_LOGON=sysdba)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=+ASM)(INSTANCE_NAME=+ASM))),
sys, ****, HASH(0x2a586f0))
<-
connect('(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.0.51)(PRIVILEGE=sysdba)(INTERNAL_LOGON=sysdba)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=+ASM)(INSTANCE_NAME=+ASM)))',
'sys', ...)= ( DBI::db=HASH(0x3002f88) ) [1 items] at DBI.pm line
682
<- STORE('PrintError', 0)= ( 1 ) [1 items] at
DBI.pm line 734
<- STORE('AutoCommit', 1)= ( 1 ) [1
items] at DBI.pm line 734
<- STORE('Username', 'sys')=
( 1 ) [1 items] at DBI.pm line 737
<-
connected('dbi:Oracle:(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.0.51)(PRIVILEGE=sysdba)(INTERNAL_LOGON=sysdba)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=+ASM)(INSTANCE_NAME=+ASM)))',
'sys', ...)= ( undef ) [1 items] at DBI.pm line 744
<-
connect= DBI::db=HASH(0x3002f88)
<-
STORE('dbi_connect_closure', CODE(0x2ffffb0))= ( 1 ) [1 items] at DBI.pm line
753
<- prepare('/* ASMCMD */ select instance_name from
v$instance')= ( DBI::st=HASH(0x30031c8) ) [1 items] at asmcmdshare.pm line
4008
<- execute= ( '0E0' ) [1 items] at asmcmdshare.pm
line 4311
<- fetchrow_hashref= ( HASH(0x3003408)1keys )
[1 items] row1 at asmcmdshare.pm line 4034
<- finish= (
1 ) [1 items] at asmcmdshare.pm line 4055
<-
DESTROY(DBI::st=HASH(0x3003060))= ( ) [0 items] at asmcmdshare.pm line
6531
<- prepare('/* ASMCMD */ select value from
v$parameter where name = ?')= ( DBI::st=HASH(0x30031c8) ) [1 items] at
asmcmdshare.pm line 4227
<- bind_param(1,
'instance_type', ...)= ( 1 ) [1 items] at asmcmdshare.pm line
2894
<- execute= ( '0E0' ) [1 items] at asmcmdshare.pm
line 4311
<- fetchrow_hashref= ( HASH(0x2ffff38)1keys )
[1 items] row1 at asmcmdshare.pm line 4034
<- finish= (
1 ) [1 items] at asmcmdshare.pm line 4055
<-
DESTROY(DBI::st=HASH(0x3002fa0))= ( ) [0 items] at asmcmdshare.pm line
2900
<- prepare('/* ASMCMD */ select group_number,
state from v$asm_diskgroup_stat where name = ?')= ( DBI::st=HASH(0x3003300) ) [1
items] at asmcmdshare.pm line 4227
<- bind_param(1,
'DATA1_NEW', ...)= ( 1 ) [1 items] at asmcmdshare.pm line
3688
<- execute= ( '0E0' ) [1 items] at asmcmdshare.pm
line 4311
<- fetchrow_hashref= ( HASH(0x3003618)2keys )
[1 items] row1 at asmcmdshare.pm line 4034
<- finish= (
1 ) [1 items] at asmcmdshare.pm line 4055
<-
DESTROY(DBI::st=HASH(0x2a2eda0))= ( ) [0 items] at asmcmdshare.pm line
3698
<- prepare('/* ASMCMD */ select reference_index
from v$asm_alias where group_number = ? and parent_index = ? and upper(name) =
?')= ( DBI::st=HASH(0x2fffef0) ) [1 items] at asmcmdshare.pm line
4227
dbd_rebind_ph() (2): rebinding :p1 with UTF8 value so setting
csform=SQLCS_IMPLICIT <- bind_param(1, 3)= ( 1 ) [1 items]
at asmcmdshare.pm line 3285
<- bind_param(2, 50331648)=
( 1 ) [1 items] at asmcmdshare.pm line 3286
<-
bind_param(3, undef, ...)= ( 1 ) [1 items] at asmcmdshare.pm line
3287
<- execute= ( '0E0' ) [1 items] at asmcmdshare.pm
line 4311
<- fetchrow_hashref= ( HASH(0x3003738)1keys )
[1 items] row1 at asmcmdshare.pm line 4034
<- finish= (
1 ) [1 items] at asmcmdshare.pm line 4055
<-
DESTROY(DBI::st=HASH(0x3003420))= ( ) [0 items] at asmcmdshare.pm line
3293
<- prepare('/* ASMCMD */ select reference_index
from v$asm_alias where group_number = ? and parent_index = ? and upper(name) =
?')= ( DBI::st=HASH(0x3003510) ) [1 items] at asmcmdshare.pm line
4227
dbd_rebind_ph() (2): rebinding :p1 with UTF8 value so setting
csform=SQLCS_IMPLICIT <- bind_param(1, 3)= ( 1 ) [1 items]
at asmcmdshare.pm line 3285
dbd_rebind_ph() (2): rebinding :p2 with UTF8
value so setting csform=SQLCS_IMPLICIT <- bind_param(2,
"50331701")= ( 1 ) [1 items] at asmcmdshare.pm line 3286
<- bind_param(3, undef, ...)= ( 1 ) [1 items] at asmcmdshare.pm line
3287
<- execute= ( '0E0' ) [1 items] at asmcmdshare.pm
line 4311
<- fetchrow_hashref= ( HASH(0x3003720)1keys )
[1 items] row1 at asmcmdshare.pm line 4034
<- finish= (
1 ) [1 items] at asmcmdshare.pm line 4055
<-
DESTROY(DBI::st=HASH(0x2a2ef98))= ( ) [0 items] at asmcmdshare.pm line
3293
<- prepare('/* ASMCMD */ select reference_index
from v$asm_alias where group_number = ? and parent_index = ? and upper(name) =
?')= ( DBI::st=HASH(0x30033f0) ) [1 items] at asmcmdshare.pm line
4227
dbd_rebind_ph() (2): rebinding :p1 with UTF8 value so setting
csform=SQLCS_IMPLICIT <- bind_param(1, 3)= ( 1 ) [1 items]
at asmcmdshare.pm line 3285
dbd_rebind_ph() (2): rebinding :p2 with UTF8
value so setting csform=SQLCS_IMPLICIT <- bind_param(2,
"50331860")= ( 1 ) [1 items] at asmcmdshare.pm line 3286
<- bind_param(3, 'USERS.268.1202826071', ...)= ( 1 ) [1 items] at
asmcmdshare.pm line 3287
<- execute= ( '0E0' ) [1
items] at asmcmdshare.pm line 4311
<- fetchrow_hashref=
( HASH(0x30036d8)1keys ) [1 items] row1 at asmcmdshare.pm line
4034
<- finish= ( 1 ) [1 items] at asmcmdshare.pm line
4055
<- DESTROY(DBI::st=HASH(0x3003690))= ( ) [0 items]
at asmcmdshare.pm line 3293
<- prepare('/* ASMCMD */
select group_number, state from v$asm_diskgroup_stat where name = ?')= (
DBI::st=HASH(0x2fffe18) ) [1 items] at asmcmdshare.pm line
4227
<- bind_param(1, undef, ...)= ( 1 ) [1 items] at
asmcmdshare.pm line 3688
<- execute= ( '0E0' ) [1
items] at asmcmdshare.pm line 4311
<- fetchrow_hashref=
( HASH(0x30036a8)2keys ) [1 items] row1 at asmcmdshare.pm line
4034
<- finish= ( 1 ) [1 items] at asmcmdshare.pm line
4055
<- DESTROY(DBI::st=HASH(0x3003438))= ( ) [0 items]
at asmcmdshare.pm line 3698
<- prepare('/* ASMCMD */
select reference_index from v$asm_alias where group_number = ? and parent_index
= ? and upper(name) = ?')= ( DBI::st=HASH(0x3003780) ) [1 items] at
asmcmdshare.pm line 4227
dbd_rebind_ph() (2): rebinding :p1 with UTF8 value
so setting csform=SQLCS_IMPLICIT <- bind_param(1, 1)= ( 1 )
[1 items] at asmcmdshare.pm line 3285
<- bind_param(2,
16777216)= ( 1 ) [1 items] at asmcmdshare.pm line 3286
<- bind_param(3, undef, ...)= ( 1 ) [1 items] at asmcmdshare.pm line
3287
<- execute= ( '0E0' ) [1 items] at asmcmdshare.pm
line 4311
<- fetchrow_hashref= ( HASH(0x300d928)1keys )
[1 items] row1 at asmcmdshare.pm line 4034
<- finish= (
1 ) [1 items] at asmcmdshare.pm line 4055
<-
DESTROY(DBI::st=HASH(0x3003420))= ( ) [0 items] at asmcmdshare.pm line
3293
<- prepare('/* ASMCMD */ select reference_index
from v$asm_alias where group_number = ? and parent_index = ? and upper(name) =
?')= ( DBI::st=HASH(0x300d880) ) [1 items] at asmcmdshare.pm line
4227
dbd_rebind_ph() (2): rebinding :p1 with UTF8 value so setting
csform=SQLCS_IMPLICIT <- bind_param(1, 1)= ( 1 ) [1 items]
at asmcmdshare.pm line 3285
dbd_rebind_ph() (2): rebinding :p2 with UTF8
value so setting csform=SQLCS_IMPLICIT <- bind_param(2,
"16778329")= ( 1 ) [1 items] at asmcmdshare.pm line 3286
<- bind_param(3, undef, ...)= ( 1 ) [1 items] at asmcmdshare.pm line
3287
<- execute= ( '0E0' ) [1 items] at asmcmdshare.pm
line 4311
<- fetchrow_hashref= ( undef ) [1 items] at
asmcmdshare.pm line 4034
<- finish= ( 1 ) [1 items] at
asmcmdshare.pm line 4055
<-
DESTROY(DBI::st=HASH(0x3003588))= ( ) [0 items] at asmcmdshare.pm line
3293
<-
prepare('
begin
dbms_diskgroup.getfileattr(:fileName, :fileType, :fileSz,
:blkSz);
end;
')= ( DBI::st=HASH(0x30034e0)
) [1 items] at asmcmdbase.pm line 4709
<-
bind_param(':fileName', '+DATA1_NEW/ORA19R/DATAFILE/USERS.268.1202826071')= ( 1
) [1 items] at asmcmdbase.pm line 4716
<-
bind_param_inout(':fileType', SCALAR(0x1c04360), ...)= ( 1 ) [1 items] at
asmcmdbase.pm line 4719
<- bind_param_inout(':fileSz',
SCALAR(0x1c04378), ...)= ( 1 ) [1 items] at asmcmdbase.pm line
4720
<- bind_param_inout(':blkSz', SCALAR(0x1c04390),
...)= ( 1 ) [1 items] at asmcmdbase.pm line 4721
<-
execute= ( 1 ) [1 items] at asmcmdbase.pm line 4724
<-
prepare('
begin
dbms_diskgroup.copy('', '', '',
:src_path, :src_ftyp,
:src_blksz,
:src_fsiz, :connect_iden, :usrname,
:passwd,
:dst_path, 1, :dst_pblksize, :sparse_option, 0,
'',
:dbuniquename);
end;
')= ( DBI::st=HASH(0x3003360) ) [1
items] at asmcmdbase.pm line 5201
<-
DESTROY(DBI::st=HASH(0x3003528))= ( ) [0 items] at asmcmdbase.pm line
5201
<- bind_param(':src_path',
'+DATA1_NEW/ORA19R/DATAFILE/USERS.268.1202826071')= ( 1 ) [1 items] at
asmcmdbase.pm line 5218
<- bind_param(':src_ftyp', 12)=
( 1 ) [1 items] at asmcmdbase.pm line 5219
<-
bind_param(':src_blksz', 8192)= ( 1 ) [1 items] at asmcmdbase.pm line
5220
<- bind_param(':src_fsiz', '640')= ( 1 ) [1 items]
at asmcmdbase.pm line 5221
<-
bind_param(':connect_iden',
'(description=(address_list=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.0.51)(privilege=sysdba)(internal_logon=sysdba)(PORT=1521)))(connect_data=(service_name=+ASM)
(instance_name=+ASM)))')= ( 1 ) [1 items] at asmcmdbase.pm line
5222
<- bind_param(':usrname', 'sys')= ( 1 ) [1 items]
at asmcmdbase.pm line 5223
<- bind_param(':passwd',
'"oracle"')= ( 1 ) [1 items] at asmcmdbase.pm line 5224
<- bind_param(':dst_path', '+DATA1/TEST/users.dbf')= ( 1 ) [1 items] at
asmcmdbase.pm line 5225
<- bind_param(':dst_pblksize',
0)= ( 1 ) [1 items] at asmcmdbase.pm line 5226
<-
bind_param(':sparse_option', '0')= ( 1 ) [1 items] at asmcmdbase.pm line
5227
<- bind_param(':dbuniquename', '')= ( 1 ) [1
items] at asmcmdbase.pm line 5228
copying
+DATA1_NEW/ORA19R/DATAFILE/USERS.268.1202826071 ->
192.168.0.51:+DATA1/TEST/users.dbf
<- execute= ( 1 ) [1
items] at asmcmdbase.pm line 5233
<-
DESTROY(DBI::st=HASH(0xfa02b8))= ( ) [0 items] at asmcmdbase.pm line
5261
<- DESTROY(DBI::db=HASH(0x3002eb0))= ( ) [0 items]
at asmcmdbase.pm line 2952
<-
DESTROY(DBI::db=HASH(0x2a2ea28))= ( ) [0 items] at asmcmdcore line
1503
<- disconnect_all= ( ) [0 items] (not implemented)
at DBI.pm line 761
! <- DESTROY(DBI::dr=HASH(0x2a4e738))= ( )
[0 items] during global destruction
1-3. 타켓에서
파일 확인
[+ASM:grid@tdb01t][/home/grid]$ asmcmd ls -sl
+DATA1/TEST/
Type Redund Striped
Time
Sys Block_Size Blocks Bytes
Space Name
DATAFILE UNPROT COARSE JUN 06
22:00:00 N
8192 641 5251072 8388608 users.dbf
=> +DATA1/ASM/DATAFILE/users.dbf.352.1203113221
ASMCMD [+DATA1/ASM/DATAFILE] > cp
+DATA1/ASM/DATAFILE/users.dbf.352.1203114179
+DATA1/TEST/users.dbf
copying
+DATA1/ASM/DATAFILE/users.dbf.352.1203114179 ->
+DATA1/TEST/users.dbf
--> 제대로 가져온것을 확인!
2. dbms_file_transfer 사용 (db link 사용)
--소스
[ORA19R1:oracle@ol7ora19r1][/home/oracle]$ ss
SQL*Plus:
Release 19.0.0.0.0 - Production on Fri Jun 6 23:02:36 2025
Version
19.27.0.0.0
Copyright (c) 1982, 2024, Oracle. All rights reserved.
Connected to:
Oracle Database 19c Enterprise Edition Release
19.0.0.0.0 - Production
Version 19.27.0.0.0
[2025-06-06:23:02:36][ol7ora19r1]<SYS@ORA19R1> drop directory SOURCE_DUMP;
Directory dropped.
Elapsed:
00:00:00.10
[2025-06-06:23:02:36][ol7ora19r1]<SYS@ORA19R1> create directory SOURCE_DUMP as '+DATA1_NEW/ORA19R/DATAFILE/';
Directory created.
Elapsed:
00:00:00.03
[2025-06-06:23:02:36][ol7ora19r1]<SYS@ORA19R1> grant read,write on directory SOURCE_DUMP to public;
Grant succeeded.
Elapsed: 00:00:00.02
--타켓
[ORCL:oracle@tdb01t][/home/oracle]$ ss
SQL*Plus:
Release 19.0.0.0.0 - Production on Fri Jun 6 23:03:20 2025
Version
19.26.0.0.0
Copyright (c) 1982, 2024, Oracle. All rights reserved.
Connected to:
Oracle Database 19c Enterprise Edition Release
19.0.0.0.0 - Production
Version 19.26.0.0.0
[2025-06-06:23:03:20][tdb01t]<ORCL@SYS> create directory TARGET_DUMP as
'+DATA1/TEST';
[2025-06-06:23:03:20][tdb01t]<ORCL@SYS> grant read,write on directory TARGET_DUMP to
public;
[2025-06-06:23:03:20][tdb01t]<ORCL@SYS> drop public database link SOURCEDB;
Database link dropped.
Elapsed:
00:00:00.02
[2025-06-06:23:03:20][tdb01t]<ORCL@SYS> create public database link SOURCEDB connect to system identified by
oracle using
'(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.0.24)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=ORA19R)))';
Database link created.
Elapsed: 00:00:00.04
--> 타켓에서 소스DB로 붙어
보기
[2025-06-06:23:03:20][tdb01t]<ORCL@SYS> select * from dual@SOURCEDB;
DUM
---
X
1 row selected.
--타켓에서 소스에 있는 파일 복사해오기
--grid user 로 디렉토리 미리
생성
ASMCMD [+DATA1] > mkdir +DATA1/TEST
--DBMS_FILE_TRANSFER.GET_FILE
사용법
BEGIN
DBMS_FILE_TRANSFER.GET_FILE (
source_directory_object IN
VARCHAR2,
source_file_name IN VARCHAR2,
source_database IN
VARCHAR2,
destination_directory_object IN VARCHAR2,
destination_file_name
IN VARCHAR2);
END;
/
--타켓에서 소스에 있는 파일
복사해오기
[2025-06-06:23:03:20][tdb01t]<ORCL@SYS>
set timing
on
BEGIN
dbms_file_transfer.get_file('SOURCE_DUMP',
'USERS.268.1202826071',
'SOURCEDB',
'TARGET_DUMP',
'users.dbf');
END;
/
--가져온 파일
확인
[+ASM:grid@tdb01t][/home/grid]$ asmcmd ls -sl
+DATA1/TEST
Type Redund Striped
Time
Sys Block_Size Blocks Bytes
Space Name
DATAFILE UNPROT COARSE JUN 06
23:00:00 N
8192 641 5251072 8388608 users.dbf
=> +DATA1/ORCL/DATAFILE/GET_FILE.352.1203117337
--> 제대로 가져온것을 확인!