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

阅读更多

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

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

关于此任务

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

开始之前

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

过程

  1. 使用 db2move 命令导出数据:
          cd 
       db2move sample export
    其中  是要将数据导出至的目录,而 SAMPLE 是现有数据库名称。
  2. 使用 db2look 命令为现有数据库生成 DDL 脚本:
          db2look -d sample -e -o unidb.ddl -l -x -f
    其中 SAMPLE 是现有数据库名称,而 unidb.ddl 是生成的 DDL 脚本的文件名。-l 选项为用户定义的表空间、数据库分区组和缓冲池生成 DDL,-x 选项生成授权 DDL,而 -f 选项为数据库配置参数生成更新命令。
  3. 创建 Unicode 数据库:
       CREATE DATABASE UNIDB COLLATE USING SYSTEM_codepage_territory
    其中 UNIDB 是 Unicode 数据库的名称,而 SYSTEM_codepage_territory 是语言感知的整理,它基于整理非 Unicode 数据时使用的权重表。这将确保新 Unicode 数据库中的数据的排序顺序相同。
  4. 编辑 unidb.ddl 脚本:
    1. 将出现的所有数据库名称更改为新的 Unicode 数据库名称:
            CONNECT TO UNIDB
    2. 增大表中的字符列的列长度。当字符转换为 Unicode 时,字节数可能增多。建议您将字符列的长度增大到能容纳增加的字节数。
    3. 要保留现有数据库,还必须在 unidb.ddl 文件中更改表空间的文件名规范。否则,可以删除现有数据库并使用相同的表空间文件:
         DROP DATABASE SAMPLE
  5. 通过运行已编辑的 DDL 脚本来重新创建数据库结构:
          db2 -tvf unidb.ddl
  6. 使用 db2move 命令将数据导入到新的 Unicode 数据库中:
          cd 
          db2move unidb import
    其中  是已导出数据的目录,而 UNIDB 是 Unicode 数据库名称。

你可能感兴趣的:(db2,Unicode,db2move,db2look)