近期,因技术研究需要为同事搭建了一个DM8的练习数据库,用于业务功能调整使用,搭建的时候,同事说就是技术研究需要没有什么要求,所以基本都用的默认参数创建的,经过几个小时的努力,搭建完成了。本以为交差可万事大吉了。
一、背景介绍
谁知道,几天以后,该同事反馈希望把数据库字符集设置为UTF-8,通过查阅官方文档,字符集只能查看不能修改,希望奇迹出现,抱着忐忑的心情查询了一下字符集,果然不是UTF-8。0表示GB18030,1才是UTF-8,真是怕什么来什么,完蛋了,只有重装了。
二、思路分析
我在郁闷过后,需要梳理如何解决问题,怎么弄呢?卸载重装?但其实数据库(主要是数据文件)这些是没问题的,那有没有办法少弄点呢?在官方文档中给出了基于图形化方式卸载和安装实例的步骤,参见DM 数据库配置助手 | 达梦技术文档,但是我这台机器的操作系统不提供图形化界面,如果重做系统就更难了,真是“屋漏偏逢连绵雨”啊。算了方案不行。
用指令操作,试一下停止数据库实例后,直接重新初始化再启动实例是不是就可以了啊?说干就干,死马当成活马医,直接试一下吧。
三、实现步骤
1、首先停止实例,使用DmServiceDMSERVER这个指令就可以停止实例,见下图
2、本计划重新初始化,但如果需要重启呢?算了,把注册的自启服务删除了再来吧。
调用达梦的管理脚本,删除服务:dm_service_uninstaller.sh -n DmServiceDMSERVER
总算可以重新初始化了,成败在此一举,直接上吧。
./bin/dminit path=<path> db_name=DAMENG CASE_SENSITIVE=y CHARSET=1 instance_name=DMSERVER……
CHARSET这个参数就是指定字符集的,0是GB18030,1是utf-8;CASE_SENSITIVE这个参数是指定数据库是否大小写敏感,y或1是敏感
死马当活马医,一个回车键敲下去,程序执行了。过程中有几个覆盖文件的提示,主要就是要修改配置,覆盖吧,几个“Y”之后,初始化就结束了。
3、重新注册自启服务。调用达梦的管理脚本 dm_service_installer.sh -t dmserver -dm_ini <path>/dm.ini -p DMSERVER ,把服务重新注册好了。
4、启动实例。见证奇迹的时刻来了,能正常启动吗?如果启动成功,是不是就可以了啊?
真的成功启动了。
5、验证修改。现在重新进入系统中,看看字符集是真的改了吗?
查到结果了,真的改了。执行其他操作,看看吧。
三、回顾分析
问题基本解决了,在此记录一下操作方式。
反思一下,我前面其实是没有现成的方法可使用的,结合自己掌握的知识,多分析多尝试,最后或许能解决问题,也能加深对技术的理解。
本次记录到此吧。