본문 바로가기
Oracle/이관

[TTS]11g linux to 11g window migration

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

이번에는 이 기종인 linux에서 window로 migration을 하는 방법을 포스팅하려고 한다.

 

제약사항은 이전에 있던 TTS글에서 설명했으므로 생략하고 바로 테스트 시나리오로 넘어가도록 하겠다.

 

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      11.2.0.0.4

 

블록사이즈를 확인한다.

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

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

4155286339              12 Microsoft Windows x86 64-bit Little-

 

 

확인하고 이상없이 동일하다면 다음으로 넘어간다.

 

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 test/test 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.

 

Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production

With the Partitioning, OLAP, Data Mining and Real Application Testing options

...생략

 

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

 

Target DB

 

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

sql> create or replace directory trans_dir as 'C:\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=C:\app\Administrator\oradata\ysbae2\tts.dbf

 

Import: Release 11.2.0.4.0 - Production on Tue Oct 29 10:15:08 2019

 

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

 

UDI-28002: operation generated ORACLE error 28002

ORA-28002: the password will expire within 7 days

 

Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit

Production

With the Partitioning, OLAP, Data Mining and Real Application Testing options

Master table "SYSTEM"."SYS_IMPORT_TRANSPORTABLE_01" successfully loaded/unloaded

 

Source time zone version is 11 and target time zone version is 14.

Starting "SYSTEM"."SYS_IMPORT_TRANSPORTABLE_01":  system/******** dumpfile=trans

_dir:trans.dmp transport_datafiles=C:\app\Administrator\oradata\ysbae2\tts.dbf

Processing object type TRANSPORTABLE_EXPORT/PLUGTS_BLK

Processing object type TRANSPORTABLE_EXPORT/TABLE

Processing object type TRANSPORTABLE_EXPORT/INDEX

Processing object type TRANSPORTABLE_EXPORT/INDEX_STATISTICS

Processing object type TRANSPORTABLE_EXPORT/POST_INSTANCE/PLUGTS_BLK

Job "SYSTEM"."SYS_IMPORT_TRANSPORTABLE_01" successfully completed at Tue Oct 29

10:15:12 2019 elapsed 0 00:00:03

 

데이터가 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

 

 

이 기종이긴 하지만 endian format이 동일하여 convert 작업 없이 dbf 파일을 그대로 사용할 수 있었다.

 

반응형

'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 18c linux migration  (0) 2019.11.05
[TTS]11g file system to 19c ASM Migration  (0) 2019.11.05

댓글