達夢8(DM8)數據庫入門及使用
to 達夢大學php
劉秀君原創,抄襲必究java
目錄python
1 介紹... 3sql
2 安裝環境要求... 4shell
2.3 鏈接工具... 4bash
3 開始安裝... 5服務器
3.2.1 建立數據庫用戶、分組信息,環境變量等配置... 9
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