(從虛擬機器配置講起,有基礎的可以直接看二,謝謝)
一、虛擬機器的安裝和配置
軟體:virtualbox
系統:centos7
工具:Xshell
官網下載centos7,使用virtualbox安裝centos7
使用命令ip addr 檢視網路,發現centos7預設是不開啟網路的,接下來手動配置:
cd /etc/sysconfig/network-scripts/ #進入網路配置目錄
ls #檢視檔案
找到並編輯檔案ifcfg-enp0s;

將onboot的no改為yes

重啟網路:service network restart

網路配置完成,但是新裝centos7一般是沒有配置yum源的(如有配置請略過此步),接下來手動配置yum系統源:
找到光碟位置dev下的sr0就是iso檔案
新建目錄用來掛載系統盤:mkdir /yum
掛載光碟到yum: mount /dev/sr0 /yum(因為臨時掛載,所以每一次安裝包都要重新掛載)umount是解除安裝命令
進入目錄:cd /etc/yum.repos.d
檢視檔案發現只有一個系統redhat.repo檔案,建立一個自己的:
vi yum.repo
[yum] #名稱隨便寫
name=yum-os #另一個名字隨便寫
baseurl=file:///yum #光碟的掛載目錄
enabled=1 #本倉庫是否開啟 1開啟 0關閉
gpfcheck=0 #檢查源是否合規,因為是系統源,所以不用檢查了
#gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 #這個鑰匙可用可不用
Xshell配置:
yum install lrzsz -y #配置lrzsz包--經過上面的配置 lrzsz 已經可以正常安裝了;

配置Xshell的連線:

很明顯這兩個IP是不對的,經過ping測試發現這兩個IP也不通,後來發現是虛擬機器網絡卡配置問題,改成橋接形式即可

至此前期配置結束;
二、DM8安裝
建立使用者和安裝組:

groupadd dinstall --建立安裝組
useradd -g dinstall -m -d /home/dmdba -s /bin/bash dmdba
-g 指定安裝組
-d 指定使用者目錄 -m 目錄不存在自動建立(之前我建立過,不過不影響)
-s 指定bash為shell的直譯器
===================================================
方法一(不推薦):(修改檔案最大開啟數)
改一下ulimit引數:(這裡用的root使用者,可能對伺服器有風險,可以換另一種方法)

方法二(推薦):(修改dmdba使用者的檔案最大開啟數)
使用 vi 編輯器開啟 /etc/security/limits.conf 檔案
命令:vi /etc/security/limits.conf
在最後新增四條語句,需新增的語句如下:
dmdba hard nofile 65536
dmdba soft nofile 65536
dmdba hard stack 32768
dmdba soft stack 16384

切換到dmdba使用者檢視設定:

再用dmdba使用者設定臨時生效:

====================================================================
使用Xshell把安裝檔案上傳到Linux伺服器

這裡發現必須用root使用者才能上傳成功,dmdba使用者切換目錄還是不行;
記下來切換回dmdba使用者,進行映象掛載
mount -o loop /opt/dm8_20200907_x86_rh7_64_ent_8.1.1.126.iso /mnt
尷尬的發現只有root使用者才能掛載,切換回root

建立安裝目錄,並改變目錄屬主,和許可權的修改

前期準備結束,接下來進行具體安裝:
1 切換回dmdba使用者
2 執行./DMInstall.bin -i 進行安裝
3 根據提示安裝完成(路徑選/dm8,最好不用預設,因為前面設定了許可權,預設的話還要再改一遍)
4 切換至 root 使用者執行上圖中的命令 /dm8/script/root/root_installer.sh 建立 DmAPService,否則會影響資料庫備份


資料庫安裝完成需要配置例項才能正常登入使用:
需要注意的是頁大小 (page_size)、簇大小 (extent_size)、大小寫敏感 (case_sensitive)、字符集 (charset) 這四個引數,一旦確定無法修改,需謹慎設定
接下來用dminit進行例項的初始化:
./dminit path=/dm8/data PAGE_SIZE=32 EXTENT_SIZE=32 CASE_SENSITIVE=y
CHARSET=1 DB_NAME=DMDB INSTANCE_NAME=DBSERVER PORT_NUM=5237
設定頁大小為 32 KB,簇大小為 32 ,大小寫敏感,字符集為 utf_8,資料庫名為 DMDB,例項名為 DBSERVER,埠為 5237

接下來切換到root使用者,為剛才建立的例項註冊服務:
1 cd /dm8/script/root
2 ./dm_service_installer.sh -t dmserver -dm_ini /dm8/data/DMDB/dm.ini -p DBSERVER

=======================
在這其中出現了幾個問題:
1 註冊服務後,啟動disql系統報Create SOCKET connection failure錯誤,檢視日誌發現第一次啟動資料庫需要用前臺的方式啟動服務
2 前臺啟動,進入 DM 安裝目錄下的 bin 目錄下執行啟動命令
./dmserver /dm/data/DAMENG/dm.ini
服務成功啟動,為了可以執行disql,我沒有退出而是直接關閉視窗,重新開的連線視窗,這樣服務會一直執行
3 執行disql,成功連線上伺服器
如果root使用者安裝就沒有註冊服務問題了,並且第一次也不用前臺啟動資料庫
===================================================
4 接下來解決註冊服務問題(重點)
#進入安裝目錄下root
cd /dm8/script/root
#註冊服務
./dm_service_installer.sh -t dmserver -dm_ini /dm8/data/DMDB/dm.ini -p DMSERVER
引數解釋:
-t 註冊服務型別,支援一下服務型別:dmap、 dmamon、 dmserver 、dmwatcher、dmmonitor 、dmasmsvr 、 dmcss 、dmcssm、dmdrs、dmdras、dmdcs、dmdss
-dm_ini 指定服務所需要的 dm.ini 檔案路徑。
-p 指定服務名字尾,生成的作業系統服務名為“服務指令碼模板名稱+服務名字尾”。字首為DmService
服務註冊成功,但是並不能啟動,用指令碼解除安裝服務,然後重新註冊了幾遍,發現還是不行;
後臺服務的啟動,關閉,重啟都不能用;
後來嘗試手動關閉前臺開啟的服務,解除安裝剛才的註冊服務,重新註冊,發現服務可以正常的後臺啟動
服務註冊成功後
啟動資料庫
systemctl start DmServiceDMSERVER.service
停止資料庫
systemctl stop DmServiceDMSERVER.service
重啟資料庫
systemctl restart DmServiceDMSERVER.service
檢視資料庫服務狀態
systemctl status DmServiceDMSERVER.service
也可進入 DM 安裝目錄下的 bin 目錄下,啟動/停止/重啟資料庫
./DmServiceDMSERVER start/stop/restart
檢視資料庫狀態
./DmServiceDMSERVER status
總結:
怎麼起的資料庫一定要怎麼關,前臺起一定要前臺關(exit),不然會報錯
tips:
使用圖形介面配置的資料庫例項,dbca會自動註冊服務,命令列dminit配置的例項,需要自己註冊服務