jin5011 发表于 2016-11-17 07:55:12

db2将非 Unicode 数据库转换为 Unicode 数据库

将非 Unicode 数据库转换为 Unicode 数据库

在某些情况下,可能需要将现有非 Unicode 数据库转换为 Unicode 数据库。

关于此任务



下列步骤演示了如何将现有非 Unicode 数据库转换为 Unicode 数据库:

开始之前



必须具有足够的可用磁盘空间以从非 Unicode 数据库中导出数据。此外,如果未在复用现有表空间,那么还需要足够的可用磁盘空间来为数据创建新的表空间。

过程




[*]
使用 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 选项为数据库配置参数生成更新命令。
[*]
创建 Unicode 数据库:
   CREATE DATABASE UNIDB COLLATE USING SYSTEM_codepage_territory
其中 UNIDB 是 Unicode 数据库的名称,而 SYSTEM_codepage_territory 是语言感知的整理,它基于整理非 Unicode 数据时使用的权重表。这将确保新 Unicode 数据库中的数据的排序顺序相同。
[*]
编辑 unidb.ddl 脚本:
[*]
将出现的所有数据库名称更改为新的 Unicode 数据库名称:
      CONNECT TO UNIDB
[*]增大表中的字符列的列长度。当字符转换为 Unicode 时,字节数可能增多。建议您将字符列的长度增大到能容纳增加的字节数。
[*]
要保留现有数据库,还必须在 unidb.ddl 文件中更改表空间的文件名规范。否则,可以删除现有数据库并使用相同的表空间文件:
   DROP DATABASE SAMPLE

[*]
通过运行已编辑的 DDL 脚本来重新创建数据库结构:
      db2 -tvf unidb.ddl
[*]
使用 db2move 命令将数据导入到新的 Unicode 数据库中:
      cd <export-dir>
db2move unidb import
其中 <export-dir> 是已导出数据的目录,而 UNIDB 是 Unicode 数据库名称。



父主题: Unicode 字符编码


本文来自于官方文档

http://www-01.ibm.com/support/knowledgecenter/SSEPGG_9.7.0/com.ibm.db2.luw.admin.nls.doc/doc/t0024033.html?lang=zh

 
页: [1]
查看完整版本: db2将非 Unicode 数据库转换为 Unicode 数据库