注册
DM8 GBK字符集实例转换为UTF-8实例的完整数据迁移验证
培训园地/ 文章详情 /

DM8 GBK字符集实例转换为UTF-8实例的完整数据迁移验证

momo 2025/12/11 416 2 0

本文档详细记录了从GBK字符集数据库迁移至UTF-8字符集数据库的全过程,包括环境准备、数据导出、数据导入及验证步骤,确保数据完整性与一致性。

一、字符集迁移改造的关键注意事项

  1. 前期评估阶段
  • 数据兼容性检查:确认源库中是否包含GBK不支持的字符(如生僻字、特殊符号)
  • 存储空间评估:UTF-8存储中文字符通常比GBK多50%空间,需重新评估表空间大小
  • 应用兼容性:检查应用程序是否对字符编码有硬编码依赖
  1. 迁移准备阶段
  • 备份完整性:确保导出前对GBK数据库进行完整备份(如上文的dexp操作)

  • 环境一致性:
    (1).在目标库创建相同的表空间结构
    (2).重建相同的用户和权限体系
    (3).保持表结构定义完全一致

  • 工具版本:确保导入导出工具(dimp/dexp)版本兼容

  1. 迁移执行阶段
  • 字符集转换声明:在导入时需正确处理编码转换(如上文dimp显示的"本地编码:PG_UTF8, 导入文件编码:PG_GB18030")
  • 错误处理机制:
    (1). 使用IGNORE_INIT_PARA=1忽略初始化参数差异
    (2). 使用TABLE_EXISTS_ACTION=REPLACE处理表已存在的情况
    (3). 监控导入日志中的编码警告信息
  • 数据验证:
    (1).记录数对比(如上文验证count(*)均为20)
    (2).抽样数据内容对比(如ID>11的数据记录)
    (3).中文数据乱码检查
  1. 迁移后验证阶段
  • 结构验证:检查表结构、索引、约束是否完整迁移
  • 数据准确性:特别验证中文字符的完整性和正确性
  • 性能基准:建立新的性能基准,UTF-8可能影响某些字符串操作的性能
  • 应用测试:确保所有应用程序能正常读写新字符集数据
  1. 特殊场景处理
  • 大字段数据:TEXT、CLOB等字段需重点验证
  • 存储过程/函数:包含字符串处理的程序需重新测试
  • 排序和比较:验证ORDER BY、LIKE等操作的结果是否符合预期
  • 索引使用:字符集改变可能影响索引效率和选择

二、最佳实践建议

  1. 测试环境先行:在生产迁移前,在测试环境完整演练迁移流程
  2. 回滚方案:准备完整的回滚方案,包括数据回退和应用回退
  3. 变更窗口:选择业务低峰期执行迁移,减少对业务的影响
  4. 监控机制:迁移后一段时间内加强监控,特别关注字符相关异常
  5. 文档更新:更新所有相关文档,注明数据库字符集变更情况
  6. 团队培训:确保开发团队了解UTF-8字符集的特性和最佳实践

三、以下是主体操作步骤

  1. 创建GBK字符集数据库的表空间
SQL> CREATE TABLESPACE DEVDEMO DATAFILE '/data/dmdata/DMDEV/DEVDEMO01.DBF' SIZE 128 AUTOEXTEND ON NEXT 20 MAXSIZE 10240;
操作已执行
已用时间: 109.688(毫秒). 执行号:67502.
SQL> CREATE TABLESPACE DEVIDX DATAFILE '/data/dmdata/DMDEV/EXAMDB/DEVIDX.DBF' SIZE 128 AUTOEXTEND ON NEXT 20 MAXSIZE 10240;
操作已执行
已用时间: 34.250(毫秒). 执行号:67503.

  1. 验证GBK环境下的表空间创建情况
SQL> SELECT
    RPAD(TABLESPACE_NAME, 15, ' ') AS "表空间",
      SUBSTR(FILE_NAME, 1, 50) AS "文件路径",
    LPAD(STATUS, 10, ' ') AS "状态",
    LPAD(ONLINE_STATUS, 10, ' ') AS "在线状态",
    LPAD(ROUND(BYTES/1024/1024, 2)::VARCHAR || ' MB', 12, ' ') AS "当前大小",
    CASE
        WHEN AUTOEXTENSIBLE = 'YES' THEN LPAD(ROUND(MAXBYTES/1024/1024/1024, 2)::VARCHAR || ' GB', 10, ' ')
        ELSE 'N/A       '
    END AS "最大大小",
     LPAD(AUTOEXTENSIBLE, 5, ' ') AS "自动扩展"
FROM DBA_DATA_FILES
ORDER BY TABLESPACE_NAME, FILE_ID;

行号     表空间       文件路径                         状态     在线状态 当前大小 最大大小 自动扩展
---------- --------------- ------------------------------------ ---------- ------------ ------------ ------------ ------------
1          DEVDEMO         /data/dmdata/DMDEV/DEVDEMO01.DBF      AVAILABLE     ONLINE         128 MB      10 GB     YES
2          DEVIDX          /data/dmdata/DMDEV/EXAMDB/DEVIDX.DBF  AVAILABLE     ONLINE         128 MB      10 GB     YES
3          MAIN            /data/dmdata/DMDEV/MAIN.DBF           AVAILABLE     ONLINE         128 MB   65536 GB     YES
4          ROLL            /data/dmdata/DMDEV/ROLL.DBF           AVAILABLE     ONLINE         128 MB   65536 GB     YES
5          SYSTEM          /data/dmdata/DMDEV/SYSTEM.DBF         AVAILABLE     ONLINE         276 MB   65536 GB     YES
6          TEMP            /data/dmdata/DMDEV/TEMP.DBF           AVAILABLE     ONLINE          74 MB   65536 GB     YES

6 rows got

3.在GBK环境中创建模拟用户

SQL> CREATE USER DEVDEMO  IDENTIFIED BY "xxxxxxxx" DEFAULT TABLESPACE DEVDEMO  DEFAULT INDEX TABLESPACE DEVIDX;
操作已执行
已用时间: 20.400(毫秒). 执行号:67505.
  1. 授予模拟用户基本操作权限
SQL> GRANT RESOURCE, VTI TO DEVDEMO;
操作已执行
已用时间: 9.608(毫秒). 执行号:67506.
SQL> GRANT RESOURCE, VTI TO DEVDEMO;
操作已执行
已用时间: 4.618(毫秒). 执行号:67507.
  1. 创建模拟用户的数据表
SQL> CREATE TABLE DEVDEMO.DMDEV_DEMO (
    PRODUCE_ORG_ID INT NOT NULL,
    ID INT,
    NAME VARCHAR(50) NOT NULL,
2   3   4   5       AGE INT,
    EMAIL VARCHAR(100),
    CREATE_TIME DATETIME DEFAULT SYSDATE,
6   7   8       STATUS CHAR(1) DEFAULT 'A',
    SALARY DECIMAL(10,2),
    REMARK TEXT,
    CONSTRAINT PK_DMDEV_DEMO PRIMARY KEY (PRODUCE_ORG_ID)
        USING INDEX TABLESPACE DEVIDX
9   10  11  12  13  ) STORAGE(ON DEVDEMO, CLUSTERBTR);
操作已执行
已用时间: 103.040(毫秒). 执行号:67508.
SQL> CREATE INDEX IDX_DMDEV_DEMO_NAME ON DEVDEMO.DMDEV_DEMO(NAME) TABLESPACE DEVIDX;
操作已执行
已用时间: 60.135(毫秒). 执行号:67509.
  1. 查看表结构以用于恢复验证
SQL> DESC DEVDEMO.DMDEV_DEMO;

行号     NAME           TYPE$        NULLABLE
---------- -------------- ------------ --------
1          PRODUCE_ORG_ID INTEGER      N
2          ID             INTEGER      Y
3          NAME           VARCHAR(50)  N
4          AGE            INTEGER      Y
5          EMAIL          VARCHAR(100) Y
6          CREATE_TIME    DATETIME(6)  Y
7          STATUS         CHAR(1)      Y
8          SALARY         DEC(10, 2)   Y
9          REMARK         TEXT         Y

9 rows got

已用时间: 51.985(毫秒). 执行号:67510.

7.查看索引情况以用于恢复对比验证

SQL> SELECT INDEX_NAME, TABLE_NAME, UNIQUENESS
FROM ALL_INDEXES
WHERE TABLE_NAME = 'DMDEV_DEMO' AND OWNER = 'DEVDEMO';

行号     INDEX_NAME          TABLE_NAME UNIQUENESS
---------- ------------------- ---------- ----------
1          IDX_DMDEV_DEMO_NAME DMDEV_DEMO NONUNIQUE
2          INDEX33555472       DMDEV_DEMO UNIQUE
3          INDEX33555471       DMDEV_DEMO NONUNIQUE

已用时间: 399.753(毫秒). 执行号:67511.
  1. 向GBK数据库插入测试数据
SQL> INSERT INTO DEVDEMO.DMDEV_DEMO (PRODUCE_ORG_ID, ID, NAME, AGE, EMAIL, STATUS, SALARY, REMARK) VALUES
(1001, 1, '张三', 28, 'zhangsan@demo.com', 'A', 9500.00, '研发部工程师'),
2   3   (1002, 2, '李四', 32, 'lisi@demo.com', 'A', 12500.50, '高级产品经理'),
(1003, 3, '王五', 26, 'wangwu@demo.com', 'I', 8800.00, '测试工程师,已离职'),
4   5   (1004, 4, '赵六', 35, 'zhaoliu@demo.com', 'A', 18000.00, '架构师'),
6   (1005, 5, '钱七', 29, 'qianqi@demo.com', 'A', 10200.75, '前端开发'),
7   (1006, 6, '孙八', 31, 'sunba@demo.com', 'A', 11000.00, '后端开发'),
8   (1007, 7, '周九', 27, 'zhoujiu@demo.com', 'A', 9300.25, '运维工程师'),
(1008, 8, '吴十', 33, 'wushi@demo.com', 'A', 13500.00, '数据库管理员'),
9   10  (1009, 9, '郑一', 30, 'zhengyi@demo.com', 'I', 9800.00, '原UI设计师'),
11  (1010, 10, '冯二', 25, 'fenger@demo.com', 'A', 8500.00, '实习生转正'),
12  (1011, 11, '陈三', 34, 'chensan@demo.com', 'A', 15000.00, '技术经理'),
13  (1012, 12, '褚四', 28, 'chusi@demo.com', 'A', 10500.00, 'Java开发'),
14  (1013, 13, '卫五', 29, 'weiwu@demo.com', 'A', 10800.50, 'Python工程师'),
15  (1014, 14, '蒋六', 36, 'jiangliu@demo.com', 'A', 19000.00, '首席技术官'),
(1015, 15, '沈七', 27, 'shenqi@demo.com', 'A', 9200.00, '初级开发'),
16  17  (1016, 16, '韩八', 32, 'hanba@demo.com', 'A', 12000.00, '全栈工程师'),
(1017, 17, '杨九', 30, 'yangjiu@demo.com', 'I', 10000.00, '已调岗'),
(1018, 18, '朱十', 26, 'zhushi@demo.com', 'A', 8900.75, '大数据开发'),
18  19  20  (1019, 19, '秦一', 31, 'qinyi@demo.com', 'A', 11500.00, '安全工程师'),
21  (1020, 20, '尤二', 28, 'youer@demo.com', 'A', 9700.25, '算法工程师');
影响行数 20

9.确认当前数据库的字符集

SQL> SELECT SF_GET_UNICODE_FLAG() AS UNICODE_FLAG;

行号     UNICODE_FLAG
---------- ------------
1          0

已用时间: 5.251(毫秒). 执行号:67526.
0表示字符集为GBK
  1. 随机抽查GBK数据表的数据
SQL> select * from DEVDEMO.DMDEV_DEMO where id>11;

行号     PRODUCE_ORG_ID ID          NAME   AGE         EMAIL             CREATE_TIME                STATUS SALARY  REMARK
---------- -------------- ----------- ------ ----------- ----------------- -------------------------- ------ ------- ---------------
1          1012           12          褚四 28          chusi@demo.com    2025-12-04 16:06:25.000000 A      10500   Java开发
2          1013           13          卫五 29          weiwu@demo.com    2025-12-04 16:06:25.000000 A      10800.5 Python工程师
3          1014           14          蒋六 36          jiangliu@demo.com 2025-12-04 16:06:25.000000 A      19000   首席技术官
4          1015           15          沈七 27          shenqi@demo.com   2025-12-04 16:06:25.000000 A      9200    初级开发
5          1016           16          韩八 32          hanba@demo.com    2025-12-04 16:06:25.000000 A      12000   全栈工程师
6          1017           17          杨九 30          yangjiu@demo.com  2025-12-04 16:06:25.000000 I      10000   已调岗
7          1018           18          朱十 26          zhushi@demo.com   2025-12-04 16:06:25.000000 A      8900.75 大数据开发
8          1019           19          秦一 31          qinyi@demo.com    2025-12-04 16:06:25.000000 A      11500   安全工程师
9          1020           20          尤二 28          youer@demo.com    2025-12-04 16:06:25.000000 A      9700.25 算法工程师

SQL> select count(*) from DEVDEMO.DMDEV_DEMO;

行号     COUNT(*)
---------- --------------------
1          20

已用时间: 4.518(毫秒). 执行号:802.
  1. 查看当前实例的表空间创建语句
SELECT 
    'CREATE TABLESPACE ' || t.NAME || 
    ' DATAFILE ''' || d.PATH || ''' SIZE ' || 
    CAST(ROUND(CAST(d.TOTAL_SIZE AS DECIMAL(38,0)) * d.PAGE_SIZE / 1024 / 1024) AS BIGINT) ||
    CASE 
        WHEN d.AUTO_EXTEND = 1 THEN 
            ' AUTOEXTEND ON NEXT ' || 
            CAST(ROUND(CAST(d.NEXT_SIZE AS DECIMAL(38,0)) * d.PAGE_SIZE / 1024 / 1024) AS BIGINT) ||
            CASE 
                WHEN d.MAX_SIZE > 0 THEN 
                    ' MAXSIZE ' || CAST(ROUND(CAST(d.MAX_SIZE AS DECIMAL(38,0)) * d.PAGE_SIZE / 1024 / 1024) AS BIGINT)
                ELSE ''
            END
        ELSE ''
    END || ';' AS CREATE_TABLESPACE_SQL
FROM 
    V$TABLESPACE t
JOIN 
    (SELECT *, ROW_NUMBER() OVER (PARTITION BY GROUP_ID ORDER BY ID) AS rn FROM V$DATAFILE) d 
    ON t.ID = d.GROUP_ID AND d.rn = 1
WHERE 
    t.NAME NOT IN ('SYSTEM', 'ROLL', 'TEMP', 'MAIN')
ORDER BY 
    t.NAME;

行号     CREATE_TABLESPACE_SQL
---------- -------------------------------------------------------------------------------------------------------------------
1          CREATE TABLESPACE DEVDEMO DATAFILE '/data/dmdata/DMDEV/DEVDEMO01.DBF' SIZE 128 AUTOEXTEND ON NEXT 1 MAXSIZE 320;
2          CREATE TABLESPACE DEVIDX DATAFILE '/data/dmdata/DMDEV/EXAMDB/DEVIDX.DBF' SIZE 128 AUTOEXTEND ON NEXT 1 MAXSIZE 320;
  1. 导出GBK数据以用于恢复
[root@192.168.1.1 ~]# mkdir -p /data/backup/dexp
[root@192.168.1.1 ~]# chown dmdba:dinstall /data/backup/ -R
[dmdba@192.168.1.1 ~]$ cd /data/dm8/bin
[dmdba@192.168.1.1 bin]$ ./dexp USERID=SYSDBA/'"*************"'@192.168.1.1:5237 DIRECTORY=/dm/backup/dexp FILE=DEVDEMO.dmp OWNER=DEVDEMO LOG=DEVDEMO.log
dexp V8
version: 03134284368-20250430-272000-20149 Pack1
start dexp:
SYSDBA/******@192.168.1.1:5237 DIRECTORY=/dm/backup/dexp FILE=DEVDEMO.dmp OWNER=DEVDEMO LOG=DEVDEMO.log
导出对象类型:USER
表DEVDEMO.DMDEV_DEMO导出结束,共导出 20 行数据, 大小 1.657 KB
共导出 1 个TABLE
模式[DEVDEMO]导出结束.....
成功导出 第1 个SCHEMA :DEVDEMO
共导出 1 个SCHEMA
整个导出过程共花费  230.598 s
  1. 查看备份数据情况
[root@192.168.1.1 ~]# cd /dm/backup/dexp
[root@192.168.1.1 dexp]# ll
总用量 32
-rw-r--r-- 1 dmdba dinstall 7182 12月  4 17:26 DEVDEMO.dmp
-rw-r--r-- 1 dmdba dinstall  805 12月  4 17:26 DEVDEMO.log

  1. 在UTF-8库中验证字符集
[dmdba@192 bin]$ ./disql SYSDBA/'"*************"'@192.168.1.2:5239

SQL>SELECT SF_GET_UNICODE_FLAG() AS UNICODE_FLAG;

行号     UNICODE_FLAG
---------- ------------
1          1

已用时间: 4.103(毫秒). 执行号:66701.
1表示字符集是UTF-8
  1. 在UTF-8库中创建相同的表空间
SQL> CREATE TABLESPACE DEVDEMO DATAFILE '/data/dmdb/DMTE/DEVDEMO01.DBF' SIZE 128 AUTOEXTEND ON NEXT 20 MAXSIZE 10240;
操作已执行
已用时间: 297.262(毫秒). 执行号:502.
SQL> CREATE TABLESPACE DEVIDX DATAFILE '/data/dmdb/DMTE/DEVIDX.DBF' SIZE 128 AUTOEXTEND ON NEXT 20 MAXSIZE 10240;
操作已执行
已用时间: 111.308(毫秒). 执行号:503.
  1. 验证表空间创建情况
SQL> SELECT
    RPAD(TABLESPACE_NAME, 15, ' ') AS "表空间",
      SUBSTR(FILE_NAME, 1, 50) AS "文件路径",
    LPAD(STATUS, 10, ' ') AS "状态",
    LPAD(ONLINE_STATUS, 10, ' ') AS "在线状态",
    LPAD(ROUND(BYTES/1024/1024, 2)::VARCHAR || ' MB', 12, ' ') AS "当前大小",
    CASE
        WHEN AUTOEXTENSIBLE = 'YES' THEN LPAD(ROUND(MAXBYTES/1024/1024/1024, 2)::VARCHAR || ' GB', 10, ' ')
        ELSE 'N/A       '
    END AS "最大大小",
     LPAD(AUTOEXTENSIBLE, 5, ' ') AS "自动扩展"
FROM DBA_DATA_FILES
ORDER BY TABLESPACE_NAME, FILE_ID;

行号     表空间       文件路径                  状态     在线状态 当前大小 最大大小 自动扩展
---------- --------------- ----------------------------- ---------- ------------ ------------ ------------ ------------
1          DEVDEMO         /data/dmdb/DMTE/DEVDEMO01.DBF  AVAILABLE     ONLINE         128 MB      10 GB     YES
2          DEVIDX          /data/dmdb/DMTE/DEVIDX.DBF     AVAILABLE     ONLINE         128 MB      10 GB     YES
3          MAIN            /data/dmdb/DMTE/MAIN.DBF       AVAILABLE     ONLINE         128 MB   65536 GB     YES
4          ROLL            /data/dmdb/DMTE/ROLL.DBF       AVAILABLE     ONLINE         128 MB   65536 GB     YES
5          SYSTEM          /data/dmdb/DMTE/SYSTEM.DBF     AVAILABLE     ONLINE         276 MB   65536 GB     YES
6          TEMP            /data/dmdb/DMTE/TEMP.DBF       AVAILABLE     ONLINE          74 MB   65536 GB     YES

  1. 恢复用户及其权限
SQL>  CREATE USER DEVDEMO  IDENTIFIED BY "xxxxxxxxx" DEFAULT TABLESPACE DEVDEMO  DEFAULT INDEX TABLESPACE DEVIDX;
操作已执行
已用时间: 17.100(毫秒). 执行号:701.
SQL>  GRANT RESOURCE, VTI TO DEVDEMO;
操作已执行
已用时间: 5.500(毫秒). 执行号:702.
SQL> GRANT RESOURCE, VTI TO DEVDEMO;
操作已执行
已用时间: 5.886(毫秒). 执行号:703.
SQL>

  1. 使用dimp工具恢复数据
start dimp:
SYSDBA/******@192.168.1.2:5239 DIRECTORY=/dm/backup/dexp FILE=DEVDEMO.dmp REMAP_SCHEMA=DEVDEMO:DEVDEMO IGNORE_INIT_PARA=1 TABLE_EXISTS_ACTION=REPLACE LOG=remap_import.log


本地编码:PG_UTF8, 导入文件编码:PG_GB18030

[0/8]导入 GLOBAL 对象……

[0/8]导入 USER 对象 : DEVDEMO


[警告]Error Code:-2124,第1 行附近出现错误:
对象[DEVDEMO]已存在

[0/8]导入 SYS_PRIV 对象……

[1/8]导入 SR_PRIV 对象……

[2/8]导入 SR_PRIV 对象……

[3/8]导入 SR_PRIV 对象……

[4/8]GLOBAL 对象导入完毕……

[4/8]开始导入模式[DEVDEMO]......

[4/8]导入模式中的 NECESSARY GLOBAL 对象……

[4/8]模式中的 NECESSARY GLOBAL 对象导入完成……

----- [2025-12-04 21:43:29]导入表:DEVDEMO.DMDEV_DEMO -----

[4/8][表: DMDEV_DEMO]创建表 DEVDEMO.DMDEV_DEMO ...

[5/8][表: DMDEV_DEMO]创建表已完成,导入表 DMDEV_DEMO 的数据中...

表 DEVDEMO.DMDEV_DEMO 的数据导入完成,共导入数据:20 行, 大小 1.657 KB

[5/8][表: DMDEV_DEMO]导入表的索引:

[5/8][表: DMDEV_DEMO]IDX_DMDEV_DEMO_NAME

[6/8][表: DMDEV_DEMO]导入成功……

[6/8]导入模式中的 GLOBAL 对象……

[6/8]模式中的 GLOBAL 对象导入完成……

[6/8]模式[DEVDEMO]导入完成......

[7/8][表: DMDEV_DEMO]导入成功……

[7/8]整个导入过程共花费    9.117 s


成功终止导入, 出现1个警告
该告警是因为用户已存在,可以忽略
  1. 验证索引恢复情况
SQL> SELECT INDEX_NAME, TABLE_NAME, UNIQUENESS
FROM ALL_INDEXES
WHERE TABLE_NAME = 'DMDEV_DEMO' AND OWNER = 'DEVDEMO';2   3

行号     INDEX_NAME          TABLE_NAME UNIQUENESS
---------- ------------------- ---------- ----------
1          IDX_DMDEV_DEMO_NAME DMDEV_DEMO NONUNIQUE
2          INDEX33555472       DMDEV_DEMO UNIQUE
3          INDEX33555471       DMDEV_DEMO NONUNIQUE
和恢复之前一样
  1. 验证表结构恢复情况
SQL> DESC DEVDEMO.DMDEV_DEMO;

行号     NAME           TYPE$        NULLABLE
---------- -------------- ------------ --------
1          PRODUCE_ORG_ID INTEGER      N
2          ID             INTEGER      Y
3          NAME           VARCHAR(50)  N
4          AGE            INTEGER      Y
5          EMAIL          VARCHAR(100) Y
6          CREATE_TIME    DATETIME(6)  Y
7          STATUS         CHAR(1)      Y
8          SALARY         DEC(10, 2)   Y
9          REMARK         TEXT         Y

9 rows got

已用时间: 143.510(毫秒). 执行号:1404.
和恢复之前一样
  1. 验证数据恢复情况
disql SYSDBA/******@192.168.1.2:5239
SQL> select count(*) from DEVDEMO.DMDEV_DEMO;

行号     COUNT(*)
---------- --------------------
1          20

已用时间: 4.518(毫秒). 执行号:802.
和恢复之前一样
  1. 使用第10步的SQL验证恢复数据
SQL>  select * from DEVDEMO.DMDEV_DEMO where id>11;

行号     PRODUCE_ORG_ID ID          NAME   AGE         EMAIL             CREATE_TIME                STATUS SALARY  REMARK
---------- -------------- ----------- ------ ----------- ----------------- -------------------------- ------ ------- ---------------
1          1012           12          褚四 28          chusi@demo.com    2025-12-04 16:06:25.000000 A      10500   Java开发
2          1013           13          卫五 29          weiwu@demo.com    2025-12-04 16:06:25.000000 A      10800.5 Python工程师
3          1014           14          蒋六 36          jiangliu@demo.com 2025-12-04 16:06:25.000000 A      19000   首席技术官
4          1015           15          沈七 27          shenqi@demo.com   2025-12-04 16:06:25.000000 A      9200    初级开发
5          1016           16          韩八 32          hanba@demo.com    2025-12-04 16:06:25.000000 A      12000   全栈工程师
6          1017           17          杨九 30          yangjiu@demo.com  2025-12-04 16:06:25.000000 I      10000   已调岗
7          1018           18          朱十 26          zhushi@demo.com   2025-12-04 16:06:25.000000 A      8900.75 大数据开发
8          1019           19          秦一 31          qinyi@demo.com    2025-12-04 16:06:25.000000 A      11500   安全工程师
9          1020           20          尤二 28          youer@demo.com    2025-12-04 16:06:25.000000 A      9700.25 算法工程师
和恢复之前一样

四. 总结与注意事项

通过以上完整步骤,成功将GBK字符集数据库中的数据迁移至UTF-8字符集数据库,验证了逻辑备份与还原方法的有效性。关键注意事项包括:在逻辑恢复之前,必须在UTF-8数据库中预先创建与源库一致的表空间、用户及权限。本案例为保持环境一致性,完整还原了用户与权限。建议在实际迁移前,充分规划数据库实例的各项参数,包括实例名称、数据库名称、端口号、字符集、页大小、簇大小、大小写敏感设置及联机日志大小等,以确保迁移过程顺利并避免后续兼容性问题。

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服