dca是什么意思,達夢DCA
dca是什么意思,達夢DCA
達夢數據庫DCA認證
一、安裝
1、查看tmp大小
df -h /tmp
終端輸出
文件系統 容量 已用 可用 已用% 掛載點
/dev/mapper/klas-tmp 1.5G 44M 1.5G 3% /tmp
1.5G空間小,可能會導致數據庫安裝失敗
臨時增大tmp空間
mount -o remount,size=5G /tmp
永久增大tmp空間,在 option 部分增加 size=15G 字段,來永久增大 tmp 空間。
# /etc/fstab
# <file system> <mount point> <type> <options> <dump> <pass>
tmpfs /tmp tmpfs defaults,size=15G,noatime,mode=1777 0 0
2、建用戶(組)
# 創建用戶組
groupadd dinstall
# 創建用戶
useradd -g dinstall -m -d /home/dmdba -s /bin/bash dmdba
# 初始用戶無密碼 無法登錄 設置登錄密碼
passwd dmdba
3、確定安裝位置
# 將數據庫安裝至 /dm8
mkdir /dm8
# 賦予dmdba用戶權限
chown dmdba:dinstall /dm8
# 查看/dm8文件夾權限
ls -ld /dm8
4、安裝數據庫
dca是什么意思、掛載鏡像
# 將鏡像掛載至 /mnt/dm
mkdir /mnt/dm
# mount掛載 格式:mount 鏡像文件 掛載位置
mount /mnt/hgfs/kylinShared/dm8_20220525_x86_rh6_64.iso /mnt/dm
讓其他用戶接入
# root用戶執行一次即可
xhost +
# 查看當前的display
echo $DISPLAY
# 終端輸出
:0.0
設置圖形化界面
# 查出來是什么就設置什么
su - dmdba
export DISPLAY=:0.0
echo $DISPLAY
未擴大tmp空間,可指定到其他路徑下
mkdir /opt/tmp
# 賦權
chown dmdba:dminstall /opt/tmp
# 指定路徑
export DM_INSTALL_TMPDIR=/opt/tmp
安裝
cd /mnt/dm
# 圖形化界面安裝指令
./DMInstall.bin# 命令行安裝
./DMInstall.bin -i
夢達通信中心,終端輸出
2022-10-22 15:24:31
[INFO] 安裝達夢數據庫...
2022-10-22 15:24:32
[INFO] 安裝 基礎 模塊...
2022-10-22 15:24:34
[INFO] 安裝 服務器 模塊...
2022-10-22 15:24:34
[INFO] 安裝 客戶端 模塊...
2022-10-22 15:24:35
[INFO] 安裝 驅動 模塊...
2022-10-22 15:24:35
[INFO] 安裝 手冊 模塊...
2022-10-22 15:24:35
[INFO] 安裝 服務 模塊...
2022-10-22 15:24:36
[INFO] 移動日志文件。
2022-10-22 15:24:36
[INFO] 安裝達夢數據庫完成。請以root系統用戶執行命令:
/dm8/script/root/root_installer.sh
切換到root用戶執行命令
# 新打開一個終端 或者 exit
su - root
# 執行命令
/dm8/script/root/root_installer.sh
二、卸載
1、命令行卸載
# 進入安裝路徑 /dm8 執行
./uninstall.sh -i
三、創建數據庫
1、命令行創建數據庫
# dmdba用戶進入 安裝路徑的bin目錄下執行命令
./dminit PATH=/dm8/data db_name=DMOA instance_name=DMOASVR port_num=5238 sysdba_pwd=Dameng123# 終端輸出
initdb V8
db version: 0x7000c
file dm.key not found, use default license!
License will expire on 2023-05-25
Normal of FAST
Normal of DEFAULT
Normal of RECYCLE
Normal of KEEP
Normal of ROLLlog file path: /dm8/data/DMOA/DMOA01.loglog file path: /dm8/data/DMOA/DMOA02.logwrite to dir [/dm8/data/DMOA].
create dm database success. 2022-10-22 15:59:11
2、命令行創建達夢服務
# 使用root用戶進入 /dm8/script/root 目錄下執行命令
./dm_service_installer.sh -t dmserver -p DMOASVR -dm_ini /dm8/data/DMOA/dm.ini
# 終端輸出
Created symlink /etc/systemd/system/multi-user.target.wants/DmServiceDMOASVR.service → /usr/lib/systemd/system/DmServiceDMOASVR.service.
創建服務(DmServiceDMOASVR)完成# 查看服務狀態
systemctl status DmServiceDMOASVR.service
# 終端輸出
● DmServiceDMOASVR.service - DM Instance Service(DmServiceDMOASVR).Loaded: loaded (/usr/lib/systemd/system/DmServiceDMOASVR.service; enabled; v>Active: inactive (dead)# 啟動服務
systemctl start DmServiceDMOASVR.service# 查看達夢服務
ps -ef|grep dmserver
# 終端輸出
dmdba 7523 1 0 15:48 ? 00:00:02 /dm8/bin/dmserver path=/dm8/data/DAMENG/dm.ini -noconsole
dmdba 7890 1 2 16:11 ? 00:00:01 /dm8/bin/dmserver path=/dm8/data/DMOA/dm.ini -noconsole
root 7986 6855 0 16:12 pts/1 00:00:00 grep dmserver
3、查看達夢服務進程
ps -ef|grep dmserver
# 終端輸出
dmdba 7523 1 0 15:48 ? 00:00:02 /dm8/bin/dmserver path=/dm8/data/DAMENG/dm.ini -noconsole
root 7639 6855 0 15:53 pts/1 00:00:00 grep dmserver
四、客戶端管理工具
1、圖形化界面
# 進入/dm8/tool 執行命令
./manager
# 打開圖形化界面即可操作
2、disql
# dmdba用戶進入 /dm8/bin 目錄下執行命令
./disql
# 如果使用默認用戶名密碼 直接回車就可連上
# 終端輸出
[dmdba@localhost bin]$ ./disql
disql V8
用戶名:
密碼:服務器[LOCALHOST:5236]:處于普通打開狀態
登錄使用時間 : 2.831(ms)
SQL>select * from v$database;行號 NAME CREATE_TIME ARCH_MODE LAST_CKPT_TIME
---------- ------ ------------------- --------- -------------------STATUS$ ROLE$ MAX_SIZE TOTAL_SIZE ----------- ----------- -------------------- --------------------DSC_NODES OPEN_COUNT STARTUP_COUNT LAST_STARTUP_TIME ----------- ----------- -------------------- -------------------
1 DAMENG 2022-10-22 15:47:39 N 2022-10-22 16:27:414 0 0 373761 1 1 2022-10-22 15:48:43已用時間: 4.861(毫秒). 執行號:56400.# 連接5238
SQL> conn sysdba/Dameng123:5238服務器[LOCALHOST:5238]:處于普通打開狀態
登錄使用時間 : 1.936(ms)
SQL>select name from v$database; 行號 NAME
---------- ----
1 DMOA已用時間: 1.356(毫秒). 執行號:55401.
3、tool目錄下的disql
/dm8/tool 目錄下的disqli調用的是bin目錄下的disql nolog
# 查看tool下的disql
cat /dm8/tool/disql
# 終端輸出
#!/bin/shPRG="$0"
PRGDIR=`dirname "$PRG"`cd "$PRGDIR/.."
DM_HOME=`pwd`
cd "$DM_HOME/bin""$DM_HOME/bin/disql" /nolog[root@localhost root]#
4、連接服務器
# 以本機ip為例
[dmdba@localhost bin]$ ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host lovalid_lft forever preferred_lft foreverinet6 ::1/128 scope host valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000link/ether 00:0c:29:47:ca:31 brd ff:ff:ff:ff:ff:ffinet 192.168.26.128/24 brd 192.168.26.255 scope global dynamic noprefixroute ens33valid_lft 1531sec preferred_lft 1531secinet6 fe80::3ecc:96e:46a5:14a4/64 scope link noprefixroute valid_lft forever preferred_lft forever# bin目錄下執行 命令
./disql sysdba/Dameng123@192.168.26.128:5238服務器[192.168.26.128:5238]:處于普通打開狀態
登錄使用時間 : 1.687(ms)
disql V8
SQL>
五、網絡配置助手(連接串)
1、配置連接
# tool 目錄下執行命令 使用圖形化界面配置 注意DISPLAY
./nca.sh
2、disql連接庫
[dmdba@localhost bin]$ ./disql sysdba/Dameng123@DMOA服務器[192.168.26.128:5238]:處于普通打開狀態
登錄使用時間 : 1.119(ms)
disql V8
SQL> select name from v$database;行號 NAME
---------- ----
1 DMOA已用時間: 1.043(毫秒). 執行號:55600.
SQL>
3、客戶端工具使用
[dmdba@localhost tool]$ ./manager
4、網絡配置助手操作本質
[dmdba@localhost tool]$ cat /etc/dm_svc.conf
TIME_ZONE=(480)
LANGUAGE=(cn)
DM=(127.0.0.1:5236)
DMOA=(192.168.26.128:5238)
[dmdba@localhost tool]$
六、數據庫狀態
1、數據庫狀態
孟達,SHUTDOWN
MOUNT
OPEN
SUSPEND
SHUTDOWN
# 關閉數據庫
shutdown immediate;
# 關閉數據庫重啟
SQL> shutdown immediate;
exit
DmServiceDMSERVER start
2、修改參數
# 修改參數
# both:表示對內存中和參數文件都修改;
# memory:修改內存中的值;
# spfile:修改參數文件中的值。alter system set '參數名稱' = 參數值 both|memory|spfile;
3、查進程、線程
ps -ef|grep dmserver;
ps -T -p 96396;
夢達網絡,
4、關閉會話
sp_close_session
5、修改數據緩沖區大小
# 修改數據緩沖區大小為500M
alter system set 'BUFFER'= 500 spfile;
七、表空間
1、創建表空間
create tablespace dmtbs DATAFILE 'DMTBS01.DBF' SIZE 32;
# 頁大小默認是8K 表空間大小不能低于 32M
select page*4096/1024/1024;
create tablespace TBS datafile '/dm8/data/DAMENG/TBS01.DBF' size 64 autoextend on next 1 maxsize 1024,'/dm8/data/DAMENG/TBS02.DBF' size 64 autoextend on next 1 maxsize 1024;
查看表空間
select * from dba_tablespaces;
select * from dba_data_files;
表空間脫機
# 脫機則無法讀寫
alter tablespace dmtest offline;
#
alter tablespace dmtest online;
2、修改表空間
# 修改名稱
alter tablespace dmtest rename to dmtbs;
# 修改大小
alter tablespace dmtest resize DATAFILE '/dm8/data/TBS/DMTEST01.DBF' TO 128;
#增加數據文件
alter tablespace dmtbs add datafile '/dm8/data/TBS/DMTEST03.DBF' size 32 autoextend on 4 maxsize 10240;
# 關閉自動擴展
alter tablespace dmtest DATAFILE '/dm8/data/TBS/DMTEST01.DBF' AUTOEXTEND off;
# 表空間文件遷移
alter tablespace dmtbs rename datafile '/dm8/data/TBS/DMTEST01.DBF' to '/dm8/data/DMOA/DMTEST01.DBF';
3、創建表指定表空間
# 創建表指定表空間 并引用dmhr.EMPLOYEE數據
create table t_tmp TABLESPACE DMTBS as select * from dmhr.EMPLOYEE;
4、查看表占用大小
select t.SEGMENT_NAME, t.SEGEMENT_TYPE, t.TABLESPACE_NAME from USER_SEGMENTS t;
5、表空間不夠
alter tablespace dmtbs add DATAFILE 'DMTEST02.DBF' size 32;
6、遷移數據文件
alter tablespace offline;
alter tablespace dmtbs RENAME DATAFILE 'DMTBS01.DBF' to '/dm8/data/TBS/DMTBS01.DBF';
7、temp表空間大小修改
alter system set 'TEMP_SIZE' = 100 spfile;
八、歸檔
1、開啟歸檔
# 查詢是否開啟歸檔
select arch_mode from SYS."V$DATABASE"
alter database mount;
alter database ARCHIVELOG;
alter database ADD ARCHIVELOG 'type=local, dest=/dm8/arch, file_size=64,
space_limit=10240';
alter database open;
2、關閉歸檔
alter database mount;
alter database noarchivelog;
alter database delete archivelog 'type=local,dest=/dm8/arch';
alter database open;
九、用戶
1、創建用戶
create user dmtest IDENTIFIED by Dameng123 DEFAULT TABLESPACE DMTBS;
2、用戶權限
# 查看用戶權限
select * from session_privs;
3、設置用戶口令策略
PWD_POLICY(隱含參數,不在 dm.ini 中)參數指定系統的口令策略,默認為 2;
系統支持的口令策略有:
- 0 無策略
- 1 禁止與用戶名相同
- 2 口令長度需大于等于 INI 參數 PWD_MIN_LEN 設置的值
- 4 至少包含一個大寫字母(A-Z)
- 8 至少包含一個數字(0-9)
- 16 至少包含一個標點符號(英文輸入法狀態下,除“和空格外的所有符號)
# 修改口令策略
alter SYSTEM set 'PWD_POLICY' = 15 BOTH;
4、設置密碼有效期
alter user dmtest LIMIT PASSWORD_LIFE_TIME 180;
# 資源限制
create profile profile1 LIMIT PASSWORD_LIFE_TIME 180,FAILED_LOGIN_ATTEMPS 5,PASSWORD_LOCK_TIME 3;
5、用戶使用資源限制
# 用戶使用
# 創建用戶
create user hrtest IDENTIFIED by "Dameng@123" PASSWORD_POLICY 31 DEFAULT TABLESPACE DMTBS DEFAULT INDEX TABLESPACE DMTBSIDX;
#用戶使用資源限制
alter user hrtest PROFILE PROFILE1;
6、解鎖用戶
alter user HRTEST ACCOUNT unlock;
# 登錄
[dmdba@localhost ~]$ ./disql hrtest/'"Dameng@123"'
十、授權
1、授予權限
# 授予創建表的權限
grant create table to hrtest
# 授予查詢employee表的權限
grant select on dmhr.employee to hrtest;
# 授予查詢所有表的權限
grant select any table to hrtest;
2、查看權限
select * from session_privs;
3、權限轉授
# 系統權限轉授
grant create any table to dmtest;
# 執行上述權限轉授需要打開轉授開關 只修改系統中的參數
alter system set 'ENABLE_DDL_ANY_PRIV'=0 MEMORY
# 開啟后即可進行轉授# 授權并可轉授 系統權限
grant create table to dmtest with ADMIN OPTION;
#一般權限
grant select on dmhr.department to dmtest with GRANT OPTION;
4、回收權限
# 權限回收
revoke create table from hrtest;
# 級聯回收
# 例: 授權a用戶并可轉授,a轉授給b,b轉授給c 權限回收
revoke create table from hrtest CASCADE;
十一、角色
1、創建角色
# 創建角色
create role r1;
create role r2;
2、角色授權
# 角色授權
grant create table to r1;
grant select on dmhr.department to r1;grant CREATE TABLE,CREATE VIEW,CREATE INDEX to r2;
# 將角色賦予用戶
grant r1 to hrtest;# 級聯回收角色權限
revoke select on dmhr.employee from r2 CASCADE;
3、角色開關
# 開啟關閉角色
sp_set_role('R1',0);
十二、模式對象管理
1、查看模式
# 查看模式
select * from SYSOBJECTS t where t."TYPE$" ='SCH';
# 查看用戶
select * from SYSOBJECTS t where t."SUBTYPE$" ='USER';
# 查詢模式和用戶的對應關系:
select a.id scheid, a.name schename, b.id userid, b.name usernamefrom SYS.SYSOBJECTS a, SYS.SYSOBJECTS b
where a."TYPE$" = 'SCH' and a.pid = b.id;
2、創建模式
# 創建模式并指定歸屬于那個用戶
create schema hrtest01 AUTHORIZATION HRTEST;
# 查看當前用戶
select user;
3、切換模式
# 僅當前用戶生效
set SCHEMA dmhr;
4、刪除模式
drop SCHEMA IF EXISTS HRTEST01;
# 級聯刪除模式下對象
drop SCHEMA IF EXISTS HRTEST01 CASCADE;
5、索引組織表 列變動
# 增加列
alter table hrtest.t_testpid add column email varchar(20);
# 修改列類型 必須 可隱式轉換
alter table hrtest.t_testpid modify email varchar(50);
# 刪除列:
alter table hrtest.t_testpid drop logtime;
# 重命名列、表名
alter table t_test rename to t_testoa;
alter table t_testoa rename column id to pid;
# 刪除表 結構數據索引會全被刪除
drop table 表名;
十三、約束
1、創建表添加約束
# 如果存在刪除
drop table if exists dmtest.t_testpid
# 創建表指定主鍵
create table t_testpid(pid int primary key,panme varchar(20)unique,sex bit) tablespace dmtest;# 創建第二個表
drop table if exists dmtest.t_testchild
create table t_testchild(childid int,childanme varchar(30),salary int not null,createtime datetime default sysdate) tablespace dmtest;# 添加列
alter table dmtest.t_testchild add COLUMN pid int;
alter table dmtestm.t_testchild add CONSTRAINT pk_testchild FOREIGN KEY(pid) REFERENCES dmtest.t_testpid(pid);# 添加check約束
alter table dmtest.t_testchild add CONSTRAINT ck_testchild_salary CHECK(salary >= 2200)
insert into dmtest.t_testchild(childid,childname,salary)
values(1,'aaa',100);
# 插入數據 null可以 如果是數字就報錯 因為testpid不存在
insert into dmtest.t_testchild(childid,childname,salary,pid)
values(1,'aaa',10000,null);
外鍵的值一定是引用父表的值,新增的值必須在父表中存在,如果要修改父表的值,子表中存在引用則會報錯。
2、查詢表
# 查詢小寫表名
select “id","name" from "t_test";# 創建表并應用數據 如果只表結果加上where 1=0;
create table dmtest.t_emp as select * from dmhr.employee;
create table dmtest.t_dept like select * from dmhr.department;
達夢優點?
3、導入數據
# 終端登錄 后面不要加分號
./disql dmtest/'"Dameng123"'
start /dm8/backup/t_emp.sql
# 或者
`/dm8/backup/t_emp.sql# 關閉命令執行log方便查看出錯信息
set echo off;
set feddback off;
set time off;
set timing off;
# 查看屬性
help set;# 刪除前800行
delete from t_emp where rownum <=800;grant vti to dmtest;# 清空表數據
truncate table t_emp;
十四、視圖和索引
1、創建視圖
grant create view to dmtest;# 格式
create or replace view 模式名.視圖名稱 as select * from 表名 where 條件
十五、備份與還原
1、查看備份參數
# BAK_PATH:DM 默認的備份路徑 BAK_USE_AP:備份還原策略:使用什么方式備份
select * from v$parameter t where name in ('BAK_PATH', 'BAK_USE_AP');
# 查看達夢ap服務 默認使用dmap服務備份
ps -ef|grep dmap
# 終端輸出
dmdba 1661 1 0 09:38 ? 00:00:00 /dm8/bin/dmap
root 12074 6177 0 14:06 pts/0 00:00:00 grep dmap# 查看DmAP服務狀態
[root@localhost bin]# ./DmAPService status;
DmAPService (pid 1661) is running.
2、聯機備份
# 剛開歸檔做備份報錯歸檔不連續 解決辦法 手動執行檢查點
checkpoint(100);#備份
backup database;# 查看備份信息
select * from v$backupset;# 增量備份指定備份文件名稱 備份位置
backup database increment to incrbak01 backupset '/dm8/backup/incr/incrbak01';# 查詢不到備份信息
# 因為默認查詢 默認備份目錄下的備份文件
select * from v$backupset;# 查看相關函數
select * from v$ifun t where name like '%BAKSET%'# 添加備份位置 只針對當前會話生效
SF_BAKSET_BACKUP_DIR_ADD('DISK','/dm8/backup/incr/incrbak01');
SF_BAKSET_BACKUP_DIR_ADD('DISK','/dm8/backup/full');
# 再次查詢即可查到相關備份信息# 指定基礎備份集
backup database increment BASE on backupset '/dm8/backup/incr/incrbak01' to incrbak02 backupset '/dm8/backup/incr/incrbak02';# 累積增量備份
backup database increment cumulative to incrbak03 backupset '/dm8/backup/incr/incrbak03';# 表空間備份
backup tablespace dmtbs to DMTBSFULLBAK backupset '/dm8/backup/full/DMTBSFULLBAK';# 表備份
backup TABLE DMHR.EMPLOYEE to T_EMPBAK BACKUPSET '/dm8/backup/full/T_EMPBAK';# 歸檔備份
backup ARCHIVE LOG ALL to ARCHLOGFULLBAK BACKUPSET '/dm8/backup/full/ARCHLOGFULLBAK';
3、脫機備份
使用圖形化界面 console控制臺
[dmdba@localhost bin]$ ./dmrman
backup database '/dm8/data/DAMENG/dm.ini' to FULLBAK02 backupset '/dm8/backup/full/FULLBAK02';# 查看備份集
RMAN> check backupset '/dm8/backup/full/DMTBSFULLBAK'# 刪除備份集
RMAN> remove backupset '/dm8/backup/incr/incrbak02'
4、表空間還原
# 只能脫機狀態還原
RMAN> restore database '/dm8/data/DAMENG/dm.ini' tablespace dmtbs from backupset '/dm8/backup/full/DMTBSFULLBAK'# 達夢默認應用歸檔恢復到最新
RMAN> recover database '/dm8/data/DAMENG/dm.ini' tablespace dmtbs
等同于
recover database '/dm8/data/DAMENG/dm.ini' tablespace dmtbs with archivedir '/dm8/arch';
5、全庫的恢復
庫還原可以跨庫
# 還原
RMAN> restore database '/dm8/data/DAMENG/dm.ini' from backupset '/dm8/backup/incr/incrbak01'restore database '/dm8/data/DAMENG/dm.ini' from backupset '/dm8/backup/FULL_BACK'
# 恢復 脫機備份可以省略
recover database '/dm8/data/DAMENG/dm.ini' with archivedir '/dm8/arch';
# 更新db_magic
recover database '/dm8/data/DAMENG/dm.ini' update db_magic;# 建議恢復之后做一次全量的備份
十六、邏輯導入導出
1、導出
# 全庫導出
mkdir /dm8/backup/dexp
dexp userid=sysdba/Dameng123:5236 directory=/dm8/backup/dexp file=full.dmp log=full.log full=y# 按用戶導出
dexp userid=sysdba/Dameng123:5237 directory=/dm8/backup file=test.dmp log=test.log owner=TEST
十七、作業
1、查看作業
select * from SYSJOB.SYSJOBS;
十八、ODBC配置
1、安裝
# 解壓ODBC包tar -zxvf /opt/unixODBC-2.3.0.tar.gz# 進入ODBC目錄安裝
cd unixODBC-2.3.0
# 安裝步驟:配置、編譯、安裝
./configure
make
make install# 查看 驅動位置
odbcinst -j
2、配置
# 修改配置文件
cd /usr/local/etc/
vim odbcinst.ini[DM8 ODBC DRIVER]# 驅動
Drscription = ODBC DRIVER FOR DM8
Driver = /dm8/bin/libdodbc.sovim odbc.ini[DM8] # 按考試要求修改
Description = DM ODBC DSN
Driver = DM8 ODBC DRIVER # 驅動
SERVER = localhost
UID = DMTEST
PWD = Dameng123
TCP_PORT = 5238
3、測試
su - dmdba
isql dm8 -v