用命令方式建立數據庫
在達夢的bin目錄下使用dminit
./dminit path=/dm7/data db_name=DM01 instance_name=EST port_num=5327
達夢數據庫的狀態
4種狀態
shutdown mount open suspend
狀態切換
shutdown -- mount
shutdown -- open
open -- mount
查看狀態
select status$ from v$instance;
啟動數據庫
方式一
在達夢安裝bin目錄下:./dmserver /dm7/data/DM01/dm.ini
這種方式。窗口關閉了,或者再窗口中輸入exit,數據庫就關閉了,適合臨時啟動數據庫,數據庫服務沒有注冊到OS。
方式二
linux6中
service DMService start
linux7中
Systemctl start DMService
判斷數據庫是否啟動
netstat -ntl| grep 523*
ps -ef | grep dmserver
達夢數據庫的體系結構
達夢邏輯存儲結構
- 數據庫由一個或多個表空間組成
- 每一個表空間由一個或多個數據文件組成
- 每個數據文件由一個或多個簇組成
- 頁是數據庫最小的分配單位,也是數據庫中使用的最小的IO單元。
實例:共享內存+后台的進程或是線程
數據庫:存放到磁盤的文件
一般一個db對應一個實例,但是DSC(共享集群)多個實例對一個數據庫。
達夢服務器組成:客戶端+服務器(實例+數據庫)
客戶端不能直接去訪問數據庫,客戶端把請求交給實例,實例去訪問數據庫,把訪問信息返回給實例,實例交給客戶端。
達夢的物理存儲結構
配置文件
Dm.ini Dmarch.ini ......
控制文件
Dm.ctl Ctl_bak_path
數據文件
以.dbf結尾的文件
重做日志文件
重做日志文件又叫redo日志。主要用於數據庫的備份和恢復。
歸檔文件
利用歸檔日志,系統可被恢復至故障發生的前一刻,也可以還原到指定的時間點,如果沒有歸檔日志文件,則只能利用備份來進行恢復。
備份文件
以bak為擴展名的文件。
日志文件
跟蹤日志,事件日件
重做日志管理
查看日志信息
select path from v$rlogfile;
增加一個日志文件
alter database add logfile '/dm7/data/DAMENG/DAMENG04.log' size 500;
修改日志文件大小
alter database resize logfile '/dm7/data/DAMENG/DAMENG04.log' to 1024;
表空間管理
表空間介紹
select TABLESPACE_NAME,STATUS from dba_tablespaces;
System表空間: 數據字典和全局的系統數據。
ROLL表空間:存放了數據庫運行過程中產生的回滾記錄。
TEMP表空間:臨時表空間。
MAIN表空間:數據庫默認的表空間,創建數據對象時,如果不指定存儲位置,默認存放到該表空間。
HMAIN表空間:huge 表空間。
查所有表空間信息:
Select name from v$tablespace union select name from v$huge_tablespace
增加表空間
create tablespace tab1 datafile '/dm7/data/DAMENG/tab1_01.dbf' size 32;
案例2 創建一個表空間,初始大小50M,最大100M.
create tablespace tab2 datafile '/dm7/data/DAMENG/tab2_01.dbf' size 50 autoextend on maxsize 100;
案例3 創建一個表空間,初始50M,每次擴展1M,最大100M.
create tablespace tab3 datafile '/dm7/data/DAMENG/tab3_01.dbf' size 50 autoextend on next 1 maxsize 100;
案例4 創建一個表空間,初始50M,表空間由2個數據文件組成,分別存儲到不同的磁盤上,每次擴展1m,每個數據文件最大100M.
create tablespace tab4 datafile '/dm7/data/DAMENG/tab4_01.dbf' size 50 autoextend on next 1 maxsize 100 , '/dm7/data/DAMENG/tab4_02.dbf' size 50 autoextend on next 1 maxsize 100;
維護表空間
表空間不足,如何去維護表空間:
1、創建大表空間,數據導出,導入。
2、Resize 數據文件大小。
3、增加數據文件
alert tablespace tabs2 add datafile '/dm7/data/DAMENG/tab2_02.dbf' size 50 autoextend on maxsize 100;
更換存儲位置
達夢表空間的狀態:
0 ---online
1 ----- offline
注意:SYSTEM,ROLL, TEMP 不能offline;
案例1:更換tbs1的存儲位置
- 表空間offline
alter tablespace tbs1 offline; - 修改存儲位置
alter tablespace tbs1 rename datafile '/dm7/data/DAMENG/tbs1_01.dbf' to '/dm7/data/tbs1_01.dbf'; - 表空間online
alter tablespace tbs1 online;
刪除表空間
drop tablespace tbs1;
如果表空間有數據庫不允許直接刪除!
用戶管理
查詢有哪些用戶
select username from dba_users;
1、sys --- 達夢數據庫的內置管理用戶,不能登錄數據庫,數據庫使用的大部分的數據字典和動態性能視圖,sys
2、Sysdba ---數據庫的管理員
3、Sysauditor --- 審計用戶
4、Syssso---安全用戶
5、sysdbo --數據操作員 (安全版有,四權分立)
如何規划用戶
名字:字母開頭,a-z,0-9,$#_
位置:
Create tablespace
密碼:
口令策略:
用戶密碼最長為48個字節,創建用戶語句使用 password policy子句來指定口令策略。(DM.INI PWD_POLICY)
系統支持的口令策略:
0 無策略
1 禁止與用戶名相同
2 口令長度不小於9
4 至少包含一個大寫字母(A-Z)
8 至少包含一個數字(0-9)
16 至少包含一個標點符號(英文狀態輸入,除”和空格外)
口令可以單獨使用,也可以組合使用,比如需要應策略1和2,
則設置口令策略為:3
密碼嘗試登錄次數 FAILED_LOGIN_ATTEMPS
密碼失敗鎖定時間 PASSWORD_LOCK_TIME
密碼過期時間 PASSWORD_LIFE_TIME
案例1:為數據庫設置一個用戶,該賬戶,可以創建自己的表,有屬於自己的獨立表空間,用戶密碼要求每60天變更一次。
create tablespace test datafile '/dm7/data/DAMENG/test01.dbf' size 32;
create user test identified by dameng123 limit password_life_time 60 default tablespace test;
規划用戶權限
系統權限 create drop alter 能夠對數據庫做什么操作。
對象權限(表,視圖,過程等等)select delete update insert
查看角色
select role from dba_roles;
查看用戶權限
select grantee,granted_role from dba_role_privs where grantee='TAB1_USER';
查詢角色所擁有的權限
select grantee,privilege from dba_sys_privs where grantee='PUBLIC';
案例2 新建一個test用戶,並在test用戶下創建表t1;
- 使用sysdba為用戶授權
grant create table to tab1_user;
2.使用授權用戶登錄並創建表
conn tab1_user/dameng123
create table t1(id int);
案例3:規划一個用戶,賬戶每60天變更一次密碼,密碼嘗試連接2次失敗,賬戶鎖定5分鍾,用戶還可以查詢dmhr.employee表。
1.為用戶授權
grant select on dmhr.employee to test1
2.為用戶解鎖
alter user test1 account unlock;
案例4 企業招聘一批錄入人員,權限是固定的,只有錄入CITY表,
角色:一類權限的集合,
1.創建用戶
create user test2 identified by dameng123;
2.創建角色
create role r1;
3.為角色授權
grant insert on dmhr.city to r1;
4.
grant references any table to r1;
5.把角色賦給用后
grant r1 to test2;
用戶維護
撤回權限revoke
revoke insert on dmhr.city from r1;
修改用戶密碼
alert user test identified by dameng123456;
修改用戶鎖定狀態
alter user test account lock;
alter user test account unlock;
刪除用戶
drop user test1
drop user test1 cascade;
Drop user test cascade ----慎用,刪除之前,我們一定要做備份。
對象管理
(模式:表,視圖,序列,索引,同義詞)
模式:一組數據對象的集合,為了安全,創建用戶的時候,就會生成一個跟用戶同名的模式。
CREATE SCHEMA "DAMENG" AUTHORIZATION "SYSDBA";
Drop schema DAMENG;