达梦数据库教程(1)通过命令行方式安装达梦V8
达梦数据库最大的特点之一就是从安装到使用都可以完全使用图形化完成,但是线上操作系统可能大多数并没有配置图形化界面,所以在安装阶段使用命令行也是更通用、快捷的方法。
一、初始化系统环境
1.1 创建达梦用户和组
groupadd dinstall -g 2001 useradd -G dinstall -m -d /home/dmdba -s /bin/bash -u 2001 dmdba passwd dmdba
1.2 创建目录
非必需,根据实际情况调整
#实例保存目录 mkdir -p /dmdata/data #归档保存目录 mkdir -p /dmdata/arch #备份保存目录 mkdir -p /dmdata/dmbak mkdir -p /dmdata/dmtmp chown -R dmdba:dinstall /dmdata/data chown -R dmdba:dinstall /dmdata/arch chown -R dmdba:dinstall /dmdata/dmbak chown -R dmdba:dinstall /dmdata/dmtmp chmod -R 755 /dmdata/data chmod -R 755 /dmdata/arch chmod -R 755 /dmdata/dmbak chmod -R 755 /dmdata/dmtmp # mkdir /data/dmdbms -p # chown -R dmdba. /data/dmdbms/
1.3 修改文件打开最大数
vi /etc/security/limits.conf dmdba soft nice 0 dmdba hard nice 0 dmdba soft as unlimited dmdba hard as unlimited dmdba soft fsize unlimited dmdba hard fsize unlimited dmdba soft nproc 65536 dmdba hard nproc 65536 dmdba soft nofile 65536 dmdba hard nofile 65536 dmdba soft core unlimited dmdba hard core unlimited dmdba soft data unlimited dmdba hard data unlimited #切换用户验证配置 su - dmdba ulimit -a
1.4 修改文件描述符
ulimit -n 65536 sed '/# End of file/i * soft nofile 65536\n* hard nofile 65536' /etc/security/limits.conf
1.5 确保临时目录空间可用
达梦数据库在安装过程中会用到/tmp临时目录,要求至少有2G的临时空间。如果在系统初始化时没有预留充足的空间,那么需要调整环境变量DM_INSTALL_TMPDIR的值,将临时目录指向到其他地方
export DM_INSTALL_TMPDIR=/dmdata/dmtmp
二、安装达梦数据库
安装程序通常属于一次性操作,安装好之后使用初始化工具进行实例创建操作
2.1 镜像挂载
mount -o loop /usr/local/src/dm8_20240408_x86_rh7_64.iso /mnt
2.2 数据库安装
切换到dmdba账户后运行安装脚本,-i选项表示命令行方式安装,不需要图形化支持
su - dmdba /mnt/DMInstall.bin -i
2.3 启动DMAP服务
使用root运行脚本以启动DmAPService服务(监听4236端口),达梦相关功能会依赖DmAP服务,所以一定要先保证该服务的正常运行
/data/dmdbms/script/root/root_installer.sh
三、实例初始化与服务注册
达梦没有mysql中database的概念,而是通过schema(模式)来进行业务的区分
3.1 实例初始化
通过./dminit脚本可以在命令行下创建实例并完成初始化,使用该脚本可以在一台服务器上创建多个不同的实例。脚本的详细参数可以通过help查看(通过图形化方式创建实例是使用DMCA.sh脚本,图形化创建后会自动注册服务)
su - dmdba /data/dmdbms/bin/dminit PATH=/data/dmdbms/ PORT_NUM=5236 INSTANCE_NAME=TEST DB_NAME=TEST_DB PAGE_SIZE=16 LOG_SIZE=1024
./dminit help # INI_FILE 初始化文件dm.ini存放的路径,如果没有指定,默认是在DB_NAME同名目录下 # PATH 初始数据库存放的路径 # CTL_PATH 控制文件路径 # LOG_PATH 日志文件路径 # EXTENT_SIZE 数据文件使用的簇大小(16),可选值:16, 32, 64,单位:页 # PAGE_SIZE 数据页大小(8),可选值:4, 8, 16, 32,单位:K # LOG_SIZE 日志文件大小(256),单位为:M,范围为:256M ~ 8G # 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],3[ZB] # 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 页检查模式(3),可选值:0/1/2/3 # RLOG_POSTFIX_NAME 设置日志文件后缀名,长度不超过10。默认为log,例如DAMENG01.log # BLANK_PAD_MODE 设置空格填充模式(0),可选值:0/1 # SYSTEM_MIRROR_PATH SYSTEM数据文件镜像路径 # CONTROL 初始化配置文件(配置文件格式见系统管理员手册) # AUTO_OVERWRITE 是否覆盖所有同名文件(0) 0:不覆盖 1:部分覆盖 2:完全覆盖 # ELOG_PATH 指定初始化过程中生成的日志文件所在路径 # AP_PORT_NUM 分布式环境下协同工作的监听端口 # HUGE_WITH_DELTA 是否仅支持创建事务型HUGE表(1) 1:是 0:否 # RLOG_GEN_FOR_HUGE 是否生成HUGE表REDO日志(1) 1:是 0:否 # CHAR_FIX_STORAGE CHAR是否按定长存储(N),可选值:Y/N,1/0 # SQL_LOG_FORBID 是否禁止打开SQL日志(N),可选值:Y/N,1/0 # DPC_MODE 指定DPC集群中的实例角色(0) 0:无 1:MP 2:BP 3:SP,取值1/2/3时也可以用MP/BP/SP代替 # MAIN_DBF_PATH MAIN数据文件存放路径 # SYSTEM_DBF_PATH SYSTEM数据文件存放路径 # ROLL_DBF_PATH ROLL数据文件存放路径 # TEMP_DBF_PATH TEMP数据文件存放路径
3.2 服务注册与启动
使用root运行dm_serivice_instaler.sh脚本可以将数据库实例注册为系统服务,并创建启动脚本(启停脚本命名格式为DmService+实例名,如DmServiceTESTDB),方便对数据库实例进行启停操作
#./dm_serivice_installer.sh -h 查看脚本支持选项 #./dm_serivice_installer.sh -t [服务类型,如dmserver] -dm_ini [配置文件路径,初始化完成后默认是在数据目录中] -p [对应INSTANCE_NAME] #root执行 /data/dmdbms/script/root/dm_service_installer.sh -t dmserver -dm_ini /data/dmdbms/TEST_DB/dm.ini -p TEST_DB #启动数据库服务后默认监听5236端口 systemctl start DmServiceTEST_DB
如果没有注册服务,也可以通过命令行进行管理
./dmdata/bin/DmServiceDMSERVER start | stop #DmServiceDMSERVER需要修改为实际的实例名,可以进入目录查找确定
3.3 连接测试
su - dmdba ./disql SYSDBA/SYSDBA ./disql #使用ip地址和端口连接 ./disql SYSDBA/SYSDBA@192.168.1.100:5236 #使用server name方式连接,server name需要先配置在/etc/dm_svc.conf ./disql SYSDBA/SYSDBA@TEST_DB cat dm_svc.conf TIME_ZONE=(480) LANGUAGE=(CN) TEST_DB=(192.168.254.100:5236)
评论