达梦数据库批量安装实例

大家好,这个是一键部署DM数据库软件及初始化和注册多个实例的shell脚本,只需要把DM数据库的ISO文件放在/opt目录内,以root身份执行此脚本,根据提示输入镜像名称、数据库软件安装地址以及数据库实例的相关信息,剩下的交给脚本就可以了。

用root用户执行:

#!/bin/bash
echo "创建DM用户及目录"
read -p "请输入数据库服务安装目录: " shome
read -p "请输入挂载DM镜像名称: " dmiso
rm -f /tmp/dm.xml
groupadd dinstall 
useradd -g dinstall -m -d /home/dmdba -s /bin/bash dmdba
echo Dameng123 | passwd --stdin dmdba
mkdir $shome /opt/tmp /mnt/dm
chown dmdba:dinstall -R /home/data /dm8 /opt/tmp 
mount /opt/$dmiso /mnt/dm
echo dmdba soft nofile 20480 >>/etc/security/limits.conf
echo dmdba hard nofile 65536 >>/etc/security/limits.conf
echo root soft nofile 20480 >>/etc/security/limits.conf
echo root hard nofile 65536 >>/etc/security/limits.conf

echo "准备DM数据库静默安装文件.xml"
#read -p "请输入数据库实例存放目录: " ihome
echo "<?xml version=\"1.0\"?>" >> /tmp/dm.xml
echo "<DATABASE>" >> /tmp/dm.xml
echo "<LANGUAGE>zh</LANGUAGE>" >> /tmp/dm.xml
echo "<TIME_ZONE>+08:00</TIME_ZONE>" >> /tmp/dm.xml
echo "<KEY></KEY>" >> /tmp/dm.xml
echo "<INSTALL_TYPE>0</INSTALL_TYPE>" >> /tmp/dm.xml
echo "<INSTALL_PATH>$shome</INSTALL_PATH>" >> /tmp/dm.xml
echo "<INIT_DB>n</INIT_DB>" >> /tmp/dm.xml
echo "</DATABASE>" >> /tmp/dm.xml

if [ -e /tmp/dm.xml ];then
	echo "数据库静默安装文件准备完毕,开始安装....."
	/mnt/dm/DMInstall.bin -q /tmp/dm.xml
else
	echo "数据库静默安装文件检测失败,请重新配置....."
	exit
fi	
echo "开始初始化数据库实例"
read -p "请输入数据库名称: " sname
read -p "请输入实例名称: " iname
read -p "请输入数据库起始端口: " port
read -p "请输入初始化数据库实例的数量: " inum

for (( i=1; i <=$inum; i++ ))
do
 su - dmdba -c "$shome/bin/dminit path=$shome/data db_name=$sname$i  instance_NAME=$iname$i  port_num=$[$port+$i]" >/dev/null 2>&1
 echo "DM数据库$iname$i初始化完成"
done
echo "开始注册DM数据库实例"
for (( i=1; i <=$inum; i++ ))
do
 $shome/script/root/dm_service_installer.sh -t dmserver -p $iname$i -dm_ini  $shome/data/$iname$i/dm.ini >/dev/null 2>&1
 echo "DM数据库实例$iname$i注册完成"
done
echo "脚本执行完成,数据库安装路径$shome,实例安装路径$shome/data,共初始化了$inum个实例"
echo "实例信息:"
for (( i=1; i <=$inum; i++ ))
do
 echo "$iname$i:$[$port+$i] "
done

执行结果如下:

[root@localhost ~]# sh c.sh
创建DM用户及目录
请输入数据库服务安装目录: /dmdbs
请输入挂载DM镜像名称: dm8_20220701_x86_rh6_64_ent_8.1.2.128.iso
groupadd:“dinstall”组已存在
useradd:用户“dmdba”已存在
更改用户 dmdba 的密码 。
passwd:所有的身份验证令牌已经成功更新。
mkdir: 无法创建目录 “/opt/tmp”: 文件已存在
mkdir: 无法创建目录 “/mnt/dm”: 文件已存在
mount: /mnt/dm: /opt/dm8_20220701_x86_rh6_64_ent_8.1.2.128.iso 已经挂载.
准备DM数据库静默安装文件.xml
数据库静默安装文件准备完毕,开始安装.....
解压安装程序.........
2022-08-25 10:12:45
[INFO] 安装达梦数据库...
2022-08-25 10:12:45
[INFO] 安装 基础 模块...
2022-08-25 10:12:48
[INFO] 安装 服务器 模块...
2022-08-25 10:12:49
[INFO] 安装 客户端 模块...
2022-08-25 10:12:52
[INFO] 安装 驱动 模块...
2022-08-25 10:12:55
[INFO] 安装 手册 模块...
2022-08-25 10:12:56
[INFO] 安装 服务 模块...
2022-08-25 10:12:58
[INFO] 移动日志文件。
2022-08-25 10:12:58
[INFO] 更改安装目录权限完成。
2022-08-25 10:12:59
[INFO] 正在启动DmAPService服务...
2022-08-25 10:13:00
[INFO] 启动DmAPService服务成功。
2022-08-25 10:13:00
[INFO] 安装达梦数据库完成。
开始初始化数据库实例
请输入数据库名称: PROD
请输入实例名称: PROD
请输入数据库起始端口: 11233
请输入初始化数据库实例的数量: 5
DM数据库PROD1初始化完成
DM数据库PROD2初始化完成
DM数据库PROD3初始化完成
DM数据库PROD4初始化完成
DM数据库PROD5初始化完成
开始注册DM数据库实例
DM数据库实例PROD1注册完成
DM数据库实例PROD2注册完成
DM数据库实例PROD3注册完成
DM数据库实例PROD4注册完成
DM数据库实例PROD5注册完成
脚本执行完成,数据库安装路径/dmdbs,实例安装路径/dmdbs/data,共初始化了5个实例
实例信息:
PROD1:11234
PROD2:11235
PROD3:11236
PROD4:11237
PROD5:11238

由此可见数据库软件以及实例已经安装完成,因为我此前执行过此脚本,所以dmdba用户已经创建过了,可以忽略已存在的信息,如果有对初始化的数据库参数有要求,可以在代码第44行,su - dmdba -c "$shome/bin/dminit,初始化实例的命令里添加参数,定制化自己的实例。下面的内容是DM数据库实例时的可选初始化参数,供大家参考。

initdb V8
db version: 0x7000c
file dm.key not found, use default license!
License will expire on 2023-06-30
version: 03134283904-20220630-163817-20005
格式: ./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],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                 页检查模式(0),可选值:0/1/2
PAGE_HASH_NAME             设置页检查HASH算法
EXTERNAL_CIPHER_NAME       设置默认加密算法
EXTERNAL_HASH_NAME         设置默认HASH算法
EXTERNAL_CRYPTO_NAME       设置根密钥加密引擎
RLOG_ENCRYPT_NAME          设置日志文件加密算法,若未设置,则不加密
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                       打印帮助信息

有需要批量创建达梦数据库实例的小伙伴们可以参考此脚本。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值