DM8(達夢8)數據庫安裝和使用

達夢8(DM8)數據庫入門及使用


to 達夢大學php

劉秀君原創,抄襲必究java

目錄python

達夢數據庫入門及使用... 1c++

1         介紹... 3sql

2         安裝環境要求... 4shell

2.1   操做系統... 4數據庫

2.2   數據庫版本... 4安全

2.3   鏈接工具... 4bash

3         開始安裝... 5服務器

3.1   安裝前準備... 5

3.1.1   操做系統參數調優... 5

3.1.2   VNC安裝... 5

3.1.3   上傳數據庫文件... 8

3.1.4   掛載ISO鏡像... 8

3.2   安裝數據庫程序... 9

3.2.1   建立數據庫用戶、分組信息,環境變量等配置... 9

3.2.2   開始安裝數據庫... 10

3.2.3   初始化數據庫... 16

4         達夢相關資料介紹... 23

4.1   工具命令... 23

4.2   達夢數據庫手冊... 23

4.3   鏈接數據庫... 23

5         數據庫使用... 24

5.1   表空間管理... 24

5.1.1   查詢表空間... 24

5.1.2   建立表空間... 25

5.1.3   表空間狀態... 26

5.1.4   表空間維護... 28

5.1.5   臨時表空間... 31

5.1.6   Roll表空間... 32

5.1.7   刪除表空間... 32

5.1.8   實驗... 32

5.2   用戶管理... 33

5.2.1   用戶體系介紹... 33

5.2.2   用戶規則... 34

5.2.3   刪除用戶... 36

5.2.4   刪除角色... 36

5.2.5   案例1. 36

5.2.6   案例2. 37

5.2.7   案例3. 38

5.3   模式對象管理... 40

5.3.1   表操做... 40

5.3.2   建立表指定約束... 41

5.3.3   導入數據... 43

5.3.4   表維護... 52

5.3.5   視圖... 52

5.3.6   索引... 53

5.4   DMSQL. 55

5.4.1   介紹... 55

5.4.2   語法... 56

5.4.3   函數... 59

5.4.4   多表聯接查詢... 61

5.4.5   DML 語句... 62

5.5   備份還原... 63

5.5.1   介紹... 63

5.5.2   物理備份... 63

5.5.3   冷備和熱備... 63

5.6   做業... 77

5.7   DM8 ODBC配置... 82

 

 

1     介紹

        武漢達夢數據庫有限公司成立於2000年,爲中國電子信息產業集團(CEC)旗下基礎軟件企業,專業從事數據庫管理系統的研發、銷售與服務,同時可爲用戶提供大數據平臺架構諮詢、數據技術方案規劃、產品部署與實施等服務。多年來,達夢公司始終堅持原始創新、獨立研發,目前已掌握數據管理與數據分析領域的核心前沿技術,擁有所有源代碼,具備徹底自主知識產權。達夢公司是國家規劃佈局內重點軟件企業,同時也是得到國家「雙軟」認證和國家自主原創產品認證的高新技術企業,擁有國內數據庫研發精英團隊,屢次與國際數據庫巨頭同臺競技並奪標。

   本次內容主要針對達夢8數據庫的安裝及使用進行實操全程大量截圖和演示。

2     安裝環境要求

2.1   操做系統

Centos7或中標麒麟7 64位操做系統。本次部署在vmware 15.5環境上。

一、檢查操做系統版本及位數:

uname -ra

二、安裝KDE/GNOME 桌面環境(沒有的話只能命令行操做了)

三、檢查操做系統cpu以確保後續用什麼版本數據庫:

 cat /proc/cpuinfo

四、檢查數據庫依賴包:

rpm -aq|grep glibc

若是沒有,執行yum install glibc -y 安裝(2.3以上)

五、檢查內存 free -m swap分區爲物理內存的1.5倍以上

六、檢查磁盤空間容量,根據實際業務計算,df -h

2.2   數據庫版本

達夢V8試用版 Linux x64版本。

2.3   鏈接工具

Xshell、vnc

3     開始安裝

3.1   安裝前準備

3.1.1 操做系統參數調優

操做系統參數將影響數據庫的最優運行,須要提早進行調優:

ulimit -a檢查open file 最大打開數,默認是1024,須要擴充:

vi /etc/security/limits.conf(重啓後生效)
 

*                soft   nofile          102400
*                hard   nofile          102400

爲了避免重啓服務器,可以使用:

ulimit -HSn 102400

臨時擴大,重啓後失效

3.1.2 VNC安裝

[root@dmdb ~]# rpm -q vnc-server

未安裝軟件包 vnc-server

[root@dmdb ~]# yum install tigervnc-server -y

[root@dmdb ~]# /./usr/bin/vncserver

Warning: dmdb:1 is taken because of /tmp/.X11-unix/X1

Remove this file if there is no X server dmdb:1

You will require a password to access your desktops.

Password:

Verify:

Would you like to enter a view-only password (y/n)? n

A view-only password is not used

New 'dmdb:2 (root)' desktop is dmdb:2

 

Creating default startup script /root/.vnc/xstartup

Creating default config /root/.vnc/config

Starting applications specified in /root/.vnc/xstartup

Log file is /root/.vnc/dmdb:2.log

開放防火牆端口:

[root@dmdb ~]# firewall-cmd --zone=public --permanent --add-port=5902/tcp

[root@dmdb ~]# systemctl restart firewalld

啓停命令:

/usr/local/vncserver :1 stop

/usr/local/vncserver :1 restart

用vnc工具鏈接測試一下:

VNC安裝調試完畢。

3.1.3 上傳數據庫文件

[root@dmdb /]# cd /opt

[root@dmdb opt]# ls

dm8_setup.iso

3.1.4 掛載ISO鏡像

[root@dmdb opt]# mount -o loop /opt/dm8_setup.iso /mnt

mount: /dev/loop0 寫保護,將以只讀方式掛載

[root@dmdb opt]# cd /mnt

[root@dmdb mnt]# ls

DMInstall.bin  DM_Install.pdf  release_en.txt  release_zh.txt

掛載成功

3.2   安裝數據庫程序

3.2.1 建立數據庫用戶、分組信息,環境變量等配置

groupadd dinstall

useradd -g dinstall dmdba

passwd dmdba  (密碼默認設爲:dmdba)

建立數據庫安裝路徑:

mkdir /dm8

chown -R dmdba:dinstall /dm8

配置dmdba用戶環境變量

[root@dmdb mnt]# su - dmdba

上一次登陸:日 6月 21 17:39:25 CST 2020pts/2 上

[dmdba@dmdb ~]$ vi .bash_profile

最底部增長:

export DM_HOME=/dm8

export PAHT=$PATH:$HOME/.local/bin:$HOME/bin:$DM_HOME/bin:$DM_HOME/tool

 

3.2.2 開始安裝數據庫

使用圖形化界面安裝,使用dmdba用戶安裝

[dmdba@dmdb ~]$ cd /mnt

[dmdba@dmdb mnt]$ ./DMInstall.bin

提示圖形化安裝不了,須要設置xhost 用dmdba用戶設置

export DISPLAY=127.0.0.1:2 注意後面2是vnc序號

xhsot +

 

 

3.2.3 初始化數據庫

安裝完畢會自動打開初始化數據庫或者使用dmdba運行

./dm8/tool/dbca.sh

這個是爲了將數據庫加入操做系統服務中。

4     達夢相關資料介紹

4.1   工具命令

cd /dm8/tool

下面有不少平常數據庫管理工具,能夠方便進行數據庫管理維護,下面是各功能的介紹:

./manager 數據庫管理工具,可視化數據庫管理

./dts數據庫遷移工具,導入數據文件或將數據庫遷移到達夢

./dbca.sh 數據庫配置助手,用於數據庫實例的可視化增刪,以及數據庫服務註冊(開機啓停數據庫)

./console 控制檯工具,服務器實例參數管理/備份還原/數據庫許可證等

./monitor 性能監控工具,監控系統運行狀況

./analyzer審計分析程序,針對審計日誌文件進行分析的工具

./dmservice.sh 達夢服務器查看器,用於監控各服務啓停狀況

./disql  相似oracle的sqlplus 用於鏈接達夢數據庫

4.2   達夢數據庫手冊

cd /dm8/doc 裏面有詳細的使用介紹

4.3   鏈接數據庫

su – dmdba

disql sysdba/dameng123

或者指定端口:

disql sysdba/dameng123@localhost:5236

 

5     數據庫使用

可經過:

/dm/tool/manager 圖形化來管理

5.1   表空間管理

5.1.1 查詢表空間

達夢默認的系統表空間

SYSTEM:數據字典和全局的系統數據

ROLL:存入了數據庫運行過程當中產生的回滾記錄

TEMP:臨時表空間

MAIN:存放對象數據的表空間,建立對象的時候,若是不指定表空

間,就是放在該表空間

HMAIN:存放huge table的信息的表空間。

5.1.2 建立表空間

create tablespace "TEST" datafile '/dm8/data/DAMENG/TBS01.DBF' size 32 autoextend on next 1 CACHE = NORMAL;

 

5.1.3 表空間狀態

通常表空間出現問題須要作恢復時,須要先脫機。

脫機狀態

alter tablespace TEST offline;

在線狀態

alter tablespace TEST online;

 

5.1.4 表空間維護

5.1.4.1  表空間不足擴容

alter tablespace "TEST" resize datafile 'TBS01.DBF' to 64;

5.1.4.2  擴容表空間文件

先查看錶空間有多少文件,能夠圖形化或者命令查看

select FILE_NAME,STATUS,TABLESPACE_NAME from dba_data_files;

5.1.4.3  增長數據文件

alter tablespace "TEST" add datafile '/dm8/data/DAMENG/TBS02.DBF' size 64;

5.1.4.4  更換存儲的位置

注意:system,roll,temp 不能offline

alter tablespace TEST offline;

select tablespace_name,status from dba_tablespaces;

alter tablespace TEST rename datafile

'/dm8/data/DAMENG/TBS02.DBF' to '/dm8/tbs02.dbf';

alter tablespace TEST rename datafile

'/dm8/data/DAMENG/TBS02.DBF' to '/dm8/tbs01.dbf';

alter tablespace TEST online;

 

5.1.5 臨時表空間

select para_name,para_value from v$dm_ini where para_name like

'TEMP%';

5.1.6 Roll表空間

Roll時回滾表空間,若是不夠就須要擴充

參數undo_retention

Roll 表空間不足:

Alter tablespace roll resize datafile ‘/dm8/data/DAMENG/ROLL.DBF’

to 256;

5.1.7 刪除表空間

drop tablespace test;  後續還要使用先不要刪;

5.1.8 實驗

建立一個表空間,初始大小50M,表空間由2 個數據文件組成,分別存儲在不一樣的位置,數據文件自動擴展,每次擴展1M,每一個數據文件最大100M。

create tablespace "CESHI" datafile '/dm8/CESHI1.DBF' size 50 autoextend on next 1 maxsize 100, '/dm8/CESHI2.DBF' size 50 autoextend on next 1 maxsize 100 CACHE = NORMAL;

5.2   用戶管理

5.2.1 用戶體系介紹

在DM 數據庫中用戶管理主要涉及到三塊,用戶,權限,角色權限:執行特定類型sql 或是訪問其餘模式對象的權利系統權限:數據庫對象的建立,刪除,修改等等。

對象權限:對數據對象的數據的操做權限。

數據庫預約義用戶Sysdba

Sys:不能用於用戶登陸,是系統內置用戶

Syssso

Sysauditor

sysdbo

三權分立(企業版)

Sysdba:數據庫系統管理員

Syssso:數據安全員

Sysauditor:數據庫審計員

四權分立(安全版)

Sysdba

Syssso

Sysauditor

Sysdbo :數據庫對象操做員

5.2.2 用戶規則

名字:字母開頭,a_z,0-9,$#_

位置:對應的表空間

密碼:口令策略

0:無策略

1:禁止與用戶名相同

2:口令長度不小於9

4:至少包含一個大寫字母

8:至少包含一個數字

16:至少包含一個標點符號(英文狀態下輸入除空格和「」)

口令能夠單獨使用,也能夠組合使用。好比:要求口令策略禁止用戶

名相同,而且口令長度不小於9)

則設置口令策略爲1+2=3

Faild_login_attemps:密碼嘗試登陸次數

Password_lock_time:密碼失敗後鎖定時間

Password_life_time 密碼過時時間。

策略配置地方在:

/dm8/tool/console

5.2.3 刪除用戶

drop user test cascade;  級聯刪除,關聯的schema都會被刪除

drop user test;只刪除用戶帳號

5.2.4 刪除角色

drop role testrole;

5.2.5 案例1

案例1:創建用戶test,用戶能夠建立本身的表,有屬於本身的表空間,用戶密碼要求每60 天變動一次。

create user "TEST" identified by "dameng123"

limit password_life_time 60

default tablespace "TEST";

grant "PUBLIC","VTI" to "TEST";

grant CREATE TABLE to "TEST";

這裏就使用上面那個test表空間

查看test擁有哪些權限了

select grantee,granted_role from SYS.DBA_ROLE_PRIVS where grantee='TEST';

查看public角色有哪些權限

SELECT GRANTEE,PRIVILEGE FROM SYS.DBA_SYS_PRIVS WHERE GRANTEE='PUBLIC';

5.2.6 案例2

規劃一個用戶test2,用戶每60 天變動一次密碼,密碼嘗試連

接2 次失敗,帳號鎖定5 分鐘,用戶能查詢dmhr.employee 表。

create user "TEST2" identified by "dameng123"

limit failed_login_attemps 2, password_life_time 60, password_lock_time 5;

grant "PUBLIC","VTI" to "TEST2";

grant SELECT on "DMHR"."EMPLOYEE" to "TEST2";

5.2.7 案例3

企業招聘一批錄入人員,權限固定,只能錄入city 表的權限。

角色:一組固定權限的集合。

create role "TESTROLE3";

grant REFERENCES ANY TABLE to "TESTROLE3";

grant INSERT on "DMHR"."CITY" to "TESTROLE3";

grant "TESTROLE3" to "TEST2";

測試一下:

[dmdba@dmdb ~]$ disql test2/dameng123

SQL> insert into dmhr.city(city_id,city_name,region_id) values('11','beijing',1);

SQL>commit;

 

5.3   模式對象管理

模式(scema)是一個特定的對象集合,在概念上可將其看做是包含表、視圖、索引等若干對象的對象集模式對象:表、視圖、約束、索引、序列、觸發器、存儲過程/函數、包、同義詞、類、域Dm 建立用戶的時候,會默認去建立一個同名的式,若是你建立的用戶,模式名已存在,用戶沒法建立一個用戶能夠擁有多個模式。

5.3.1 表操做

create table "TEST"."STU"

(

"ID" CHAR(10) not null ,

"SNAME" VARCHAR(20) not null ,

"SEX" CHAR(1),

"AGE" INT,

"TEL" VARCHAR(15) not null ,

"ADDRESS" VARCHAR(50),

primary key("ID")

)

storage(initial 1, next 1, minextents 1, fillfactor 0, on "STU");

comment on table "TEST"."STU" is 'STUDENT INFO';

增長列

alter table DMHR.TEST add column(AGE INT);

刪除列

alter table DMHR.TEST drop column AGE;

5.3.2 建立表指定約束

一、非空約束

SQL> create table test.t1(id int);

48

SQL> alter table test.t1 modify id int not null;

二、惟一約束(惟一約束遇到null,忽略,可錄入多個null 值)

SQL> create table test.t3(id int, name varchar(20) unique);

SQL>insert into test.t3 values(1,'ssss');

SQL> insert into test.t3 values(2,null);

SQL> insert into test.t3 values(3,null);

SQL> insert into test.t3 values(4,null);

commit;

三、主鍵約束(一張表只能有一個主鍵約束)

SQL> create table test.t4(id int primary key, name varchar(20));

SQL> create table test.t5(id int);

SQL> alter table test.t5 add constraint t5_pri primary key(id);

四、檢查約束

SQL> create table test.t6(id int check(id>=5));

五、外健約束

SQL> create table test.t8(sid int primary key ,pid int);

SQL> create table test.t9(id int primary key,sid int foreign key references

test.t8(sid));

外鍵必定是其餘表的主鍵。

六、對列加備註;

SQL> comment on column test.t8.sid is '測試';

 

查看約束

select CONSTRAINT_NAME,CONSTRAINT_TYPE,TABLE_NAME,STATUS from dba_constraints where TABLE_NAME='T8';

select * from dba_col_comments where table_name='T8';

5.3.3 導入數據

create table test.t10(sid int);

製造數據

vi test.sql

insert into test.t10(sid) values(1);

insert into test.t10(sid) values(2);

insert into test.t10(sid) values(3);

insert into test.t10(sid) values(4);

insert into test.t10(sid) values(5);

insert into test.t10(sid) values(6);

兩種操做,命令行:

SQL> start /home/dmdba/test.sql

圖形化:

/dm8/tool/dts

 

這個執行特別慢。

完成後執行:

 

select * from test.t10

5.3.4 表維護

一、重命名:

SQL> alter table test.t1 rename to tt;

啓用和禁用約束

SQL>select

CONSTRAINT_NAME,CONSTRAINT_TYPE,TABLE_NAME,STATUS from

dba_constraints where TABLE_NAME='T3';

alter table test.t3 disable constraint CONS134218845;

alter table test.t3 enable constraint CONS134218845;

刪除表:

SQL> drop table test.tt;

5.3.5 視圖

視圖分類:簡單視圖,複雜視圖,物化視圖

一、簡單視圖

建立語法:create view() as select() from() where ()

修改語法:craete or replace view() as select () from () where ()

SQL> create view test.v1 as select * from dmhr.employee;

SQL> create or replace view test.v1 as select employee_name from

dmhr.employee limit 5;

刪除視圖

SQL> drop view test.v1;

查詢視圖

DBA_VIEWS;

5.3.6 索引

索引的做用:加快表的查詢,增長數據庫的查詢性能,對數據庫作DML 操做的時候,數據庫會自動維護索引,索引佔空間。

達夢支持的索引:二級索引,位圖索引,惟一索引,複合索引,函數索引,分區索引等。

創建索引的規則:

適合建索引的狀況:

一、常常查詢的列

二、鏈接條件列

三、謂詞常常出現的列(where)

四、查詢是返回表的一小部分數據。

不適合建索引的狀況

一、列上有大量的null

二、列上的數據是有限的(性別)

查看錶的索引

select table_name,index_name from dba_indexes where

table_name='STU';

建立索引:

規劃索引表空間,表的數據無序的,索引的數據是有序的

建立索引表空間

SQL> create tablespace index1 datafile '/dm8/data/DAMENG/index1_01.dbf' size 32;

建索引

SQL> create table test.emp as select * from dmhr.employee;

SQL> create table test.dept as select * from dmhr.department;

SQL> create index ind_emp on test.emp(employee_id) tablespace index1;

查看錶的執行計劃

SQL> explain select * from test.emp where employee_id<20;

1   #NSET2: [0, 42, 280]

2     #PRJT2: [0, 42, 280]; exp_num(12), is_atom(FALSE)

3       #SLCT2: [0, 42, 280]; EMP.EMPLOYEE_ID < 20

4         #CSCN2: [0, 856, 280]; INDEX33555551(EMP)

沒有走咱們本身建的索引,統計信息是舊的,須要得新收集統計信息;

收集統計信息

SQL> begin

dbms_stats.gather_table_stats('TEST','EMP');

END;

/

DMSQL 過程已成功完成

SQL>  explain select * from test.emp where employee_id<20;

 

1   #NSET2: [0, 1, 280]

2     #PRJT2: [0, 1, 280]; exp_num(12), is_atom(FALSE)

3       #BLKUP2: [0, 1, 280]; IND_EMP(EMP)

4         #SSEK2: [0, 1, 280]; scan_type(ASC), IND_EMP(EMP), scan_range(null2,20)

注意:建立索引,刪除索引,重建索引和收集統計信息,不要在業務

高峯去作。在業務低谷的時候去操做。

維護索引:

重建索引:

SQL> alter index test.ind_emp rebuild;

SQL> alter index test.ind_emp rebuild online; ---慎用

刪除索引:

SQL> drop index test.ind_emp;

注意:達夢默認不會自動收集統計信息,須要手動收集,能夠利用做

業來定時的自動收集。

 

5.4   DMSQL

5.4.1 介紹

DMSQL 基於sql92,部分sql99 的。

Sql 語句的分類

DQL:數據查詢語句select ...from....where 組成的查詢塊

DDL:數據定義語句create table create view create index 等等

DML:數據操做語句insert update delete

DCL:數據控制語句用於授予或回收訪問數據庫的某種特權,控制數據操做縱事務,對數據庫進行監視等

Grant revoke commit rollback lock unlock 等。

5.4.2 語法

語法:select () from () where ()

過濾查詢

Where <搜索條件>

Where 子句經常使用的查詢條件

謂詞種類謂詞

比較> < <= >= != not

肯定範圍Between and >= and <=

集合In not in

字符匹配Like not like

空值Is null is not null

這些和平常oracle語法都同樣

多重條件And or

注意like用法 %號模糊匹配,_下劃線匹配後面一個字,兩個下劃線兩個字

select employee_name,salary from test.emp where employee_name like

'劉%';

select employee_name,salary from test.emp where employee_name like

'劉_';

 

查找工資在20000 到30000 之間的員工。

Sql>select employee_name,salary from test.emp where salary between

20000 and 30000;

等價的sql

SQL> select employee_name,salary from test.emp where salary >=20000

and salary<=30000;

5.4.3 函數

5.4.3.1  單行函數

 大小寫處理函數

5.4.3.2  字符處理函數

5.4.3.3  數值處理函數

ROUND:將值舍入到指定的小數位(四捨五入)

ROUND(49.36, 1) 49.4

TRUNC:將值截斷到指定的小數位(不捨入)

TRUNC(49.36,1) 49.3

MOD:返回除法運算的餘數

MOD(100, 3) 1

5.4.3.4  日期函數

MONTHS_BETWEEN 兩個日期之間的月數

ADD_MONTHS 將日曆月份添加到日期中

NEXT_DAY 指定日期的下一天

LAST_DAY 月份的最後的一天

顯示轉換

TO_CHAR

select employee_name,to_char(salary,'L999,999.00') from

dmhr.employee;

TO_NUMBER (char [,fmt])

TO_DATE (char [,fmt])

select employee_name,hire_date,to_date(hire_date,'yyyy-mm-dd') from

dmhr.employee;

5.4.3.5  分組函數

分組函數做用於一組數據,並對一組數據返回一個值。

常見的分組函數:

AVG 、COUNT 、MAX 、MIN 、SUM…

案例1:求各個部門的最高工資。

select department_id,max(salary) from test.emp group by

department_id;

案例2:找出部門平均工資大於10000 的全部部門。

select department_id,avg(salary) av1 from test.emp

group by department_id having avg(salary)>10000 order by av1 desc;

注意:having 表示分組後的數據進行過慮,having 不能單獨使用,必定是和group by 一塊兒使用的,分組函數不能出如今where 子句中。

5.4.3.6  排序order by

升序:asc 降序:desc 默認是升序

案例3:從郵件地址中取出郵箱名字

select substr(email,1,(instr(email,'@')-1)), employee_name from test.emp limit 10;

5.4.4 多表聯接查詢

語法:select () from join () on()

一、內鏈接:結果集顯示所有知足條件的記錄。

select employee_name,department_name

from test.emp e join test.dept d on e.department_id=d.department_id

二、外鏈接

左外鏈接:把left join 左邊的所有顯示出來,右邊的只顯示知足條件

的,不知足條件的用null 代替

select employee_name,department_name

from test.emp e left join test.dept d on

e.department_id=d.department_id

右外鏈接:把right join 右邊的所有顯示出來,左邊的只顯示知足條

件的,不知足條件的用null 代替

select employee_name,department_name

from test.emp e right join test.dept d on

e.department_id=d.department_id

全外鏈接=左外鏈接+右外鏈接

select employee_name,department_name

from test.emp e full join test.dept d on

e.department_id=d.department_id

5.4.5 DML 語句

insert into

insert into test.dept values('1106', 'aaaaa', '9002', 9);

update

update test.emp set department_id=null where employee_id='1001';

delete

delete test.dept where department_id='1106';

MERGE 語法

使用merge into 語法能夠合併update 和insert 語句

merge into test.t1 using test.t12 on (test.t1.c1=test.t12.c3)

when MATCHED THEN update set test.t1.c2=test.t12.C4

when not matched then insert (c1,c2) values (test.t12.c3,t12.c4);

5.5   備份還原

5.5.1 介紹

數據庫備份就是製做數據庫的「副本」防止數據庫丟失數據,在數據丟失後重建數據庫.

徹底備份是指一個備份包含指定數據庫或表空間的全部數據

增量備份是指在一次全備份或上一次增量備份後,之後每次的備份只需備份與前一次相比增長或者被修改的文件。

備份的方式:物理備份和邏輯備份

備份的介質:磁盤,磁帶,光盤

集羣:數據守護,dsc (rac)

也支持第三方的備份軟件:愛數,鼎甲

5.5.2 物理備份

5.5.3 冷備和熱備

5.5.3.1  熱備管理工具方式

backup database full to "DB_DAMENG_FULL_2020_06_21_22_58_54" backupset 'DB_DAMENG_FULL_2020_06_21_22_58_54';

命令行方式下全備,增量備

全備

SQL> backup database full backupset '/dm8/backup/fullbak2';

增量備

SQL> backup database increment backupset '/dm8/backup/incr_bak';

表空間還原:

表空間只能脫機還原,使用Dmrman

模擬表空間test 損壞:

[dmdba@localhost DAMENG]$ mv TEST01.DBF TEST01.DBF.BAK

重啓實例服務,實例處於mount 狀態。關閉實例服務

使用dmrman 進行還原

一、校驗備份集

RMAN> check backupset '/dm8/backup/fullbak2';

二、還原表空間

RMAN> restore database '/dm8/data/DAMENG/dm.ini' tablespace test

from backupset '/dm8/backup/fullbak2';

二、恢復表空間

RMAN> recover database '/dm8/data/DAMENG/dm.ini' tablespace test;

重啓實例服務

5.5.3.2  冷備控制檯方式

冷備:dmap 服務是打開的,數據庫實例是關閉的。

[root@dmdb tool]# ./console

勾上dmap會形成鏈接通訊超時

【問題緣由】DmServerDMSERVER服務沒有關閉。DMRMAN是脫機備份,備份時必定要關閉數據庫。

【解決方法】:使用root執行以下命令關閉數據庫實例服務(DMSERVER是數據庫實例名)便可。

systemctl stop DmServiceDMSERVER.service

脫機還原時,先還原再恢復。

特別注意,若是還原時候出現服務沒法啓動,八成你是用root用戶啓動的圖形化界面,因此形成了還原時部分文件權限發生改變,應該用dmdba啓動./console

 

systemctl start DmServiceDMSERVER.service

5.5.3.3   冷備DMRMAN 工具去備

[-137]:服務器正在運行或者存在其餘進程正在操做同一個庫

須要中止服務

systemctl stop DmServiceDMSERVER.service

冷備:要中止數據庫,若是不中止會形成數據丟失

5.5.3.4  邏輯備份

導入導出(dexp,dimp)

分四級別:分別獨立,互斥不能同時存在

Ø  數據庫級別

Ø  用戶

Ø  模式

Ø  表級

一、邏輯導出

[dmdba@dmdb bin]$ ./dexp sysdba/dameng123@localhost:5236 file=dexp01.dmp log=dexp01.log directory=/dm8/backup/dexp full=y

二、邏輯導入

[dmdba@ dmdb bin]$ ./dimp sysdba/SYSDBA@localhost:5239 file=/dm8/backup/dexp/dexp01.dmp log=/dm8/backup/dexp/dimp01.log

5.6   做業

.

 

 

 

call SP_CREATE_JOB('TEST01',1,0,'',0,0,'',0,'');

call SP_JOB_CONFIG_START('TEST01');

call SP_ADD_JOB_STEP('TEST01', 'job1', 5, '01010/dm8/backup|/dm8/backup', 1, 2, 0, 0, NULL, 0);

call SP_ADD_JOB_SCHEDULE('TEST01', 'task1', 1, 2, 1, 40, 0, '23:52:03', NULL, '2020-06-21 23:52:03', NULL, '');

call SP_JOB_CONFIG_COMMIT('TEST01');

 

5.7   DM8 ODBC配置

達夢支持的語言:c c++ java python php perl .net

15.1 Linux 環境中配置ODBC(以root 配置)

檢查gcc 包

[root@localhost ~]# rpm -aq|grep gcc

[root@dmdb unixODBC-2.3.0]# yum install gcc -y

解壓安裝包

[root@localhost opt]# tar -xzvf unixODBC-2.3.0.tar.gz

配置odbc

[root@localhost unixODBC-2.3.0]# ./configure --enable-gui=no

(注意若是抱錯,就是由於gcc沒裝)

編譯安裝ODBC

[root@localhost unixODBC-2.3.0]# make && make install

查看odbc 的版本

[root@localhost unixODBC-2.3.0]# odbc_config --version

2.3.0

查看ODBC 配置文件的路徑

[root@dmdb unixODBC-2.3.0]# odbcinst -j

unixODBC 2.3.0

DRIVERS............: /usr/local/etc/odbcinst.ini

SYSTEM DATA SOURCES: /usr/local/etc/odbc.ini

FILE DATA SOURCES..: /usr/local/etc/ODBCDataSources

USER DATA SOURCES..: /root/.odbc.ini

SQLULEN Size.......: 8

SQLLEN Size........: 8

SQLSETPOSIROW Size.: 8

配置odbc.ini 和odbcinst.ini

vi /usr/local/etc/odbc.ini

[dm8]

Description = DM ODBC DSND

Driver = DM8 ODBC DRIVER

SERVER = localhost

UID = SYSDBA

PWD = dameng123

TCP_PORT = 5236

 

vi /usr/local/etc/odbcinst.ini

[DM8 ODBC DRIVER]

Description = ODBC DRIVER FOR DM8

DRIVER = /dm8/bin/libdodbc.so

相關文章
相關標籤/搜索