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