注册
麒麟V10安装达梦8技术实践
培训园地/ 文章详情 /

麒麟V10安装达梦8技术实践

海军 2023/04/06 1643 1 0

麒麟V10+达梦8

1. 系统设置

1.1 关闭防火墙

查看防火墙状态

systemctl status firewalld.service 
● firewalld.service - firewalld - dynamic firewall daemon Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled) Active: active (running) since Tue 2023-03-14 18:28:13 CST; 4s ago Docs: man:firewalld(1) Main PID: 9172 (firewalld) Tasks: 2 Memory: 20.5M CGroup: /system.slice/firewalld.service └─9172 /usr/bin/python3 /usr/sbin/firewalld --nofork --nopid 3月 14 18:28:13 dm1 systemd[1]: Starting firewalld - dynamic firewall daemon... 3月 14 18:28:13 dm1 systemd[1]: Started firewalld - dynamic firewall daemon.

关闭防火墙

systemctl stop firewalld.service

禁止防火墙自启动

systemctl disable firewalld.service
Removed /etc/systemd/system/multi-user.target.wants/firewalld.service. Removed /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.

1.2 修改密码策略

备份文件

# 备份策略文件
cp /etc/pam.d/system-auth /etc/pam.d/system-auth.bak

编辑文件,把"pam_pwquality.so"参数修改为"pam_cracklib.so"

# 使用sed修改 sed -i 's/pam_pwquality.so/pam_cracklib.so/g' /etc/pam.d/system-auth # 使用vi手动修改 vim /etc/pam.d/system-auth
auth required pam_kysec.so #%PAM-1.0 # User changes will be destroyed the next time authconfig is run. auth required pam_env.so auth required pam_faillock.so preauth audit deny=3 even_deny_root unlock_time=60 -auth sufficient pam_fprintd.so auth sufficient pam_unix.so nullok try_first_pass -auth sufficient pam_sss.so use_first_pass auth [default=die] pam_faillock.so authfail audit deny=3 even_deny_root unlock_time=60 auth sufficient pam_faillock.so authsucc audit deny=3 even_deny_root unlock_time=60 auth requisite pam_succeed_if.so uid >= 1000 quiet_success auth required pam_deny.so account required pam_unix.so account required pam_faillock.so account sufficient pam_localuser.so account sufficient pam_succeed_if.so uid < 1000 quiet -account [default=bad success=ok user_unknown=ignore] pam_sss.so account required pam_permit.so password requisite pam_pwquality.so try_first_pass local_users_only ## "pam_pwquality.so"参数修改为"pam_cracklib.so" password sufficient pam_unix.so sha512 shadow nullok try_first_pass use_authtok -password sufficient pam_sss.so use_authtok use_first_pass password required pam_deny.so session optional pam_keyinit.so revoke session required pam_limits.so -session optional pam_systemd.so session [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid session required pam_unix.so -session optional pam_sss.so

1.3 关闭selinux

vi /etc/selinux/config
# This file controls the state of SELinux on the system. # SELINUX= can take one of these three values: # enforcing - SELinux security policy is enforced. # permissive - SELinux prints warnings instead of enforcing. # disabled - No SELinux policy is loaded. SELINUX=enforcing ## 修改enforcing为disabled # SELINUXTYPE= can take one of these three values: # targeted - Targeted processes are protected, # minimum - Modification of targeted policy. Only selected processes are protected. # ukmls - Multi Level Security protection. # ukmcs -ukmcs variants of the SELinux policy. SELINUXTYPE=ukmcs # SETLOCALDEFS= Check local definition changes SETLOCALDEFS=0

1.4 修改IP

# 编辑网卡对应文件 vi /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet PROXY_METHOD=none BROWSER_ONLY=no BOOTPROTO=none DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6INIT=yes ## ipv6可以删除 IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_FAILURE_FATAL=no IPV6_ADDR_GEN_MODE=stable-privacy NAME=ens33 UUID=8db5feff-ad57-4400-aef1-3e33e14865cc DEVICE=ens33 ONBOOT=yes ## 修改为自启动 IPADDR=192.168.222.21 ## 修改ip地址 PREFIX=24 GATEWAY=192.168.222.1 IPV6_PRIVACY=no

1.5 修改主机名

# 立即生效 hostname dm1 # 修改配置文件 vi /etc/hostname

1.6 关闭大页、修改磁盘

操作系统默认调度方式为cfq,数据库建议使用deadline模式进行

透明大页和磁盘调度方式,均为修改/etc/default/grub 的cmdline行,需要重启操作系统生效

# 查看透明大页,always则为开启 cat /sys/kernel/mm/transparent_hugepage/enabled [always] madvise never # 或使用一下命令查看 grep AnonHugePages /proc/meminfo AnonHugePages: 112640 kB # 查询当前磁盘调度方式 for i in a;do cat /sys/block/sd${i}/queue/scheduler done # 关闭透明大页,编辑grub文件,在cmdline末尾添加transparent_hugepage=never elevator=deadline,然后重启操作系统 vi /etc/default/grub GRUB_TIMEOUT=5 GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)" GRUB_DEFAULT=saved GRUB_DISABLE_SUBMENU=true GRUB_TERMINAL_OUTPUT="console" GRUB_CMDLINE_LINUX="resume=/dev/mapper/klas-swap rd.lvm.lv=klas/root rd.lvm.lv=klas/swap rhgb quiet crashkernel=1024M,high transparent_hugepage=never elevator=deadline" GRUB_DISABLE_RECOVERY="true" # 状态为never则已经关闭 cat /sys/kernel/mm/transparent_hugepage/enabled always madvise [never] # 查看大页分配为0 grep AnonHugePages /proc/meminfo AnonHugePages: 0 kB

1.7 修改/etc/sysctl.conf

主要需要修改共享内存相关参数、关闭numa、设置信号通量

  • kernel.shmall:该参数是控制共享内存页数,Linux共享内存页大小为4KB,共享内存段的大小都是共享内存页大小的整数倍。如果一个共享内存段的最大大小是16G,那么需要共享内存页数是16GB/4KB = 16777216KB/4KB = 4194304(页)
  • kernel.shmmax:定义一个内存段最大可以分配的内存空间,单位为字节,该参数应该设置大于数据库分配的内存
  • kernel.shmmni:设置系统级最大共享内存段数量默认为4096不需要修改
  • kernel.numa_balancing:关闭numa
  • kernel.sem:信号灯的相关配置
    • 第一段数字设置每个信号灯组中信号灯最大数量
    • 第二段数字设置系统中信号灯的最大数量
    • 第三段数字设置每次系统调用可以同时执行的最大信号灯操作的数量
    • 第四段数字设置系统中信号灯组的最大数量
# shmmax和shmall可以通过以下公式计算 SHMMAX=$(grep 'MemTotal' /proc/meminfo |awk '{printf ("%d\n",$2*1024*0.5)}') SHMALL=$(grep 'MemTotal' /proc/meminfo |awk '{printf ("%d\n",$2*1024/4096*0.5)}') # 编辑文件设置相关配置 vi /etc/sysctl.conf kernel.shmmni = 4096 kernel.shmmax = 1514307584 kernel.shmall = 369704 kernel.numa_balancing = 0 kernel.sem = 10240 32767 10240 32767 # 使参数动态生效 sysctl -p

1.8 设置用户参数限制

修改用户进程和open files等参数,直接改为不限制

# 直接编辑限制文件,设置为unlimited,该参数不需要重启 vi /etc/security/limits.conf * soft stack unlimited * hard stack unlimited * soft nproc unlimited * hard nproc unlimited * soft nofile 1048576 * hard nofile 1048576 * soft memlock unlimited * hard memlock unlimited

1.9 创建安装路径

规划安装路径为/dm8

实例创建路径为/dm8/data

归档路径为/dm8/arch

数据库用户和组为dmdba和dinstall

# 创建用户和组 groupadd dinstall useradd -g dinstall -m -d /home/dmdba -s /bin/bash dmdba # 设置密码 passwd dmdba # 创建目录 mkdir -p /dm8 chown dmdba:dinstall /dm8

2.安装达梦8

0. 上传安装软件包

达梦安装软件包为iso镜像文件,需要上传然后挂载

# 上传 dm8_20220525_x86_rh6_64.iso # 挂载 mount dm8_20220525_x86_rh6_64.iso /mnt/

1. 安装软件

达梦数据库有三种安装方式:图形化、命令行、静默

本次采用命令行形式安装,静默安装需要配置xml格式的相应文件,然后使用./DMInstall.bin -q 配置文件全路径的方式安装装

如果tmp目录不足2g,可以通过设置DM_INSTALL_TMPDIR环境变量指定临时目录

# 切换到dmdba用户,设置环境变量 su - dmdba mkdir -p /home/dmdba/tmp export DM_INSTALL_TMPDIR=/home/dmdba/tmp # 进入光盘,调用安装界面 cd /mnt/ ./DMInstall.bin -i 请选择安装语言(C/c:中文 E/e:英文) [C/c]: # 默认为中文安装,直接回车 解压安装程序......... 欢迎使用达梦数据库安装程序 是否输入Key文件路径? (Y/y:是 N/n:否) [Y/y]: # 没有key,选择n,也可以安装后在导入key 否设置时区? (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 典型安装]: # 默认经典安装 所需空间: 1585M 请选择安装目录 [/home/dmdba/dmdbms]:/dm8 # 选择/dm8作为安装目录 可用空间: 35G 是否确认安装路径(/dm8)? (Y/y:是 N/n:否) [Y/y]: # 确认安装路径 安装前小结 安装位置: /dm8 所需空间: 1585M 可用空间: 35G 版本信息: 有效日期: 安装类型: 典型安装 是否确认安装? (Y/y:是 N/n:否):y # 确认进行安装 2023-03-24 01:00:58 [INFO] 安装达梦数据库... 2023-03-24 01:00:59 [INFO] 安装 基础 模块... 2023-03-24 01:01:01 [INFO] 安装 服务器 模块... 2023-03-24 01:01:01 [INFO] 安装 客户端 模块... 2023-03-24 01:01:02 [INFO] 安装 驱动 模块... 2023-03-24 01:01:03 [INFO] 安装 手册 模块... 2023-03-24 01:01:03 [INFO] 安装 服务 模块... 2023-03-24 01:01:04 [INFO] 移动日志文件。 2023-03-24 01:01:04 [INFO] 安装达梦数据库完成。 请以root系统用户执行命令: /dm8/script/root/root_installer.sh 安装结束

2. 创建数据库

创建数据库同样采用命令行方式,图形化需要cd /dm8/tool后调用**./dbca.sh**

静默安装的详细参数如下:

/dm8/bin/dminit help initdb V8 db version: 0x7000c file dm.key not found, use default license! License will expire on 2023-05-25 version: 03134283890-20220525-161267-10045 Pack7 格式: ./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,范围为:256M ~ 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 PAGE_HASH_NAME 设置页检查HASH算法 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 设置页加密分片大小,可选值:0、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) ELOG_PATH 指定初始化过程中生成的日志文件所在路径 AP_PORT_NUM 分布式环境下协同工作的监听端口 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:否 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代替 HELP 打印帮助信息

在达梦数据库中,不同的页大小会影响varchar类型的最大长度

数据库页大小 varchar 实际最大长度(字 节)
4k 约1900
8k 约3900
16k 约8000
32k 约8188

开始创建数据库

# 命令行方式需要进入bin目录 cd /dm8/bin # 设置参数解释 path=/dm8/data # 安装路径 db_name=DMDCP # 数据库名 instance_NAME=DMDCPSVR # 实例名 sysdba_pwd=Dameng123 # sysdba密码 port_num=5236 # 端口号默认5236 PAGE_SIZE=8 # 页大小,可以选择4k 8k 16k 32k CHARSET=0 # 字符集0为gb2312,1为utf-8, BUFFER=100 # 数据缓冲区大小,默认为100m(达梦内存不止buffer),建议设置为内存40%,后期可以通过调优参数修改 # 使用命令行进行安装 ./dminit path=/dm8/data db_name=DMDCP instance_NAME=DMDCPSVR sysdba_pwd=Dameng123 port_num=5236 PAGE_SIZE=8 CHARSET=0 BUFFER=100 initdb V8 db version: 0x7000c file dm.key not found, use default license! License will expire on 2023-05-25 Normal of FAST Normal of DEFAULT Normal of RECYCLE Normal of KEEP Normal of ROLL log file path: /dm8/data/DMDCP/DMDCP01.log log file path: /dm8/data/DMDCP/DMDCP02.log write to dir [/dm8/data/DMDCP]. create dm database success. 2023-03-24 01:20:38

3.手动注册数据库服务

dminit 方式创建数据库不会自动注册数据库服务(DM数据库配置助手方式默认自动注册数 据库服务),所以不能以服务方式启动数据库,如果要以服务方式启动,则需要注册数据库服务

注册方式也分为两种,图形化和命令行(dbca.sh),本次采用命令行

# 进入对应目录 cd /dm8/script/root # 使用root执行 ./dm_service_installer.sh -t dmserver -p DMDCPSVR -dm_ini /dm8/data/DMDCP/dm.ini Created symlink /etc/systemd/system/multi-user.target.wants/DmServiceDMDCPSVR.service → /usr/lib/systemd/system/DmServiceDMDCPSVR.service. 创建服务(DmServiceDMDCPSVR)完成 # 参数说明 Usage: dm_service_installer.sh -t service_type [-p service_name_postfix] [-dm_ini dm_ini_file] [-watcher_ini watcher_ini_file ] [-monitor_ini monitor_ini_file] [-cssm_ini cssm_ini_file] [-dfs_ini dfs_ini_file] [-dcr_ini dcr_ini_file] [-dss_ini dss_ini_file] [-drs_ini drs_ini_file] [-dras_ini dras_ini_file] [-dcs_ini dcs_ini_file] [-server server_info] [-dmap_ini dmap_ini_file] [-dpc_mode SP|MP|BP] [-m open|mount] [-y dependent_service] [-auto true|false] or dm_service_installer.sh [-s service_file_path] or dm_service_installer.sh -h # 查看状态 systemctl status DmServiceDMDCPSVR.service ● DmServiceDMDCPSVR.service - DM Instance Service(DmServiceDMDCPSVR). Loaded: loaded (/usr/lib/systemd/system/DmServiceDMDCPSVR.service; enabled; vendor preset: disabled) Active: inactive (dead) # 启动达梦数据库

3. 数据库参数配置

0. 优化参数脚本

达梦数据库提供了一个参数优化脚本,但仅限于一对一的环境,如果环境下有多个达梦数据库,则不建议执行

脚本名称:auto_parameter_adjustment.sql

1. 开启数据库操作系统认证

修改参数 ENABLE_LOCAL_OSAUTH开启数据库操作系统认证,防止忘记密码后无法登陆

# 修改数据库参数,重启生效 alter system set 'ENABLE_LOCAL_OSAUTH'=1 spfile; # 操作系统中新增dmdba组 groupadd dmdba # 将要免密登录的用户加入该组中 usermod -G dmdba dmdba # 测试 disql / as sysdba

对于普通用户,可以添加到dmuser组

# 创建dmuser组 groupadd dmusers # 添加组 usermod -G dmusers test # 切换到test用户,修改profile文件,保持和dmdba一致 su - test vi .bash_profile export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/dm8/bin" export DM_HOME="/dm8" export PATH=$PATH:${DM_HOME}/bin # 测试登录 disql / as users

2. 数据库兼容模式

如果数据库使用有明显使用倾向(oracle),可以通过修改兼容参数,使达梦数据库兼容对应数据库的语法

alter system set COMPATIBLE_MODE=2 spfile;

参数的具体值及对应的意义

COMPATIBLE_MODE 0 静态 0:不兼容, <br/>1:兼容 SQL92 标准, <br/>2:部分兼容 ORACLE, <br/>3:部分兼容MS SQL SERVER, <br/>4:部分兼容 MYSQL, <br/>5:兼容 DM6, <br/>6:部分兼容 TERADATA
评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服