ORA19 ------------------------------------> ora19dw
위치: /home/oracle/pump_ora19 /home/oracle/pump_ora19dw
디렉토리명: datapump_dir ora19dw_dir
테이블 : emp emp
유져: scott jones
테이블스페이스: ts700 ts450
export 할 db의 character set 과 import 할 db의 character set 이 동일해야함
select *
from database_properties
where property_name='NLS_CHARACTERSET';
select *
from database_properties
where property_name='NLS_NCHAR_CHARACTERSET';
mswin949나 ksc5601
💡 19c 이전에 예전 버전의 CHARACTERSET이 mswin949나 ksc5601 등으로 되어있음
select file_name from dba_data_files;
create tablespace ts20000
datafile '/u01/app/oracle/oradata/ORA19/ts20000.dbf' size 20m;
alter session set nls_Date_format='RR/MM/DD';
drop table emp;
drop table dept;
CREATE TABLE DEPT
(DEPTNO number(10),
DNAME VARCHAR2(14),
LOC VARCHAR2(13) )
tablespace ts20000;
INSERT INTO DEPT VALUES (10, 'ACCOUNTING', 'NEW YORK');
INSERT INTO DEPT VALUES (20, 'RESEARCH', 'DALLAS');
INSERT INTO DEPT VALUES (30, 'SALES', 'CHICAGO');
INSERT INTO DEPT VALUES (40, 'OPERATIONS', 'BOSTON');
CREATE TABLE EMP (
EMPNO NUMBER(4) NOT NULL,
ENAME VARCHAR2(10),
JOB VARCHAR2(9),
MGR NUMBER(4) ,
HIREDATE DATE,
SAL NUMBER(7,2),
COMM NUMBER(7,2),
DEPTNO NUMBER(2) )
tablespace ts20000;
INSERT INTO EMP VALUES (7839,'KING','PRESIDENT',NULL,'81-11-17',5000,NULL,10);
INSERT INTO EMP VALUES (7698,'BLAKE','MANAGER',7839,'81-05-01',2850,NULL,30);
INSERT INTO EMP VALUES (7782,'CLARK','MANAGER',7839,'81-05-09',2450,NULL,10);
INSERT INTO EMP VALUES (7566,'JONES','MANAGER',7839,'81-04-01',2975,NULL,20);
INSERT INTO EMP VALUES (7654,'MARTIN','SALESMAN',7698,'81-09-10',1250,1400,30);
INSERT INTO EMP VALUES (7499,'ALLEN','SALESMAN',7698,'81-02-11',1600,300,30);
INSERT INTO EMP VALUES (7844,'TURNER','SALESMAN',7698,'81-08-21',1500,0,30);
INSERT INTO EMP VALUES (7900,'JAMES','CLERK',7698,'81-12-11',950,NULL,30);
INSERT INTO EMP VALUES (7521,'WARD','SALESMAN',7698,'81-02-23',1250,500,30);
INSERT INTO EMP VALUES (7902,'FORD','ANALYST',7566,'81-12-11',3000,NULL,20);
INSERT INTO EMP VALUES (7369,'SMITH','CLERK',7902,'80-12-09',800,NULL,20);
INSERT INTO EMP VALUES (7788,'SCOTT','ANALYST',7566,'82-12-22',3000,NULL,20);
INSERT INTO EMP VALUES (7876,'ADAMS','CLERK',7788,'83-01-15',1100,NULL,20);
INSERT INTO EMP VALUES (7934,'MILLER','CLERK',7782,'82-01-11',1300,NULL,10);
commit;
select table_name, tablespace_name
from user_tables;
alter tablespace ts20000 read only;

ora19에서
expdp directory=datapump_dir dumpfile=ts20000.dmp transport_tablespace=y tablespaces=ts20000
사용자 이름: sys as sysdba
비밀번호:
cp /u01/app/oracle/oradata/ORA19/ts20000.dbf /home/oracle/ts20000.dbf
cp /home/oracle/pump_ora19/ts20000.dmp /home/oracle/pump_ora19dw/ts20000.dmp
SYS @ ora19dw > drop user scott cascade;
사용자가 삭제되었습니다.
SYS @ ora19dw > create user scott identified by tiger;
사용자가 생성되었습니다.
SYS @ ora19dw > grant dba to scott;
impdp directory=ora19dw_dir dumpfile=ts20000.dmp transport_datafiles='/home/oracle/ts20000.dbf'
[oracle@ora19c ~]$ impdp directory=ora19dw_dir dumpfile=ts20000.dmp transport_datafiles='/home/oracle/ts20000.dbf'
Import: Release 19.0.0.0.0 - Production on 금 9월 12 15:22:32 2025
Version 19.3.0.0.0
Copyright (c) 1982, 2019, Oracle and/or its affiliates. All rights reserved.
사용자 이름: sys as sysdba
비밀번호:
.
.
.
"SYS"."SYS_IMPORT_TRANSPORTABLE_01" 작업이 금 9월 12 15:22:40 2025 elapsed 0 00:00:03에서 성공적으로 완료됨
alter tablespace ts20000 read write;
select count(*)
from scott.emp;
이 작업이 테이블스페이스 작업이다 보니 데이터가 많아서 메모리 부족 오류가 발생할 수 있음
UDE-04031: operation generated ORACLE error 4031 ORA-04031: unable to allocate 16 bytes of shared memory ("shared pool","select obj#,type#,ctime,mtim...","SQLA","tmp")
PROD(SYS) > alter system set memory_max_target=1024m scope=spfile;
PROD(SYS) > alter system set memory_target=1024m scope=spfile;
PROD(SYS) > shutdown immediate
PROD(SYS) > startup