達夢資料庫必知必會-DCA篇

chenoracle發表於2022-10-23
一:安裝
二:表空間管理
三:重做日誌管理
四:使用者、模式管理
五:物件管理
六:歸檔管理
七:備份管理
八:引數管理
九:作業管理
十:ODBC
十一:解除安裝

一:安裝

https://eco.dameng.com/document/dm/zh-cn/pm/install-uninstall.html

https://eco.dameng.com/document/dm/zh-cn/ops/before-installation.html

1.1 安裝前配置

安裝前環境檢查

1.1.1 作業系統核心需要在2.6 以上

cat /etc/os-release

cat /proc/version

uname -a

uname -r

1.1.2 glibc 需要在 2.3 以上

ldd --version

rpm -qa|grep glibc

1.1.3 檢查 gcc 是否安裝

安裝odbc 的時候,需要 gcc 包依賴,沒有安裝的話需要進行安裝

gcc --version

rpm -qa|grep gcc

1.1.4 檢查 磁碟容量

至少需要20G ,推薦給 25G 以上

1.1.5 檢查 /tmp 空間

如果tmp 容量小於 1G ,使用以下命令擴容

# 使用 root 使用者執行

mount -o remount,size=2G /tmp

1.1.6 檢查 並關閉 防火牆

systemctl status firewalld.service

systemctl list-unit-files |grep -i firewall

##systemctl stop firewalld.service

##systemctl disable  firewalld.service

1.1.7 檢查 並關閉 selinux

cat /etc/selinux/config

###getenforce

###setenforce 0

1.1.6 建立達夢資料庫Linux 組和使用者

groupadd dinstall

useradd -g dinstall dmdba

### 指定組號和使用者號 ###

###grouadd -g 組號 dinstall

###useradd -g 組號 -d /home/dm -u 使用者號 dmdba

### useradd -u 12345 -g dinstall -m -d /home/dmdba -s /bin/bash dmdba

 

配置使用者密碼

passwd dmdba

  1.1.7 建立達夢資料庫軟體安裝根目錄, 並授權

mkdir -p /dm8

chown -R dmdba.dinstall /dm8

1.1.8 設定最大可開啟檔案數

# 檢視最大可開啟檔案數

ulimit -a

臨時設定(當前會話生效)

ulimit -n   65536

 

永久設定

/etc/security/ 目錄下的 limits.conf 檔案下新增如下內容 :

cp /etc/security/limits.conf /etc/security/limits.conf_20221017bak

vi /etc/security/limits.conf

dmdba   soft nofile     65536

dmdba   hard nofile     65536

1.1.9 配置使用者環境變數

編輯.bash_profile ,在原檔案尾部,新增以下條目

root 使用者執行,檢查當前 DISPLAY 值,並將結果寫入到 dmdba 使用者 .bash_profile 檔案。

echo $DISPLAY

su - dmdba

vi /home/dmdba/.bash_profile

export DISPLAY=:1 0 .0

export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/dm8/bin"

export DM_HOME="/dm8"

export PATH=$PATH:$DM_HOME/bin:$DM_HOME/tool

 

生效dmdba 使用者登陸配置檔案

source .bash_profile

1.1.10 裝載安裝介質

cd /soft/dm/

ls -lrth *.iso

### 安裝包名稱可能不同 ###

mnt 下建立 dm 目錄

mkdir /mnt/dm

掛載映象 mount / 映象地址 / 掛載的目標路徑

#mount /opt/dm8_20210818_x86_rh6_64_ent_8.4.2.18_pack14.iso /mnt/dm

mount -t iso9660 -o loop dm8_20220720_x86_rh7_64_ent_8.1.2.114_pack11.iso /mnt

1.2 圖形化安裝

1.2.1 配置圖形啟動

登入 root 使用者,啟用圖形化介面

echo $DISPLAY

xhost +

su - dmdba

[dmdba@host02 ~]$ cat .bash_profile |grep DIS

export DISPLAY=:10.0

呼叫安裝 GUI 介面

cd /mnt

./DMInstall.bin      

注意:可能會碰到以下問題,提示說 tmp 檔案過小,安裝前需要檢查 /tmp 空間

 

如果之前安裝的沒有解除安裝乾淨,會出現下面提示

也有可能是因為 /etc/dm_svc.conf 檔案沒有刪除導致的

[root@host02 ~]# cat /etc/dm_svc.conf

TIME_ZONE=(480)

[root@host02 ~]# rm -rf /etc/dm_svc.conf

 

預設安裝介面是英文的

[dmdba@host02 dm]$ echo $LANG

en_US.UTF-8

[dmdba@host02 dm]$ ./DMInstall.bin

時區可以調整,但是語言無法調整

 

自動將安裝檔案解壓到 /tmp 下,需要保證 /tmp 磁碟剩餘空間大於 1.1GB

[root@host02 ~]# du -sh /tmp/DMInstall

1.1G /tmp/DMInstall

1.2.2 安裝資料庫軟體

如果需要中文安裝介面,需要先配置 LANG 環境變數

[dmdba@host02 dm]$ echo $LANG

en_US.UTF-8

[dmdba@host02 dm]$ export.UTF-8

[dmdba@host02 dm]$ ./DMInstall.bin

解壓安裝程式 ...

[root@host02 ~]# cat /dm8/script/root/root_installer.sh

#!/bin/sh

 

#run by root

RUID=`/usr/bin/id|awk -F\( '{print $1}'|awk -F\= '{print $2}'`

if [ ${RUID} != "0" ]

then

  echo " 必須以 root 身份執行此指令碼 !"

exit 1

fi

 

echo " 移動 /dm8/bin/dm_svc.conf /etc 目錄 "

mv "/dm8/bin/dm_svc.conf" /etc/dm_svc.conf

 

echo " 修改伺服器許可權 "

chmod 6755 "/dm8/bin/dminit"

chmod 6755 "/dm8/bin/dmserver"

chown 0:0 "/dm8/bin/dmcss"

chmod 6755 "/dm8/bin/dmcss"

 

echo " 建立 DmAPService 服務 "

"/dm8/script/root/dm_service_installer.sh" -s "/dm8/bin/DmAPService"

 

echo " 啟動 DmAPService 服務 "

systemctl start DmAPService.service

 

 

[root@host02 ~]# sh /dm8/script/root/root_installer.sh

移動 /dm8/bin/dm_svc.conf /etc 目錄

修改伺服器許可權

建立 DmAPService 服務

Created symlink from /etc/systemd/system/multi-user.target.wants/DmAPService.service to /usr/lib/systemd/system/DmAPService.service.

建立服務 (DmAPService) 完成

啟動 DmAPService 服務

1.2.3 初始資料庫

1.2.4 執行指令碼,啟動資料庫

根據提示執行指令碼

mv /dm8/bin/DmServiceCHEN.service /usr/lib/systemd/system/DmServiceCHEN.service
systemctl enable DmServiceCHEN.service
systemctl start DmServiceCHEN.service

1.3 命令列安裝

1.3.1 安裝資料庫軟體

cd /mnt

./DMInstall.bin -i

手動輸入部分如下:

 

登入root 使用者執行指令碼

/dm8/script/root/root_installer.sh

1.3.2 初始化 資料庫

su - dmdba

dminit help

安裝目錄、例項名、資料名、埠號、密碼、字符集、資料檔案等路徑、簇大小、頁大小、日誌檔案大小、

dminit path=/dm8/data DB_NAME=CHEN instance_name=CJC port_num=5238 SYSDBA_PWD=Dameng123

1.3.3 註冊服務

su - root
cd /dm8/script/root/
./dm_service_installer.sh help
./dm_service_installer.sh -t dmserver -p CJC -dm_ini /dm8/data/CHEN/dm.ini

# 取消註冊服務

#./dm_service_uninstaller.sh -n 服務名稱

#./dm_service_uninstaller.sh -n DmServiceCJC

1.3.4 啟動服務

systemctl list-unit-files |grep DmServiceCJC.service
systemctl status DmServiceCJC.service
systemctl start DmServiceCJC.service

登入資料庫

disql SYSDBA/Dameng123:5238

disql SYSDBA/Dameng123@127.0.0.1:5238

 

驗證資料庫建立成功

檢視Linux 後臺程式:

ps -ef|grep -i dmserver|grep -v grep  

1.3.5 配置連線字串

cp /etc/dm_svc.conf /etc/dm_svc.conf_20221023bak
vi /etc/dm_svc.conf
TIME_ZONE=(480)
LANGUAGE=(cn)
CJCDB=(192.168.80.133:5238)  ###新增部分

連線測試:

[dmdba@host02 ~]$ disql SYSDBA/Dameng123@CJCDB

 

伺服器[192.168.80.133:5238]: 處於普通開啟狀態

登入使用時間 : 4.046(ms)

disql V8

SQL>

二:表空間管理

SYSTEM :系統表空間,存放的是資料字典資訊,包含表定義、檢視定義、使用者許可權等

ROLL :回滾表空間,存放 undo 資訊。 INSERT UPDATE DELETE 都會產生 undo 資訊

MAIN :使用者預設表空間,建立使用者時,沒有指定表空間,則使用 MAIN 表空間

TEMP :臨時表空間,用於存放臨時表資料、索引、大量資料排序等產生的資料

HMAN HUGE 表(列儲存表)的預設表空間

2.1 表空間管理 - 圖形化操作

2.1.1 開啟 manager 管理工具

[dmdba@host02 tool]$ ./manager

2.1.2 檢視錶空間

2.1.3 建立表空間

對應 DDL 語句

create tablespace "CJCTBS" datafile '/dm8/data/CJC/CJC_TBS_01.dbf' size 32 CACHE = NORMAL;

2.1.4 新增資料檔案

新增

對應 DDL

alter tablespace "CJCTBS" add datafile '/dm8/data/CJC/CJC_TBS_02.dbf' size 35 autoextend on next 10 maxsize 1024;


2.1.5 修改表空間名稱

2.1.6 修改資料檔案屬性

修改資料檔案大小,關閉自動擴充套件

檢視對應的 DDL 語句。

alter tablespace "CJCTBS" resize datafile 'CJC_TBS_01.dbf' to 50;
alter tablespace "CJCTBS" datafile 'CJC_TBS_01.dbf' autoextend off;

2.1.7修改資料檔名稱、路徑

對應 DDL 語句

alter tablespace "CJCTBS" offline;
alter tablespace "CJCTBS" rename datafile 'CJC_TBS_01a.dbf' to '/dm8/CJC_TBS_01AAA.dbf';
alter tablespace "CJCTBS" online;

2.1.8 TEMP表空間調整

檢查 TEMP 資訊

對應 DDL 語句

create tablespace "TEMP" datafile '/dm8/data/CJC/TEMP.DBF' size 10 autoextend on maxsize 16777215 CACHE = RECYCLE;

圖形工具不支援修改等操作

alter tablespace TEMP add datafile '/dm8/data/CJC/TEMP_02.dbf' size 50 autoextend on next 1 maxsize 100;
create tablespace "TEMP2" datafile '/dm8/data/CJC/TEMP.2DBF' size 10 autoextend on maxsize 100 CACHE = RECYCLE;

1 行附近出現錯誤 [-3438]:RECYCLE 為臨時表空間專用 CACHE.

已用時間: 75.849( 毫秒 ). 執行號 :0.

2.2 表空間管理 - 命令列操作

命令列 登入

disql SYSDBA/Dameng123:5238

2.2.1 檢視錶空間名稱

select tablespace_name from dba_tablespaces;

檢視資料檔案路徑

SELECT TABLESPACE_NAME,FILE_NAME FROM DBA_DATA_FILES;

2.2.2 建立表空間

單位MB

資料檔案大小 最小 頁的4096 (32MB) ,最大 ( 頁大小 *2^31)-1

create tablespace CJC datafile '/dm8/data/CHEN/CJC_01.dbf' size 32;


  # 建立表空間時必須指定 datafile size 最小值是 page_size 4096 倍, autoextend 指定自增長, maxsize 指定最大值

create tablespace tbs1 datafile '/dm8/data/CHEN/tbs1_01.dbf' size 32 autoextend on next 1 maxsize 100;

# 建立表空間,非自動擴充套件

create tablespace tbs2 datafile '/dm8/data/CHEN/tbs1_02.dbf' size 32 autoextend off;

  檢視資料檔案資訊

select tablespace_name,file_name,bytes,AUTOEXTENSIBLE,MAXBYTES from dba_data_files;


2.2.3 增加資料檔案

alter tablespace CJC add datafile '/dm8/data/CHEN/CJC_02.dbf' size 50 autoextend on next 1 maxsize 100;

2.2.4 修改資料檔案路徑

alter tablespace cjc offline;
alter tablespace cjc rename datafile '/dm8/data/CHEN/CJC_02.dbf' to '/dm8/CJC_02.dbf';
alter tablespace cjc online;
select tablespace_name,file_name,bytes,AUTOEXTENSIBLE,MAXBYTES from dba_data_files where tablespace_name='CJC';

2.2.5 修改資料檔案大小

alter tablespace 表空間名稱 resize datafile ' 資料檔案路徑 ' to 資料檔案大小 ;

 

修改表空間開啟自動增長,增長步長,最大表空間

alter tablespace 表空間名 datafile ' 資料檔案路徑 ' autoextend on next 增長步長 maxsize 檔案最大值

2.2.6 修改表空間名稱

alter tablespace 修改前表空間名 rename to 修改後表空間名 ;

alter tablespace CJCTBSA rename to CJCTBS;

 

2.2.7 刪除表空間

drop tablespace CJC;


2.2.8 temp 表空間

查詢temp 表空間引數,達夢資料庫啟動的時候會根據這幾個引數來建立或重建 temp 表空間

select name,value,type from v$parameter where name like 'TEMP%';

TEMP_PATH temp 表空間的路徑

TEMP_SIZE temp 表空間的初始值,單位為 MB

TEMP_SPACE_LIMIT temp 表空間的空間限制, 0 表示不限制

 

修改temp_size

# 設定 temp 表空間初始值

alter system set 'TEMP_SIZE'=64 spfile;

# 檢視更改是否生效

cat /dm8/data/DAMENG/dm.ini |grep TEMP_SIZE

三:重做日誌管理

3.1 重做日誌管理 - 圖形化操作

3.1.1 開啟 manager 管理工具

[dmdba@host02 tool]$ ./manager

管理伺服器

3.1.2 檢視日誌檔案資訊

3.1.2 調整大小

只能改大不能改小

對應 DDL 語句

alter database resize logfile 'CJC01.log' to 300;

3.1.3 修改路徑及名稱

對應 DDL 語句

alter database rename logfile 'CJC02.log' to '/dm8/CJC02a.log';


修改成 mount

再次修改路徑

啟動資料庫

3.1.4 新增

3.2 重做日誌管理 - 命令列操作

3.2.1 檢視日誌檔案資訊

select group_id,file_id,path,rlog_size from v$rlogfile;

3.2.2 調整大小

256M 調整都 300M 成功

alter database resize logfile '/dm8/data/CHEN/CHEN01.log' to 300;


### 不支援調小

3.2.3 新增

alter database add logfile '/dm8/data/CHEN/CHEN03.log' size 256;

3.2.4 更改路徑 、重新命名

alter database mount;
alter database rename logfile '/dm8/data/CHEN/CHEN03.log' to '/dm8/CHEN003.log';
alter database open;


  ### 刪除 ( 不支援刪除 )

###alter database drop logfile '/dm8/data/CHEN/CHEN02.log';

###alter database delete logfile '/dm8/data/CHEN/CHEN02.log';

四:使用者、模式管理

4.1 使用者、模式管理 - 圖形化操作

4.1.1 開啟 manager 管理工具

[dmdba@host02 tool]$ ./manager

4.1.2 檢視使用者

4.1.3 建立使用者

管理使用者 --- 新建使用者

4.1.4 新增角色許可權

4.1.5 新增系統許可權

4.1.6 新增物件許可權

4.1.7 資源限制

4.1.8 連線限制

檢視對應 DDL 語句

create user "CJC" identified by "Dameng123"
limit session_per_user 10, connect_idle_time 3, failed_login_attemps 5, password_life_time 180, password_reuse_max 100, password_lock_time 2, password_grace_time 10, connect_time 100, cpu_per_session 360000, cpu_per_call 8600, read_per_session 300000
allow_ip "192.168.80.131"
allow_datetime "2022-10-22" "00:22:49" to "2023-12-23" "00:22:49"
default tablespace "CJCTBS"
default index tablespace "CJCTBS";
 
grant "PUBLIC","VTI" to "CJC";
 
grant CREATE SCHEMA,CREATE TABLE,CREATE VIEW to "CJC";
 
grant CREATE ROLE to "CJC" with admin option;
 
grant SELECT,INSERT,DELETE,UPDATE,REFERENCES on "DMHR"."CITY" to "CJC";

4.2.9 角色管理

檢視角色

建立角色

檢視 DDL 語句

create role "CJCR";
grant "RESOURCE" to "CJCR";
grant CREATE USER,ALTER USER,CREATE SCHEMA,CREATE TABLE to "CJCR";

注意:

角色名不能和使用者名稱相同否則會報如下錯誤。

4.2.10 模式管理

檢視模式

建立模式

對應 DDL 語句

CREATE SCHEMA "CHEN" AUTHORIZATION "CJC";

4.2 使用者、模式管理 -命令列操作

建立使用者, 授權(系統,物件,角色)

建立使用者:create user... identified by ... default tablespace ... limit ( 口令管理選項 )

修改使用者口令 alter user ... identified by

刪除:drop user

授權: grant create table, create index to ...   grant select on dmhr.employee to ...

許可權回收: revoke ... from ...

檢視已登入會話所有許可權: select * from session_privs;

 

使用者型別:

SYS :內建使用者,不能直接登陸

SYSDBA :系統管理員,擁有 DBA 角色(除了安全、審計其他都管)

SYSAUDITOR :系統審計管理員

SYSSSO :系統安全管理員

SYSDBO :系統安全操作員(達夢安全版才有)

4.2.1 檢視使用者

select user_id,username,default_tablespace,TEMPORARY_TABLESPACE from dba_users;

4.2.2 建立使用者

create user CJC identified by Dameng123  default tablespace CJC;
###create user CJC identified by Dameng123 limit failed_login_attemps 3, password_lock_time 1, password_grace_time 10 default tablespace "CJC" default index tablespace "CJC";

4.2.3使用者密碼策略

設定密碼的時候,需要查詢下密碼策略是什麼

select * from v$parameter where name = 'PWD_POLICY';

如果想調整密碼策略

使用者口令策略

select * from v$dm_ini where para_name='PWD_POLICY';

修改使用者口令策略

alter system set 'PWD_POLICY'= 15 BOTH;

PWD_POLICY 引數意義:

設定系統預設口令策略。

0 : 無策略;

1 : 禁止與使用者名稱相同;

2 : 口令長度不小於 9

4 : 至少包含一個大寫字母( A-Z );

8 :至少包含一個數字( 0 9 );

16 :至少包含一個標點符號(英文輸入法狀態下,除 和空格外的所有符號);

若為其他數字,則表示配置值的和,如 3 1+2, 表示 同時啟用第 1 項和第 2 項策略。

 

調整密碼錯誤次數引數,預設輸錯3 次後鎖定賬號,並且 1 分鐘後自動解鎖

select username,account_status,locak_date from dba_users;

# 將密碼輸錯鎖定次數改為 5 次,鎖定時間為 3 分鐘

alter user 
使用者名稱 
limit FAILED_LOGIN_ATTEMPS 5,PASSWORD_LOCK_TIME 3;

手動鎖定或解鎖賬號

# 手動解鎖

alter user 使用者名稱 account unlock;

# 手動鎖定

alter user 使用者名稱 account lock;

# 檢視使用者資源限制,例如最大併發數

select * from dba_users a,sysusers b where a.user_id = b.id;


  達夢裡建立使用者或表空間 資料檔案等,加雙引號 指大小寫 敏感,不加雙引號,大小寫不敏感。

4.2.4 使用者 授權

新增使用者不授權,預設具有登陸許可權

檢視角色名稱

select role from dba_roles;

檢視使用者擁有角色

select GRANTEE,GRANTED_ROLE,DEFAULT_ROLE from dba_role_privs where GRANTEE='CJC';

檢視使用者有哪些系統許可權

select GRANTEE,PRIVILEGE FROM dba_sys_privs where GRANTEE='CJC';

檢視使用者有哪些物件許可權

select GRANTEE,PRIVILEGE FROM dba_tab_privs where GRANTEE='CJC';

列許可權

select * from dba_col_privs where grantee = '使用者名稱';

授權

grant "PUBLIC","VTI" to "CJC";

 

角色和許可權對應關係

select PRIVILEGE from dba_sys_privs where GRANTEE='RESOURCE';
select PRIVILEGE from dba_sys_privs where GRANTEE='PUBLIC';


  登入使用者

disql CJC/Dameng123:5238

 

修改密碼

alter user chen identified by "A12345678";

4.2.5 建立角色

角色型別

DBA :系統管理員角色,擁有除稽核、安全外的所有許可權

RESOURCE :具有在當前使用者模式下定義物件的許可權,例如 create table

PUBLIC :具有在當前使用者模式下資料操作的許可權,例如 insert table

SOI :系統表( SYS 為字首)的訪問許可權

SVI :系統檢視( VSYS 為字首)的檢視許可權

VTI :動態檢視( V 為 前 綴 , 存 在 於 V 為字首,存在於 V 為字首,存在於 Vdynamic_tables 中的檢視)的訪問許可權

 

角色建立

create role r1;

 

給角色授權

grant select any table to r1;

 

將角色授權給使用者

grant r1 to cjc;

 

系統許可權授權

select distinct PRIVILEGE from dba_sys_privs order by 1;
CREAE TABLE/CREATE TABLESPACE/ALTER DATABASE/ALTER TABLESPACE/CREATE USER/CREATE VIEW/CREATE PROCEDURE/CREATE ROLE/CREATE SCHEMA
GRANT CREATE TABLESPACE TO CJC;


  物件許可權授權

select distinct PRIVILEGE from dba_tab_privs order by 1;
ALTER/INSERT/DELETE/UPDATE/EXECUTE/SELECT/REFERENCES/
GRANT DELETE ON SYSDBA.T1 TO CJC;
grant select on 模式名.表名 to 使用者名稱;
grant update on 模式名.表名 to 使用者名稱;
grant delete on 模式名.表名 to 使用者名稱;


  級聯授權

GRANT UPDATE ON SYSDBA.T1 TO CJC WITH GRANT OPTION;

 

revoke create table from dmuser; # 回收

grant create view to dmuser with grant option; # 允許 dmuser 有授權許可權,回收時需加上 cascade

4.2.6 回收許可權

REVOKE CREATE TABLESPACE FROM CJC;
REVOKE DELETE ON SYSDBA.T1 FROM CJC;
REVOKE UPDATE ON SYSDBA.T1 FROM CJC CASCADE;

4.2.7 刪除角色

DROP ROLE R1;

4.2.8 模式管理

使用者和模式

使用者(USER ):使用者是用來連線資料庫並進行相關操作的。

模式(SCHEMA ):模式是資料庫物件的集合,模式是資料庫的邏輯結構。

 

建立模式

CREATE SCHEMA CHEN AUTHORIZATION CJC;
/

切換模式

set schema CHEN;

 

檢視使用者和模式

select a.name as username, b.name as schenma from sysobjects a inner join sysobjects b on a.id = b.pid where b.subtype$ is null order by username desc;

conn cjc/Dameng123:5238

  檢視模式名稱

select distinct object_name table_schema from all_objects where object_type='SCH';

刪除模式

drop schema CHEN;

查詢當前使用者

select user;

查詢當前模式

select sys_context('USERENV','CURRENT_USER');

  動態效能檢視

v$dynamic_tables

資料字典

Sysobjects

五:物件管理

5.1 物件管理 - 圖形化操作

5.1.1 建立表

CJC 模式下新建表

主鍵約束

儲存

對應 DDL 如下:

create table "CJC"."T1"
(
"NAME" VARCHAR2(50) not null ,
"AGE" INT not null ,
"SAL" CHAR(10) not null 
)
storage(initial 10, next 2, minextents 1, fillfactor 0, on "CJCTBS")
;
 
comment on table "CJC"."T1" is 'TEST TABLE T1';
 
alter table "CJC"."T1" add constraint "PK_T1_NAME" primary key("NAME");

檢視

SQL> conn cjc/123456789@192.168.80.131:5238

 

伺服器[192.168.80.131:5238]: 處於普通開啟狀態

登入使用時間 : 6.387(ms)

SQL> desc t1;

 

行號     NAME TYPE$       NULLABLE

---------- ---- ----------- --------

1          NAME VARCHAR(50) N

2          AGE  INTEGER     N

3          SAL  CHAR(10)    N

 

已用時間: 656.920( 毫秒 ). 執行號 :54100.

5.1.2 增加列

對應 DDL 語句

alter table "CJC"."T1" add column("C1" DATE not null );
comment on column "CJC"."T1"."C1" is 'XXX';

5.1.3 約束管理

對應 DDL 語句

alter table "CJC"."T1" modify constraint "C_T1_AGE" to check(AGE =   30 );

5.1.4 檢視管理

新建檢視

對應 DDL 語句

CREATE VIEW "CJC"."V_T1"
/*檢視的列名, 格式為(<列名>{, <列名>}),此處為可選*/
(v_col1, v_col2)
AS
/*<查詢說明>*/
SELECT
NAME,
AGE
FROM
CJC.T1
/*插入或刪除行是否必須滿足<查詢說明>所指定的條件, 此處為可選*/
WITH CHECK OPTION;
 
comment on view "CJC"."V_T1" is 'TEST ...';

5.1.5 索引管理

新增索引

對應 DDL 語句

create unique  index "I_T1_NAME" on "CJC"."T1"("NAME") storage(initial 5,next 2,minextents 2,on "CJCTBS");

5.2 物件管理 -命令列操作

5.2.1 建立表

CREATE TABLE CJC.TEST(ID INT,NAME CHAR(10));
create table dmtest.t_testpid(
pid int,
pname varchar(10),
logtime datetime DEFAULT sysdate,
sex bit
) tablespace HRTBS;

從別的表複製

# 只複製表結構(不帶約束資訊)

create table t_emp03 as select * from dmhr.employee where 1=0;

# 複製表結構 + 表資料

create table t_emp01 as select * from dmhr.employee;

create table t_emp02 like dmhr.employee;

5.2.2 增加列

ALTER TABLE CJC.TEST ADD COLUMN(AGE INT);

5.2.3 修改列

ALTER TABLE CJC.TEST MODIFY NAME CHAR(20);

5.2.4 刪除列

ALTER TABLE CJC.TEST DROP COLUMN AGE;

#ALTER TABLE CJC.TEST DROP AGE;

 

約束型別

NOT NULL :非空約束

UNIQUE :唯一約束,可以為空,簡寫為 UK_ 表名 _ 欄位名

PRIMARY KEY :主鍵約束(唯一約束 + 非空約束),簡寫為 PK_ 表名 _ 欄位名

FOREIGN KEY :外來鍵引用約束,引用的是另一張表(父表)的主鍵或唯一鍵。簡寫為 FK_ 表名 _ 欄位名

CHECK :檢驗約束,使用者校驗資料的準確性,簡寫為 CK_ 表名 _ 欄位名

  5.2.5 新增約束

ALTER TABLE CJC.TEST ADD CONSTRAINT TEST_UNI UNIQUE(ID);

# 新增主鍵約束

alter table dmtest.t_testpid add CONSTRAINT pk_testpid_pid PRIMARY key("pid");

# 新增外來鍵約束,注意 REFERENCES 表裡的欄位必須是主鍵或者是新增了唯一索引的欄位

alter table dmtest.t_testchild add CONSTRAINT fk_testchild_pid FOREIGN key("pid") REFERENCES dmtest.t_testpid("pid");

# 新增校驗約束

alter table dmtest.t_testchild add CONSTRAINT ck_testchild_salary CHECK ("salary">=3000);

5.2.6 禁用約束

ALTER TABLE CJC.TEST DISABLE CONSTRAINT TEST_UNI;

5.2.7 啟用約束

ALTER TABLE CJC.TEST ENABLE CONSTRAINT TEST_UNI;

刪除約束

ALTER TABLE CJC.TEST DROP CONSTRAINT TEST_UNI;

5.2.8 檢視管理

建立檢視

CREATE VIEW CJC.V1 AS SELECT * FROM CJC.T1;

修改檢視

CREATE OR REPLACE VIEW CJC.V1

AS

SELECT ID FROM CJC.T1;

刪除檢視

DROP VIEW CJC.V1;

5.2.9 索引管理

建立索引

CREATE INDEX T1_IND ON CJC.T1(ID) TABLESPACE CJC;

重建索引

ALTER INDEX CJC.T1_IND REBUILD;

刪除索引

DROP INDEX CJC.T1_IND;

刪除表

DROP TABLE CJC.TEST;

 

執行指令碼,建立DMHR 使用者資料

https://eco.dameng.com/document/dm/zh-cn/sql-dev/index

GBK 字符集請下載 CREATE_DMHR(GBK).sh ,指令碼如下所示:

#!/bin/bash
 
eg_dir=$DM_HOME/samples/instance_script/dmhr/GBK
 
disql sysdba/SYSDBA:10236 <<EOF
START ${eg_dir}/CREATESCHEMA.sql
START ${eg_dir}/REGION.sql
START ${eg_dir}/CITY.sql
START ${eg_dir}/LOCATION.sql
START ${eg_dir}/JOB.sql
START ${eg_dir}/JOB_HISTORY.sql
START ${eg_dir}/DEPARTMENT.sql
START ${eg_dir}/EMPLOYEE.sql
exit
EOF

UTF-8 字符集請下載 CREATE_DMHR(UTF-8).sh ,指令碼如下所示:

#!/bin/bash
 
eg_dir=$DM_HOME/samples/instance_script/dmhr/UTF-8
 
disql sysdba/SYSDBA:5236 <<EOF
  create tablespace dmhr datafile 'dmhr.dbf' size 128;
  create user dmhr identified by 123456789 default tablespace dmhr; 
  grant dba to dmhr;
  exit;
EOF
 
disql dmhr/123456789:5236 <<EOF
START ${eg_dir}/REGION.sql
START ${eg_dir}/CITY.sql
START ${eg_dir}/LOCATION.sql
START ${eg_dir}/JOB.sql
START ${eg_dir}/JOB_HISTORY.sql
START ${eg_dir}/DEPARTMENT.sql
START ${eg_dir}/EMPLOYEE.sql
exit;
EOF

六:歸檔管理

6.1 歸檔管理 - 圖形化操作

管理伺服器

6.1.1 資料庫改成 配置

6.1.2 配置歸檔

歸檔路徑,確定

[dmdba@host02 ~]$ mkdir /dm8/arch

對應 DDL 語句

alter database archivelog;
alter database add archivelog 'DEST=/dm8/arch, TYPE=LOCAL, FILE_SIZE=64, SPACE_LIMIT=30720';

6.1.3 資料庫改成 開啟

6.2 歸檔管理 - 命令列操作

https://mp.weixin.qq.com/s/6j3-1FBJslwUaWnCwRmGVw

命令列方式

開啟歸檔

https://eco.dameng.com/document/dm/zh-cn/ops/physical-backup.html

6.2.1 建立歸檔路徑

mkdir /dm8/arch

6.2.2 修改資料庫為 Mount 狀態

alter DATABASE MOUNT;

6.2.3 配置本地歸檔

ALTER DATABASE ADD ARCHIVELOG 'DEST = /dm8/arch, TYPE = local,FILE_SIZE = 1024, SPACE_LIMIT = 20480';

6.2.4開啟歸檔模式

ALTER DATABASE ARCHIVELOG;

6.2.5 修改資料庫為 Open 狀態

ALTER DATABASE OPEN;

 

檢查,自動生成了 dmarch.ini 檔案

[dmdba@host02 DAMENG]$ pwd
/dm8/data/DAMENG
[dmdba@host02 DAMENG]$ ls -l dmarch.ini 
-rw-r--r-- 1 dmdba dinstall 269 Sep 23 23:14 dmarch.ini
cat dmarch.ini

配置項                配置含義

[ARCH_NAME]          REDO 日誌歸檔名
ARCH_TYPE            REDO 日誌歸檔型別,LOCAL 表示本地歸檔,REMOTE 表示遠端
ARCH_DEST            REDO 日誌歸檔目標,LOCAL 對應歸檔檔案存放路徑;REMOTE 對應遠端目標節點例項名
ARCH_FILE_SIZE       單個 REDO 日誌歸檔檔案大小,取值範圍(64 MB~2048 MB),預設 1024 MB,即 1 GB
ARCH_SPACE_LIMIT     REDO 日誌歸檔空間限制,當所有本地歸檔檔案達到限制值時,系統自動刪除最老的歸檔檔案。0 表示無空間限制,取值範圍(1024 MB~4294967294 MB),預設為 0
ARCH_INCOMING_PATH僅 REMOTE 歸檔有效,對應遠端歸檔存放在本節點的實際路徑

# 查詢歸檔狀態

select arch_mode from v$database;

# 檢視歸檔檔案

select * from SYS."V$ARCH_FILE";

# 查詢歸檔配置

select * from v$dm_arch_ini;

6.2.6 關閉歸檔

alter database mount;

# 關閉歸檔

alter database noarchivelog;

# 刪除歸檔檔案

alter database delete archivelog 'type=local,dest=/dm8/arch';

# 將資料庫狀態設定為 open

alter database open;

# 查詢歸檔狀態

select arch_mode from v$database;

七:備份恢復

7.1 備份恢復 - 圖形化操作

https://eco.dameng.com/document/dm/zh-cn/pm/backup-restore-combat.html

 

manager

7.1.1 資料庫聯機備份

對應 DDL

backup database full to "DB_CJC_FULL_2022_10_22_19_40_34" backupset 'DB_CJC_FULL_2022_10_22_19_40_34' maxsize 200;


[dmdba@host02 DB_CJC_FULL_2022_10_22_19_40_34]$ pwd
/dm8/data/CJC/bak/DB_CJC_FULL_2022_10_22_19_40_34
[dmdba@host02 DB_CJC_FULL_2022_10_22_19_40_34]$ ll -rth
total 17M
-rw-r--r-- 1 dmdba dinstall  17M Oct 22 19:43 DB_CJC_FULL_2022_10_22_19_40_34.bak
-rw-r--r-- 1 dmdba dinstall 6.5K Oct 22 19:43 DB_CJC_FULL_2022_10_22_19_40_34_1.bak
-rw-r--r-- 1 dmdba dinstall  97K Oct 22 19:43 DB_CJC_FULL_2022_10_22_19_40_34.meta

7.1.2 表聯機備份

DDL 語句

backup table "CJC"."T1" to "TAB_CJC_T1_2022_10_22_19_46_41" backupset 'TAB_CJC_T1_2022_10_22_19_46_41' backupinfo 'CJC_T1_BAK_TEST' maxsize 100;

7.1.3 表空間備份

對應 DDL 語句:

backup tablespace "CJCTBS" full to "TS_CJCTBS_FULL_2022_10_22_20_01_40" backupset 'TS_CJCTBS_FULL_2022_10_22_20_01_40';


7.1.4 歸檔聯機備份

對應 DDL

backup archivelog all to "ARCH_2022_10_22_20_13_25" backupset 'ARCH_2022_10_22_20_13_25';


對應 DDL

backup archivelog time between '2022-10-22 20:03:17' and '2022-10-23 20:03:17' to "ARCH_2022_10_22_20_03_17" backupset 'ARCH_2022_10_22_20_03_17';

7.1.5 備份管理

選擇其中一個備份,右鍵屬性

7.1.6 備份校驗

7.1.7 表聯機還原

資料還原

庫備份和表空間備份不支援聯機還原,只有表備份支援聯機還原。表還原過程中表空間中其他的表還可以正常操作。

點選表備份集節點右鍵選單-> 備份還原,可以開啟表備份還原對話方塊,首頁顯示的是常規選項頁面,如圖 3.11 所示:

檢視當前資料:

SQL> select * from cjc.t1;

 

行號     NAME AGE         SAL        C1        

---------- ---- ----------- ---------- ----------

1          a    35          20000      2022-10-22

 

已用時間: 3.623( 毫秒 ). 執行號 :1000.

 

刪除資料

SQL> truncate table cjc.t1;

操作已執行

已用時間: 46.228( 毫秒 ). 執行號 :1003.

 

表還原

DDL 語句:

restore table "CJC"."T1" struct with index with constraint from backupset '/dm8/data/CJC/bak/TAB_CJC_T1_2022_10_22_19_46_41' device type disk;
 
restore table "CJC"."T1" with index with constraint from backupset '/dm8/data/CJC/bak/TAB_CJC_T1_2022_10_22_19_46_41' device type disk;

檢查資料:

SQL> select * from cjc.t1;

 

行號     NAME AGE         SAL        C1        

---------- ---- ----------- ---------- ----------

1          a    35          20000      2022-10-22

 

已用時間: 3.346( 毫秒 ). 執行號 :1300.

7.1.8 資料庫離線還原

透過聯機備份,進行離線還原

console

SQL> truncate table cjc.t1;

操作已執行

已用時間 : 198.234( 毫秒 ). 執行號 :401.

全庫離線還原

先停庫

SQL> shutdown immediate;

操作已執行

已用時間: 1.412( 毫秒 ). 執行號 :0.

啟動資料庫

[root@host02 ~]# systemctl start DmServiceCHEN.service

Job for DmServiceCHEN.service failed because the control process exited with error code. See "systemctl status DmServiceCHEN.service" and "journalctl -xe" for details.

 

檢視錯誤日誌

[dmdba@host02 log]$ vi DmServiceCHEN.log

file dm.key not found, use default license!
version info: develop
Use normal os_malloc instead of HugeTLB
Use normal os_malloc instead of HugeTLB
DM Database Server x64 V8 1-1-144-20.11.06-129436-ENT  startup...
Database mode = 0, oguid = 0
License will expire on 2022-11-06
Instance CHEN startup failed, execute 'recover database ... update db_magic' in dmrman.
^[]0;DMSERVER /dm8/data/CJC/dm.ini : 5238 ^G


恢復

更新 DB_Magic

啟動資料庫

[root@host02 ~]# systemctl start DmServiceCHEN.service

驗證資料

[dmdba@host02 log]$ disql SYSDBA/Dameng123:5238

 

伺服器[LOCALHOST:5238]: 處於普通開啟狀態

登入使用時間 : 6.138(ms)

disql V8

SQL> select * from cjc.t1;

 

行號     NAME AGE         SAL        C1        

---------- ---- ----------- ---------- ----------

1          a    35          20000      2022-10-22

 

已用時間: 5.034( 毫秒 ). 執行號 :400.

7.1.9 資料庫離線備份

開啟 console 工具

新建備份

停庫

SQL> shutdown immediate;

操作已執行

已用時間: 0.747( 毫秒 ). 執行號 :0.

備份

7.1.10 離線還原

透過離線備份進行離線還原

恢復

更新

啟庫驗證

[root@host02 ~]# systemctl start DmServiceCHEN.service

 

[dmdba@host02 ~]$ disql SYSDBA/Dameng123:5238

 

伺服器[LOCALHOST:5238]: 處於普通開啟狀態

登入使用時間 : 4.430(ms)

disql V8

SQL> select * from cjc.t1;

 

行號     NAME AGE         SAL        C1        

---------- ---- ----------- ---------- ----------

1          a    35          20000      2022-10-22

 

已用時間: 5.949( 毫秒 ). 執行號 :400.

7.2 備份恢復 - 命令列操作

7.2.1 啟用 DMAP 服務

如果選擇使用 DMAP 輔助程式,執行備份還原之前就必須啟動 DMAP 服務。安裝 DM 資料庫以後, DMAP 服務會自動啟動。

啟動 DMAP ,手動啟動 DMAP ,有兩種途徑

一是啟動 DM 服務檢視器中的 DmAPService

二是手動啟動 DMAP 執行碼, DMAP 執行碼位於 DM 安裝目錄的 bin 子目錄下。

除此之外,Linux 下,還可以呼叫 bin 目錄下的 DmAPService 指令碼。

find /dm8 -name DmAPService
/dm8/bin/service_template/DmAPService
 
cd /dm8/bin/service_template/
./DmAPService start
./DmAPService status

7.2.2 離線備份

啟動 DMRMAN

DMRMAN (DM RECOVERY MANEGER) DM 的離線備份還原管理工具,由它來統一負責庫級離線備份、離線還原、離線恢復等相關操作,該工具支援命令列指定引數方式和控制檯互動方式執行,降低了使用者的操作難度。

備份資料庫

DMRMAN 下執行以下命令:

BACKUP  DATABASE  '<INI 文 件 路 徑 >'  [[[FULL][DDL_CLONE]]  |INCREMENT
[CUMULATIVE][WITH BACKUPDIR '<基備份搜尋目錄>'{,'<基備份搜尋目錄>'}]|[BASE ON
BACKUPSET '<基備份集目錄>']]
[TO <備份名>] [BACKUPSET '<備份集目錄>'][DEVICE TYPE <介質型別>[PARMS '<介質引數>']
[BACKUPINFO '<備份描述>'] [MAXPIECESIZE <備份片限制大小>]
[IDENTIFIED BY <加密密碼>[WITH ENCRYPTION<TYPE>][ENCRYPT WITH <加密演算法>]]
[COMPRESSED [LEVEL <壓縮級別>]][WITHOUT LOG][TASK THREAD <執行緒數>]
[PARALLEL [<並行數>][READ SIZE <拆分塊大小>]];

7.2.2.1 全庫備份

DMRMAN 下執行以下命令:

停庫

SQL> shutdown immediate;

備份

BACKUP  DATABASE  '/dm8/data/DAMENG/dm.ini'  FULL  BACKUPSET '/dm8/bak/db_full_bak_01';

7.2.2.2 增量備份

BACKUP DATABASE '/dm8/data/DAMENG/dm.ini' INCREMENT WITH BACKUPDIR '/dm8/bak' BACKUPSET '/dm8/bak/rman_db_increment_bak_02';

校驗特定的備份集,在 DMRMAN 下執行以下命令:

RMAN> CHECK BACKUPSET '/dm8/bak/rman_db_full_bak_01';

7.2.2.3 備份集刪除

RMAN> REMOVE BACKUPSET '/dm8/bak/db_bak_for_remove_01';

7.2.3 離線還原

RESTORE DATABASE <restore_type>[WITH CHECK]
FROM BACKUPSET '<備份集目錄>'
[DEVICE TYPE DISK|TAPE[PARMS '<介質引數>']]
[IDENTIFIED BY <密碼> [ENCRYPT WITH <加密演算法>]]
[WITH BACKUPDIR '<基備份集搜尋目錄>'{,'<基備份集搜尋目錄>'}]
[MAPPED FILE '<對映檔案>'][TASK THREAD <任務執行緒數>]
[RENAME TO '<資料庫名>'];
<restore_type>::=<type1>|<type2>
<type1>::='<INI 檔案路徑>'[REUSE DMINI][OVERWRITE]
<type2>::= TO '<system_dbf 所在路徑>' [OVERWRITE]

聯機備份,離線還原

RESTORE DATABASE '/dm8/data/DAMENG_FOR_RESTORE/dm.ini' FROM BACKUPSET '/dm8/bak/db_full_bak_for_restore'

恢復資料庫

RECOVER DATABASE '/dm8/data/DAMENG_FOR_RESTORE/dm.ini' FROM BACKUPSET '/dm8/bak/db_full_bak_for_restore';

恢復 db_magic

RECOVER DATABASE '/dm8/data/DAMENG_FOR_RESTORE/dm.ini' UPDATE DB_MAGIC;

恢復完成後,註冊服務

/dm8/scripts/root/dm_service_installer.sh -t dmserver -p CJC -dm_ini /dm8/data/DAMENG_FOR_RESTORE/dm.ini

7.2.4 線上備份

7.2.4.1 備份整個資料庫

BACKUP DATABASE FULL BACKUPSET '/dm8/bak/db_full_bak_01';

指定備份集路徑為 /dm8/bak/db_bak_3_01,執行以下命令:
BACKUP DATABASE BACKUPSET '/dm8/bak/db_bak_3_01';
建立備份集,備份名設定為 WEEKLY_FULL_BAK,執行以下命令:
BACKUP DATABASE TO WEEKLY_FULL_BAK BACKUPSET '/dm8/bak/db_bak_3_02';
建立備份為備份集新增描述資訊為 完全備份,執行以下命令:
BACKUP DATABASE BACKUPSET '/dm8/bak/db_bak_3_04' BACKUPINFO '完全備份';
建立備份限制備份片大小為 300 MB,執行以下命令:
BACKUP DATABASE BACKUPSET '/dm8/bak/db_bak_3_05' MAXPIECESIZE 300;
執行備份壓縮,壓縮級別設定為 5,執行以下命令:
BACKUP DATABASE BACKUPSET '/dm8/bak/db_bak_3_06' COMPRESSED LEVEL 5;
建立並行備份,指定並行數為 8,執行以下命令:
BACKUP DATABASE BACKUPSET '/dm8/bak/db_bak_3_07' PARALLEL 8;
基於 /dm8/bak 全量備份的 增量備份,執行以下命令:
BACKUP DATABASE INCREMENT WITH BACKUPDIR '/dm8/bak' BACKUPSET '/dm8/bak/db_increment_bak_02';

7.2.4.2 表空間備份

BACKUP TABLESPACE <表空間名> [FULL | INCREMENT [CUMULATIVE]
[WITH BACKUPDIR '<基備份搜尋目錄>'{,'<基備份搜尋目錄>'}]
| [BASE ON BACKUPSET '<基備份集目錄>']][TO <備份名>]
BACKUPSET ['<備份集路徑>'][DEVICE TYPE <介質型別>
[PARMS '<介質引數>']][BACKUPINFO '<備份集描述>']
[MAXPIECESIZE <備份片限制大小>][IDENTIFIED BY < 加 密 密 碼 >
[WITH ENCRYPTION<TYPE>][ENCRYPT WITH < 加 密 算 法 >]]
[COMPRESSED[LEVEL <壓縮級別>]][TRACE FILE '<TRACE 檔名>']
[TRACE LEVEL <TRACE 日誌級別>][TASK THREAD <執行緒數>]
[PARALLEL [<並行數>][READ SIZE <拆分塊大小>]];

完全備份單個表空間,執行以下命令:
BACKUP TABLESPACE MAIN FULL BACKUPSET '/dm8/bak/ts_full_bak_01';
增量備份指定備份目錄,以備份 MAIN 表空間為例,指定 BASE_ON 引數執行增量備份,執行以下命令:
BACKUP TABLESPACE MAIN INCREMENT WITH BACKUPDIR '/dm8/bak'BACKUPSET '/dm8/bak/ts_increment_bak_02';

7.2.4.3 表備份

BACKUP TABLE <表名>
[TO <備份名>]
BACKUPSET ['<備份集路徑>'] [DEVICE TYPE <介質型別> [PARMS '<介質引數>']]
[BACKUPINFO '<備份集描述>']
[MAXPIECESIZE <備份片限制大小>]
[IDENTIFIED BY <加密密碼>[WITH ENCRYPTION<TYPE>][ENCRYPT WITH <加密演算法>]]
[COMPRESSED [LEVEL <壓縮級別>]]
[TRACE FILE '<trace 檔名>'] [TRACE LEVEL <trace 日誌級別>]

以備份 TAB_01 為例,執行以下命令:

BACKUP TABLE CJC.T1 BACKUPSET '/dm8/bak/tab_bak_01';

7.2.5 線上還原

還原表結構
restore table struct from backupset '/dm8/bak/tab_bak_for_res_02';
還原表資料
RESTORE TABLE  FROM BACKUPSET '/dm8/bak/tab_bak_for_res_02';
還原時不建立索引
RESTORE  TABLE    WITHOUT  INDEX  FROM  BACKUPSET '/dm8/bak/tab_bak_for_res_03';
還原時不建立約束
RESTORE  WITHOUT  CONSTRAINT  FROM  BACKUPSET '/dm8/bak/tab_bak_for_res_01';


  7.2.6 將生產庫還原到另一個例項

聯機備份資料庫,保證資料庫執行在歸檔模式及 Open 狀態。執行以下命令:

BACKUP DATABASE BACKUPSET '/dm8/bak/db_full_bak_for_restore';

準備目標庫。還原目標庫可以是已經存在的資料庫,也可使用 dminit 工具初始化一個新庫。執行以下命令:

dminit path=/dm8/data db_name=DAMENG_FOR_RESTORE

啟動 RMAN ,校驗備份,校驗待還原備份集的合法性。校驗備份有兩種方式,聯機和離線,此處使用離線校驗。執行以下命令:

CHECK BACKUPSET '/dm8/bak/db_full_bak_for_restore';

還原資料庫。啟動 DMRMAN ,執行以下命令:

RESTORE DATABASE '/dm8/data/DAMENG_FOR_RESTORE/dm.ini' FROM BACKUPSET '/dm8/bak/db_full_bak_for_restore'

恢復資料庫。啟動 DMRMAN ,執行以下命令:

RECOVER DATABASE '/dm8/data/DAMENG_FOR_RESTORE/dm.ini' FROM BACKUPSET '/dm8/bak/db_full_bak_for_restore'

恢復 db_magic ,執行以下命令:

RECOVER DATABASE '/dm8/data/DAMENG_FOR_RESTORE/dm.ini' UPDATE DB_MAGIC;

恢復完成後,註冊服務

/dm8/scripts/root/dm_service_installer.sh -t dmserver -p CJC -dm_ini /dm8/data/DAMENG_FOR_RESTORE/dm.ini


  修改 dm.ini 裡埠, 5236 改成 5238

su - root
/dm8/script/root/dm_service_installer.sh -t dmserver -p CJC -dm_ini /dm8/data/DAMENG_FOR_RESTORE/dm.ini

啟動新例項

systemctl start DmServiceCJC.service

 

7.2.7 還原表空間

需要注意,表空間還原的目標庫只能是備份集產生的源庫,否則將報錯。啟動 DMRMAN ,執行以下命令:

RESTORE DATABASE '/dm8/data/DAMENG_FOR_RESTORE/dm.ini' TABLESPACE MAIN FROM BACKUPSET '/dm8/bak/db_full_bak_for_restore';

恢復表空間。啟動 DMRMAN ,執行以下命令:

RECOVER DATABASE '/dm8/data/DAMENG_FOR_RESTORE/dm.ini' TABLESPACE TS1;

https://eco.dameng.com/document/dm/zh-cn/ops/restore-specified-time.html

7.2.8 恢復到指定時間點

備份資料庫,執行以下命令:

BACKUP DATABASE BACKUPSET '/dm8/bak/db_full_bak_for_time_lsn';

操作步驟同步驟 3 ,此時的時間和 LSN 分別為: 2018-11-16 10:57:20.977265 50861

關閉資料庫,開啟 RMAN 還原資料庫,執行以下語句:(步驟 4 為誤操作,因此我們需要將資料庫恢復到步驟 3 的狀態)

RESTORE DATABASE '/dm8/data/DAMENG_FOR_RESTORE/dm.ini' FROM BACKUPSET '/dm8/bak/db_full_bak_for_time_lsn';

使用 RECOVER DATABASE...UNTIL TIME 命令恢復到指定的時間,開啟 RMAN ,執行以下命令:

RECOVER DATABASE '/dm8/data/DAMENG_FOR_RESTORE/dm.ini' WITH
ARCHIVEDIR'/home/dm_arch/arch' UNTIL TIME'2018-11-16 10:56:40.624931';

或者使用 RECOVER DATABASE...UNTIL LSN 命令恢復到指定的時間,執行以下命令:

RECOVER DATABASE '/dm8/data/DAMENG_FOR_RESTORE/dm.ini' WITH
ARCHIVEDIR'/home/dm_arch/arch' UNTIL LSN 50857;

恢復 db_magic ,執行以下命令:

RECOVER DATABASE 'D:\dmdbms\data\DAMENG\dm.ini' UPDATE DB_MAGIC;

7.2.9 邏輯備份

https://eco.dameng.com/document/dm/zh-cn/pm/dexp-dimp-function-introduction.html

邏輯匯出和邏輯匯入資料庫物件分為四種級別:資料庫級、使用者級、模式級和表級。四種級別獨立互斥,不能同時存在。四種級別所提供的功能:

資料庫級(FULL):匯出或匯入整個資料庫中的所有物件。
使用者級(OWNER):匯出或匯入一個或多個使用者所擁有的所有物件。
模式級(SCHEMAS):匯出或匯入一個或多個模式下的所有物件。
表級(TABLES):匯出或匯入一個或多個指定的表或表分割槽。

dexp 邏輯匯出

dexp 工具可以對本地或者遠端資料庫進行資料庫級、使用者級、模式級和表級的邏輯備份。備份的內容非常靈活,可以選擇是否備份索引、資料行和許可權,是否忽略各種約束(外來鍵約束、非空約束、唯一約束等),在備份前還可以選擇生成日誌檔案,記錄備份的過程以供檢視。

dexp 工具名稱有兩種寫法 dexp dexpdp 。兩者語法完全相同。唯一的區別在於, dexp 匯出的檔案必須存放在客戶端, dexpdp 匯出的檔案必須存放在伺服器端。

 

使用 dexp 工具

dexp 工具需要從命令列啟動。在 cmd 命令列工具中找到 dexp 所在安裝目錄 /dmdbms/bin ,輸入 dexp 和引數後回車。引數在下一節詳細介紹。

 

例如,將使用者名稱和密碼均為 SYSDBA

IP 地址為 192.168.0.248

埠號為 8888 的資料庫採用 FULL 方式完全匯出。

/user/data 為數字證照路徑。

匯出檔名為 db_str.dmp

匯出的日誌檔名為 db_str.log

匯出檔案的路徑為/mnt/dexp/data

./dexp USERID=SYSDBA/SYSDBA@192.168.0.248:8888##/user/data FILE=db_str.dmp DIRECTORY=/mnt/dexp/data LOG=db_str.log FULL=Y

四種級別的匯出方式

針對資料庫物件,有FULL OWNER SCHEMAS TABLES 四種匯出方式可供選擇。一次匯出只能指定一種方式。可選引數,預設為 SCHEMAS

 

FULL

匯出資料庫的所有物件。

./dexp USERID=SYSDBA/SYSDBA FILE=db_str.dmp LOG=db_str.log FULL=Y DIRECTORY=/mnt/data/dexp


  OWNER

OWNER 方式匯出一個或多個使用者擁有的所有物件

./dexp USERID=SYSDBA/SYSDBA FILE=db_str.dmp LOG=db_str.log OWNER=USER01DIRECTORY=/mnt/data/dexp

SCHEMAS

SCHEMAS 方式的匯出一個或多個模式下的所有物件

./dexp USERID=SYSDBA/SYSDBA FILE=db_str.dmp LOG=db_str.log SCHEMAS=USER01 DIRECTORY=/mnt/data/dexp


注意

一般情況下,OWNER SCHEMAS 匯入匯出是相同的。

但是使用者可以包含多個模式,在這種情況下SCHEMAS 的匯入匯出是 OWNER 匯入匯出的一個子集。

 

TABLES

TABLES 方式匯出和匯入一個或多個指定的表或表分割槽。匯出所有資料行、約束、索引等資訊。

./dexp USERID=SYSDBA/SYSDBA FILE=db_str.dmp LOG=db_str.log TABLES=table1,table2 DIRECTORY=/mnt/data/dexp


TABLES 匯出有關的引數還有 QUERY EXCLUDE INCLUDE ,都是用來設定過濾條件的。

 

表名為小寫tabname ,語句中應該寫為 "\"tabname\""

./dexp USERID=SYSDBA/SYSDBA FILE=db_str.dmp LOG=db_str.log TABLES="\"tabname\""


例如,表名為小寫tabname" ,語句中應該寫為 "\"tabname\"\"\""

./dexp USERID=SYSDBA/SYSDBA\@192.168.0.248:8888 FILE=db_str.dmp LOG=db_str.log TABLES="\"tabname\"\"\""

FUZZY_MATCH

FUZZY_MATCH 用於指定 TABLES 選項是否支援模糊匹配。可選引數,預設為 N

 

語法如下:

FUZZY_MATCH=N/Y

N TABLES 選項不支援模糊匹配,指定的表名與資料庫中的表名必須精確匹配;

Y TABLES 選項支援模糊匹配,指定的表名與資料庫中的表名採用 LIKE 模糊查詢匹配。

 

匯出OTHER 模式下以 "R" 開頭的表

./dexp USERID=SYSDBA/SYSDBA FILE=db_str.dmp LOG=db_str.log TABLES=OTHER.R% FUZZY_MATCH=Y


 

QUERY

QUERY 用於指定過濾條件來對錶資料進行匯出。可選引數。

匯出 OTHER.READER 表中滿足 "WHERE AGE=19" 條件的資料。

./dexp USERID=SYSDBA/SYSDBA FILE=db_str.dmp LOG=db_str.log TABLES=OTHER.READER QUERY="WHERE AGE=19"


 

PARALLEL

PARALLEL 用於指定匯出的過程中所使用的執行緒數目。可選引數,預設為單執行緒。

如果 CPU 核心數為 N 的話,那一般來說 PARALLEL N 或者 N+1 最合適。

設定PARALLEL=2 時則執行緒數為 2

./dexp USERID=SYSDBA/SYSDBA FILE=db_str.dmp LOG=db_str.log FULL=Y DIRECTORY=/mnt/data/dexp PARALLEL=2


 

TABLE_PARALLEL

TABLE_PARALLEL 用於指定匯出每張表所使用的執行緒數。可選引數,預設為單執行緒。如果 CPU 核數為 N 的話,那一般來說 TABLE_PARALLEL N 或者 N+1 最合適。在 MPP 模式下會轉換成單執行緒。

./dexp USERID=SYSDBA/SYSDBA FILE=db_str.dmp LOG=db_str.log FULL=Y DIRECTORY=/mnt/data/dexp TABLE_PARALLEL=3


 

EXCLUDE

EXCLUDE 用來批次設定匯出時忽略的物件種類。可選引數。

設定 EXCLUDE=(CONSTRAINTS) ,將當前使用者下的 table1 table2 的物件資訊匯出時不匯出約束

./dexp SYSDBA/SYSDBA FILE=/mnt/data/db_str.dmp LOG=db_str.log TABLES=table1,table2 EXCLUDE=/(CONSTRAINTS/)


 

INCLUDE

INCLUDE 用來批次設定匯出時包含的物件種類。可選引數。

./dexp USERID=SYSDBA/SYSDBA FILE=db_str.dmp LOG=db_str.log TABLES=table1 DIRECTORY=/mnt/data/dexp INCLUDE=/(CONSTRAINTS,INDEXES/)

CONSTRAINTS TABLESPACE GRANTS INDEXES TRIGGERS ROWS

這些引數用來指定某類物件是否被匯出。類別分別為約束、表空間、許可權、索引、觸發器和資料。

CONTRAINTS=N :設定不匯出約束。可選引數。預設該引數為 Y ,匯出約束。

 

TABLESPACE=Y :設定匯出的物件定義中包含表空間。可選引數。預設該引數為 N ,不包含表空間。

GRANTS=N :設定不匯出許可權。可選引數。預設該引數為 Y ,匯出許可權。

INDEXES=N :設定不匯出索引。可選引數。預設該引數為 Y ,匯出索引。

TRIGGERS=N :設定不匯出觸發器。可選引數。預設該引數為 Y ,匯出觸發器。

ROWS=N :設定不匯出資料。可選引數。預設該引數為 Y ,匯出資料。

 

例如,設定ROWS=N 不匯出表中的資料。

./dexp USERID=SYSDBA/SYSDBA FILE=db_str.dmp NOLOGFILE=Y FULL=Y DIRECTORY=/mnt/data/dexp ROWS=N

注意

此處,物件(CONSTRAINTS GRANTS INDEXES TRIGGERS ROWS )分別單獨設定,和 EXCLUDE/INCLUDE 中批次設定功能一樣。設定一個即可。 如果單獨設定和批次設定同時出現時,那麼以最後出現的那個為準。

 

NOLOGFILE

NOLOGFILE 用於設定是否使用日誌檔案。可選引數。

一旦設定NOLOGFILE=Y 不使用日誌檔案。此時即使存在 LOG 引數, LOG 引數也為無效。

例如,設定 NOLOGFILE=Y ,不使用日誌檔案。

./dexp USERID=SYSDBA/SYSDBA FILE=db_str.dmp NOLOGFILE=Y FULL=Y DIRECTORY=/mnt/data/dexp


NOLOG

NOLOG 設定螢幕上是否顯示日誌資訊。可選引數。

 

例如,設定NOLOG=Y 螢幕不顯示日誌資訊。

./dexp USERID=SYSDBA/SYSDBA FILE=db_str.dmp NOLOG=Y FULL=Y DIRECTORY=/mnt/data/dexp


PARFILE

PARFILE 用於將常用的引數設定儲存到檔案中,然後使用引數檔案 PARFILE 進行匯出、匯入操作。可選引數。

例如,設定PARFILE=/mnt/data/dexp/para.txt

./dexp USERID=SYSDBA/SYSDBA PARFILE=/mnt/data/dexp/para.txt


其中,引數檔案/mnt/data/dexp/para.txt 的內容如下:

FILE=db_str.dmp
LOG=db_str.log
TABLES=table1
DIRECTORY=/mnt/data/dexp

FEEDBACK

FEEDBACK 用來指明在匯出資料的過程中每間隔多少行列印一次進度資訊。可選引數。

當引數預設時,預設為0 ,只列印匯出表的總行數。

例如,將整個資料庫匯出到檔案dexp.dmp 中,並且在匯出的過程中每隔 100 行列印一次進度資訊。

./dexp SYSDBA/SYSDBA FULL=Y FILE=dexp.dmp DIRECTORY=/mnt/data/dexp FEEDBACK=100


COMPRESS

COMPRESS 指定是否壓縮匯出檔案。可選引數。預設為不壓縮。

COMPRESS=Y/N

 

ENCRYPT ENCRYPT_PASSWORD ENCRYPT_NAME

這三個引數用來設定匯出檔案加密。可選引數。

 

例如,設定匯出檔案加密,金鑰 abcdefg ,加密演算法為 DES_CBC

./dexp SYSDBA/SYSDBA DIRECTORY=/mnt/data/dexp FILE=dk15.dmp LOG=db_str15.log ENCRYPT=Y ENCRYPT_PASSWORD=abcdefg ENCRYPT_NAME=DES_CBC FULL=Y

FILESIZE

FILESIZE 用於指定單個匯出檔案( FILE )大小或日誌檔案( LOG )大小的上限。可以按位元組 [B] K[B] M[B] G[B] 的方式指定大小。可選引數。

使用 FILESIZE 引數時, FILE (或 LOG )必須使用 %U 對名稱進行自動擴充套件,否則報錯。如果不指定 FILE (或 LOG ),那麼即使設定了 FILESIZE 也不起作用。 FILE LOG 同時使用 %U 時, FILESIZE 引數只需指定一次。

以下示例表示以FULL 方式匯出例項,每個匯出檔案大小為 128m ,檔名以 data01.dmp 自動擴充套件,儲存位置為 /mnt/data/dexp 目錄。

./dexp USERID=SYSDBA/SYSDBA DIRECTORY=/mnt/data/dexp FILE=data%u.dmp LOG=data%u.log FILESIZE=128m FULL=Y

FILENUM

FILENUM 用於指定一個模板匯出檔案的個數。範圍為 1~99 ,預設 99 。可選引數。 FILENUM 需要和 FILESIZE 搭配使用, FILENUM*FILESIZE 要大於等於匯出的檔案總大小,否則會報錯空間不足。

 

DROP

DROP 用於設定匯出後是否刪除原表。可選引數。

DROP=Y/N

Y: 匯出後刪除原表,但不級聯刪除。

N 或預設引數 : 匯出後不刪除原表。

 

DESCRIBE

DESCRIBE 用於設定匯出資料檔案的描述資訊,記錄在資料檔案中。可選引數。

語法如下:

DESCRIBE=' 字串 '

字串:設定匯出資料檔案的描述資訊,記錄在資料檔案中。預設時,匯出的資料檔案中沒有描述資訊

 

HELP

輸入dexp HELP 即可檢視幫助資訊。

例如,使用HELP 檢視幫助資訊。

./dexp HELP

7.2.10 邏輯還原

https://eco.dameng.com/document/dm/zh-cn/pm/dimp-logical%20import.html

dimp 工具名稱有兩種寫法 dimp dimpdp 。兩者語法完全相同。唯一的區別在於, dimp 匯入的檔案必須存放在客戶端, dexpdp 匯入的檔案必須存放在伺服器端。

 

dimp 引數一覽表

...

dimp 匯入

匯入 SYSDBA OTHER PERSON 模式中的資料( SCHEMAS=SYSDBA,OTHER,PERSON ),匯入檔案就是上一步匯出的檔案 dexp01.dmp ,匯入日誌 dimp02.log 放入 /emc_2/data/dimp 目錄中。

./dimp SYSDBA/SYSDBA\@192.168.0.248:8888 FILE=/emc_2/data/dexp/dexp01.dmp LOG=dimp02.log DIRECTORY=/emc_2/data/dimp SCHEMAS=SYSDBA,OTHER,PERSON


  八:引數管理

8.1 引數管理 - 圖形化操作

使用圖形化修改

不修改記憶體中的值,修改的是配置檔案中的值,需要重啟後生效

使用圖形化修改

cd /dm8/tool

./console

SQL> select name,value,sys_value,file_value,type,description from v$parameter where name like '%SESSIONS%';
 
行號     NAME         VALUE SYS_VALUE FILE_VALUE TYPE    DESCRIPTION                          
---------- ------------ ----- --------- ---------- ------- -------------------------------------
1          MAX_SESSIONS 100   100       150        IN FILE Maximum number of concurrent sessions
 
已用時間: 5.997(毫秒). 執行號:410.

8.2 引數管理 -命令列操作

8.2.1 引數型別

SELECT distinct type from v$parameter;

行號      TYPE     

---------- ---------

1          READ ONLY

2          SYS

3          IN FILE

4          SESSION

 

已用時間 : 152.622( 毫秒 ). 執行號 :401.

 

對應到 Oracle Scope

both :既修改記憶體中的值,也修改配置檔案中的值,重啟不重啟都一樣生效

spfile :只修改配置檔案中的值,重啟資料庫生效

memory :只修改記憶體中的值,重啟資料庫後恢復設定前的樣子

 

達夢根據引數型別可分為,靜態引數和動態引數兩種,這兩種均支援透過系統函式、 SQL 命令進行修改

靜態引數:只能修改配置檔案中的值,對記憶體中的值不進行修改,所以靜態引數修改後使其生效的話,需要對資料庫進行重啟

動態引數:既能修改記憶體中的值,也能修改配置檔案中的值,所以動態引數修改後是立即生效的

READ ONLY
只讀引數,不能透過系統函式、SQL命令達到修改引數的目的,只能從dm.ini配置檔案中進行修改
SYS
靜態引數,可以透過系統函式、SQL命令達到修改引數的目的
IN FILE
動態引數(系統級),可以透過系統函式、SQL命令達到修改引數的目的
SESSION
動態引數(會話級),可以透過系統函式、SQL命令達到修改引數的目的,可針對某個會話進行修改,便於除錯(不然要應用到整個線上系統,一旦出錯,影響面就廣了)

8.2.2引數修改方式

使用 dm.ini 修改

# 直接編輯檔案修改即可

vim /dm8/data/ 服務名稱 dm.ini

 

SQL 語句修改

# 後面跟的是引數範圍

alter system set ' 引數名 '=' 引數值 ' both | spfile | memory;

 

# 查詢相容引數型別

select name,value,sys_value,file_value,type,description from v$parameter where name = 'COMPATIBLE_MODE';

# 修改相容引數型別

alter system set 'COMPATIBLE_MODE'=2 spfile;

 

系統函式修改

檢視可以使用的系統函式

select name,id from v$ifun t where name like '%SP_SET%_PARA%';

 

檢視系統函式的引數型別

select * from v$ifun_arg t where id=584;

 

例子

修改 double 型別的引數值, UNDO_RETENTION 引數

SP_SET_PARA_DOUBLE_VALUE(1,'UNDO_RETENTION',90);

 

資料緩衝區

修改資料緩衝區大小,沒有特殊指明的話就是修改 Normal 緩衝區的大小,引數對應的是 BUFFER

Normal 對應引數 BUFFER Fast 對應引數為 FAST_POOL_PAGES Recycle 對應引數為 RECYCLE Keep 對應引數為 KEEP

alter system set 'BUFFER'=2000 spfile;

九:作業管理

9.1 作業管理 - 圖形化操作

9.1.1 啟動 MANAGER 管理工具

[dmdba@cjc-db-01 ~]$ manager

連線資料庫

9.1.2 建立代理環境

SQL> select OWNER,TABLE_NAME from dba_tables where table_name in ('SYSJOBS');

 

LINEID     OWNER  TABLE_NAME

---------- ------ ----------

1          SYSJOB SYSJOBS

 

操作員

SQL> select username from dba_users;

 

LINEID     USERNAME  

---------- ----------

1          SYSAUDITOR

2          SYSSSO

3          DMHR

4          CJC

5          SYSDBA

6          SYS

 

6 rows got

 

建立、修改和刪除操作員可以透過以下兩種方式來實現。一是透過系統過程來實現;二是透過圖形化客戶端MANAGER管理工具實現。使用者選擇其中的一種即可。

9.1.3 新建操作員

顯示 建立的語句

可以對操作員進行修改和刪除

9.1.4 新建作業

作業步驟

Add 新增

步驟型別

先測試指令碼執行的作業

STEP NAME 不能有特殊字元?否則最後提交時報錯:

可以用類似這樣的 NAME

SQL> select * from cjc.t1;

 

LINEID     ID         

---------- -----------

1          1

 

used time: 2.444(ms). Execute id is 901.

作業排程

每天 15:50 開始執行

檢視自動生成的 DDL 語句

call SP_CREATE_JOB('CJC_JOB',1,0,'',0,0,'',0,'TEST 20221019 ...');
 
call SP_JOB_CONFIG_START('CJC_JOB');
 
call SP_ADD_JOB_STEP('CJC_JOB', 'insert into script ...', 0, 'insert into cjc.t1 values(100);', 0, 0, 0, 0, NULL, 0);
 
call SP_ADD_JOB_SCHEDULE('CJC_JOB', 'CJC_SCH', 1, 1, 1, 0, 0, '15:50:00', NULL, '2022-10-19 15:37:25', NULL, '');
 
call SP_JOB_CONFIG_COMMIT('CJC_JOB');


  儲存指令碼

OK

 

警報

達夢資料庫還提供了警報的功能,允許使用者定義一些自己想要捕獲的動作,如果這些動作發生時,系統就會將對應資訊儲存到指定的表中,將想要得到的資訊儲存起來,以便做到實時的監控。

建立、修改和刪除警報可以透過以下兩種方式來實現。一是透過系統過程來實現;二是透過圖形化客戶端 MANAGER 管理工具實現。使用者選擇其中的一種即可。

新增警告

建立警告

通知警告

DDL

call SP_CREATE_ALERT('SCRIPT_ALERT',1,0,6,-1,10,'');
call SP_ALERT_ADD_OPERATOR('SCRIPT_ALERT','TOM',1,1);


  監控作業

監控作業是指把作業的執行情況透過電子郵件傳送給作業操作員。郵件成功傳送的前提有兩個:一是為監控服務配置管理員;二是開啟監控服務。

https://eco.dameng.com/document/dm/zh-cn/pm/monitoring-job.html

 

  檢視資料

SQL> select * from cjc.t1;

 

LINEID     ID         

---------- -----------

1          1

2          100

 

used time: 2.045(ms). Execute id is 905.

 

作業執行歷史

9.2 作業管理 - 命令列操作

https://eco.dameng.com/document/dm/zh-cn/pm/typical-example.html

定時備份 示例

https://eco.dameng.com/document/dm/zh-cn/ops/scheduled-backup.html

建立作業環境

SP_INIT_JOB_SYS(1);

指令碼備份

Linux 定時備份指令碼

1. 每週六晚上 23 30 定時全庫備份

call SP_CREATE_JOB('back_full',1,0,'',0,0,'',0,'back_full');
call SP_JOB_CONFIG_START('back_full');
call SP_ADD_JOB_STEP('back_full', 'back_full', 6, '01000000/opt/dmdbms/data/BAK', 1, 2, 0, 0, NULL, 0);
call SP_ADD_JOB_SCHEDULE('back_full', 'back_full', 1, 2, 1, 64, 0, '23:30:00', NULL, '2020-03-27 16:35:56', NULL, '');
call SP_JOB_CONFIG_COMMIT('back_full');

2. 每週一、週二、週三、週四、週五、週日晚上 23 30 定時增量備份

call SP_CREATE_JOB('backup_inc',1,0,'',0,0,'',0,'backup_inc');
call SP_JOB_CONFIG_START('backup_inc');
call SP_ADD_JOB_STEP('backup_inc', 'backup_inc', 6, '11000000/opt/dmdbms/data/BAK|/opt/dmdbms/data/BAK', 1, 2, 0, 0, NULL, 0);
--call SP_ADD_JOB_STEP('backup_inc', 'backup_inc', 6, '11000000/opt/dmdbms/data/BAK|/opt/dmdbms/data/BAK', 1, 2, 0, 0, NULL, 0);
call SP_ADD_JOB_SCHEDULE('backup_inc', 'backup_inc', 1, 2, 1, 63, 0, '23:33:00', NULL, '2020-03-27 22:03:58', NULL, '');
call SP_JOB_CONFIG_COMMIT('backup_inc');

3. 每天 00 00 刪除 15 天以前的資料。刪除前請先提前將備份檔案轉移到單獨的備份伺服器

call SP_CREATE_JOB('JOB_DEL_BAK_TIMELY',1,0,'',0,0,'',0,'JOB_DEL_BAK_TIMELY');
call SP_JOB_CONFIG_START('JOB_DEL_BAK_TIMELY');
call SP_ADD_JOB_STEP('JOB_DEL_BAK_TIMELY', 'JOB_DEL_BAK_TIMELY', 0, 'call SF_BAKSET_BACKUP_DIR_ADD(''DISK'', ''/data/dmdbms/data/BAK'');
CALL SP_DB_BAKSET_REMOVE_BATCH(''DISK'', NOW()-15);', 1, 2, 0, 0, NULL, 0);
call SP_ADD_JOB_SCHEDULE('JOB_DEL_BAK_TIMELY', 'JOB_DEL_BAK_TIMELY', 1, 1, 1, 0, 0, '00:00:00', NULL, '2020-03-27 22:06:13', NULL, '');
call SP_JOB_CONFIG_COMMIT('JOB_DEL_BAK_TIMELY');

十: ODBC

10.2 檢視 ODBC 配置檔案

odbcinst -j

10.2配置 odbc.ini 檔案

cp /etc/odbc.ini /etc/odbc.ini_20221017bak
vi /etc/odbc.ini
[dm8]
Description = DM ODBC DSN
Driver = DM8 ODBC DRIVER
SERVER = cjc-db-01
UID = SYSDBA
PWD = Dameng123
TCP_PORT = 5238

10.3配置 odbcinst.ini

cp /etc/odbcinst.ini /etc/odbcinst.ini_20221017bak
vi /etc/odbcinst.ini
[DM8 ODBC DRIVER]
Description = ODBC DRIVER FOR DM8
DRIVER = /dm8/bin/libdodbc.so

10.4測試 odbc連線資料庫

su - dmdba
isql dm8

10.5 ODBC環境準備

如果沒有對應命令,需要提前安裝

rpm -qa|grep unixODBC

配置本地 YUM

vi /etc/yum.repos.d/oracle-linux-ol7.repo 
[Oracle_Linux_7]
name=Oracle Linux 7
baseurl=file:///iso
gpgcheck=0
enabled=1

掛載作業系統映象

mount OracleLinux-R7-U9-Server-x86_64-dvd.iso /iso -o loop
yum -y install unixODBC.x86_64

### 複製離線包

###cp /iso/Packages/unixODBC-devel-2.3.1-14.0.1.el7.x86_64.rpm /soft/dm/
###cp /iso/Packages/unixODBC-2.3.1-14.0.1.el7.x86_64.rpm /soft/dm/

安裝 ODBC

解壓 ODBC ,沒有這個 tar 包的話需要上傳到這個目錄下

tar -zxvf /opt/unixODBC-2.3.0.tar.gz

進入到 odbc 目錄進行原始碼安裝

cd unixODBC-2.3.0

./configure

make

make install

十一:解除安裝

11.1 解除安裝 - 圖形化操作

https://eco.dameng.com/document/dm/zh-cn/pm/install-uninstall.html

[root@host02 ~]# echo $DISPLAY

localhost:10.0

[root@host02 ~]# xhost +

 

[dmdba@host02 ~]$ cd /dm8/

[dmdba@host02 dm8]$ sh uninstall.sh 

[root@host02 ~]# cd /dm8/

[root@host02 dm8]# sh uninstall.sh 

刪除檔案,使用者,組等

 

11.2 解除安裝 - 命令列操作

解除安裝 資料庫例項 + 軟體

11.2.1 停服務

systemctl stop DmServiceCJC.service 
systemctl stop DmServiceDMSERVER.service

11.2.2解除安裝

su - dmdba
/dm8/uninstall.sh -i
Whether to uninstall DM database(/dm8/)? (y/Y:Yes n/N:No):Y
Whether to deletet the dm_svc.conf file? (y/Y:Yes n/N:No):Y

11.2.3執行指令碼

su - root
/dm8/root_uninstaller.sh

[dmdba@cjc-db-01 ~]$ cat /dm8/root_uninstaller.sh
#!/bin/sh
 
#run by root
RUID=`/usr/bin/id|awk -F\( '{print $1}'|awk -F\= '{print $2}'`
if [ ${RUID} != "0" ]
then
 echo "Must run the script by root!"
exit 1
fi
 
echo "Delete DmServiceCJC service"
 
systemctl disable DmServiceCJC.service
rm -f /usr/lib/systemd/system/DmServiceCJC.service
rm -f "/dm8/bin/DmServiceCJC"
rm -f "/dm8/bin/DmServicedameng"
echo "Delete /etc/dm_svc.conf"
rm -f /etc/dm_svc.conf

11.2.4 刪除使用者、組

userdel -r -f dmdba
groupdel dinstall

11.2.5刪除檔案

rm -rf /dm8/*

清理殘留的服務

systemctl list-unit-files |grep -i dms
DmServicedameng.service                       disabled
 
find / -name DmService*
/usr/lib/systemd/system/DmServicedameng.service
 
rm -f /usr/lib/systemd/system/DmServicedameng.service


###chenjuchao 20221023 20:30###

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29785807/viewspace-2919869/,如需轉載,請註明出處,否則將追究法律責任。

相關文章