需求背景:
一开始初始化的实例的配置没配置好,大小写敏感、字符集编码、长度以字符为单位都配置不对,导致的后果是从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
第六步、查看服务启动情况
这个存在就是已经启动了,重试初始化实例就完成了,数据库的帐号密码也会重置为初始的 SYSDBA / SYSDBA
备注:
没启动成功的,可以在 /home/dmdba/dmdbms/log里的 dm_DMSERVER.log查看报错日志。有Permission denied的就是权限不足。去根据提示对对应的文件chmod -R 777 filename赋予权限就好了。嫌麻烦就整个文件夹去赋予权限