达梦数据库统一化安装部署需求,定制统一部署规范,其中包含标准化安装,实例创建,参数优化,归档和备份。
说明:该文档中涉及到的软件和数据文件路径,请与实际路径保持严格一致。
本文档介绍单机及各种集群详细的部署过程。
原则上,不建议在生产环境上部署单机环境,通常会根据实际情况部署成集群方式。
若没关闭则需要关闭一下,并且禁止防火墙开机自启动,如果不想关闭防火墙,可以设置端口白名单
–检查防火墙情况
systemctl status firewalld #查看防火墙状态
systemctl stop firewalld #关闭防火墙
systemctl disable firewalld #禁止防火墙开机自启动
–检查selinux情况
sestatus #查看selinux情况
vim /etc/sysconfig/selinux
把selinux=enforcing修改成selinux=disbaled #禁止selinux开机自启动
执行以下命令,新建用户组 dinstall。
groupadd dinstall -g 2001
groupadd dinstall
执行以下命令,新建用户 dmdba。
useradd -G dinstall -m -d /home/dmdba -s /bin/bash -u 2001 dmdba
执行以下命令,修改 dmdba 用户密码。
echo xxxx | passwd --stdin dmdba #修改dmdba用户的密码,xxxx处换成希望修改的密码
mkdir -p /dmdata/dmdb --数据目录–
mkdir -p /dmdata/dmarch/arch --归档目录–
mkdir -p /dmdata/dmbak/bak --备份目录–
mkdir -p /dmdata/dmlog/log --日志目录–
chown -R dmdba:dinstall /dmdata --授权dmdata给dmdba用户–
执行以下命令,修改 dmdba 用户资源限制。
vim /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
此外需要检查/etc/security/limits.d/目录下是否有其他限制资源的配置文件,如果有也需要修改。
1.使用root用户挂载数据库软件的iso文件
mount -o loop dm8_20200930_x86_rh6_64_ent_8.1.1.134.iso /dmiso
2.使用dmdba用户安装软件
su – dmdba --切换dmdba用户
cd /dmiso --进入解压目录
./DMInstall.bin -i --进入安装
选择安装程序的语言 c/C 为中文,e/E 为英文。
提示是否安装 key 文件,输入 N 跳过。
选择时区,21 即东 8 区。
选择安装类型,默认典型安装(包含所有内容)。
选择软件安装目录为/ dmdbms
确认安装
安装完成提示使用root执行脚本:
/ dmdbms/script/root/root_installer.sh
进入目录 cd /home/dmdba/dmdbms/bin,执行以下命令:
./dminit path=/dmdata/dmdb db_name=DAMENG instance_name=DMSERVER page_size=16 extent_size=16 case_sensitive=1 charset=1 port_num=5236
注意:
根据实际的需求修改参数的设置,但要注意page_size、extent_size、case_sensitive、charset这四个参数在初始化的时候就必须要规划好,因为一旦初始化完成后,这四个参数将不能再修改了,若想修改则只能再重新初始化一个新的实例。其他参数可在初始化完成后,通过修改安装目录下dm.ini文件中的参数进行修改。有些参数初始化的时候没有手动设置,初始化的时候系统也会给定一个默认的值,具体的可以通过命令./dminit help查看。
(1)前台启动服务
./dmserver /dmdata/dmdb/数据库名称/dm.ini
当看到前台页面出现类似SYSTEM IS READY字样后,表示数据库启动成功,然后直 接输入exit退出前台启动,此步骤是为了验证数据库服务是否正常
(2)注册后台服务
注册数据库实例服务
cd /home/dmdba/dmdbms/script/root
./dm_service_installer.sh -t dmserver -p _dmdba -dm_ini /dmdata/dmdb/DAMENG/dm.ini
以服务方式启动
cd /home/dmdba/dmdbms/bin
./DmServer_dmdba start
关闭服务
./DmServer_dmdba stop
dmdba用户下执行以下命令:
./disql SYSDBA/SYSDBA@localhost:5236
生产环境必须开启归档日志,且必须指定 SPACE_LIMIT 参数(MB),限制归档日志保留量。例如:开启归档并限制归档空间为 100 G(按实际存储空间给合适的值),如下所示:
alter database mount;
alter database add archivelog 'dest=/dm8/arch ,TYPE=local,FILE_SIZE=1024,SPACE_LIMIT=102400';
alter database archivelog;
alter database open;
备份时间 | 备份周期 | 备份时间 |
---|---|---|
全量备份 | 每周 | 每周六23:30点 |
增量备份 | 每天 | 除周六外每天 23:30 点 |
删除备份 | 两周 | 每天 23 点 30 |
登录数据库执行以下命令,创建作业系统表
SP_INIT_JOB_SYS(1);
全量备份(每周六 23:30 点全备):其中有1分钟后的一次性全备调度,执行完成后检查备份是否成功。
call SP_CREATE_JOB('bakfull',1,0,'',0,0,'',0,'');
call SP_JOB_CONFIG_START('bakfull');
call SP_ADD_JOB_STEP('bakfull', 'bakfull', 6, '01000200/dm8/dmbak', 0, 0, 0, 0, NULL, 0);
call SP_ADD_JOB_SCHEDULE('bakfull', 'bakfull', 1, 2, 1, 64, 0, '23:30:00', NULL, '2022-02-28 15:15:49', NULL, '');
call SP_JOB_CONFIG_COMMIT('bakfull');
增量备份(每周除周六外每天 23:30 点增量备份):
call SP_CREATE_JOB('bakincr',1,0,'',0,0,'',0,'bakincr');
call SP_JOB_CONFIG_START('bakincr');
call SP_ADD_JOB_STEP('bakincr', 'bakincr', 6, '11000000/dm8/dmbak|/dm8/dmbak', 0, 0, 0, 0, NULL, 0);
call SP_ADD_JOB_SCHEDULE('bakincr', 'bakincr', 1, 2, 1, 63, 0, '23:30:00', NULL, '2022-02-28 15:33:02', NULL, '');
call SP_JOB_CONFIG_COMMIT('bakincr');
备份定期删除(每天 23:30 删除 14 天前备份):
call SP_CREATE_JOB('delbak',1,0,'',0,0,'',0,'');
call SP_JOB_CONFIG_START('delbak');
Call SP_ADD_JOB_STEP('delbak','bak1',0, 'SF_BAKSET_BACKUP_DIR_ADD(''DISK'',''/dm8/dmbak'');call sp_db_bakset_remove_batch(''DISK'',now()-14);', 1, 2, 0, 0, NULL, 0);
call SP_ADD_JOB_SCHEDULE('delbak', 'del01', 1, 1, 1, 0, 0, '23:30:00', NULL, '2020-11-02 14:48:41', NULL, '');
call SP_JOB_CONFIG_COMMIT('delbak');
另外添加自动收集统计信息的任务(每周6凌晨1点开始收集)
call SP_CREATE_JOB('statistics',1,0,'',0,0,'',0,'');
call SP_JOB_CONFIG_START('statistics');
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_Name=''''HAGR_HASH_SIZE'''') and max(table_rowcount(owner,table_name))>=(
select min_value from v$dm_ini where para_Name=''''HAGR_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_Name=''''HAGR_HASH_SIZE'''') then
(select min_value from v$dm_ini where para_Name=''''HAGR_HASH_SIZE'''') else
(select max_value from v$dm_ini where para_Name=''''HAGR_HASH_SIZE'''') end as bigint)
from dba_tables where owner=''''''||NAME||''''''));''
sql1,''DBMS_STATS.GATHER_SCHEMA_STATS(''''''||NAME||'''''',100,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', 'statistics1', 1, 2, 1, 64, 0, '01:00:00', NULL, '2021-06-09 22:54:37', NULL, '');
call SP_JOB_CONFIG_COMMIT('statistics');
登录数据库执行AutoparaAdj2.5_xxx.sql脚本,脚本会更新在公司综合管理平台->工具管理中,请获取最新脚本。
如果服务器上需要创建多个实例,请调整每个实例占用物理内存的百分比,再执行脚本。
注意,执行完成需要重启数据库生效。
切换到/dmdata/DAMENG/目录下,执行vi sqllog.ini(记录1.5s以上sql),修改内容如下:
BUF_TOTAL_SIZE = 10240
BUF_SIZE = 1024
BUF_KEEP_CNT = 6
[SLOG_ALL]
FILE_PATH = /sqllog
PART_STOR = 1
SWITCH_MODE = 2
SWITCH_LIMIT = 512
ASYNC_FLUSH = 1
FILE_NUM = 10
ITEMS = 0
SQL_TRACE_MASK = 7:14:15:22:24:25:26:27:28
MIN_EXEC_TIME = 1500
USER_MODE = 0
USERS =
备注:SQL_TRACE_MASK请按实际需求配置。如果在服务器启动过程中,修改了sqllog.ini文件。修改之后的文件,只要调用过SP_REFRESH_SVR_LOG_CONFIG() 就会生效。
至此,DM数据库单机安装部署结束
https://eco.dameng.com