유니코드가 아닌 데이터베이스에서 유니코드로 변환

기존의 유니코드가 아닌 데이터베이스에서 유니코드 데이터베이스로 변환해야 하는 경우가 있습니다.

시작하기 전에

비유니코드 데이터베이스에서 데이터를 익스포트하려면 충분한 사용 가능 디스크 공간이 있어야 합니다. 또한 기존 테이블스페이스를 재사용하지 않는 경우에도 데이터의 새 테이블스페이스를 작성하기 위해 충분한 사용 가능 디스크 공간이 필요합니다.

프로시저

기존 비유니코드 데이터베이스에서 유니코드 데이터베이스로 변환하려면 다음을 수행하십시오.

  1. db2move 명령을 사용하여 데이터를 내보내십시오.
       cd export-dir
       db2move sample export
    여기서, export-dir은 데이터를 익스포트할 디렉토리이고 SAMPLE은 기존 데이터베이스 이름입니다.
  2. db2look 명령을 사용하여 기존 데이터베이스에 대한 DDL 스크립트를 생성하십시오.
       db2look -d sample -e -o unidb.ddl -l -x -f
    여기서, SAMPLE은 기존 데이터베이스 이름이고 unidb.ddl은 생성된 DDL 스크립트의 파일 이름입니다. -l 옵션은 사용자 정의 테이블스페이스, 데이터베이스 파티션 그룹 및 버퍼 풀의 DDL을 생성하고, -x 옵션은 권한 부여 DDL을 생성하며, -f 옵션은 데이터베이스 구성 매개변수의 갱신 명령을 생성합니다.
  3. 다음과 같이 유니코드 데이터베이스를 작성하십시오.
       CREATE DATABASE UNIDB COLLATE USING SYSTEM_codepage_territory
    여기서 UNIDB 는 유니코드 데이터베이스의 이름이고 SYSTEM_codepage_territory 는 비유니코드 데이터를 조합하는 데 사용되는 가중치 테이블을 기반으로 하는 언어 인식 조합입니다. 이는 새 유니코드 데이터베이스의 데이터가 동일한 순서로 정렬되도록 합니다.
  4. unidb.ddl 스크립트를 편집하십시오.
    1. 다음과 같이 데이터베이스 이름의 모든 어커런스를 새 유니코드 데이터베이스 이름으로 변경하십시오.
         CONNECT TO UNIDB
    2. 테이블에서 문자 컬럼의 컬럼 길이를 늘리십시오.
      문자가 유니코드로 변환되면 바이트 수가 확장될 수 있습니다. 이러한 확장을 상쇄시키기 위해 문자 컬럼의 길이를 늘리는 것이 권장됩니다.
    3. 기존 데이터베이스를 보존하려면 unidb.ddl 파일의 테이블스페이스에 대한 파일 이름 스펙도 변경해야 합니다. 그렇지 않으면 기존 데이터베이스를 삭제(drop)하고 동일한 테이블스페이스 파일을 사용할 수 있습니다.
         DROP DATABASE SAMPLE
  5. 다음과 같이 편집한 DDL 스크립트를 실행하여 데이터베이스 구조를 작성하십시오.
       db2 -tvf unidb.ddl
  6. db2move 명령을 사용하여 새 유니코드 데이터베이스로 데이터를 가져오십시오.
       cd export-dir
       db2move unidb import 
    여기서, export-dir은 데이터를 익스포트한 디렉토리이고 UNIDB는 유니코드 데이터베이스 이름입니다.

다음에 수행할 작업

사전 업그레이드 태스크에서 이 주제로 이동한 경우 XML Extender에서 pureXML로 마이그레이션으로 리턴하십시오.