Centos7安裝達夢(DM7)數據庫

Centos7安裝達夢(DM7)數據庫


準備工作:

1.關閉firewalld防火牆和Selinux

#查看firwalld的狀態
systemctl status firewalld   #也可以執行 firewall-cmd --state

#停止firewalld
systemctl stop firewalld 

#禁用firewalld
systemctl disable firewalld 

#查看Selinux狀態
getenforce

#關閉Selinux
vim /etc/selinux/config
SELINUX=disabled

#重啓服務器、立即生效配置
reboot

2.檢查系統位數和系統信息是否符合
getconf LONG_BIT
uname -a

3.系統參數調整優化

#系統級別的最大文件句柄數量調整
cat /proc/sys/fs/file-max
383676
一般不同的系統版本,默認值會有差別,有的是383676,有的是592409,一般系統的默認值夠用,不用修改,我這裏永久性的調整爲100萬:
vim /etc/sysctl.conf
fs.file-max = 1000000

#立即生效
sysctl -p

#查看用戶的所有進程級別的限制
ulimit  -a
core file size          (blocks, -c) 0  //內核文件的大小限制
data seg size           (kbytes, -d) unlimited  //最大數據大小限制,建議用戶設置爲unlimited
scheduling priority             (-e) 0  //調度優先級,一般根據nice設置
file size               (blocks, -f) unlimited  //最大文件大小限制,建議用戶設置爲unlimited
pending signals                 (-i) 15086  //信號可以被掛起的最大數,這個值針對所有用戶,表示可以被掛起/阻塞的最大信號數量
max locked memory       (kbytes, -l) 64  //內存鎖定值的限制
max memory size         (kbytes, -m) unlimited  //最大可以使用內存限制
open files                      (-n) 65535  //進程打開文件數的限制。默認值是1024,默認值太小、通常需要調整該值爲65535或unlimited
pipe size            (512 bytes, -p) 8  //管道文件大小限制
POSIX message queues     (bytes, -q) 819200  //可以創建使用POSIX消息隊列的最大值,單位爲bytes
real-time priority              (-r) 0  //限制程序實時優先級的範圍,只針對普通用戶
stack size              (kbytes, -s) 8192  //限制進程使用堆棧段的大小
cpu time               (seconds, -t) unlimited  //程序佔用CPU的時間,單位是秒
max user processes              (-u) 15086  //限制程序可以fork的進程數,只對普通用戶有效
virtual memory          (kbytes, -v) unlimited  //限制進程使用虛擬內存的大小,建議用戶設置爲unlimited
file locks                      (-x) unlimited  //鎖定文件大小限制

#用戶進程級別的限制修改:可以通過修改/etc/security/limits.conf文件實現永久生效的修改
#修改表達式解釋:
<domain>        <type>  <item>  <value>

<domain>:
       ftpuser //用戶
       @student //組
       * //通配符,所有用戶
       % //通配符,用在組的語法
       
<type>:
      soft //軟限制。警告的設定,可以超過這個設定值,但是若超過則有警告信息
      hard //硬限制。嚴格的設定,必定不能超過這個設定的數值
       
<item>:
      core //限制內核文件的大小
      data //最大數據大小限制
      fsize //最大文件大小限制
      memlock //最大鎖內存地址空間
      nofile //進程打開文件數的限制
      rss //最大持久駐留內存
      stack //最大堆棧大小
      cpu //最大CPU運行時間
      nproc //最大進程數
      as //地址空間限制
      maxlogins //最大登錄次數,用戶
      maxsyslogins //最大登錄次數,登錄此係統的最大次數
      priority //用戶運行的優先級
      locks //用戶鎖定文件數限制
      sigpending //信號可以被掛起的最大數
      msgqueue //可以創建使用POSIX消息隊列的最大值
      nice //可以設置的優先級,nice [-20, 19]
      rtprio //實時優先級,數字大的優先級高

#進程級打開文件句柄數量
#在文件末尾添加配置內容:

echo "
* soft nofile 65535
* hard nofile 70000
" >> /etc/security/limits.conf

注意:
1)修改後用戶需要重新登錄才能生效
2)如果調整用戶進程級限制達到系統級的最大數時,還需要調整系統級的最大值

安裝操作

1.拷貝安裝包iso到服務器&掛載
拷貝iso文件到/opt/soft/DM7
cd /opt/soft/DM7
mount dm7開發版(rh7-64)20190917.iso /mnt/
cd /mnt/
ls 
DMInstall.bin  DM_Install_en.pdf  DM_Install_zh.pdf  release_en.txt  release_zh.txt

2.創建DM安裝用戶和安裝用戶組並初始化用戶密碼
groupadd dinstall
useradd -g dinstall -m -d /home/dmdba -s /bin/bash dmdba
passwd dmdba

3.創建目錄:
規劃好存儲dm數據庫文件的目錄,我這裏放在/opt/dm/目錄下(如果需要掛載單獨的磁盤,提前掛載好,我這裏忽略)

mkdir -p /opt/dm/dmdbms
mkdir -p /opt/dm/dmarch
mkdir -p /opt/dm/dmbak
chown -R dmdba:dinstall /opt/dm/
chmod -R 775 /opt/dm/

4.配置好環境變量(如果不是安裝在/home/dmdba/dmdbms目錄下,而是安裝在其他目錄,例如/opt/dm/dmdbms,則需要配置。DM_HOME創建的時候會自動設置、這裏不用配置)
echo export PATH=$PATH:/opt/dm/dmdbms/bin >> /etc/profile
source /etc/profile

#檢查確認一下
#env |grep PATH

5.拷貝安裝文件
cp -r /mnt/* /opt/dm/
cd /opt/dm/
# DMInstall.bin 文件就是DM的安裝程序。在運行安裝程序前,需要賦予DMInstall.bin文件執行權限
chmod 755 ./DMInstall.bin

6.安裝
安裝方式有三種:圖形化安裝、命令行交互式安裝(交互式配置安裝)、命令行靜默安裝(提前配置好配置模板,基於配置模板安裝)

圖形安裝這裏不介紹,一般服務器都沒有圖形界面。

#命令行靜默安裝
cd /opt/dm/
./DMInstall.bin -q <配置文件全路徑>
需要提前準備好配置文件

#命令行交互式安裝,我採用該方式
由於安裝過程中使用非root用戶,還涉及一些操作需要root權限去執行,所以我直接使用了root進行安裝。

cd /opt/dm/
./DMInstall.bin -i 

1)Please select the installer's language (E/e:English C/c:Chinese) [E/e]:
  選擇語言,默認使用英語安裝,直接回車
  
2)Whether to input the path of Key File? (Y/y:Yes N/n:No) [Y/y]:N
  驗證Key文件:用戶可以選擇是否輸入 Key 文件路徑。不輸入則進入下一步安裝,輸入 Key 文件路徑,安裝程序將顯示 Key 文件的詳細信息,如果是合法的 Key 文件且在有效期內,用戶可以繼續安裝。

3)Whether to Set The TimeZone? (Y/y:Yes N/n:No) [Y/y]:y
 Please Select the TimeZone [21]:21
 選擇21([21]: GTM+08=China)
 
4)Please Input the number of the Installation Type [1 Typical]:1

5)Please Input the install path [/opt/dmdbms]:/opt/dm/dmdbms

6)Please Confirm the install path(/opt/dm/dmdbms)? (Y/y:Yes N/n:No) [Y/y]:y

7)Pre-Installation Summary
  Installation Location: /opt/dm/dmdbms
  Require Space: 963M
  Available Space: 88G
  Version Information: 
  Expire Date: 
  Installation Type: Typical
  Confirm to Install? (Y/y:Yes N/n:No):y

8)等待安裝完畢。

9)創建DM數據庫實例
DM數據庫創建實例有兩種方式:
dminit命令:這是一種命令行的工具。安裝後會生成:dmdbms/bin/dminit
dbca.sh工具,在/dm/dmdbms/tool 目錄下,是一種圖形化的界面

重點介紹dminit創建實例
dminit是DM數據庫初始化工具,dminit工具一共有38個選項,不過這些選項都是可選的並且有默認值。 
在使用dminit創建實例時只需要配置我們需要的參數即可,如果在使用dminit時沒有帶參數,系統會引導用戶進行交互式的設置。
另外需要注意dminit的參數、等號和值之間不能有空格,例如:PAGE_SIZE=16,不能有空格。

#查看幫助
cd /opt/dm/dmdbms/bin/
./dminit help
#帶參數的方式執行dminit
./dminit PATH=/opt/dm/dmdbms/data DB_NAME=testdb INSTANCE_NAME=dmsrv

[root@localhost bin]# ./dminit PATH=/opt/dm/dmdbms/data DB_NAME=testdb INSTANCE_NAME=dmsrv
initdb V7.6.0.197-Build(2019.09.12-112648)ENT 
db version: 0x7000a
file dm.key not found, use default license!
License will expire on 2020-09-12
 log file path: /opt/dm/dmdbms/data/testdb/testdb01.log
 log file path: /opt/dm/dmdbms/data/testdb/testdb02.log
write to dir [/opt/dm/dmdbms/data/testdb].
create dm database success. 2020-03-03 16:53:59
[root@localhost bin]# 

dminit支持直接不帶參數。如果不帶參數,會進行交互式配置的方式來創建實例。
雖然dminit有很多選項,這些選項都有默認值,尤其是涉及到page大小的,默認值大部分也是最佳的選擇,所以我們只需要指定實例的創建路徑和數據庫名稱即可。


10)註冊數據庫服務
命令行創建的實例沒有對應的服務,不能使用服務進行管理。所以在使用命令行創建實例之後進行註冊,重新註冊成系統服務,方便用戶管理與控制。
註冊的shell腳本dm_service_installer.sh在DM_HOME/script/root目錄下:
注意:前面創建實例時會自動創建DM_HOME環境變量,這裏需要退出登錄然後重新登錄一下,否則環境變量未生效。
cd $DM_HOME/script/root  
pwd
/opt/dm/dmdbms/script/root
ls
dm_service_installer.sh  dm_service_uninstaller.sh

註冊數據庫服務
注意:DM7和DM8的註冊服務腳本參數有區別,詳情可以通過vi dm_service_installer.sh查看;
DM7:-i  "The path of the ini file, is invalid for dmimon,dmap."
DM8:沒有-i參數,而是改成了:-dm_ini  "The path of the dm.ini file."

DM7:
[root@localhost root]# ./dm_service_installer.sh -t dmserver -i /opt/dm/dmdbms/data/testdb/dm.ini -p dmsrv
Created symlink from /etc/systemd/system/multi-user.target.wants/DmServicedmsrv.service to /usr/lib/systemd/system/DmServicedmsrv.service.
Finished to create the service (DmServicedmsrv)

DM8:
[root@localhost root]# ./dm_service_installer.sh -t dmserver -dm_ini  /opt/dm/dmdbms/data/testdb/dm.ini -p dmsrv

測試註冊是否成功
service  DmServicedmsrv start
以後可以通過:service DmServicedmsrv status|start|stop 來啓動和停止dmsrv實例

#查看端口監聽狀態(dminit初始化時默認PORT_NUM=5236)
netstat -an |grep 5236 

#查看進程
[root@localhost bin]# ps aux|grep dmserver
dmdba    15106  0.4  7.9 2767232 309188 ?      Sl   17:02   0:04 /opt/dm/dmdbms/bin/dmserver /opt/dm/dmdbms/data/testdb/dm.ini -noconsole

#數據庫實例創建完成,使用disql登錄驗證一下:

#如果沒有單獨設置或修改過的話,默認SYSDBA用戶密碼相同。
[root@localhost bin]# disql  SYSDBA/SYSDBA
Server[LOCALHOST:5236]:mode is normal, state is open
login used time: 4.290(ms)
disql V7.6.0.197-Build(2019.09.12-112648)ENT 
SQL> select * from v$version;

LINEID     BANNER                                                         
---------- ---------------------------------------------------------------
1          DM Database Server x64 V7.6.0.197-Build(2019.09.12-112648)ENT  
2          DB Version: 0x7000a

used time: 1.403(ms). Execute id is 4.
SQL> 


[root@localhost ~]# disql SYSDBA/[email protected]:5236
Server[192.168.1.10:5236]:mode is normal, state is open
login used time: 4.324(ms)
disql V7.6.0.197-Build(2019.09.12-112648)ENT 
SQL> 

注意:
1)登錄時用戶密碼大小寫是敏感的
2)如果disql命令未找到,請檢查第4部,是否環境變量配置正確、是否生效

7.數據庫的啓動&停止和查看狀態
方式1)通過系統服務來啓動和停止。
在實例安裝結束之後會創建服務腳本:
Windows 則是直接在服務窗口進行:
啓動:systemctl start DmServicedmsrv.service
      或 service DmServicedmsrv start
      或 DmServicedmsrv  start //該方式依賴於前面第4部環境變量的配置
關閉:systemctl stop DmServicedmsrv.service
      或 service DmServicedmsrv stop
      或 DmServicedmsrv  stop //該方式依賴於前面第4部環境變量的配置
狀態:systemctl status DmServicedmsrv.service
      或 service DmServicedmsrv status
      或 DmServicedmsrv  status //該方式依賴於前面第4部環境變量的配置
      
在Linux 6中,服務是放在/etc/rc.d/init.d目錄下,會有一個”DmService+實例名”的文件服務文件,啓動和關閉是執行service “DmServer+實例名” stop|start。
在Linux 7中,服務文件存放在/usr/lib/systemd/system目錄下,名稱改成:DmServicedmsrv.service。

方式2)通過腳本啓動和停止。
Linux通過腳本啓動:/opt/dm/dmdbms/tool/dmservice.sh
/opt/dm/dmdbms/bin/dmserver /opt/dm/dmdbms/data/testdb/dm.ini -noconsole & 

方式3)命令行模式
命令行模式使用dmserver命令來啓動和關閉實例。該命令在DM_HOME/bin目錄下。
dmserver [ini_file_path] [-noconsole] [mount]
說明:
1. Dmserver 命令行啓動參數可指定 dm.ini 文件的路徑,非控制檯方式啓動及指定數據庫是否以 MOUNT 狀態啓動。
2. Dmserver 啓動時可不指定任何參數,默認使用當前目錄下的 dm.ini 文件,如果當前目錄不存在 dm.ini 文件,則無法啓動;
3. Dmserver 啓動時可以指定-noconsole 參數。如果以此方式啓動,則無法通過在控制檯中輸入服務器命令。 
當不確定啓動參數的使用方法時,可以使用 help 參數,將打印出格式、參數說明和使用示例。使用方法如下: 
dmserver help 
當以控制檯方式啓動 Dmserver 時,用戶可以在控制檯輸入一些命令,服務器將在控制檯打印出相關信息或執行相關操作。

命令行方式和其他兩種方式的區別:
命令行方式默認也是將數據庫啓動到open狀態,但也可以在啓動時指定啓動到mount狀態,從而可以維護開文件、進程歸檔配置、數據庫普通模式或主備機模式切換等操作。在進行備份恢復時也常用命令行模式啓動。


8.可證(License) 的安裝:
用戶安裝DM時,可導入相應的許可證(License)。License的載體是一個加密文件dm.key,內容是達夢公司對用戶使用 DM 軟件的授權。
DM 軟件安裝後,如果需要得到更多授權的用戶,則需要停止服務後替換dm.key文件。


9.卸載數據庫
用戶在DM安裝目錄下,找到卸載程序uninstall.sh來執行卸載。
#執行卸載腳本命令行卸載需要添加參數-i
cd /opt/dm/dmdbms/
./uninstall.sh -i
1)運行卸載程序,按照提示輸入Y進行卸載
2)顯示卸載進度。如果是在Linux(Unix)系統下,使用非root用戶卸載完成時,終端提示“請以root系統用戶執行命令”。用戶需要手動執行相關命令。


10.創建數據庫用戶

disql SYSDBA/[email protected]:5236
CREATE TABLESPACE USER_TBS DATAFILE '/opt/dm/dmdbms/data/testdb/my_temp01.dbf' SIZE 10240;
ALTER TABLESPACE USER_TBS ADD DATAFILE '/opt/dm/dmdbms/data/testdb/my_temp02.dbf' SIZE 10240;

CREATE TABLESPACE USER_IDX DATAFILE '/opt/dm/dmdbms/data/testdb/my_idx01.dbf' SIZE 4096;
ALTER TABLESPACE USER_IDX ADD DATAFILE '/opt/dm/dmdbms/data/testdb/my_idx02.dbf' SIZE 4096;

CREATE USER DAMENG IDENTIFIED BY "DAMENG123"  DEFAULT TABLESPACE "USER_TBS" DEFAULT INDEX TABLESPACE "USER_IDX";
GRANT DBA TO DAMENG;

#切換到DAMENG用戶創建表
CONNECT DAMENG/DAMENG123
CREATE TABLE  TEST01(
    ID bigint not null, 
    NAME  varchar(255) null,
    CONSTRAINT  PK_TEST01  PRIMARY KEY (ID)
);

INSERT INTO TEST01 VALUES(1, 'aa');
COMMIT;

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章