DB2 所有数据库表、表字段注释乱码问题的排查及解决方案

本文记录了DB2数据库在不同环境下,中文数据和注释出现乱码的问题,分析了数据库及操作系统编码,并通过线上服务器的备份还原实验,探讨了乱码产生的可能原因在于备份文件的编码格式。解决方案是确保备份文件和导入时保持UTF-8编码,以避免中文注释乱码。
摘要由CSDN通过智能技术生成

问题背景:自2015年以来,国家项目测试平台 DB2 所有表的表名、表字段等中文注释均开始存在乱码问题,严重影响开发人员对于数据库表含义的理解(特别是在数据库设计文档缺乏的情况下)。

本文记录了解决该历史遗留问题的相关步骤,总结遇到的坑,最后提出解决该问题的方案。

本文所涉及到的环境

  • 测试服务器:10.1.3.3:60000/NECC_GJR
    • CentOS release 6.3 (Final)
    • DB2 Express-C 10.1
  • 线上服务器:10.30.22.16:60000/NECC_DB
    • SUSE Linux Enterprise Server 11 SP2 (x86_64)
    • DB2 Enterprise Server Edition 10.1
  • 本地服务器:192.168.56.101:50000/NECC_DB
    • Oracle VM VirtualBox 5.0.16
    • openSUSE Leap 42.1
    • DB2 Express-C 10.5.7
  • 其他客户端软件
    • Toad for DB2 Freeware 5.6
    • Xshell 5

数据库中文数据的情况

  1. 线上数据库情况

中文数据显示,Xshell 正常

db2 => select name from sys_role

NAME --------------------------------------------------
政府查看员 
政府管理员 
政府审计员 
政府安全员 
业务管理员 

 5 record(s) selected.
  1. 测试服务器情况

中文数据显示,Xshell 乱码

db2 => select name from sys_role

NAME --------------------------------------------------
·дþ?? 
·дþ´ʍ? 
·дþ°Á´? 

 3 record(s) selected.

中文数据显示,Toad 正常

数据库中文注释的情况

  1. 线上数据库情况

中文注释显示,Xshell 正常

db2 => select remarks from syscat.columns where tabname=upper('sys_role')

REMARKS 
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
角色状态,1:启用,0:禁用 
创建时间 
创建者 
描述 
ID NAME 
角色值 

 7 record(s) selected.
  1. 测试服务器情况

中文注释显示,Xshell 乱码

db2 => select remarks from syscat.columns where tabname=upper('ba_process')

REMARKS 
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
法人代?A_ENTERPRISE.CODE 
企业id;BA_ENTERPRISE.ID 
ID 
?º§工廴þ?IC_INDUSTRY_PROCESS.CODE 
?º§工廴þ稴þIC_INDUSTRY_PROCESS.NAME 
?º§工廴þ? 

 6 record(s) selected.

中文注释显示,Toad 乱码

数据库编码情况

  1. 线上和本地编码相同,如下:
db2 => get db cfg

 Database Configuration for Database 

 Database configuration release 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值