一、系统规划
1.1 主机系统环境概述
操作系统 | 数据库版本 | 端口 | IP地址 |
---|---|---|---|
NeoKylin Linux A6 64bit | DM Database Server x64 V7.6.0.142-Build(2019.03.12-103811)ENT | 5236 | 192.168.12.10 |
1.2 数据库初始化参数规划
初始化参数 | 说明 |
---|---|
页大小(PAGE_SIZE) | 默认8K,字符串字段的最大长度及每行记录的总长度 |
日志文件(rlog) | 默认2个重做日志文件 |
时区(TIME_ZONE) | 需与操作系统时区一致,建议使用北京时间+8:00 |
字符串大小写敏感(CASE_SENSITIVE) | 一般建议 MYSQL 和 SQLSERVER 迁移过来的系统,使用大小写不敏感,Oracle 迁移过来的系统,使用大小写敏感 |
字符集(CHARSET) | 默认GB18030,如果需要国际字符可以采用 Unicode |
VARCHAR类型长度是否以字符为单位(LENGTH_IN_CHAR) | 默认否,以字节为单位;从不同的数据库(比如MySQL)迁移到DM时需要考虑,是否使用以字符为单位计算 |
数据库兼容模式(COMPATIBLE_MODE) | 0:不兼容,1:兼容SQL92 标准,2:兼容ORACLE,3:兼容MS SQL SERVER,4:兼容MYSQL,5:兼容DM6,6:兼容TERADATA |
改进字符串 HASH 算法 | 从之前旧版本 (可能是2015年之前的版本) 数据还原到新版本上使用,不能使用改进字符串 HASH 算法,其他情况使用改进字符串 HASH 算法。 |
二、操作系统配置
2.1 查看系统环境
2.1.1 系统版本信息
命令:
lsb_release -a
cat /proc/version
cat /etc/issue
uname -a
[root@DaMengDB ~]# lsb_release -a
LSB Version: :core-4.1-amd64:core-4.1-noarch:graphics-4.1-amd64:graphics-4.1-noarch:printing-4.1-amd64:printing-4.1-noarch
Distributor ID: NeoKylinAdvancedServer
Description: NeoKylin Linux Advanced Server release 6.0 (Dhaulagiri)
Release: 6.0
Codename: Dhaulagiri
2.1.2 glibc包检查
[root@DaMengDB ~]# rpm -qa|grep glibc
glibc-devel-2.12-1.25.el6.ns6.01.x86_64
glibc-common-2.12-1.25.el6.ns6.01.x86_64
glibc-2.12-1.25.el6.ns6.01.x86_64
glibc-headers-2.12-1.25.el6.ns6.01.x86_64
如果没有上面的所有包可能需要yum install gcc,对数据库软件安装无影响,可能对后面配置其他相关依赖gcc的驱动等(比如ODBC)会失败。
2.1.3 添加/etc/hosts(可选)
[root@DaMengDB ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.12.10 DaMengDB
2.1.4 磁盘空间、内存、CPU检查
磁盘空间: df -h
内存: free -m 或者cat /proc/meminfo
cpu : cat /proc/cpuinfo
[root@DaMengDB ~]# cat /proc/cpuinfo | grep -E “physical id|core id|cpu cores|siblings|cpu MHz|model name|cache size”|tail -n 7
model name : Intel® Core™ i5-6200U CPU @ 2.30GHz
cpu MHz : 2400.001
cache size : 3072 KB
2.2 关闭NetworkManager服务(可选)
service NetworkManager stop
chkconfig –-level 2345 NetworkManager off
2.3 关闭防火墙
service iptables stop
chkconfig -–level 2345 iptables off
2.4 关闭SELinux
#vi /etc/selinux/config
改成:SELINUX= disabled
# setenforce 0
2.5 创建用户组
groupadd -g 1001 dinstall
useradd -u 1001 -g dinstall -m -d /home/dmdba -s /bin/bash dmdba
passwd dmdba
[root@DaMengDB ~]# id dmdba
uid=1001(dmdba) gid=1001(dinstall) 组=1001(dinstall)
2.6 创建数据库目录
安装软件目录和数据库文件目录可以分开,可以放同一个目录
mkdir /dm7
mkdir /data
chown -R dmdba:dinstall /dm7
chown -R dmdba:dinstall /data
chmod -R 755 /dm7
chmod -R 755 /data
2.7 检查并修改系统相关参数
[root@DaMengDB ~]# ulimit -a
参数使用限制:
(1)data seg size
data seg size (kbytes, -d)
建议用户设置为1048576(即1GB)以上或unlimited(无限制),此参数过小将导致数据库启动失败。
(2)file size
file size(blocks, -f)
建议用户设置为unlimited(无限制),此参数过小将导致数据库安装或初始化失败。
(3)open files
open files(-n)
建议用户设置为65536以上或unlimited(无限制)。
(4)virtual memory
virtual memory (kbytes, -v)
建议用户设置为1048576(即1GB)以上或unlimited(无限制),此参数过小将导致数据库启动失败。
vi /etc/security/limits.conf —添加
* soft nofile 65536
* hard nofile 65536
或者在/etc/profile中添加如下内容:
vi /etc/profile —添加:
ulimit -SHn 65536
保存退出。
source /etc/profile
建议修改完系统配置后,重启系统,检查是否生效!
重启后查询相关修改配置:
[root@DaMengDB ~]# ulimit -a
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 19729
max locked memory (kbytes, -l) 64
max memory size (kbytes, -m) unlimited
open files (-n) 65536
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 10240
cpu time (seconds, -t) unlimited
max user processes (-u) 1024
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
[root@DaMengDB ~]# cat /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 - SELinux is fully disabled.
SELINUX=disabled
# SELINUXTYPE= type of policy in use. Possible values are:
# targeted - Only targeted network daemons are protected.
SELINUXTYPE=targeted
[root@DaMengDB ~]# getenforce
Disabled
[root@DaMengDB ~]# iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
三、数据库环境安装配置
3.1 数据库软件安装
#mount -o loop /opt/dameng/dm7_setup_rh6_64_ent_7.6.0.142_20190312.iso /mnt
临时空间检查:
- DM安装程序在安装时将产生临时文件,临时文件需要1GB的存储空间,临时文件目录默认为/tmp
- 如果/tmp目录不能保证1GB的存储空间,用户可以扩展/tmp目录存储空间或者通过设置环境变量DM_INSTALL_TMPDIR指定安装程序的临时目录。
#su - dmdba
mkdir -p /xx/tmp_dir
export DM_INSTALL_TMPDIR=/xx/tmp_dir
cd /mnt
export DISPLAY=XXXXX:0.0
./DMInstall.bin
命令行安装:./DMInstall.bin -i
执行脚本完成后,初始化数据库创建数据库实例(dbca)
###3.1.1 图形界面建库
执行服务创建脚本:
完成后,确定。
3.1.2 命令行建库 dminit
cd $DM_HOME/bin
./dminit help 查看建库参数选项
[dmdba@DaMengDB bin]$ ./dminit help
格式: ./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,单位:页
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]
LENGTH_IN_CHAR VARCHAR类型长度是否以字符为单位(N),可选值:Y/N,1/0
SYSDBA_PWD 设置SYSDBA密码(SYSDBA),密码长度为9到48
SYSAUDITOR_PWD 设置SYSAUDITOR密码(SYSAUDITOR),密码长度为9到48
DB_NAME 数据库名(DAMENG)
INSTANCE_NAME 实例名(DMSERVER)
PORT_NUM 监听端口号(5236)
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
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协同工作的监听端口
HELP 打印帮助信息
命令行建库:
[dmdba@DaMengDB bin]$ ./dminit PATH=/data/dmdbms/data/DAMENG PAGE_SIZE=8 LOG_SIZE=500 DB_NAME=TEST INSTANCE_NAME=DMSERVER PORT_NUM=5327 SYSDBA_PWD=XXXXXXX
完成后,注册实例并配置自启动。
注册服务方法1:
cp $DM_HOME/bin/service_template/DmService /etc/rc.d/init.d/DmServiceDMSERVER
修改 DmServiceDMSERVER 文件, 修改 INI_PATH 值为 dm.ini 路径(必须),DM_HOME 设置为 dm 主程序安装路径(必须)
vi /etc/rc.d/init.d/DmServiceDMSERVER
DM_HOME="/dm7/dmdbms"
INI_PATH="/data/dmdbms/data/DAMENG/dm.ini"
授予脚本可执行权限
chmod 777 /etc/rc.d/init.d/DmServiceDMSERVER
注册实例服务并配置开启自启动
chkconfig add DmServiceDMSERVER
chkconfig DmServiceDMSERVER on
chkconfig list DmServiceDMSERVER
查看、启动、关闭实例服务
service DmServiceDMSERVER status
service DmServiceDMSERVER start
service DmServiceDMSERVER stop
注册服务方法2:
root用户:
[root@DaMengDB root]# cd /dm7/dmdbms/script/root/
[root@DaMengDB root]# ls
dm_service_installer.sh dm_service_uninstaller.sh root_installer.sh
[root@DaMengDB root]# ./dm_service_installer.sh -h
Usage: dm_service_installer.sh -t service_type [-p service_name_postfix] [-i ini_file] [-d dcr_ini_file] [-m open|mount] [-y dependent_service]
or dm_service_installer.sh [-s service_file_path]
or dm_service_installer.sh -h
-t 服务类型,包括dmimon,dmap,dmserver,dmwatch,dmrww,dmwmon,dmwatcher,dmmonitor,dmcss,dmcssm,dmasmsvr
-p 服务名后缀,对于dmimon,dmap服务类型无效
-i ini文件路径,对于dmimon,dmap服务类型无效
-d dmdcr.ini文件路径,只针对dmserver服务类型生效,可选
-m 设置服务器启动模式open或mount,只针对dmserver服务类型生效,可选
-y 设置依赖服务,此选项只针对systemd服务环境下的dmserver和dmasmsvr服务生效
-s 服务脚本路径,设置则忽略除-y外的其他参数选项
-h 帮助
[root@DaMengDB root]# ./dm_service_installer.sh -t dmserver -i /data/dmdbms/data/DAMENG/dm.ini -p DMSERVER
通过服务安装脚本,会自动注册到开机自启服务。
[root@DaMengDB root]# chkconfig --list|grep Dm*
查看、启动、关闭实例服务
service DmServiceDMSERVER status
service DmServiceDMSERVER start
service DmServiceDMSERVER stop
3.2 配置环境变量
vi .bash_profile
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/dm7/dmdbms/bin"
export DM_HOME="/dm7/dmdbms"
export PATH=$PATH:$DM_HOME/bin ###添加$DM_HOME/bin到PATH
$source .bash_profile
四、数据库卸载
1、已经存数据库,停止数据库,执行uninstall.sh
2、只安装了软件,可以直接执行uninstall.sh,脚本在软件安装目录下。
所有相关操作均有官方文档可以参考!
更多资讯请上达梦技术社区了解:https://eco.dameng.com