達夢數據庫管理系統(以下簡稱 DM)是基於客戶/服務器方式的數據庫管理系統,可以 安 裝 在 多 種 計 算 機 操 作 系 統 平 台 上 , 典 型 的 操 作 系 統 有 :Windows(Windows2000/2003/XP/Vista/7/8/10/Server 等)、Linux、HP-UNIX、Solaris、FreeBSD 和 AIX 等。對於不同的系統平台,有不同的安裝步驟。
在安裝 DM 之前,請用戶仔細閱讀本手冊,本手冊包含了重要的安裝指導信息。在安裝開始之前,首先應該檢查所得到的 DM 產品是否完整,並准備好 DM 所需的硬件環境、軟件環境。
本章主要介紹在安裝 DM 產品前需要進行的准備工作。
1. 創建安裝用戶組 dinstall 安裝用戶 dmdba。
groupadd dinstall useradd -g dinstall -m -d /home/dmdba -s /bin/bash dmdba echo passwd dmdba echo "dmdba"|passwd dmdba --stdin
2. 檢查操作系統限制
echo " dmdba soft data -1 dmdba hard data -1 dmdba soft fsize -1 dmdba hard fsize -1 dmdba soft nofile 65536 dmdba hard nofile 65536 dmdba soft memlock -1 dmdba hard memlock -1 dmdba soft stack 10240 dmdba hard stack 32768 dmdba soft nproc 16384 dmdba hard nproc 16384 root soft memlock -1 root hard memlock -1" >>/etc/security/limits.conf
3. 關閉防火牆 和 停掉不必要的服務
#setup selinux sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config systemctl stop tuned.service systemctl disable tuned.service systemctl stop ktune.service systemctl disable ktune.service systemctl stop NetworkManager.service systemctl disable NetworkManager.service systemctl stop firewalld.service systemctl disable firewalld.service systemctl disable postfix.service systemctl stop postfix.service systemctl stop irqbalance.service systemctl disable irqbalance.service systemctl stop avahi-daemon systemctl disable avahi-daemon
4. 創建安裝目錄
5 .設置環境變量
echo "export PATH export LD_LIBRARY_PATH=/opt/app/dm7/dmdbms/bin:$LD_LIBRARY_PATH export DM_HOME=/opt/app/dm7/dmdbms export PATH=\$DM_HOME/bin:\$PATH export DM_INSTALL_TMPDIR=/tmp set -o vi stty erase ^h if [ -t 0 ]; then stty intr ^C fi umask 022" >>/home/dmdba/.bash_profile
6 安裝
給安裝文件授權
6.1 圖形化安裝
注:圖形化安裝略 # startx # su - dmdba $ export DISPLAY=10.85.10.3:0.0 $ xhost + $ ./DMInstall.bin #以root 用戶執行 sh /opt/app/dm7/dmdbms/script/root/root_installer.sh
6.2 命令安裝
命令安裝 ./DMInstall.bin -i #以root 用戶執行 sh /opt/app/dm7/dmdbms/script/root/root_installer.sh
6.3 靜默安裝
靜默安裝 : ./DMInstall.bin -q /opt/soft/dm_rsp.conf.xml #以root 用戶執行 sh /opt/app/dm7/dmdbms/script/root/root_installer.sh 詳細安裝如下: [dmdba@test01 soft]$ ./DMInstall.bin -q /opt/soft/dm_rsp.conf.xml Extract install files......... 2019-06-20 16:35:32 [INFO] Installing default Module... 2019-06-20 16:35:32 [INFO] Installing DM DBMS... 2019-06-20 16:35:34 [INFO] Installing server Module... 2019-06-20 16:35:34 [INFO] Installing client Module... 2019-06-20 16:35:35 [INFO] Installing drivers Module... 2019-06-20 16:35:35 [INFO] Installing manual Module... 2019-06-20 16:35:35 [INFO] Installing service Module... 2019-06-20 16:35:37 [INFO] Move ant log file to log directory. 2019-06-20 16:35:37 [INFO] Installed DM DBMS completely. Please execute the commands by root: /opt/app/dm7/dmdbms/script/root/root_installer.sh 2019-06-21 09:49:05 [INFO] Creating database... 2019-06-21 09:49:16 [INFO] Create database completed. #以root 運行添加備份服務 [root@test01 ~]# /opt/app/dm7/dmdbms/script/root/root_installer.sh Move /opt/app/dm7/dmdbms/bin/dm_svc.conf to /etc Modify the files' mode of DM Server Create the DmAPService service Created symlink from /etc/systemd/system/multi-user.target.wants/DmAPService.service to /usr/lib/systemd/system/DmAPService.service. Finished to create the service (DmAPService) Start the DmAPService service #以root運行添加實例服務 #參數說明 /opt/app/dm7/dmdbms/script/root/dm_service_installer.sh -help [root@dameng-test root]# ./dm_service_installer.sh -help 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 幫助 #添加實例服務 ./dm_service_installer.sh -t dmserver -p 實例名 -i 指定配置文件 [root@test01 root]# /opt/app/dm7/dmdbms/script/root/dm_service_installer.sh -t dmserver -p DMSERVER -i /opt/dmdata/data/DAMENG/dm.ini Created symlink from /etc/systemd/system/multi-user.target.wants/DmServiceDMSERVER.service to /usr/lib/systemd/system/DmServiceDMSERVER.service. Finished to create the service (DmServiceDMSERVER) 查看服務: [root@test01 system]# ls -lrt Dm* dm* -r--r--r-- 1 root root 355 Aug 4 2016 dmraid-activation.service -r--r--r--. 1 root root 248 Jun 29 2017 dm-event.socket -r--r--r--. 1 root root 338 Jun 29 2017 dm-event.service -rw-r--r-- 1 root root 319 Jun 21 09:49 DmAPService.service -rw-r--r-- 1 root root 349 Jun 21 10:25 DmServiceDMSERVER.service
開機啟動
[root@test01 root]# systemctl enable DmServiceDMSERVER.service
啟動服務 [root@test01 root]# systemctl start DmServiceDMSERVER.service [root@test01 root]# systemctl status DmServiceDMSERVER.service ● DmServiceDMSERVER.service - DmServiceDMSERVER Loaded: loaded (/usr/lib/systemd/system/DmServiceDMSERVER.service; enabled; vendor preset: disabled) Active: active (running) since Fri 2019-06-21 10:32:03 CST; 1min 18s ago Process: 86596 ExecStart=/opt/app/dm7/dmdbms/bin/DmServiceDMSERVER start (code=exited, status=0/SUCCESS) Main PID: 86638 (dmserver) CGroup: /system.slice/DmServiceDMSERVER.service ‣ 86638 /opt/app/dm7/dmdbms/bin/dmserver /opt/dmdata/data/DAMENG/dm.ini -noconsole Jun 21 10:31:47 test01 systemd[1]: Starting DmServiceDMSERVER... Jun 21 10:31:47 test01 su[86622]: (to dmdba) root on none Jun 21 10:31:48 test01 DmServiceDMSERVER[86596]: Starting DmServiceDMSERVER: stty: standard input: Inappropriate ioctl for device Jun 21 10:31:48 test01 DmServiceDMSERVER[86596]: stty: standard input: Inappropriate ioctl for device Jun 21 10:31:48 test01 DmServiceDMSERVER[86596]: Last login: Fri Jun 21 09:49:29 CST 2019 Jun 21 10:32:03 test01 DmServiceDMSERVER[86596]: [11B blob data] Jun 21 10:32:03 test01 systemd[1]: Started DmServiceDMSERVER. [root@test01 root]# 連接測試: [dmdba@test01 bin]$ disql SYSDBA/SYSDBA@localhost Server[localhost:5236]:mode is normal, state is open login used time: 4.659(ms) disql V7.1.6.46-Build(2018.02.08-89107)ENT Connected to: DM 7.1.6.46 SQL>
/opt/soft/dm_rsp.conf.xml 響應內容,詳細見附件 中文 東8區 全部安裝 /opt/app/dm7/dmdbms 初始化實列 數據庫名 :DAMENG 實列名:DMSERVER 數據文件簇大小:16 數據文件頁大小:8 日志文件簇大小:256 大小寫敏感:Y 字符集:GB18030 vachar長度單位:字節 hash:為改進hash 實始化時區:東八區 是否啟用頁面較驗:不啟用 創建實例服務 :N #非root用戶安裝,不能創建服務 是否啟動數據庫:N SYSDBA, SYSAUDITOR, SYSSSO, SYSDBO 密碼同帳號 #注 a.日志文件需大於2組以上 # b.日志文件,控制文件,要寫全路徑, 或者放在不同目錄
7 .創建或刪除實例
注:在安裝軟件時可以一起創建實例,也可以單獨運行創建實例的腳本 ,
sh /opt/app/dm7/dmdbms/tool/dbca.sh 以root 運行 mv /opt/app/dm7/dmdbms/bin/DmServiceDMSERVER.service /usr/lib/systemd/system/DmServiceDMSERVER.service systemctl enable DmServiceDMSERVER.service systemctl start DmServiceDMSERVER.service
8 .軟件卸載
#進入 DM 安裝目錄 cd $DM_HOME ./uninstall.sh # 圖形化卸載 ./uninstall.sh -i #腳本命令行卸載 #/opt/app/dm7/dmdbms/root_uninstaller.sh #以root 用戶運行
9 .最佳實踐參數
參數文件 /opt/dmdata/DAMENG/dm.ini
參數類型 | 參數名 | 推薦值 | 參數說明 | |
256G內存 | 16G內存 | |||
內存相關 | MAX_OS_MEMORY | 90 | 90 | DM 數據庫占用的內存占操作系統物 理內存和虛擬內存之和的百分比,一般推薦為 90% |
MEMORY_POOL | 1000 | 1000 | 系統內存池:一般配置為 1000M~4000M | |
BUFFER | 120000 | 9000 | 用於緩存數據頁,一般配置為操作系 統物理內存的 60%~80% |
|
MAX_BUFFER | 120000 | 9000 | 用於控制系統緩沖區的上限,一般配置為和 BUFFER 參數相等 | |
BUFFER_POOLS | 101 | 13 | BUFFER 的分區數,一般配置為質數, 取值范圍為 1~500,並發較大的系統 需要配置這個參數;此參數生效的前 提條件是 MAX_BUFFER = BUFFER |
|
RECYCLE | 5000 | 500 | 用於緩存排序、分組、臨時表等產生的臨時數據,一般在 OLAP 類型的應用系統中需要配置 | |
CACHE_POOL_SIZE | 1000 | 300 | 用於緩存 SQL、執行計划、結果集等,一般配置為 1000M~4000M | |
VM_POOL_SIZE | 256 | 128 | 用於控制 PLSQL 虛擬機內存池大小, 系統中存儲過程、函數較多時建議適當增大 | |
DICT_BUF_SIZE | 32 | 32 | 用於緩存數據字典,默認 5M,系統中對象個數較多時適當加大 | |
IO相關 | IO_THR_GROUPS | 32 | 2 | IO 線程組的個數,默認為 2,磁盤陣列性能較好時適當加大,此參數只在非 windows 操作系統下有效 |
CPU相關 | WORKER_THREADS | 32 | 8 | 工作線程個數,有效值范圍 1~64,一般配置為 CPU 核數相等或其 2 倍 |
TASK_THREADS | 32 | 8 | 任務線程個數,一般配置為與WORKER_THREADS 相等 |
10 .連接測試
[dmdba@test01 bin]$ disql SYSDBA/SYSDBA@localhost Server[localhost:5236]:mode is normal, state is open login used time: 4.659(ms) disql V7.1.6.46-Build(2018.02.08-89107)ENT Connected to: DM 7.1.6.46 SQL>
11 .附件 靜默安裝附件
<?xml version="1.0"?> -<DATABASE> <!--安裝數據庫的語言配置,安裝中文版配置 ZH,英文版配置 EN,不區分大小寫。不允許為空。--> <LANGUAGE>zh</LANGUAGE> <!--安裝程序的時區配置,默認值為+08:00,范圍:-12:59 ~ +14:00 --> <TIME_ZONE>+08:00</TIME_ZONE> <!-- key 文件路徑 --> <KEY/> <!--安裝程序組件類型,取值 0、1、2,0 表示安裝全部,1 表示安裝服務器,2 表示安裝客戶 端。默認為 0。 --> <INSTALL_TYPE>0</INSTALL_TYPE> <!--安裝路徑,不允許為空。 --> <INSTALL_PATH>/opt/app/dm7/dmdbms</INSTALL_PATH> <!--是否初始化庫,取值 Y/N、y/n,不允許為空。 --> <INIT_DB>Y</INIT_DB> <!--數據庫實例參數 --> -<DB_PARAMS> <!--初始數據庫存放的路徑,不允許為空 --> <PATH>/opt/dmdata/data</PATH> <!--初始化數據庫名字,默認是 DAMENG,不超過 128 個字符 --> <DB_NAME>DAMENG</DB_NAME> <!--初始化數據庫實例名字,默認是 DMSERVER,不超過 128 個字符 --> <INSTANCE_NAME>DMSERVER</INSTANCE_NAME> <!--初始化時設置 dm.ini 中的 PORT_NUM,默認 5236,取值范圍:1024~65534 --> <PORT_NUM>5236</PORT_NUM> <!--初始數據庫控制文件的路徑,文件全路徑,文件路徑長度最大為 256 --> <CTL_PATH>/opt/dmdata/data/DAMENG/control.ctl</CTL_PATH> <!--初始數據庫日志文件的路徑,文件全路徑,文件路徑長度最大為 256 --> -<LOG_PATHS> <LOG_PATH>/opt/dmdata/data/DAMENG/redo01.log</LOG_PATH> <LOG_PATH>/opt/dmdata/data/DAMENG/redo02.log</LOG_PATH> <LOG_PATH>/opt/dmdata/data/DAMENG/redo03.log</LOG_PATH> </LOG_PATHS> <!--數據文件使用的簇大小,只能是 16 頁或 32 頁之一,缺省使用 16 頁 --> <EXTENT_SIZE>16</EXTENT_SIZE> <!--數據文件使用的頁大小,缺省使用 8K,只能是 4K、8K、16K 或 32K 之一 --> <PAGE_SIZE>8</PAGE_SIZE> <!--日志文件使用的簇大小,默認是 256,取值范圍 64 和 2048 之間的整數 --> <LOG_SIZE>256</LOG_SIZE> <!--標識符大小寫敏感,默認值為 Y。只能是’Y’, ’y’, ’N’, ’n’, ’1’, ’0’之一 --> <CASE_SENSITIVE>Y</CASE_SENSITIVE> <!--字符集選項,默認值為 0。0 代表 GB18030,1 代表 UTF-8,2 代表韓文字符集 EUC-KR--> <CHARSET>0</CHARSET> <!--設置為 1 時,所有 VARCHAR 類型對象的長度以字符為單位,否則以字節為單位。默認值為 0。 --> <LENGTH_IN_CHAR>0</LENGTH_IN_CHAR> <!--字符類型在計算 HASH 值時所采用的 HASH 算法類別。0:原始 HASH 算法;1:改進的HASH 算法。默認值為 1。 --> <USE_NEW_HASH>1</USE_NEW_HASH> <!--初始化時設置 SYSDBA 的密碼,默認為 SYSDBA,長度在 9 到 48 個字符之間 --> <SYSDBA_PWD/> <!--初始化時設置 SYSAUDITOR 的密碼,默認為 SYSAUDITOR,長度在 9 到 48 個字符之間 --> <SYSAUDITOR_PWD/> <!--初始化時設置 SYSSSO 的密碼,默認為 SYSSSO,長度在 9 到 48 個字符之間,僅在安全版本下可見和可設置 --> <SYSSSO_PWD/> <!--初始化時設置 SYSDBO 的密碼,默認為 SYSDBO,長度在 9 到 48 個字符之間,僅在安全版本下可見和可設置 --> <SYSDBO_PWD/> <!--初始化時區,默認是東八區。格式為:正負號小時:分鍾,范圍:-12:59 ~ +14:00--> <TIME_ZONE>+08:00</TIME_ZONE> <!--是否啟用頁面內容校驗,0:不啟用;1:簡單校驗;2:嚴格校驗(使用 CRC16 算法生成校驗碼)。默認 0 --> <PAGE_CHECK>0</PAGE_CHECK> <!--設置默認加密算法,不超過 128 個字符 --> <EXTERNAL_CIPHER_NAME/> <!--設置默認 HASH 算法,不超過 128 個字符 --> <EXTERNAL_HASH_NAME/> <!--設置根密鑰加密引擎,不超過 128 個字符 --> <EXTERNAL_CRYPTO_NAME/> <!--全庫加密密鑰使用的算法名。算法可以是 DM 內部支持的加密算法,或者是第三方的加密算法。默認使用"AES256_ECB"算法加密,最長為 128 個字節 --> <ENCRYPT_NAME/> <!--指定日志文件是否加密。默認值 N。取值 Y/N,y/n,1/0 --> <RLOG_ENC_FLAG>N</RLOG_ENC_FLAG> <!--用於加密服務器根密鑰,最長為 48 個字節 --> <USBKEY_PIN/> <!--設置空格填充模式,取值 0 或 1,默認為 0 --> <BLANK_PAD_MODE>0</BLANK_PAD_MODE> <!--指定 system.dbf 文件的鏡像路徑,默認為空 --> <SYSTEM_MIRROR_PATH/> <!--指定 main.dbf 文件的鏡像路徑,默認為空 --> <MAIN_MIRROR_PATH/> <!--指定 roll.dbf 文件的鏡像路徑,默認為空 --> <ROLL_MIRROR_PATH/> <!--是否是四權分立,默認值為 0(不使用)。僅在安全版本下可見和可設置。只能是 0 或 1--> <PRIV_FLAG>0</PRIV_FLAG> <!--指定初始化過程中生成的日志文件所在路徑。合法的路徑,文件路徑長度最大為 257(含結束符),不包括文件名--> <ELOG_PATH>/tmp</ELOG_PATH> </DB_PARAMS> <!--是否創建數據庫實例的服務,值 Y/N y/n,不允許為空,不初始化數據庫將忽略此節點。非 root 用戶不能創建數據庫服務。 --> <CREATE_DB_SERVICE>N</CREATE_DB_SERVICE> <!--是否啟動數據庫,值 Y/N y/n,不允許為空,不創建數據庫服務將忽略此節點。 --> <STARTUP_DB_SERVICE>N</STARTUP_DB_SERVICE> </DATABASE>
2019-06-21