본문 바로가기
Oracle/이관

[TTS]11g linux to 18c linux migration

by 취미툰 2019. 11. 5.
반응형

이번 테스트는 같은 OS platform에서 11g -> 18c로 Migration하는 방법을 포스팅합니다.

 

사전확인

 

Source DB

▶ nls_characterset이 같은지 확인한다.

select value from nls_database_parameters where parameter='NLS_CHARACTERSET'

VALUE

---------------

KO16MSWIN949

 

▶ compatible을 확인한다. (양쪽다 10.0 이상이어야 한다)

show parameter compatible

 

NAME         TYPE        VALUE

------------ ----------- ------------------------------

compatible   string      11.2.0.0.0

 

블록사이즈를 확인한다.

show parameter db_block_size

 

NAME           TYPE        VALUE  

-------------- ----------- ---------

db_block_size  integer     8192

 

▶ Endian_format을 확인한다.

 

select d.dbid,d.name,tp.platform_id,tp.platform_name,endian_format from v$transportable_platform tp,v$database d

   where tp.platform_name=d.platform_name

 

  DBID NAME      PLATFORM_ID PLATFORM_NAME      ENDIAN_FORMAT

---------- --------- ----------- ------------------ --------------

1681187063               13 Linux x86 64-bit    Little

 

 

Target DB

▶ nls_characterset이 같은지 확인한다.

select value from nls_database_parameters where parameter='NLS_CHARACTERSET'

VALUE         

----------------

KO16MSWIN949

 

▶ compatible을 확인한다. (양쪽다 10.0 이상이어야 한다)

show parameter compatible

 

NAME         TYPE        VALUE

------------ ----------- ------------------------------

compatible   string      18.0.0

 

블록사이즈를 확인한다.

show parameter db_block_size

 

NAME           TYPE        VALUE  

-------------- ----------- ---------

db_block_size  integer     8192

 

▶ Endian_format을 확인한다.

 

select d.dbid,d.name,tp.platform_id,tp.platform_name,endian_format from v$transportable_platform tp,v$database d

   where tp.platform_name=d.platform_name

 

  DBID NAME      PLATFORM_ID PLATFORM_NAME      ENDIAN_FORMAT

---------- --------- ----------- ------------------ --------------

1683620464  13 Linux x86 64-bit Little-

 

TTS가 활용가능한지 체크 후에 다음으로 진행한다.

 

Source DB

 

테스트용 테이블 생성

sql> create tablespace tts

 datafile '/app/oracle/oradata/ysbae/tts.dbf' size 1G;

Tablespace created.

 

유저 생성

sql> create user tts identified by tts default tablespace tts quota unlimited on tts;

 

▶ tts 유저에 접속권한 부여

sql> grant connect,resource to tts;

Grant succeeded.

 

테스트 테이블 및 인덱스 생성

sql> conn tts/tts

 

sql> create table tts_1 as

select l.*, o.*

from

(select dbms_random.string('l',10) from dual) o,

(select level as lvl

from dual connect by level <= 1000000) l ;

Table created.

 

sql> select count(*) from tts_1;

 

 COUNT(*)

----------

   1000000

 

sql> create index tts_1_lvl on tts_1(lvl);

 

Index created.

 

sql> select segment_name,segment_type from user_segments;

 

SEGMENT_NAME      SEGMENT_TYPE

----------------- ------------------

TTS_1             TABLE

TTS_1_LVL         INDEX

 

-테스트용 테이블과 인덱스가 정상생성된 것을 확인할 수 있다.

 

▶ tts 가능여부 체크(sys 계정에서 진행)

sql> exec dbms_tts.transport_set_check('TTS',true);

 

PL/SQL procedure successfully completed.

 

sql> select * from transport_Set_violations

 

no rows selected

- no rows selected가 뜨면 위반사항이 없다는 뜻이고 진행하면 된다.

 

▶ expdp/impdp위한 디렉토리 생성

$mkdir /home/oracle/tts

 

sql> create or replace directory trans_dir as  '/home/oracle/tts'

Directory created.

 

sql> grant read,write on directory trans_dir to system;

Grant succeeded.

 

옮길 Tablespaceread only로 변경

sql> alter tablespace tts read only;

 

▶ expdpobject 정보의 메타데이터 추출

$ expdp system/oracle dumpfile=trans_dir:trans.dmp transport_tablespaces=tts;

 

Export: Release 11.2.0.1.0 - Production on Tue Oct 29 10:03:35 2019

 

Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.

 

...생략

 

- 이로써 Source DB의 준비는 끝났으며 Target DB 설정 후 TTS를 진행한다.

 

Target DB

 

▶ DB 유저 생성 및 디렉토리 생성

sql> create or replace directory trans_dir as '/home/oracle/tts';

Directory created.

 

Sql>grant read,write on directory trans_dir to system;

 

Sql> create user tts identified by tts default tablespace users;

 

User created.     

 

sql> grant connect,resource to tts;

 

 

▶ TTS에 필요한 dbf파일과 dmp파일을 Target DB로 전송

-파일전송 툴을 사용하여 dmp파일과 dbf파일을 전송한다.

 

▶dbf [datafile 경로] 밑으로옮겨준다

 

메타데이터 dmp파일을 impdp를사용하여 넣어준다

$impdp system/oracle dumpfile=trans_dir:trans.dmp transport_datafiles=’ /u01/app/oracle/oradata/tts.dbf

 

Import: Release 18.0.0.0.0 - Production on Tue Oct 29 10:48:15 2019

Version 18.3.0.0.0

 

Copyright (c) 1982, 2018, Oracle and/or its affiliates.  All rights reserved.

생략

 

데이터가 Migration되었는지 확인

 

SQL> conn tts/tts

Connected.

SQL> select * from tab;

 

TNAME                          TABTYPE  CLUSTERID

------------------------------ ------- ----------

TTS_1                          TABLE

 

SQL> select count(*) from tts_1;

 

  COUNT(*)

----------

   1000000

 

SQL> select segment_name,segment_type from user_segments;

 

SEGMENT_NAME SEGMENT_TYPE 

---------------------------

TTS_1         TABLE

TTS_1_LVL     INDEX

 

 

SQL> select * from tab;

 

TNAME                          TABTYPE  CLUSTERID

------------------------------ ------- ----------

TTS_1                          TABLE

 

유저의 default tablespace 확인 및 read write mode 변경

 

SQL> select TABLESPACE_NAME,STATUS from dba_tablespaces

   where tablespace_name='TTS';

 

TABLESPACE_NAME   STATUS     

------------------------------

TTS               READ ONLY

 

 

SQL> alter tablespace tts read write ;

 

Tablespace altered.

 

SQL> select tablespace_name,status from dba_tablespaces

  2  where tablespace_name='TTS';

 

TABLESPACE_NAME   STATUS     

------------------------------

TTS               ONLINE

 

SQL> alter user tts identified by tts default tablespace tts;

 

User altered.

 

SQL> select username,default_tablespace from dba_users where username='TTS';

 

USERNAME   DEFAULT_TABLESPACE 

-------------------------------

TTS        TTS

 

이상입니다.

반응형

'Oracle > 이관' 카테고리의 다른 글

Redo log,Datafile 경로 변경  (0) 2020.10.27
MSSQL to Oracle DB Link  (2) 2020.09.14
[TTS]11g file system to 19c ASM Migration_2  (0) 2020.03.05
[TTS]11g linux to 11g window migration  (0) 2019.11.05
[TTS]11g file system to 19c ASM Migration  (0) 2019.11.05

댓글