(一)系統環境檢查
1操作系統:確認使用的是國產麒麟操作系統,檢查系統版本是否兼容達夢數據庫 V8。可以通過以下命令查看系統版本:
cat /etc/os-release
2硬件資源:確保服務器具備足夠的硬件資源,建議最低配置為:
CPU:2 核及以上
內存:4GB 及以上
磁盤空間:安裝目錄至少需要 2GB 可用空間,數據存儲目錄根據實際需求預留足夠空間。
命令
(一)掛載資源cd /opt 切換到 opt 目錄:把對應安裝包放入上去
安裝包拖拽到 opt
安裝前必須創建 dmdba 用戶,禁止使用 root 用戶安裝數據庫
(二)創建用戶和用戶組
為了安全和管理方便,創建專門的用戶和用戶組來安裝和運行達夢數據庫。
1.創建用戶所在的組,命令如下:
groupadd dinstall -g 2001
2.創建用戶,命令如下:
useradd ?-G dinstall -m -d /home/dmdba -s /bin/bash -u 2001 dmdba
3.修改用戶密碼,命令如下:
passwd dmdba
passwd Dameng123
(三)、修改文件打開最大數
1.limits.conf追加參數 使用 root 用戶
vi /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
修改配置文件后重啟服務器生效
切換到 dmdba 用戶,查看是否生效
su - dmdba
ulimit -a
看到上面的65536對應上了就好
(四)目錄
默認配置 DM 數據庫安裝在 /home/dmdba 文件夾下
##實例保存目錄
mkdir -p /dmdata/data?
##歸檔保存目錄
mkdir -p /dmdata/arch
##備份保存目錄
mkdir -p /dmdata/dmbak
4.1修改目錄權限
將新建的路徑目錄權限的用戶修改為 dmdba,用戶組修改為 dinstall。命令如下:
chown -R dmdba:dinstall /dmdata/data
chown -R dmdba:dinstall /dmdata/arch
chown -R dmdba:dinstall /dmdata/dmbak
給路徑下的文件設置 755 權限。命令如下:
chmod -R 755 /dmdata/data
chmod -R 755 /dmdata/arch
chmod -R 755 /dmdata/dmbak
4.進行安裝(opt是上傳的路徑,mnt是解壓包安裝路徑)
切換到 root 用戶,將 DM 數據庫的 iso 安裝包保存在任意位置,例如 /opt 目錄下,執行如下命令掛載鏡像:
cd ?/opt
mount -o loop dm8_20240116_x86_rh7_64.iso /mnt
切換至 dmdba 用戶
su - dmdba
cd /mnt
執行安裝命令:
./DMInstall.bin -i
回答
1 y y 21 1 y
從這里開始都是用root用戶進行操作
su - root
創建 DmAPService,否則會影響數據庫備份
/home/dmdba/dmdbms/script/root/root_installer.sh
5.配置環境變量
切換到root用進入dmdba用戶根目錄下,配置相對應環境變量,DM_HOME會在數據庫安裝完成之后自動導入
cd /home/dmdba/
vi .bash_profile
su - dmdba
source .bash_profile
三、配置實例
cd /home/dmdba/dmdbms/bin
開始配置實例,初始化實例參數
./dminit path=/dmdata/data PAGE_SIZE=32 EXTENT_SIZE=32 CASE_SENSITIVE=N?
CHARSET=1 DB_NAME=DMTEST INSTANCE_NAME=DBSERVER PORT_NUM=5237 BUFFER=2048?
SYSDBA_PWD=MyDb@2025Pass SYSAUDITOR_PWD=Audit@2025Secure
四、注冊成服務
注冊服務需要使用root用戶注冊,使用root用戶進入數據庫的安裝目錄的 /script/root下
cd /home/dmdba/dmdbms/script/root/?? ?
注意:
配置的路徑中的DAMENG就是第三步配置的名稱,檢查第三步所配置的是否一致?
DMSERVER是即將被注冊成服務的服務名
./dm_service_installer.sh -t dmserver -dm_ini /dmdata/data/DMTEST/dm.ini -p DMTEST
備注(安裝路徑)
cd /home/dmdba/dmdbms/bin
五、啟動、停止、重啟數據庫
自動開機開啟服務
systemctl enable DmServiceDMTEST.service
systemctl start DmServiceDMTEST.service
systemctl stop ?DmServiceDMTEST.service
systemctl status DmServiceDMTEST.service
或者目錄啟動
cd /home/dmdba/dmdbms/bin
./DmServiceDMTEST stop
查看是否打開防火墻,如果打開了,需要放開端口,不然不能訪問
firewall-cmd --zone=public --add-port=5237/tcp --permanent (permanent永久生效,沒有此參數重啟后失效)
sudo firewall-cmd --reload
sudo firewall-cmd --list-all
測試訪問
頁面設置定時備份:一周一個全量,一天一個增量
刪除30天前的數據代理腳本
call SF_BAKSET_BACKUP_DIR_ADD('DISK', '/data/dmdata/dmbak');
CALL SP_DB_BAKSET_REMOVE_BATCH('DISK', NOW()-30);
查找
find / -name "dm.ini" 2>/dev/null
find / -name "dmdbms" 2>/dev/null
文件查找/ n是下一個, sheft+n是上一個
--修改最大訪問數MAX_SESSIONS?
vi /dmdbms/data/DAMENG/dm.ini
--設置賬號密碼
./dminit path=/dmdata/data PAGE_SIZE=32 EXTENT_SIZE=32 CASE_SENSITIVE=y CHARSET=1 DB_NAME=DMTEST INSTANCE_NAME=DBSERVER PORT_NUM=5237 SYSDBA_PWD=MyDb@2025Pass SYSAUDITOR_PWD=Audit@2025Secure
1恢復全量數據命令
CHECK BACKUPSET '/opt/DB_CDMZHD_FULL_2025_03_01_23_00_42.bak';
RESTORE DATABASE '/dmdata/data/DMTEST/dm.ini' FROM BACKUPSET '/opt/DB_CDMZHD_FULL_2025_03_01_23_00_42';
2恢復增量數據命令
RECOVER DATABASE '/dmdata/data/DMTEST/dm.ini' FROM BACKUPSET '/opt/DB_CDMZHD_FULL_2025_03_01_23_00_42';
3更新數據庫
RECOVER DATABASE '/dmdata/data/DMTEST/dm.ini' UPDATE DB_MAGIC;
?
注意!這里的是文件夾目錄(依據備份產生的數據來)
里面的數據是全部要復制到指定目錄里面去的
--查看最大會話數
SELECT SF_GET_PARA_VALUE(2, 'MAX_SESSIONS');
-- 獲取INI文件中的配置參數值
SELECT SF_GET_PARA_VALUE(1, 'MAX_SESSIONS') FROM DUAL;
-- 獲取內存中的配置參數值
SELECT SF_GET_PARA_VALUE(2, 'MAX_SESSIONS') FROM DUAL;
--查看所有參數
SELECT * FROM V$DM_INI;
--獲取CPU核心數
SELECT N_CPU FROM V$SYSTEMINFO;
--獲取物理內存大小(GB)
SELECT TOTAL_PHY_SIZE/1024/1024/1024 AS TOTAL_MEMORY_MB FROM V$SYSTEMINFO;
DECLARE
? v_cpus INT;
? v_mem_mb INT;
BEGIN
? -- 獲取CPU核心數
? SELECT N_CPU INTO v_cpus FROM V$SYSTEMINFO;
? -- 獲取物理內存大小(GB)
? SELECT TOTAL_PHY_SIZE/1024/1024/1024 INTO v_mem_mb FROM V$SYSTEMINFO;
? -- 輸出結果
? PRINT 'CPU Cores: ' || v_cpus;
? PRINT 'Total Memory (GB): ' || v_mem_mb;
END;
SELECT * FROM V$PARAMETER WHERE NAME LIKE '%SVR_LOG%';
SP_REFRESH_SVR_LOG_CONFIG();
sp_set_para_value(1,'SVR_LOG',1);
select * from v$parameter where name like 'SVR_LOG';