redhat7.7部署达梦单实例:dm8命令行方式安装
dm8-redhat7.7
目录
一.安装流程图
开始
是 停服务--备份--卸载
检查是否安装 |
否 安装 <|
结束
二.安装步骤
0.检查 Linux(Unix)系统信息
1.创建分组
2.创建用户,指定分组,修改用户密码
3.创建安装目录,更改授权
4.检查修改系统资源限制
5.加载光驱
6.改授权,启动安装程序
7.修改环境变量
#详细安装过程
0.检查 Linux(Unix)系统信息
#获取系统位数
getconf LONG_BIT
#查询操作系统 release 信息
lsb_release -a #未找到命令 安装yum install -y redhat-lsb
#查询系统信息
cat /etc/issue
#查询系统名称
uname -a
#检查操作系统资源限制
cat << EOF >> /etc/security/limits.conf
dinstall hard nofile 65536
dinstall soft nofile 65536
dinstall hard nproc 65536
dinstall soft nproc 65536
dinstall soft core unlimited
dinstall hard core unlimited
EOF
cat /etc/security/limits.conf
#检查系统内存与存储空间
##检查内存
#获取内存总大小
grep MemTotal /proc/meminfo
#获取交换分区大小
grep SwapTotal /proc/meminfo
#获取内存使用详情
free
##检查存储空间
df -h /dm8
df -h /tmp
如果/tmp 目录不能保证 1GB 的存储空间,用户可以扩展/tmp 目录存储空间或者通
过设置环境变量 DM_INSTALL_TMPDIR 指定安装程序的临时目录。具体命令如下所示:
#以 BASH 为例:
mkdir -p /mount_point/dir_name
DM_INSTALL_TMPDIR=/mount_point/dir_name
export DM_INSTALL_TMPDIR
#安装、配置java
下载路径:https://www.oracle.com/cn/java/technologies/javase/javase-jdk8-downloads.html
cd /opt
mkdir -pv /usr/lib/java
客户端解压jdk-8u211-linux-x64.tar.gz,将jdk1.8.0_211上传至/usr/lib/java
echo 'export JAVA_HOME=/usr/lib/java/jdk1.8.0_211'>> /etc/profile
echo 'export JRE_HOME=${JAVA_HOME}/jre'>> /etc/profile
echo 'export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATH'>> /etc/profile
echo 'export JAVA_PATH=${JAVA_HOME}/bin:{JRE_HOME}/bin'>> /etc/profile
echo 'export PATH=${JAVA_PATH}:$PATH'>> /etc/profile
echo 'export JAVA_BIN=${JAVA_HOME}/bin'>> /etc/profile
cat /etc/profile
source /etc/profile
java -version
--java version "jdk1.8.0_211"
1.创建分组、用户,指定分组,修改用户密码
groupadd dinstall
useradd dinstall -g dinstall
echo "dinstall" | passwd --stdin dinstall
3.创建安装目录,更改授权
--需使用默认目录,自定义目录会java调用错误且不会弹出初始化数据库界面,使用默认目录,此步骤省略
mkdir /dm8
chown -R dinstall:dinstall /dm8
chmod -R 755 /dm8
4.检查修改系统资源限制
ulimit -a
确保open files设置为65536以上或者unlimited(无限制),如果不是,修改/etc/profile
增加一行:ulimit -n 65536
echo "ulimit -n 65536" >>/etc/prDM_HOMEofile
source /etc/profile
5.加载光驱
mount -o loop /opt/dm8_20200907_x86_rh7_64_ent_8.1.1.126.iso /mnt
6.修改环境变量
su - dinstall
echo 'export DM_HOME=/dm8/dmdbms'>>.bash_profile
echo 'export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/dm8/dmdbms/bin"'>>.bash_profile
echo 'export PATH=$DM_HOME/bin:$PATH'>>.bash_profile
echo 'export DM_JAVA_HOME=/usr/lib/java/jdk1.8.0_211'>>.bash_profile
cat .bash_profile
source .bash_profile
7.改授权,启动安装程序
补充:
export LANG=en_US
export LANG=zh_CN.UTF-8
export LANG=zh_CN #会显示乱码,建议zh_CN.UTF-8 或en_US
java -version
cp /mnt/DMInstall.bin /home/dinstall/
cd /home/dinstall/
chmod 755 ./DMInstall.bin
cd /home/dinstall/
export LANG=zh_CN.UTF-8
./DMInstall.bin -i
请选择安装语言(C/c:中文 E/e:英文) [C/c]:
解压安装程序.........
欢迎使用达梦数据库安装程序
是否输入Key文件路径? (Y/y:是 N/n:否) [Y/y]:n
是否设置时区? (Y/y:是 N/n:否) [Y/y]:
设置时区:
[ 1]: GTM-12=日界线西
[ 2]: GTM-11=萨摩亚群岛
[ 3]: GTM-10=夏威夷
[ 4]: GTM-09=阿拉斯加
[ 5]: GTM-08=太平洋时间(美国和加拿大)
[ 6]: GTM-07=亚利桑那
[ 7]: GTM-06=中部时间(美国和加拿大)
[ 8]: GTM-05=东部部时间(美国和加拿大)
[ 9]: GTM-04=大西洋时间(美国和加拿大)
[10]: GTM-03=巴西利亚
[11]: GTM-02=中大西洋
[12]: GTM-01=亚速尔群岛
[13]: GTM=格林威治标准时间
[14]: GTM+01=萨拉热窝
[15]: GTM+02=开罗
[16]: GTM+03=莫斯科
[17]: GTM+04=阿布扎比
[18]: GTM+05=*堡
[19]: GTM+06=达卡
[20]: GTM+07=曼谷,河内
[21]: GTM+08=中国标准时间
[22]: GTM+09=汉城
[23]: GTM+10=关岛
[24]: GTM+11=所罗门群岛
[25]: GTM+12=斐济
[26]: GTM+13=努库阿勒法
[27]: GTM+14=基里巴斯
请选择设置时区 [21]:
安装类型:
1 典型安装
2 服务器
3 客户端
4 自定义
请选择安装类型的数字序号 [1 典型安装]:1
所需空间: 1075M
请选择安装目录 [/home/dinstall/dmdbms]:/dm8/dmdbms
可用空间: 68G
是否确认安装路径(/dm8/dmdbms)? (Y/y:是 N/n:否) [Y/y]:
安装前小结
安装位置: /dm8/dmdbms
所需空间: 1075M
可用空间: 68G
版本信息:
有效日期:
安装类型: 典型安装
是否确认安装? (Y/y:是 N/n:否):y
2020-11-26 14:24:29
[INFO] 安装达梦数据库...
2020-11-26 14:24:30
[INFO] 安装 基础 模块...
2020-11-26 14:24:32
[INFO] 安装 服务器 模块...
2020-11-26 14:24:32
[INFO] 安装 客户端 模块...
2020-11-26 14:24:34
[INFO] 安装 驱动 模块...
2020-11-26 14:24:35
[INFO] 安装 手册 模块...
2020-11-26 14:24:36
[INFO] 安装 服务 模块...
2020-11-26 14:24:37
[INFO] 移动ant日志文件。
java.security.NoSuchAlgorithmException: DES SecretKeyFactory not available
at javax.crypto.SecretKeyFactory.<init>(SecretKeyFactory.java:122)
at javax.crypto.SecretKeyFactory.getInstance(SecretKeyFactory.java:160)
at com.dameng.common.util.StringUtil.getSecretKey(StringUtil.java:561)
at com.dameng.common.util.StringUtil.getValue(StringUtil.java:572)
at com.dameng.common.util.StringUtil.encrypt(StringUtil.java:522)
at com.dameng.install.util.InstallUtil.createInstalledFilesRecord(InstallUtil.java:1575)
at com.dameng.install.cli.MainApplication$2.run(MainApplication.java:415)
2020-11-26 14:24:37
[INFO] 安装达梦数据库完成。
请以root系统用户执行命令:
/dm8/dmdbms/script/root/root_installer.sh
安装结束
8.初始化数据库
[dinstall@db01 ~]$ cd /dm8/dmdbms/bin
[dinstall@node2 bin]$ ./dminit PATH=/dm8/dmdbms/ EXTENT_SIZE=16 PAGE_SIZE=16 DB_NAME=DAMENG INSTANCE_NAME=DMSERVER CASE_SENSITIVE=N CHARSET=1
initdb V8
db version: 0x7000b
file dm.key not found, use default license!
License will expire on 2021-09-04
log file path: /dm8/dmdbms/DAMENG/DAMENG01.log
log file path: /dm8/dmdbms/DAMENG/DAMENG02.log
write to dir [/dm8/dmdbms/DAMENG].
create dm database success. 2020-11-26 18:30:02
数据库名:DAMENG
实例名:DMSERVER
端口号:5236
sysdba/sysauditor:SYSDBA
9.注册服务
root用户切换到DM_HOME/script/root下
[root@db01 dinstall]# cd /dm8/dmdbms/script/root/
[root@node2 root]# ./dm_service_installer.sh -t dmserver -dm_ini /dm8/dmdbms/DAMENG/dm.ini -p DMSERVER
Created symlink from /etc/systemd/system/multi-user.target.wants/DmServiceDMSERVER.service to /usr/lib/systemd/system/DmServiceDMSERVER.service.
创建服务(DmServiceDMSERVER)完成
10.启动数据库
[root@node2 root]# systemctl start DmServiceDMSERVER.service
[root@node2 root]# systemctl enable DmServiceDMSERVER.service
[root@node2 root]# systemctl status DmServiceDMSERVER.service
● DmServiceDMSERVER.service - Dameng Database Service(DmServiceDMSERVER).
Loaded: loaded (/usr/lib/systemd/system/DmServiceDMSERVER.service; enabled; vendor preset: disabled)
Active: active (running) since Thu 2020-11-26 18:34:53 CST; 25s ago
Main PID: 7593 (dmserver)
CGroup: /system.slice/DmServiceDMSERVER.service
└─7593 /dm8/dmdbms/bin/dmserver /dm8/dmdbms/DAMENG/dm.ini -noconsole
Nov 26 18:34:38 node2 systemd[1]: Starting Dameng Database Service(DmServiceDMSERVER)....
Nov 26 18:34:53 node2 DmServiceDMSERVER[7568]: [39B blob data]
Nov 26 18:34:53 node2 systemd[1]: Started Dameng Database Service(DmServiceDMSERVER)..
11.配置环境变量
vi .bash_profile
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/dm8/dmdbms/bin"
export DM_HOME="/dm8/dmdbms"
export PATH="/dm8/dmdbms/bin:$PATH"
source .bash_profile
12.在dinstall用户下连接数据库
[dinstall@node2 ~]$ disql sysdba/SYSDBA
服务器[LOCALHOST:5236]:处于普通打开状态
登录使用时间 : 4.068(ms)
disql V8
SQL> select status$ from v$instance;
行号 status$
---------- -------
1 OPEN
已用时间: 8.583(毫秒). 执行号:499.
SQL> exit
[dinstall@node2 ~]$ dminit help
initdb V8
db version: 0x7000b
file dm.key not found, use default license!
License will expire on 2021-09-04
格式: ./dminit KEYWORD=value
例程: ./dminit PATH=/public/dmdb/dmData PAGE_SIZE=16
关键字 说明(默认值)
--------------------------------------------------------------------------------
INI_FILE 初始化文件dm.ini存放的路径
PATH 初始数据库存放的路径
CTL_PATH 控制文件路径
LOG_PATH 日志文件路径
EXTENT_SIZE 数据文件使用的簇大小(16),可选值:16, 32, 64,单位:页
PAGE_SIZE 数据页大小(8),可选值:4, 8, 16, 32,单位:K
LOG_SIZE 日志文件大小(256),单位为:M,范围为:64M ~ 2G
CASE_SENSITIVE 大小敏感(Y),可选值:Y/N,1/0
CHARSET/UNICODE_FLAG 字符集(0),可选值:0[GB18030],1[UTF-8],2[EUC-KR]
SEC_PRIV_MODE 权限管理模式(0),可选值:0[TRADITION],1[BMJ],2[EVAL]
LENGTH_IN_CHAR VARCHAR类型长度是否以字符为单位(N),可选值:Y/N,1/0
SYSDBA_PWD 设置SYSDBA密码(SYSDBA)
SYSAUDITOR_PWD 设置SYSAUDITOR密码(SYSAUDITOR)
DB_NAME 数据库名(DAMENG)
INSTANCE_NAME 实例名(DMSERVER)
PORT_NUM 监听端口号(5236)
BUFFER 系统缓存大小(100),单位M
TIME_ZONE 设置时区(+08:00)
PAGE_CHECK 页检查模式(0),可选值:0/1/2
EXTERNAL_CIPHER_NAME 设置默认加密算法
EXTERNAL_HASH_NAME 设置默认HASH算法
EXTERNAL_CRYPTO_NAME 设置根密钥加密引擎
RLOG_ENC_FLAG 设置日志文件是否加密(N),可选值:Y/N,1/0
USBKEY_PIN 设置USBKEY PIN
PAGE_ENC_SLICE_SIZE 设置页加密分片大小,可选值:512、4096,单位:Byte
ENCRYPT_NAME 设置全库加密算法
BLANK_PAD_MODE 设置空格填充模式(0),可选值:0/1
SYSTEM_MIRROR_PATH SYSTEM数据文件镜像路径
MAIN_MIRROR_PATH MAIN数据文件镜像
ROLL_MIRROR_PATH 回滚文件镜像路径
MAL_FLAG 初始化时设置dm.ini中的MAL_INI(0)
ARCH_FLAG 初始化时设置dm.ini中的ARCH_INI(0)
MPP_FLAG Mpp系统内的库初始化时设置dm.ini中的mpp_ini(0)
CONTROL 初始化配置文件(配置文件格式见系统管理员手册)
AUTO_OVERWRITE 是否覆盖所有同名文件(0) 0:不覆盖 1:部分覆盖 2:完全覆盖
USE_NEW_HASH 是否使用改进的字符类型HASH算法(1)
DCP_MODE 是否是DCP代理模式(0)
DCP_PORT_NUM DCP代理模式下管理端口
ELOG_PATH 指定初始化过程中生成的日志文件所在路径
AP_PORT_NUM ECS模式下AP协同工作的监听端口
DFS_FLAG 初始化时设置dm.ini中的DFS_INI(0)
DFS_PATH 启用dfs时指定数据文件的缺省路径
DFS_HOST 指定连接分布式系统DFS的服务地址(localhost)
DFS_PORT 指定连接分布式系统DFS的服务端口号(3332)
DFS_COPY_NUM 指定分布式系统的副本数(3)
DFS_DB_NAME 指定分布式系统的中数据库名(默认与DB_NAME一致)
SHARE_FLAG 指定分布式系统中该数据库的共享属性(0)
REGION_MODE 指定分布式系统中该数据库的系统表空间数据文件的区块策略(0) 0:微区策略 1:宏区策略
HUGE_WITH_DELTA 是否仅支持创建事务型HUGE表(1) 1:是 0:否
RLOG_GEN_FOR_HUGE 是否生成HUGE表REDO日志(0) 1:是 0:否
PSEG_MGR_FLAG 是否仅使用管理段记录事务信息(0) 1:是 0:否
HELP 打印帮助信息
三、卸载
1.图形方式卸载
1.命令行方式卸载
su - dinstall
[dinstall@db01 ~]$ cd /dm8/dmdbms
[dinstall@node2 dmdbms]$ ls
bin bin2 DAMENG desktop doc drivers include jar jdk license_en.txt license_zh.txt log samples script tool uninstall uninstall.sh web
[dinstall@node2 dmdbms]$ mkdir -pv bak/
[dinstall@node2 dmdbms]$ mv /dm8/dmdbms/bin/DAMENG/* bak/
[dinstall@db01 dm8]$ ./uninstall.sh -i
-bash: ./uninstall:是一个目录
[dinstall@db01 dm8]$ ./uninstall.sh -i
请确认是否卸载达梦数据库(/dm8/)? (y/Y:是 n/N:否):y
是否删除dm_svc.conf配置文件? (y/Y:是 n/N:否):y
正在删除所有数据库库服务
删除数据库服务DmJobMonitorService
删除数据库服务DmInstanceMonitorService
删除数据库服务DmAuditMonitorService
删除数据库服务DmAPService
删除所有数据库库服务完成
正在删除数据库目录
删除bin目录
删除bin目录完成
删除bin2目录
删除bin2目录完成
删除include目录
删除include目录完成
删除desktop目录
删除desktop目录完成
删除doc目录
删除doc目录完成
删除drivers目录
删除drivers目录完成
删除jdk目录
删除jdk目录完成
删除jar目录
删除jar目录完成
删除samples目录
删除samples目录完成
删除script目录
删除script目录完成
删除tool目录
删除tool目录完成
删除web目录
删除web目录完成
删除uninstall目录
删除uninstall目录完成
删除license_en.txt文件
删除license_en.txt文件完成
删除license_zh.txt文件
删除license_zh.txt文件完成
删除uninstall.sh文件
删除uninstall.sh文件完成
删除数据库目录完成
使用root用户执行命令:
/dm8/root_uninstaller.sh
su - root
[root@db01 java]# /dm8/root_uninstaller.sh
删除DmAPService服务
Removed /etc/systemd/system/multi-user.target.wants/DmAPService.service.
删除/etc/dm_svc.conf文件
2.删除相关目录
su – dinstall
cd /tmp
rm -rf swtlib-64/ hsperfdata_dinstall/
cd /home/dinstall
ls -ltr
rm -rf dmdbms
cd /etc
rm -rf dm_svc.conf
四.问题
问题1.lsb_release -a #未找到命令 安装yum install -y redhat-lsb
配置yum源安装redhat-lsb
cd /etc/yum.repos.d/
mkdir -pv bak/
mv *.repo bak/
umount /dev/sr0
mkdir -pv /media/cdrom
mount /dev/sr0 /media/cdrom
cat << EOF >> /etc/yum.repos.d/kingbase.repo
[kingbase]
name=kingbase
baseurl=file:///media/cdrom
enabled=1
gpgcheck=0
EOF
安装依赖包:
yum clean all
yum list
yum install -y redhat-lsb
问题2:
[dinstall@node2 ~]$ /dm8/dmdbms/bin/dminit PATH=/dm8/dmdbms PAGE_SIZE=16
/dm8/dmdbms/bin/dminit: error while loading shared libraries: libdmnsort.so: cannot open shared object file: No such file or directory
处理办法:
cd /dm8/dmdbms/bin
./dminit PATH=/dm8/dmdbms PAGE_SIZE=16
问题3:[dinstall@node2 bin]$ ./dmserver
file dm.key not found, use default license!
Read ini error, name:CTL_PATH, value:/dm8/dmdbms/data/DAMENG/dm.ctl
dmserver startup failed, code = -803 [Invalid ini config value]
nsvr_ini_file_read failed, [code: -803]
处理方法:参照上述注册服务