需求背景:
一开始初始化的实例的配置没配置好,
大小写敏感、字符集编码、长度以字符为单位
都配置不对,导致的后果是从mysql迁移数据到dm时,时不时会出现字符串截断
的问题,这个问题就是因为初始化的实例时的长度以字符为单位配置成了否。
1.字符集不是UTF-8,请修改字符集或创建实例时设置
CHARSET=1
2.需设置大小写不敏感,创建实例时设置
CASE_SENSITIVE=0
3.需设置长度以字符为单位,创建实例时设置
LENGTH_IN_CHAR=1
重新初始化实例操作:
第一步、删除实例
/home/dmdba/dmdbms/script/root/dm_service_uninstaller.sh -n DmServicedmdb
备注:
DmServicedmdb
是实例服务的名称,除非改过名,一般情况是这个名称,改过名称又忘记名的可以到cd /usr/lib/systemd/system
或者cd /etc/systemd/system
搜索查看Dm开头的,有Service的有哪些。一般情况是这个名称DmServicedmdb.service
。
第二步、删除数据库目录
cd /dmdata/DAMENG
rm -rf ./*
备注:
DAMENG
是初始化时数据库名称,在根目录找不到/dmdata
的话,去/data/dmdata
看看有没有。
第三步、初始化实例
cd /home/dmdba/dmdbms/bin
./dminit path=/dmdata page_size=32 extent_size=32 log_size=2048 port_num=5236 charset=1 case_sensitive=0 LENGTH_IN_CHAR=1 db_name=DAMENG instance_name=DMSERVER
备注:
初始化不成功,可以试试用root用户去执行。
第四步、注册服务
cd /home/dmdba/dmdbms/script/root
./dm_service_installer.sh -t dmserver -dm_ini /dmdata/DAMENG/dm.ini -p dmdb
备注:
注册服务不成功,可以试试用root用户去执行。
第五步、启动服务
cd /home/dmdba/dmdbms/bin
./DmServicedmdb start
备注:
systemctl start DmServicedmdb.service
也可以启动,不成功,可以试试用root用户去执行。关闭数据库服务的命令是:
./DmServicedmdb stop
或者systemctl stop DmServicedmdb.service
第六步、查看服务启动情况
ps -ef | grep dmserver
这个存在就是已经启动了,重试初始化实例就完成了,数据库的帐号密码也会重置为初始的 SYSDBA / SYSDBA
备注:
没启动成功的,可以在
/home/dmdba/dmdbms/log
里的dm_DMSERVER.log
查看报错日志。有Permission denied的就是权限不足。去根据提示对对应的文件chmod -R 777 filename
赋予权限就好了。嫌麻烦就整个文件夹去赋予权限