深圳网页设计网站制作,淄博建设网站,建立网站后还要钱吗,石家庄微信网站制作数据库安装注意事项
一、安装前
一些参数需要在数据库创建实例前找用户确认。
参数名参数掩码参数值备注数据页大小PAGE_SIZE32数据文件使用的页大小(缺省使用8K#xff0c;建议默认#xff1a;32)#xff0c;可以为 4K、8K、16K 或 32K 之一#xff0c;选择的页大小越大…数据库安装注意事项
一、安装前
一些参数需要在数据库创建实例前找用户确认。
参数名参数掩码参数值备注数据页大小PAGE_SIZE32数据文件使用的页大小(缺省使用8K建议默认32)可以为 4K、8K、16K 或 32K 之一选择的页大小越大则 DM 支持的元组长度也越大但同时间利用率可能下降。簇大小EXTENT_SIZE32数据文件使用的簇大小即每次分配新的段空间时连续的页数(缺省使用16页建议默认32)可选值16, 32, 64。大小写敏感CASE_SENSITIVE标识符大小写敏感(默认Y)取值Y/N1/0。0MYSQL开发当大小写不敏感时 系统不自动转换标识符的大小写在标识符比较时也不区分大小写。1Oracle开发当大小写敏感时小写的标识符应用双引号括起否则被转换为大写数据库字符集CHARSET/UNICODE_FLAG字符集选项(默认0)。 0 代表 GB18030 1 代表UTF-8 2 代表韩文字符集EUC-KRVARCHAR类型单位LENGTH_IN_CHARVARCHAR 类型对象的长度是否以字符为单位(默认0)。取值 0 或 10Oracle开发否所有 VARCHAR 类型对象的长度以字节为单位。1MYSQL开发是设置为以字符为单位时定义长度并非真正按照字符长度调整而是将存储长度值按照理论字符长度进行放大。所以会出现实际可插入字符数超过定义长度的情况这种情况也是允许的。同时存储的字节长度 8188 上限仍然不变也就是说即使定义列长度为8188 字符 其实际能插入的字符串占用总字节长度仍然不能超过 8188空格填充模式BLANK_PAD_MODE设置字符串比较时结尾空格填充模式是否兼容ORACLE (默认0)取值 0 或 1。**0 **不兼容1Oracle开发兼容兼容模式COMPATIBLE_MODE**0 **不兼容(默认)**1 **兼容SQL92标准**2 **部分兼容ORACLE**3 **部分兼容MS SQL SERVER**4 **部分兼容MYSQL**5 **兼容DM6**6 **部分兼容TERADATA**7 **部分兼容POSTGRES
Oracle和MYSQL参数配置区别
参数Oracle开发取值MYSQL开发取值CASE_SENSITIVE10LENGTH_IN_CHAR01BLANK_PAD_MODE10
1、初始化脚本
1.1 兼容MYSQL脚本
$ ./dminit path/dm/data CASE_SENSITIVE0 LENGTH_IN_CHAR1 BLANK_PAD_MODE0 CHARSET1 PORT_NUM5237 PAGE_SIZE32 EXTENT_SIZE321.2 兼容Oracle脚本
$ ./dminit path/dm/data CASE_SENSITIVE1 LENGTH_IN_CHAR0 BLANK_PAD_MODE1 CHARSET1 PORT_NUM5237 PAGE_SIZE32 EXTENT_SIZE32二、安装过程
1、操作系统参数检查
1.1 用户和用户组检查
1禁止使用root用户部署达梦数据库。
2dmdba用户密码禁止使用默认的“dmdba”。如果使用旧版本安装后需要修改dmdba用户的默认密码。
3同一项目中所有服务器dmdba用户、dinstall用户的gid和uid必须一致。 $ groupadd -g 3000 dinstall #创建用户组
$ useradd -g 3000 -u 2000 -m -d /home/dmdba -s /bin/bash dmdba
$ passwd dmdba # 修改密码查看命令
$ id dmdba
uid2000(dmdba) gid3000(dinstall) 组3000(dinstall)1.2 防火墙检查
数据库服务器都建议关闭防火墙以root运行命令。
1.2.1 Centos7/8系统关闭防火墙
永久关闭防火墙
$ systemctl disable firewalld1.3 关闭numa
NUMANon-Uniform Memory Access架构是为了解决多 CPU 下内存访问冲突即不再将整个物理内存作为一个整体而是根据不同的 CPU 区分不同的内存块如 2 颗 CPU 每颗 CPU 使用 64G 内存。当 NUMA 参数 zone_reclaim_mode 设置为 1 时内核将要求多路 CPU 尽量从距离较近的系统内存节点服务器的整体内存在 numa 架构下将被分成若干个节点分配内存而不是在整个服务器可访问内存的范围内进行内存分配。因此在较高内存占用压力下内存申请会触发内存频繁回收整理的机制严重影响系统整体性能长期处于内核态 sys 很高进而可能导致 SQL 卡顿问题的发生。
1.3.1 Centos7关闭方法
编辑 /etc/default/grub 文件如下图所示加上numaoff 使用grub2-mkconfig重新生成/etc/grub2.cfg 配置文件
$ sudo grub2-mkconfig -o /boot/grub2/grub.cfg重启计算机后验证numa是否关闭
$ dmesg | grep -i numa1.4 禁用透明大页
1.4.1 Cnetos7关闭方法
编辑文件/etc/rc.local并且给该文件执行权限添加如下内容
$ vi /etc/rc.localif test -f /sys/kernel/mm/transparent_hugepage/defrag; thenecho never /sys/kernel/mm/transparent_hugepage/defrag
fi
if test -f /sys/kernel/mm/transparent_hugepage/enabled; thenecho never /sys/kernel/mm/transparent_hugepage/enabled
fi重启系统并验证
$ cat /sys/kernel/mm/transparent_hugepage/enabled
always madvise [never] #关闭状态
$ cat /sys/kernel/mm/transparent_hugepage/defrag
always madvise [never] #关闭状态1.5 SELinux检查
SELinux 有 3 种模式分别是 EnforcingPermissive 和 Disabled 状态。
1️⃣Enforcing强制模式。代表 SELinux 在运行中且已经开始限制 domain/type 之间的验证关系
2️⃣Permissive宽容模式。代表 SELinux 在运行中不会限制 domain/type 之间的验证关系即使验证不正确进程仍可以对文件进行操作。如果验证不正确会发出警告。
3️⃣Disabled关闭模式。SELinux 并没有实际运行。
可以通过 setenforce 命令来设置前面两种状态而如果想修改为disable状态需要修改配置文件同时重启系统。Enforcing状态的值是1permissive状态是0因此设置为permissive命令为setenforce 0|1。
1.5.1 临时关闭SELinux
$ setenforce 01.5.2 临时开启SELinux
$ setenforce 11.5.3 查看SELinux状态
$ getenforce1.5.2 永久关闭SELinux
需修改配置文件/etc/selinux/config修改 SELINUXdisabled 注意修改 SELinux 永久关闭必须重启服务器才能生效。且永久关闭后不能通过 setenforce 1 命令临时打开。 1.6 环境变量profile参数检查
调整 dmdba 用户下的环境变量文件 .bash_profile。
(1) LD_LIBRARY_PATH 主要用于指定查找共享库动态链接库时除了默认路径之外的其他路径。
(2) PATH 环境变量定义了用于进行命令和程序查找的目录 PATH 中的目录使用冒号分隔。
(3) DM_HOME 定义达梦数据库的软件目录。
$ su - dmdba
$ vi .bash_profile export DM_HOME/dm8
export LD_LIBRARY_PATH$LD_LIBRARY_PATH:$DM_HOME/bin
export PATH$PATH:$DM_HOME/bin:$DM_HOME/tool1.7 操作系统资源限制检查(limits.conf)
在Linux、Solaris、AIX 和 HP-UNIX 等系统中操作系统默认会对程序使用操作系统资源进行限制。为了使达梦数据库能够正常运行 建议用户检查 ulimit 的参数。
首先用户使用 dmdba用户进行登录运行命令ulimit -a进行查询。
$ 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) 7827
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) 16384
cpu time (seconds, -t) unlimited
max user processes (-u) 4096
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited(1) core file size 建议设置为 unlimited。并将 core 文件目录放到大的空间目录存放。售后
dmdba soft core unlimited
dmdba hard core unlimited一般情况下core文件是默认生成到当前运行程序的同目录下可通过如下命令查看core文件生成路径及名称 $ cat /proc/sys/kernel/core_pattern ##查看core文件生成路径若出现默认路径空间不足的情况时需要在原路径新增磁盘或重新指定core文件生成路径。通过以下命令指定core文件生成路径 ##将core文件统一生成到/corefile目录下产生的文件名为core-命令名-pid-时间戳这个文件是即时生效不需要重启系统
$ echo /corefile/core-%e-%p-%t /proc/sys/kernel/core_pattern
##修改完成后执行如下命令检查修改是否成功
$ cat /proc/sys/kernel/core_pattern通过systemctl或者systemd service方式设定随机自启动的数据库服务 其能打开的最大文件描述符、proc数量等不受limits.conf控制需要修改/etc/systemd/system.conf文件。参考修改system.conf文件 (2) data seg size建议设置为1048576以上或unlimited此参数过小将导致数据库启动失败。用vim打开配置文件limits.conf在下面加两行。
dmdba soft data unlimited
dmdba hard data unlimited(3) file size建议设置unlimited(无限制)此参数过小导致数据库安装或初始化失败也是在/etc/security/limits.conf文件中配置。
dmdba soft fsize unlimited
dmdba hard fsize unlimited(4) open files建议设置为 65536 以上或 unlimited。用vim打开配置文件vi /etc/security/limits.conf 在下面加两行。
dmdba soft nofile 65536
dmdba hard nofile 65536(5) virtual memory建议设置为1048576以上或 unlimited此参数过小将导致数据库启动失败。
(6) max user processes 最大线程数这个参数建议修改为10240-65536之间的值。用vim打开配置文件vi /etc/security/limits.conf 在下面加两行。
dmdba soft nproc 10240
dmdba hard nproc 10240(7) nice 设置优先级值越小表示进程“优先级”越高。用vim打开配置文件vi /etc/security/limits.conf 在下面加两行。
dmdba soft nice 0
dmdba hard nice 0(8)地址空间限制设置为ulimit。用vim打开配置文件vi /etc/security/limits.conf 在下面加两行。
dmdba soft as unlimited
dmdba soft as unlimited1.8 调整system.conf 参数
system.conf 为系统和服务管理的配置文件当运行系统实例时systemd 将读取这个配置文件system.conf相反读取user.conf。
达梦数据库服务注册为系统服务的进程如通过systemctl或者service方式设定随机自启动的数据库服务其能打开的最大文件描述符、proc数量等不受 limits.conf 控制需要修改 /etc/systemd/system.conf 文件。
1.8.1 修改system.conf 文件
$ vi /etc/systemd/system.conf# 修改下面两个配置
DefaultLimitFSIZEunlimited
DefaultLimitDATAunlimited
DefaultLimitCOREunlimited
DefaultLimitNOFILE65536
DefaultLimitASunlimited
DefaultLimitNPROC10240
DefaultLimitNICE0**脚本**验证参数配置情况
## 验证参数配置情况
cat /etc/systemd/system.conf|grep -v #注意保存退出后需要重启服务器才能生效。 1.8.2 检验配置是否生效
在数据库运行之后可通过cat /proc/pid号/limits检查实际资源限制是否生效
找到使用dmdba用户运行的DmAPService服务可以得知进程号**972**
$ cat /proc/972/limits
Limit Soft Limit Hard Limit Units
Max cpu time unlimited unlimited seconds
Max file size unlimited unlimited bytes
Max data size unlimited unlimited bytes
Max stack size 8388608 unlimited bytes
Max core file size unlimited unlimited bytes
Max resident set unlimited unlimited bytes
Max processes 100000 100000 processes
Max open files 100000 100000 files
Max locked memory 65536 65536 bytes
Max address space unlimited unlimited bytes
Max file locks unlimited unlimited locks
Max pending signals 7827 7827 signals
Max msgqueue size 819200 819200 bytes
Max nice priority 0 0
Max realtime priority 0 0
Max realtime timeout unlimited unlimited us切换到dmdba手动运行dmserver得知进程号为**1534**
$ cat /proc/1534/limits
Limit Soft Limit Hard Limit Units
Max cpu time unlimited unlimited seconds
Max file size unlimited unlimited bytes
Max data size unlimited unlimited bytes
Max stack size 8388608 unlimited bytes
Max core file size 4194304 4194304 bytes
Max resident set unlimited unlimited bytes
Max processes 10240 10240 processes
Max open files 32768 32768 files
Max locked memory 65536 65536 bytes
Max address space unlimited unlimited bytes
Max file locks unlimited unlimited locks
Max pending signals 7827 7827 signals
Max msgqueue size 819200 819200 bytes
Max nice priority 20 20
Max realtime priority 0 0
Max realtime timeout unlimited unlimited us
1.9 内存参数overcommit_memory和swappiness参数检查
1.9.1 内存参数-overcommit_memory
检查参数
cat /proc/sys/vm/overcommit_memory临时修改
echo 0 /proc/sys/vm/overcommit_memory永久修改
# 编辑配置文件
$ vim /etc/sysctl.conf
# 添加内容
vm.overcommit_memory0
# 配置生效
$ sysctl -p1.9.2 swappiness
为避免操作系统内存因大量使用SWAP内存而降低数据库性能在安装部署时需检查设置相关变量来控制系统对swap的使用倾向从而使系统最大发挥内存性能。
检查参数
cat /proc/sys/vm/swappiness永久修改
# 编辑配置文件
$ vim /etc/sysctl.conf
# 添加内容,内存小就设置为1内存够就设置为10
vm.swappiness10
# 配置生效
$ sysctl -p1.10 关闭swap分区
在 Linux 下SWAP 的作用类似 Windows 系统下的“虚拟内存”。当物理内存不足时拿出部分硬盘空间当 SWAP 分区虚拟成内存使用从而解决内存容量不足的情况。 注意 Swap 的关闭需要视情况而定建议内存充裕时关闭内存太小不关闭。128G内存以上的分区swap直接关闭。 查看swap是否开启
$ swapon --show ## 有输出表示swap有开启
NAME TYPE SIZE USED PRIO
/dev/dm-1 partition 2G 0B -2临时关闭
$ swapoff -a永久关闭
$ cat /etc/fstab
/dev/mapper/centos-root / xfs defaults 0 0
UUIDcf42710a-173e-49a2-a920-cc38127674a7 /boot xfs defaults 0 0
/dev/mapper/centos-swap swap swap defaults 0 0## 注释掉swap分区那一行并且查看注释结果
$ sed -ri s/.*swap.*/#/ /etc/fstab cat /etc/fstab
/dev/mapper/centos-root / xfs defaults 0 0
UUIDcf42710a-173e-49a2-a920-cc38127674a7 /boot xfs defaults 0 0
#/dev/mapper/centos-swap swap swap defaults 0 01.11 文件系统格式检查
目前上线评审工具检查数据库安装目录和数据目录两个目录的文件系统格式工具推荐xfs或者ext4优先xfs。
检查格式命令
$ lsblk -f
NAME FSTYPE LABEL UUID MOUNTPOINT
sda
├─sda1 xfs cf42710a-173e-49a2-a920-cc38127674a7 /boot
└─sda2 LVM2_member QLhn2d-jc4X-27Kd-D9nJ-hDTD-qNK2-m0Ezw4├─centos-root xfs 4a9f14ed-d69f-4133-b420-19261e237ffa /└─centos-swap swap b806a8fc-76ef-4324-97e6-490abfa4c1d5三、安装后
1 参数优化
数据库实例创建完成后请使用“参数自动优化脚本工具-AutoParaAdj3.8_dm8.zip”配置参数优化。
2 统计信息收集
数据库实例创建后一般要配置定时收集统计信息作业计划可以前台配置也可以通过以下脚本配置。
## 这行代码只允许执行一次
SP_INIT_JOB_SYS(1);call SP_CREATE_JOB(statistics,1,0,,0,0,,0,);
call SP_JOB_CONFIG_START(statistics);
call SP_JOB_SET_EP_SEQNO(statistics, 0);
call SP_ADD_JOB_STEP(statistics, statistics1, 0, begin
for rs in (select sf_set_session_para_value(HAGR_HASH_SIZE,(select cast(
case when max(table_rowcount(owner,table_name))(select max_value from v$dm_ini
where para_nameHAGR_HASH_SIZE) and max(table_rowcount(owner,table_name))(
select min_value from v$dm_ini where para_NameHAGR_HASH_SIZE) then
max(table_rowcount(owner,table_name)) when max(table_rowcount(owner,table_name))(
select min_value from v$dm_ini where para_NameHAGR_HASH_SIZE) then
(select min_value from v$dm_ini where para_NameHAGR_HASH_SIZE) else
(select max_value from v$dm_ini where para_NameHAGR_HASH_SIZE) end as bigint)
from dba_tables where owner||NAME||)); sql1,
DBMS_STATS.GATHER_SCHEMA_STATS(||NAME||,10,TRUE,FOR ALL COLUMNS SIZE AUTO); sql2
from SYS.SYSOBJECTS where TYPE$SCH ) loop
execute immediate rs.sql1;
execute immediate rs.sql2;
end loop;
end;, 0, 0, 0, 0, NULL, 0);
call SP_ADD_JOB_SCHEDULE(statistics, stat_cycle, 1, 2, 1, 64, 0, 00:00:00, NULL, 2023-08-30 01:01:01, NULL, );
call SP_ADD_JOB_SCHEDULE(statistics, stat_once, 1, 0, 0, 0, 0, NULL, NULL, 2024-01-14 14:09:48, NULL, );
call SP_JOB_CONFIG_COMMIT(statistics);3 备份配置
数据无价备份很重要一定要做可以前台配置也可以通过以下脚本配置。
备份策略 全量备份每周六 23 点全备其中有1分钟后的一次性全备调度执行完成后检查备份是否成功。 增量备份每周除周六外每天 23 点增量备份 备份定期删除每天 23:30 删除 15 天前备份
以下备份脚本中的备份路径/dmdata/dmbak/根据实际情况修改
/*全量备份*/
call SP_CREATE_JOB(bakfull,1,0,,0,0,,0,);
call SP_JOB_CONFIG_START(bakfull);
call SP_JOB_SET_EP_SEQNO(bakfull, 0);
call SP_ADD_JOB_STEP(bakfull, bakfull, 6, 01020000/dmdata/dmbak/, 0, 0, 0, 0, NULL, 0);
call SP_ADD_JOB_SCHEDULE(bakfull, bakfull_cycle, 1, 2, 1, 64, 0, 23:00:00, NULL, 2023-08-30 01:01:01, NULL, );
call SP_ADD_JOB_SCHEDULE(bakfull, bakfull_once, 1, 0, 0, 0, 0, NULL, NULL, sysdate1/1440, NULL, );
call SP_JOB_CONFIG_COMMIT(bakfull);/*增量备份*/
call SP_CREATE_JOB(bakincr,1,0,,0,0,,0,);
call SP_JOB_CONFIG_START(bakincr);
call SP_JOB_SET_EP_SEQNO(bakincr, 0);
call SP_ADD_JOB_STEP(bakincr, bakincr, 6, 41010000/dmdata/dmbak/|/dmdata/dmbak/, 0, 0, 0, 0, NULL, 0);
call SP_ADD_JOB_SCHEDULE(bakincr, bakincr_cycle, 1, 2, 1, 63, 0, 23:00:00, NULL, 2023-08-30 01:01:01, NULL, );
call SP_JOB_CONFIG_COMMIT(bakincr);/*定期删除*/
call SP_CREATE_JOB(delbak,1,0,,0,0,,0,);
call SP_JOB_CONFIG_START(delbak);
call SP_JOB_SET_EP_SEQNO(delbak, 0);
call SP_ADD_JOB_STEP(delbak, delbak, 0, sf_bakset_backup_dir_add(DISK,/dmdata/dmbak/);call sp_db_bakset_remove_batch(DISK,now()-15);, 1, 2, 0, 0, NULL, 0);
call SP_ADD_JOB_SCHEDULE(delbak, delbak, 1, 1, 1, 0, 0, 23:30:00, NULL, 2023-08-30 01:01:01, NULL, );
call SP_JOB_CONFIG_COMMIT(delbak);4 重启机器
上面的操作很多都需要重启机器以后才会生效哦