DM8一键安装脚本

简介: DM8一键安装脚本

一、环境准备

database OS
DM Database Server 64 V8 CentOS Linux release 7.7.1908 (Core)

二、安装包和脚本准备

  1. 链接: https://pan.baidu.com/s/1a-Yy6mUv-18xdN_v8BIoxw
  2. 提取码: eshp

将下载的安装包和脚本放至服务器任意位置,赋予X权限,执行脚本,按提示输入安装目录和自定义端口即可。

  1. [root@mydm ~]#sh -x dm8_single_install.sh

三、脚本分享

  1. #! /bin/bash
  2. echo -e "\n\n****** 开始安装DM8******\n\n"
  3. # 创建DM数据库镜像目录和安装目录
  4. mkdir -p /dm8_setup/iso
  5. mkdir p /dm
  6. # 获取当前所在目录位置
  7. current_dir=$(pwd)
  8. echo "当前所在目录位置: $current_dir"
  9. # 目标路径
  10. target_dir="/dm8_setup/iso"
  11. # 检查目标路径是否存在,如果不存在则创建
  12. if [ ! -d "$target_dir" ]; then
  13.    mkdir -p "$target_dir"
  14.    echo "已创建目录: $target_dir"
  15. fi
  16. # 移动当前目录下的所有文件到目标路径
  17. mv -f $current_dir/* $target_dir
  18. echo "已将当前目录下所有文件移动至 $target_dir"
  19. # mount iso file
  20. #read -p "Please input iso file name >" iso_name
  21. iso_name="dm8_20240408_x86_rh7_64.iso"
  22. mount /dm8_setup/iso/${iso_name} /mnt -o loop &>/dev/null
  23. if [ $? -ne 0 ]; then
  24.  echo "cdrom has mount!please umount and continue setup."
  25.  exit
  26. fi

  27. # input setup base dir
  28. read -p "Please input setup base dir >" dm_base
  29. if [ ! -d "$dm_base" ]; then
  30.    mkdir -p "$dm_base"
  31. fi

  32. if [ "$(ls -A $dm_base)" ]; then
  33.    echo "$dm_base is not empty!"
  34.    exit
  35. fi

  36. # 自定义端口号
  37. read -p "Please input setup port num(default 5236) >" port_num
  38. #if [ "$(netstat -tpnl | grep $port_num)" ]; then
  39. #  echo "$port_num is used"
  40. #  exit
  41. #fi
  42. # modify /etc/hosts file
  43. hostnamectl set-hostname mydm
  44. public_ip=$(hostname -I| grep -o -e '[0-9]\{1,3\}.[0-9]\{1,3\}.[0-9]\{1,3\}.[0-9]\{1,3\}' |head -n 1)
  45. node_name=$(hostname)
  46. echo -e "${public_ip} ${node_name}">> /etc/hosts
  47. groups=(dinstall) # install group
  48. group_start_id=50000 # specify start id of group

  49. setup_dir=${dm_base}/dbms
  50. init_db_dir=${dm_base}/data
  51. init_rlog_dir=${dm_base}/log
  52. db_name=PROD
  53. instance_name=PROD
  54. ctl_path=$init_db_dir"/"$db_name
  55. log_path=$init_rlog_dir"/"$db_name
  56. page_size=16
  57. extent_size=16
  58. log_size=256
  59. case_sensitive=y
  60. charset=0
  61. length_in_char=0
  62. sysdba_pwd=SYSDBA

  63. # create dm soft dirs and grant privlieges
  64. mkdir -p ${dm_base}/dbms
  65. mkdir -p ${dm_base}/data
  66. mkdir -p ${dm_base}/log
  67. mkdir -p ${dm_base}/arch
  68. mkdir -p ${dm_base}/bak
  69. mkdir -p ${dm_base}/script

  70. # create group of required with dmdba user
  71. function create_group() {
  72.  g_id=${group_start_id}
  73.  for g_name in ${groups[*]}
  74.  do
  75.    groupadd -g $((g_id++)) ${g_name} &>/dev/null
  76.  done

  77.  for line in $(cat /etc/group | awk -F: '$3>=50000 && $3<=50010')
  78.  do
  79.    OLD_IFS="$IFS"
  80.    IFS=":"
  81.    segs=($line)
  82.    echo "Group ${segs[0]} created successful!"
  83.    IFS="$OLD_IFS"
  84.  done
  85. }
  86. function del_group() {
  87.   del_gn=(`cat /etc/group | awk -F: '$3>50000 && $3 <50000{print $1}' | xargs`)
  88.   for gn in ${del_gn[*]}
  89.   do
  90.     groupdel $gn
  91.   done
  92. }
  93. # $1:user name
  94. # $2:user id
  95. # $3:group name
  96. function create_user() {
  97.  $(id "$1" &>/dev/null)
  98.  if (($?!=0)); then
  99.    $(useradd -u "$2" -g "$3"  "$1" ; echo "dmdba" | passwd --stdin $1 &>/dev/null)
  100.    echo "$1 user created! password is dmdba"
  101.  else
  102.    echo "user has existed!"
  103.  fi
  104. }
  105. # create groups
  106. create_group
  107. # create user for install
  108. create_user dmdba 51000 dinstall
  109. chown -R dmdba:dinstall /dm
  110. chmod -R 775 /dm
  111. # modify resources parameter
  112. echo "dmdba soft nproc 16384
  113. dmdba hard nproc 16384
  114. dmdba soft nofile 16384
  115. dmdba hard nofile 65536
  116. dmdba soft stack 16384
  117. dmdba hard stack 32768" >> /etc/security/limits.conf
  118. # close firewalld
  119. systemctl stop firewalld.service &>/dev/null
  120. systemctl disable firewalld.service &>/dev/null
  121. # disable selinux
  122. sed -r -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
  123. setenforce 0 &>/dev/null
  124. cat << EOF > ${dm_base}/script/silent_setup.xml
  125. <?xml version="1.0"?>
  126. <DATABASE>
  127. <LANGUAGE>en</LANGUAGE>
  128. <TIME_ZONE>+08:00</TIME_ZONE>
  129. <KEY></KEY>
  130. <INSTALL_TYPE>0</INSTALL_TYPE>
  131. <INSTALL_PATH>${setup_dir}</INSTALL_PATH>
  132. <INIT_DB>y</INIT_DB>
  133. <DB_PARAMS>
  134. <PATH>${init_db_dir}</PATH>
  135. <DB_NAME>${db_name}</DB_NAME>
  136. <INSTANCE_NAME>${instance_name}</INSTANCE_NAME>
  137. <PORT_NUM>${port_num}</PORT_NUM>
  138. <CTL_PATH>${setup_dir}/${db_name}/dm.ctl</CTL_PATH>
  139. <LOG_PATHS>
  140.  <LOG_PATH>${init_rlog_dir}/${db_name}/redo01.log</LOG_PATH>
  141.  <LOG_PATH>${init_rlog_dir}/${db_name}/redo02.log</LOG_PATH>
  142. </LOG_PATHS>
  143. <EXTENT_SIZE>${extent_size}</EXTENT_SIZE>
  144. <PAGE_SIZE>${page_size}</PAGE_SIZE>
  145. <LOG_SIZE>${log_size}</LOG_SIZE>
  146. <CASE_SENSITIVE>Y</CASE_SENSITIVE>
  147. <CHARSET>0</CHARSET>
  148. <LENGTH_IN_CHAR>0</LENGTH_IN_CHAR>
  149. <TIME_ZONE>+08:00</TIME_ZONE>
  150. </DB_PARAMS>
  151. <CREATE_DB_SERVICE>n</CREATE_DB_SERVICE>
  152. <STARTUP_DB_SERVICE>n</STARTUP_DB_SERVICE>
  153. </DATABASE>
  154. EOF

  155. chown dmdba:dinstall /dm/script/silent_setup.xml
  156. su - dmdba -c "/mnt/DMInstall.bin -q /dm/script/silent_setup.xml"
  157. ${setup_dir}/script/root/root_installer.sh
  158. ${setup_dir}/script/root/dm_service_installer.sh -t dmserver -p ${db_name} -dm_ini ${init_db_dir}/${db_name}/dm.ini
  159. cat << EOF >> /home/dmdba/.bash_profile
  160. DM_HOME=${setup_dir}
  161. export LD_LIBRARY_PATH=\$LD_LIBRARY_PATH:\${DM_HOME}/bin
  162. export PATH=\$PATH:\${DM_HOME}/bin
  163. EOF
  164. su - dmdba -c "source /home/dmdba/.bash_profile"
  165. su - dmdba -c "${setup_dir}/bin/DmService${db_name} start"
  166. echo -e "\n\n****** DM8安装完成 ******\n\n"

注意:安装过程中,只需要输入安装路径和端口号即可。

思考:为什么需要一键安装脚本

1、简化安装过程:‌通过一键安装脚本,‌用户可以避免手动执行一系列复杂的安装步骤,‌如配置网络、‌设置系统参数、‌安装软件等。‌这大大减少了安装数据库所需的时间和人力。

2、提高安装效率:‌脚本能够自动化处理许多重复性的任务,‌如复制软件到安装服务器、‌配置网络设置等,‌从而加快了整个安装过程。

3、确保安装的正确性和一致性:‌一键安装脚本通常经过精心设计和测试,‌能够确保所有必要的配置和参数都正确无误地应用到数据库安装过程中,‌从而避免了手动操作可能引入的错误。

4、便于管理和维护:‌对于需要频繁部署数据库环境的情况,‌如开发环境、‌测试环境等,‌使用一键安装脚本可以快速部署,‌减少重复工作,‌提高工作效率。‌

相关文章
|
存储 Kubernetes API
K8S上生产环境后,90%都会遇到这个故障
K8S上生产环境后,90%都会遇到这个故障
898 0
|
2月前
|
SQL 自然语言处理 BI
万字长文解析 NLQ 破局 Text2SQL,兼得灵活复杂准确
润乾NLQ创新采用“规范文本”作中间层,兼顾问题灵活性与查询准确性。通过人类可读的规范文本确认意图,结合规则引擎生成精确SQL,并支持复杂查询,以低成本实现企业级Text2SQL的可靠落地,突破传统三难困境。
|
传感器 物联网 开发工具
基于华为物联网云平台设计的智能家居控制系统(STM32+ESP8266)
现在可以接入的物联网云平台非常多,阿里云物联网云平台、OneNet中国移动物联网云平台,还有机智云、涂鸦智能、百度云平台、华为云平台等等。
1345 1
|
5月前
|
传感器 人工智能 安全
AI Agent架构全览:从LLM大脑到工具四肢的自主进化之路
人工智能正从工具时代迈向智能体时代,AI Agent作为核心载体,具备感知、决策与行动能力,能自主完成复杂任务。本文详解其工作原理与架构,探讨未来发展与挑战。
|
Oracle 关系型数据库 Unix
DM8 保姆级安装教程
DM8 保姆级安装教程一、下载DM8安装介质地址:https://eco.dameng.com/download/。这里我们下载X86版本。 二、安装前准备1、新建 dmdba 用户注意 安装前必须创建 dmdba 用户,禁止使用 root 用户安装数据库。 创建用户组:[root@mydb ~]# groupadd dinstall -g 2001 创建用户:[root@mydb ~]# useradd -G dinstall -m -d /home/dmdba -s /bin/bash -u 2001 dmdba 修改用户密码:[root@mydb ~]# passwd dmdba2、修
1417 0
|
人工智能 JSON 安全
DeepSeek Engineer:集成 DeepSeek API 的开源 AI 编程助手,支持文件读取、编辑并生成结构化响应
DeepSeek Engineer 是一款开源AI编程助手,通过命令行界面处理用户对话并生成结构化JSON,支持文件操作和代码生成。
1517 6
DeepSeek Engineer:集成 DeepSeek API 的开源 AI 编程助手,支持文件读取、编辑并生成结构化响应
|
数据可视化 项目管理 数据库
提高工作效率:5个实用的SOP模板与技巧
SOP(标准操作程序)是将工作流程标准化,明确每一步骤、责任人及时间要求,以提高效率、减少错误并增强团队协作。初入职场者掌握SOP,能更快适应环境,提升个人与团队的工作表现。
2683 1
提高工作效率:5个实用的SOP模板与技巧
|
SQL 机器学习/深度学习 存储
数据库设计革命:逻辑模型的演变与面向对象的突破
数据库设计革命:逻辑模型的演变与面向对象的突破
390 1
|
JavaScript
【vue】el-dialog 内的tinymce弹窗被遮挡的解决办法 及 tinymce打开弹出菜单后直接关闭对话组件,导致该弹出菜单残留
【vue】el-dialog 内的tinymce弹窗被遮挡的解决办法 及 tinymce打开弹出菜单后直接关闭对话组件,导致该弹出菜单残留
1056 6
|
Java 开发者
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Class path contains multiple SLF4J bindings.
446 0

热门文章

最新文章