日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

达梦8 DCA认证笔记

發(fā)布時(shí)間:2023/12/15 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 达梦8 DCA认证笔记 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

接公司領(lǐng)導(dǎo)圣旨,參加達(dá)夢數(shù)據(jù)庫DCA課程培訓(xùn)。培訓(xùn)三天的時(shí)間收獲很多,因疫情原因有點(diǎn)擔(dān)心是線下培訓(xùn),但又擔(dān)心線上課程效果不好。總之糾結(jié)。聽了半天的課程后就打消我的顧慮,感謝達(dá)夢大學(xué)和我的授課老師,耐心的幫助和仔細(xì)的講解,效果非常好。順便幫助國產(chǎn)數(shù)據(jù)庫達(dá)夢宣傳一下 ,有想學(xué)習(xí)的 請加唯一官方QQ:2908982381(達(dá)夢大學(xué))
三天時(shí)光充實(shí),短暫。

本文重點(diǎn)介紹命令行式操作,圖形化較簡單。理解下就能操作。
1.國內(nèi)數(shù)據(jù)庫行業(yè)的發(fā)展趨勢,信創(chuàng)的本質(zhì);
2.DM8數(shù)據(jù)庫新特性;
3.DM8安裝+實(shí)例管理;
4.體系結(jié)構(gòu);
5.表空間管理;
6.用戶管理;
7.dmsql;
8.模式對象管理;
9.備份和還原;
10.作業(yè)創(chuàng)建和管理;
11.jdbc和odbc。

1.數(shù)據(jù)庫行業(yè)概況
主要的幾個(gè)派系
oracle mysql pg sqlserver db2 informix
Hbase MongoDB

2.DM8 新特性:

  • 生態(tài)體系(國內(nèi)外軟硬件的兼容)(XC 國產(chǎn)的軟硬件(CPU
    (龍芯,飛騰,鯤鵬,海光,申威等)。軟件(國產(chǎn)的 OS—
    麒麟,統(tǒng)信等),辦公系統(tǒng)(金山 WPS,永中),中間件(東
    方通,中創(chuàng),金蝶等),存儲(長城,曙光,華為等))兼
    容適配
  • 集群 (DSC(oracleRAC) 8 節(jié)點(diǎn)) DSC+DW (兩地三
    中心)
  • 透明分布式 DMTDD (計(jì)算節(jié)點(diǎn)和存儲節(jié)點(diǎn)是否分離,
    數(shù)據(jù)是否有副本) 計(jì)算節(jié)點(diǎn)—日志節(jié)點(diǎn)—存儲節(jié)點(diǎn),不
    損傷 SQL
  • 彈性計(jì)算 (注冊信息到 server,根據(jù)實(shí)際需求,分配計(jì)算
    節(jié)點(diǎn))
  • AWR 報(bào)告 分析性能
  • DEM B/S 利用 web 集中管理數(shù)據(jù)庫 (GC EM)
  • 工具增強(qiáng) (補(bǔ)充功能)
  • 3 DM8 安裝

    軟件:OS
    內(nèi)核版本:[root@localhost ~]# uname -r 2.6 以上內(nèi)核
    發(fā)行版本:[root@localhost ~]# cat /etc/issue
    位數(shù):[root@localhost ~]# uname -m
    [root@localhost ~]# cat /proc/cpuinfo

    查看硬盤、分區(qū)信息

    [root@localhost ~]# fdisk -l

    [root@localhost ~]# df -h

    遠(yuǎn)程訪問數(shù)據(jù)庫需要關(guān)閉防火墻

    [root@localhost ~]# systemctl status firewalld

    [root@localhost ~]# systemctl stop firewalld

    [root@localhost ~]# systemctl disable firewalld

    規(guī)劃路徑
    [root@localhost /]# mkdir -p /dm8

    安裝用戶(建議不要使用root)
    [root@localhost /]# groupadd dinstall

    [root@localhost /]# useradd -g dinstall dmdba

    [root@localhost /]# passwd dmdba

    更改用戶dmdba 的密碼。

    新的密碼:

    無效的密碼: 密碼少于8 個(gè)字符

    重新輸入新的密碼:

    passwd:所有的身份驗(yàn)證令牌已經(jīng)成功更新。

    [root@localhost /]# chown dmdba:dinstall /dm8 -R

    [root@localhost /]# ls -ld /dm8

    配置dmdba 用戶環(huán)境變量(可選項(xiàng))
    環(huán)境變量生效:

    [dmdba@localhost ~]$ source .bash_profile

    export DM_HOME=/dm8
    export
    PAHT=DMHOME/bin:DM_HOME/bin:DMH?OME/bin:PATH:HOME/.local/bin:HOME/.local/bin:HOME/.local/bin:HOME/bin

    設(shè)置最大文件打開數(shù)
    修改之后重啟生效

    [root@localhost /]# vi /etc/security/limits.conf

    dmdba soft nofile 4906

    dmdba hard nofile 65536

    臨時(shí)生效:ulimit -n 65536

    數(shù)據(jù)庫版本
    開發(fā)版:有時(shí)間和并發(fā)數(shù)限制,不能作為商用

    標(biāo)準(zhǔn)版:小型應(yīng)用,沒有集群等高級功能和特性

    企業(yè)版:三權(quán)分立,大中型企業(yè)使用,具有集群等高級特性安全版:基于企業(yè)版的四權(quán)分立,安全特性進(jìn)一步增強(qiáng)(強(qiáng)訪問控制、
    客體重用等)

    安裝包的類型: .iso .tar.gz .zip
    ISO:掛載
    ZIP:解壓
    [dmdba@localhost ~]$ file XXX (linux 不以文件的擴(kuò)展名
    了識別文件類型)
    數(shù)據(jù)庫軟件安裝

    [root@localhost home]# mount -o loop
    dm8_20201107_x86_rh6_64_ent_8.1.1.144.iso /mnt
    mount: /dev/loop0 寫保護(hù),將以只讀方式掛載

    [root@localhost dmdba]# xhost +


    在這里自己機(jī)器上實(shí)驗(yàn)的時(shí)候,會出現(xiàn)打不開可視化圖形的情況 配置一下DISPLAY即可
    su - dmdba
    export DISPLAY=localhost:1

    如果用win ssh遠(yuǎn)程過去
    root登錄
    xhost +
    su - dmdba
    export DISPLAY=192.168.0.166:0 (win機(jī)器ip)

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

    執(zhí)行腳本(用root 賬號)

    /dm8/script/root/root_installer.sh

    CLI:命令行的交互式安裝

    [dmdba@localhost mnt]$ ./DMInstall.bin -i

    安裝目錄的結(jié)構(gòu)和內(nèi)容:

    bin:庫文件和達(dá)夢常用的命令

    bin2 :UTF8

    Desktop:桌面

    Drivers:驅(qū)動

    jar :jar 包,存放的是邏輯備份、數(shù)據(jù)快速加載、日志挖掘

    license_en.txt license_zh.txt :許可信息

    log :日志

    release_zh.txt release_en.txt :版本信息

    script :腳本

    uninstall uninstall.sh :卸載

    web :dem 類似oracle oem

    doc :文檔

    include :頭文件(.h)

    jdk :java

    Samples :示例

    tool :客戶端工具

    卸載數(shù)據(jù)庫軟件
    注意:在卸載數(shù)據(jù)庫之前,需要將數(shù)據(jù)庫備份,然后關(guān)閉實(shí)例、刪除

    數(shù)據(jù)庫及卸載數(shù)據(jù)庫軟件

    [dmdba@localhost dm8]$ ./uninstall.sh -i

    創(chuàng)建數(shù)據(jù)庫實(shí)例
    一個(gè)數(shù)據(jù)庫軟件是可以安裝多個(gè)實(shí)例,通過端口號來區(qū)分

    cd /dm8/tool

    [dmdba@localhost tool]$ ./dbca.sh

    初始化數(shù)據(jù)庫

    判斷數(shù)據(jù)庫實(shí)例是否啟動:

    [dmdba@localhost ~]$ dmservice.sh

    查看DM進(jìn)程

    [dmdba@localhost ~]$ ps -ef|grep dmserver

    [dmdba@localhost ~]$ netstat -ntl|grep 5236

    [dmdba@localhost ~]$ DmServiceDMSERVER status

    [dmdba@localhost ~]$ systemctl status DmServiceDMSERVER.service

    手動創(chuàng)建實(shí)例TEST:

    ./dminit path=/dm8/data db_name=DB_TEST instance_name=TEST PORT_NUM=5239

    創(chuàng)建服務(wù):

    [dmdba@localhost ~]$ cd /dm8/script/root/

    [dmdba@localhost ~]$ dm_service_installer.sh -h

    [root@localhost ~]# ./dm_service_installer.sh -t dmserver -p TEST -dm_ini /dm8/data/DB_TEST/dm.ini

    DM8 數(shù)據(jù)庫實(shí)例管理
    數(shù)據(jù)庫的狀態(tài)
    Shutdown:關(guān)閉狀態(tài)

    Mount:配置狀態(tài)

    Open:數(shù)據(jù)庫打開狀態(tài),數(shù)據(jù)庫對外提供服務(wù)

    Suspend:掛起狀態(tài)

    數(shù)據(jù)庫狀態(tài)的切換
    Shutdown -mount

    Shutdown -open

    Open-shutdown

    Mount-open

    Open-mount(oracle 不支持)

    Open-suspend

    Suspend-open

    Dm 數(shù)據(jù)庫不支持mount-suspend 狀態(tài),suspend-mount 狀態(tài)

    數(shù)據(jù)庫啟動過程
    Shutdown-mount

    根據(jù)配置文件dm.ini 分配共享內(nèi)存,啟動后臺進(jìn)程/線程,找到控制

    文件的位置,驗(yàn)證控制文件是否損壞,最后打開控制文件。

    Mount-open

    根據(jù)控制文件找到數(shù)據(jù)庫的數(shù)據(jù)文件和重做日志文件,分析數(shù)據(jù)庫是

    否需要做恢復(fù)。

    數(shù)據(jù)庫啟動和關(guān)閉
    通過進(jìn)程的形式啟停數(shù)據(jù)庫

    [dmdba@localhost bin]$ ./DmServiceDMSERVER stop

    [dmdba@localhost bin]$ ./DmServiceDMSERVER start

    在前端啟停數(shù)據(jù)庫

    [dmdba@localhost bin]$ ./dmserver /dm8/data/DAMENG/dm.ini

    關(guān)閉數(shù)據(jù)庫:exit

    用服務(wù)查看器啟停數(shù)據(jù)庫(root 賬號執(zhí)行)

    數(shù)據(jù)庫工具
    disql
    /dm8/bin

    類似于oracle 的Sqlplus / as sysdba

    [dmdba@localhost bin]$ ./disql SYSDBA/SYSDBA:5239

    [dmdba@localhost bin]$ cd /dm8/tool/

    類似于oracle 的Sqlplus /nolog

    [dmdba@localhost tool]$ ./disql

    disql V8

    SQL> conn SYSDBA/SYSDBA:5239

    管理工具manager
    ./manager

    性能監(jiān)控工具monitor
    ./monitor

    遷移工具dts
    ./dits

    console 工具
    ./console

    查看和調(diào)整參數(shù)

    DMSQL
    SQL結(jié)構(gòu)化查詢語言,提供了應(yīng)用程序到數(shù)據(jù)庫的一個(gè)接口。

    DMSQL 分類
    DML(數(shù)據(jù)操作語言):insert update delete select

    DDL(數(shù)據(jù)定義語言):create table,drop table,alter table ,truncate

    DCL(數(shù)據(jù)控制語言):權(quán)限的授予或撤回,grant,revoke

    TCL(事務(wù)控制語言):commit, rollback ,save moint

    簡單 不做具體分享

    DM8 體系結(jié)構(gòu)
    DMSERVER:C/S 架構(gòu),客戶端+服務(wù)器構(gòu)成

    DMSERVER=數(shù)據(jù)庫文件+實(shí)例

    實(shí)例=共享內(nèi)存+后臺進(jìn)程/線程

    非DSC 架構(gòu)是一個(gè)實(shí)例對應(yīng)一個(gè)數(shù)據(jù)庫,DSC 架構(gòu)是一個(gè)數(shù)據(jù)庫可以

    對應(yīng)多個(gè)實(shí)例

    DM8存儲結(jié)構(gòu)
    物理結(jié)構(gòu)

    配置文件

    以.ini 結(jié)尾的文件

    [dmdba@localhost DAMENG]$ ls -l *.ini

    查詢視圖:

    select para_name,para_value from v$dm_ini where para_name like

    ‘COMPAT%’;

    SYS 系統(tǒng)級:影響全局

    Session 會話級:針對當(dāng)前會話有效

    Infile:靜態(tài)參數(shù),實(shí)例重啟才能生效

    sp_set_para_value(2,‘COMPATIBLE_MODE’,2);

    1 等于both,會改變內(nèi)存和參數(shù)文件中的值。

    2 等于infile,會改變參數(shù)文件中的值,重啟才能生效。

    數(shù)據(jù)文件

    以.DBF 結(jié)尾的文件

    [dmdba@localhost DAMENG]$ ls -l *DBF

    控制文件

    以.ctl 結(jié)尾的文件

    select para_name,para_value from v$dm_ini where para_name like
    ‘%PATH%’;

    查看控制文件內(nèi)容:

    [dmdba@localhost bin]$ ./dmctlcvt TYPE=1

    SRC=/dm8/data/DAMENG/dm.ctl DEST=/tmp/dmctl.txt

    注意:不要隨便修改控制文件

    重做日志文件

    查詢重做日志文件:

    select file_id,path,rlog_size from v$rlogfile;

    重做日志文件記錄的是數(shù)據(jù)庫發(fā)生變更信息。重做日志文件的特點(diǎn)是

    可覆蓋,循環(huán)寫。重做日志文件頻繁切換會對數(shù)據(jù)庫產(chǎn)生較大的性能

    影響。

    resize 重做日志文件

    alter database resize logfile ‘/dm8/data/DAMENG/DAMENG01.log’ TO

    300;

    alter database resize logfile ‘/dm8/data/DAMENG/DAMENG02.log’ TO

    300;

    新增重做日志文件:

    alter database add logfile ‘/dm8/data/DAMENG/DAMENG03.log’ size

    300;

    注意:重做日志文件不能被刪除,所有日志文件大小需要一致。

    歸檔日志文件

    就是重做日志文件的副本,用來做數(shù)據(jù)庫恢復(fù)。

    開啟歸檔:

    命令行開歸檔

    [dmdba@localhost DAMENG]$ disql sysdba/dameng123

    服務(wù)器[LOCALHOST:5236]:處于普通打開狀態(tài)

    登錄使用時(shí)間: 14.156(毫秒)

    disql V8

    SQL> alter database mount;

    操作已執(zhí)行

    已用時(shí)間: 00:00:01.783. 執(zhí)行號:0.

    SQL>alter database add archivelog ‘type=local,dest=/dm8/arch,file_size=100,space_limit=0’;

    操作已執(zhí)行

    已用時(shí)間: 12.152(毫秒). 執(zhí)行號:0.

    SQL> alter database archivelog;

    操作已執(zhí)行

    已用時(shí)間: 5.841(毫秒). 執(zhí)行號:0.

    SQL> alter database open;

    操作已執(zhí)行

    已用時(shí)間: 00:00:01.866. 執(zhí)行號:0.

    SQL> select name,arch_mode from v$database;

    行號 NAME ARCH_MODE

    1 DAMENG Y

    已用時(shí)間: 8.372(毫秒). 執(zhí)行號:1803.

    圖形化開歸檔

    備份文件

    以.bak 為擴(kuò)展名的文件,備份文件就是數(shù)據(jù)庫在某一個(gè)時(shí)間點(diǎn)的副

    本。.meta 元數(shù)據(jù)文件(備份集的信息),.bak 數(shù)據(jù)備份文件(真實(shí)的數(shù)據(jù))

    跟蹤日志文件

    跟蹤日志文件記錄的是系統(tǒng)各會話執(zhí)行的sql 語句的信息,主要是錯(cuò)

    誤的信息、性能問題。跟蹤日志文件默認(rèn)是關(guān)閉的。SVR_LOG

    select para_name,para_value from v$dm_ini where para_name=‘SVR_LOG’;

    事件日志文件

    記錄的是數(shù)據(jù)庫運(yùn)行期間產(chǎn)生的關(guān)鍵性事件:數(shù)據(jù)庫的啟動、關(guān)閉、

    IO 錯(cuò)誤、內(nèi)存申請失敗。

    邏輯結(jié)構(gòu)

    頁(塊):默認(rèn)為8k(8192 字節(jié)),支持4k、8k、16k、32k。數(shù)據(jù)

    頁是數(shù)據(jù)庫最小的分配單元。包含了頁頭信息,數(shù)據(jù),空閑空間,行

    偏移數(shù)組。Filefactor

    簇:簇是一組連續(xù)的數(shù)據(jù)頁組成,默認(rèn)為16 個(gè)頁,支持16、32 個(gè)頁,

    總是在一個(gè)數(shù)據(jù)文件中。

    段:是簇的上級邏輯單元,段是可以跨多個(gè)數(shù)據(jù)文件的。段分為數(shù)據(jù)

    段(表段、索引段),臨時(shí)段,回滾段。

    select * from user_segments;

    表空間:可以擁有一個(gè)或多個(gè)數(shù)據(jù)文件,一個(gè)數(shù)據(jù)文件只能屬于一個(gè)

    表空間。

    內(nèi)存結(jié)構(gòu)
    –共享內(nèi)存池是DM SERVER 啟動時(shí)從操作系統(tǒng)申請的一大片內(nèi)存,實(shí)

    例在運(yùn)行中可以在共享內(nèi)存池中進(jìn)行申請或釋放。

    select para_name,para_value from v$dm_ini where para_name like ‘%MEMORY%’;

    MEMORY_TARGET 為0 表示不限制內(nèi)存使用

    MEMORY_POOL:公共池,減少系統(tǒng)調(diào)用

    MAX_OS_MEMORY:可以使用物理內(nèi)存的百分比

    –運(yùn)行時(shí)內(nèi)存池給某個(gè)模塊單獨(dú)使用,例如會話內(nèi)存吃和虛擬機(jī)內(nèi)存

    池。

    –數(shù)據(jù)緩沖區(qū)

    緩存數(shù)據(jù)頁,使用數(shù)據(jù)緩沖區(qū)可以提供數(shù)據(jù)庫的性能。

    參數(shù):buffer

    select para_name,para_value from v$dm_ini where para_name like ‘%BUFFER%’;

    參考值:oltp 物理內(nèi)存的40%-60%

    Olap 物理內(nèi)存的60%-80%

    數(shù)據(jù)緩沖區(qū)有4 種類型:

    Normal keep:可以手動調(diào)整,normal 是默,keep 緩存的是表空間。

    (Oracle keep 緩存的是表)

    fast recycle:系統(tǒng)自動管理。Recycle 緩存臨時(shí)數(shù)據(jù)。

    讀多頁:全表掃描比較多,可以考慮調(diào)整該參數(shù)。

    重做日志緩沖區(qū)

    存放日志的緩沖區(qū),單位頁,避免直接對磁盤IO 進(jìn)行讀寫,提高了

    數(shù)據(jù)庫的性能。

    select para_name,para_value,para_type from v$dm_ini

    where para_name like ‘%RLOG_%’;

    重做日志刷盤的機(jī)制:每3 秒,事務(wù)提交。

    SQL 緩沖區(qū)

    用來存放包、執(zhí)行計(jì)劃、sql 結(jié)果集。對于sql 類別比較多,包、存儲

    過程比較多,應(yīng)該適當(dāng)調(diào)整sql 緩沖區(qū)。

    select para_name,para_value from v$dm_ini where para_name like ‘%CACHE_POOL%’;

    是否開啟sql 重用計(jì)劃:

    select para_name,para_value from v$dm_ini where para_name like ‘%USE_PLN%’;

    字典緩沖區(qū)

    字典緩沖區(qū)主要存的是數(shù)據(jù)字典的信息,包含表的信息,列的信息。

    當(dāng)我們數(shù)據(jù)庫中存在大量分區(qū)表、大量表時(shí)應(yīng)該適當(dāng)調(diào)整字典緩沖

    區(qū)。

    select para_name,para_value from v$dm_ini where para_name like ‘%DIC%’;

    HASH 緩沖區(qū)

    主要是表在HASH 連接時(shí)會用到,虛擬的內(nèi)存池,只有在做HASH 連

    接使,才會生成、分配空間。

    select para_name,para_value from v$dm_ini where para_name like ‘%HJ_BUF%’;

    SSD 緩沖區(qū)

    默認(rèn)SSD 緩沖區(qū)是關(guān)閉的,即SSD_BUF_SIZE 為0。若要配置SSD

    緩沖區(qū),將其設(shè)置為大于0 的數(shù)并指定SSD_FILE_PATH 即可

    線程結(jié)構(gòu)
    監(jiān)聽線程

    檢測來自客戶端的連接請求,并把任務(wù)交給工作線程。

    IO 線程

    將數(shù)據(jù)頁從磁盤讀入數(shù)據(jù)緩沖區(qū)中,將數(shù)據(jù)緩沖區(qū)中的臟頁在一定機(jī)

    制(執(zhí)行檢查點(diǎn),數(shù)據(jù)庫關(guān)閉,buffer 滿)下更新到磁盤中。

    日志刷新線程

    將重做日志緩沖區(qū)中的記錄在一定機(jī)制下刷到重做日志文件中。

    日志歸檔線程

    將重做日志文件在切換時(shí)拷貝到歸檔路徑下做副本。分為本地歸檔、

    同步歸檔、異步歸檔。

    日志重做線程

    主要用于數(shù)據(jù)庫的故障恢復(fù)。

    調(diào)度線程

    檢查系統(tǒng)級的時(shí)間觸發(fā)器;

    清理SQL 緩存、計(jì)劃緩存中失效的項(xiàng),或者超出緩存限制后淘汰不

    常用的緩存項(xiàng);

    動態(tài)緩沖區(qū)檢查。根據(jù)需要動態(tài)擴(kuò)展或動態(tài)收縮系統(tǒng)緩沖池;

    自動執(zhí)行檢查點(diǎn);

    會話超時(shí)檢測;

    必要時(shí)執(zhí)行數(shù)據(jù)更新頁刷盤;

    喚醒等待的工作線程;

    SQL 執(zhí)行過程

    A 客戶端發(fā)起連接請求(監(jiān)聽線程、工作線程)

    B 語法分析(字典緩沖區(qū)、SQL 緩沖區(qū))

    C 語義分析(字典緩沖區(qū))

    D 權(quán)限分析(字典緩沖區(qū))

    E 查看數(shù)據(jù)頁是否在內(nèi)存中,不在內(nèi)存就會產(chǎn)生物理讀,在內(nèi)存中就

    會產(chǎn)生邏輯讀(數(shù)據(jù)緩沖區(qū)、sql 緩沖區(qū)、IO 線程)

    F 數(shù)據(jù)發(fā)生變更(日志刷新線程、日志緩沖區(qū)、數(shù)據(jù)緩沖區(qū)、IO 線程)

    G 是否有可用的執(zhí)行計(jì)劃,如果有就按執(zhí)行計(jì)劃執(zhí)行sql,如果沒有

    生成執(zhí)行計(jì)劃,運(yùn)行sql,結(jié)果集返回客戶端。(字典緩沖區(qū)、排序

    區(qū)、hash 區(qū),工作線程,SQL 緩沖區(qū))。

    表空間
    查看表空間
    SQL> select tablespace_name,file_name from dba_data_files;

    行號 TABLESPACE_NAME FILE_NAME

    1 SYSTEM /dm8/data/DAMENG/SYSTEM.DBF

    2 DMHR /dm8/data/DAMENG/DMHR.DBF

    3 BOOKSHOP /dm8/data/DAMENG/BOOKSHOP.DBF

    4 MAIN /dm8/data/DAMENG/MAIN.DBF

    5 TEMP /dm8/data/DAMENG/TEMP.DBF

    6 ROLL /dm8/data/DAMENG/ROLL.DBF

    介紹達(dá)夢數(shù)據(jù)庫表空間:

    System:數(shù)據(jù)字典相關(guān)信息、動態(tài)性能視圖

    ROLL:數(shù)據(jù)庫運(yùn)行中的回滾記錄

    TEMP:臨時(shí)表空間,排序

    MAIN:數(shù)據(jù)庫的默認(rèn)表空間,存放的是用戶的真實(shí)數(shù)據(jù)。創(chuàng)建用戶

    或者創(chuàng)建數(shù)據(jù)庫對象時(shí),沒有指定表空間,就會存放在默認(rèn)表空間

    (main)中。

    HMAIN:HUGE 表空間

    查詢表空間和數(shù)據(jù)文件:

    SQL> select tablespace_name,file_name from dba_data_files;

    創(chuàng)建表空間
    案例1:創(chuàng)建一個(gè)初始值為30M 表空間。

    SQL> create tablespace test datafile ‘/dm8/data/DAMENG/TEST01.DBF’ SIZE 30;

    create tablespace test datafile ‘/dm8/data/DAMENG/TEST01.DBF’ SIZE 30;

    第1 行附近出現(xiàn)錯(cuò)誤[-2410]:數(shù)據(jù)文件[/dm8/data/DAMENG/TEST01.DBF]大小無效.

    已用時(shí)間: 0.962(毫秒). 執(zhí)行號:0.

    表空間數(shù)據(jù)文件初始大小是4906*頁(8192)=32M

    案列2:創(chuàng)建表空間TBS,初始大小為50M,每次擴(kuò)展2M,最大擴(kuò)展

    到1024M;

    create tablespace “TBS” datafile ‘/dm8/data/DAMENG/TBS01.DBF’ size 50 autoextend on next 2 maxsize 1024 CACHE = NORMAL;

    案例3:創(chuàng)建表空間TBSA,包含兩個(gè)數(shù)據(jù)文件,初始大小為35M,

    每次擴(kuò)展1M,最大可擴(kuò)展到1024M;

    create tablespace “TBSA” datafile ‘/dm8/data/DAMENG/TBSA01.DBF’ size 35 autoextend on next 1 maxsize 1024, ‘/dm8/data/DAMENG/TBSA02.DBF’ size 35 autoextend on next 1 maxsize 1024 CACHE = NORMAL;

    8.3 表空間狀態(tài)
    脫機(jī)狀態(tài)

    Alter tablespace tbs offline;

    聯(lián)機(jī)狀態(tài)

    Alter tablespace tbs online;

    維護(hù)表空間
    表空間不足
    增加數(shù)據(jù)文件

    alter tablespace “TBS” add datafile ‘/dm8/data/DAMENG/TBS02.DBF’

    size 32;

    數(shù)據(jù)文件開啟自動擴(kuò)展

    alter tablespace “TBS” datafile ‘TBS02.DBF’ autoextend on next 1 maxsize 1024;

    resize 數(shù)據(jù)文件

    alter tablespace “TBS” resize datafile ‘TBS02.DBF’ to 100;

    更換數(shù)據(jù)文件路徑
    表空間脫機(jī)

    Alter tablespace tbs offline;

    修改數(shù)據(jù)文件路徑

    SQL> alter tablespace tbs rename datafile

    ‘/dm8/data/DAMENG/TBS01.DBF’ to ‘/dm8/TBS01.DBF’;

    表空間聯(lián)機(jī)

    SQL> alter tablespace tbs online;

    回滾表空間
    alter tablespace “ROLL” add datafile ‘/dm8/data/DAMENG/ROLL02.DBF’

    size 32;

    alter tablespace “ROLL” resize datafile ‘ROLL02.DBF’ to 128;

    臨時(shí)表空間
    SQL> select para_name,para_value from v$dm_ini where para_name like ‘%TEMP%’;

    行號 PARA_NAME PARA_VALUE

    1 TEMP_PATH /dm8/data/DAMENG

    2 TEMP_SIZE 10

    3 TEMP_SPACE_LIMIT 0

    system、temp、roll 表空間不允許脫機(jī)

    刪除表空間
    Drop tablespace tbs;

    用戶管理
    用戶管理分為三塊:用戶、權(quán)限、角色

    用戶
    查看用戶
    SQL> select username,account_status from dba_users;

    行號 USERNAME ACCOUNT_STATUS

    1 SYSSSO OPEN

    2 DMHR OPEN

    3 SYSDBA OPEN

    4 SYS OPEN

    5 SYSAUDITOR OPEN

    企業(yè)版的用戶

    數(shù)據(jù)庫預(yù)定義的用戶:

    Sysdba :管理員

    Sys:不能登錄,數(shù)據(jù)字典、視圖

    Sysauditor:審計(jì)員

    Syssso:安全員

    安全版用戶:

    在企業(yè)版基礎(chǔ)上,增加sysdbo,數(shù)據(jù)庫對象操作員。

    規(guī)劃用戶

    命名:字母開頭,a-z,0-9,$#_

    長度為128 個(gè)字符

    權(quán)限分配:系統(tǒng)權(quán)限、對象權(quán)限、角色

    存儲位置:表空間

    密碼策略:PWD_POLICY

    設(shè)置系統(tǒng)默認(rèn)口令策略。

    0: 無策略;

    1: 禁止與用戶名相同;

    2: 口令長度不小于9;

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

    8 :至少包含一個(gè)數(shù)字(0-9);

    16:至少包含一個(gè)標(biāo)點(diǎn)符號(英文輸入法狀態(tài)下,除“和空格外的所有符

    號;若為其他數(shù)字,則表示配置值的和,如3=1+2,表示同時(shí)啟用第1 項(xiàng)

    和第2 項(xiàng)策略。當(dāng)COMPATIBLE_MODE=1 時(shí),PWD_POLICY 的實(shí)際值均

    為0

    3=1+2 7=4+2+1

    通過console 工具來更改參數(shù)

    通過函數(shù)sp_set_para_value()

    sp_set_para_value(1,‘PWD_POLICY’,3)

    COMPATIBLE_MODE 是否兼容其他數(shù)據(jù)庫模式。0:不兼容,1:兼容SQL92

    標(biāo)準(zhǔn),2:兼容ORACLE,3:兼容MS SQL SERVER,4:兼容MYSQL

    兼容ORACLE 模式sp_set_para_value(2,‘COMPATIBLE_MODE’,2)

    創(chuàng)建用戶

    案例:創(chuàng)建test 用戶,test 用戶屬于test 表空間,test 用戶擁有創(chuàng)建

    表、視圖的權(quán)限。

    1)創(chuàng)建test 表空間

    create tablespace “TEST” datafile ‘/dm8/data/DAMENG/TEST01.DBF’ size 32 autoextend on next 1 maxsize 500 CACHE = NORMAL;

    2)創(chuàng)建用戶

    3)授權(quán)

    grant CREATE TABLE to “TEST”;

    grant CREATE VIEW to “TEST”;

    查看被授予的角色和權(quán)限

    select grantee,granted_role from sys.dba_role_privs

    where grantee=‘TEST’;

    select * from sys.dba_sys_privs

    where grantee=‘TEST’;

    對用戶的操作

    更改用戶的默認(rèn)表空間

    alter user “TEST” default tablespace “MAIN”;

    更改密碼:

    Alter user test identified by dameng456;

    sysdba 用戶的密碼忘記之后,無法用sysdba 用戶登錄數(shù)據(jù)庫。

    查看用戶的狀態(tài)

    select username,account_status from dba_users;

    鎖定test 用戶

    alter user test account lock;

    解鎖test 用戶

    alter user test account unlock;

    撤回權(quán)限

    revoke create table from test;

    刪除用戶:

    Drop user test;

    角色
    一組權(quán)限的集合,方便權(quán)限管理

    角色是可以被授予給角色和用戶

    create role “R1”;

    grant UPDATE(“MANAGER_ID”) on “DMHR”.“DEPARTMENT” to “R1”;

    grant UPDATE(“IDENTITY_CARD”) on “DMHR”.“EMPLOYEE” to “R1” with

    grant option;

    grant INSERT(“EMPLOYEE_ID”) on “DMHR”.“EMPLOYEE” to “R1”;

    grant

    INSERT(“DEPARTMENT_ID”),UPDATE(“DEPARTMENT_ID”),REFERENCES("

    DEPARTMENT_ID") on “DMHR”.“DEPARTMENT” to “R1”;

    模式對象管理
    模式就是一組數(shù)據(jù)對象的集合

    模式對象:表、視圖、索引、觸發(fā)器、包、序列、存儲過程、同義詞

    模式與用戶的關(guān)系:

    創(chuàng)建用戶會自動創(chuàng)建一個(gè)與用戶名同名的模式,一個(gè)用戶可以對應(yīng)多

    個(gè)模式。


    用戶表:自己創(chuàng)建的表,存放的是真實(shí)的用戶數(shù)據(jù)

    系統(tǒng)表:數(shù)據(jù)庫自己創(chuàng)建的表,里面存放數(shù)據(jù)庫關(guān)鍵性的信息

    DM 支持表的類型:

    索引組織表、堆表、外部表、分區(qū)表

    DM 默認(rèn)表的類型是索引組織表,ORACLE 默認(rèn)表的類型是堆表

    規(guī)劃表:

    1)命名:以字母開頭,a-z,0-9,$#_

    2)數(shù)據(jù)類型:int,number,date,char,varchar,clob,blob

    3)存儲位置:表空間,沒有指定表空間,就存放在用戶默認(rèn)表空間

    中。

    4)約束類型:主鍵約束、外鍵約束、非空約束、唯一約束、檢查約

    束。

    非空約束:

    create table test1(id char(10) not null);

    insert into test1 values (null);

    DM 數(shù)據(jù)庫執(zhí)行sql 腳本:

    vi /home/dmdba/test1.sql

    insert into test1 values (1);

    insert into test1 values (2);

    insert into test1 values (3);

    commit;

    SQL> start /home/dmdba/test1.sql

    唯一約束:創(chuàng)建唯一約束,會創(chuàng)建一個(gè)唯一索引,會忽視空值,NULL 不等于0

    SQL> create table test2(id int unique,name varchar(25));

    SQL> insert into test2 values(1,‘1111’);

    SQL> insert into test2 values(null,‘1111’);

    SQL> insert into test2 values(null,‘1111’);

    SQL> insert into test2 values(1,‘1111’);

    insert into test2 values(1,‘1111’);

    已用時(shí)間: 00:00:02.341. 執(zhí)行號:0.

    SQL> commit;

    主鍵約束:非空+唯一,一個(gè)表只能有一個(gè)主鍵,設(shè)計(jì)主鍵盡量的避

    開業(yè)務(wù)邏輯的列

    SQL> create table test3(id int primary key);

    外鍵約束:

    SQL> create table test4 (id int foreign key references test3(id));

    SQL> drop table test3;

    drop table test3;

    第1 行附近出現(xiàn)錯(cuò)誤[-2639]:試圖刪除被依賴對象[TEST3].

    SQL> drop table test4;

    已用時(shí)間: 127.084(毫秒). 執(zhí)行號:781.

    SQL> drop table test3;

    檢查約束

    SQL> create table test5(id int check(id>=5));

    操作已執(zhí)行

    已用時(shí)間: 58.001(毫秒). 執(zhí)行號:783.

    SQL> insert into test5 values(1);

    insert into test5 values(1);

    [-6604]:違反CHECK 約束[CONS134218846].

    SQL> insert into test5 values(5);

    SQL> commit;

    管理表:

    重命名表:

    Alter table test1 rename to test6;

    增加列:

    alter table “TEST1”.“TEST6” add column(“NAME” VARCHAR(30));

    刪除列:

    Alter table test6 drop column name;

    查看約束:

    select constraint_name,table_name,status from user_constraints;

    啟用約束

    alter table test2 enable constraint CONS134218843 ;

    禁用約束

    alter table test2 disable constraint CONS134218843 ;

    刪除表:

    Drop table test5;

    作業(yè):

    創(chuàng)建表test,

    所屬表空間為test,表的信息如下:

    Id int 主鍵,Name varchar(30) not null,

    Address varchar(60),

    Phone_number number (20)

    更新:update (表名) set 列名=() where ();

    刪除:delete from () where ();

    視圖
    視圖:就是一張?zhí)摂M表,一個(gè)查詢語句。

    DM 視圖:簡單視圖、復(fù)制視圖、物化視圖

    創(chuàng)建視圖語法: create or replace view () as ***接查詢語句

    Create view () as

    創(chuàng)建簡單的視圖:

    create view test1.emp_v as

    select employee_id,employee_name,salary,department_id from

    dmhr.employee where department_id=1005;

    查詢視圖:

    通過manager 工具

    也可以查看視圖all_views

    刪除視圖:

    Drop view emp_v;

    索引

    索引作用:加快查詢,少量的數(shù)據(jù)更新,延遲插入,數(shù)據(jù)庫會自動維護(hù)索引,索引會占用存儲空間。

    達(dá)夢支持的索引:btree 索引,位圖索引,函數(shù)索引

    創(chuàng)建索引的基本要求:

    經(jīng)常查詢的列

    Where 條件中出現(xiàn)的列

    連接列

    返回少量或部分的數(shù)據(jù)

    不適合建立索引:

    1、返回大量的數(shù)據(jù)

    2、列上有大量的重復(fù)數(shù)據(jù)

    3、列上有大量的null

    創(chuàng)建索引

    CREATE INDEX “ind_employee_name” ON

    “TEST1”.“TEST_EMP”(“EMPLOYEE_NAME” ASC) STORAGE(ON “TEST”,

    CLUSTERBTR) ;

    查看索引信息:

    select * from user_indexes;

    查看sql 執(zhí)行計(jì)劃

    SQL> explain select * from test_emp where employee_name=‘a(chǎn)aa’;

    更新統(tǒng)計(jì)信息

    begin

    dbms_stats.gather_table_stats(‘TEST1’,’TEST_EMP’);

    end;

    /

    維護(hù)索引:

    重建索引:提升數(shù)據(jù)庫的性能

    Alter index ind_employee_name rebuild;

    刪除索引

    drop index “TEST1”.“ind_employee_name”;

    注意:不要在業(yè)務(wù)期間,執(zhí)行創(chuàng)建、刪除、重建索引,搜集統(tǒng)計(jì)信息。

    達(dá)夢不會自動搜集統(tǒng)計(jì)信息,可以配置定時(shí)作業(yè)搜集。

    備份還原
    備份就是數(shù)據(jù)庫在某個(gè)一個(gè)時(shí)間點(diǎn)的副本

    數(shù)據(jù)庫備份的目的:

    為了防止天災(zāi)人禍(地震、火災(zāi)、人為誤操作,硬件故障等)

    備份主要有:物理備份和邏輯備份

    物理備份主要備份的是使用有效的數(shù)據(jù)頁,邏輯備份主要是備份的數(shù)

    據(jù)庫對象。

    物理備份:分為聯(lián)機(jī)備份和脫機(jī)備份;完全備份和增量備份。

    完全備份:備份指定的數(shù)據(jù)庫或者表空間的全部數(shù)據(jù)。

    增量備份:是指在一次全備或增備后,以后每次的備份只需要備份與

    前一次相比增加或者被修改的數(shù)據(jù)頁。

    備份的介質(zhì):磁盤、磁帶

    物理備份
    冷備:不需要開啟歸檔,針對整庫做備份

    需要開啟dmap 服務(wù),需要關(guān)閉數(shù)據(jù)庫

    [dmdba@localhost bin]$ ./DmAPService status

    DmAPService (pid 14437) is running.

    console 工具備份
    DmServiceDMSERVER stop

    /dm8/data/DAMENG/dm.ini

    /dm8/data/DAMENG/backup

    用dmrman 工具備份只支持冷備

    cd /dm8/bin

    ./dmrman

    RMAN> backup database ‘/dm8/data/DAMENG/dm.ini’ backupset

    ‘/dm8/backup’;

    檢查備份集

    RMAN> check backupset ‘/dm8/backup’;

    熱備:

    需要開啟歸檔,數(shù)據(jù)庫需要聯(lián)機(jī)

    可以備份數(shù)據(jù)庫、表空間、表、歸檔日志文件

    查看數(shù)據(jù)庫歸檔模式:

    SQL> select arch_mode from v$database;

    利用manager 工具做熱備

    整庫備份

    增量備份:

    Disql 工具:

    整庫備份:

    backup database full to “full02” backupset ‘/dm8/backup/rb’;

    增量備份:

    backup database increment base on backupset ‘/dm8/backup/rb’ to

    “DB_DAMENG_INCRE_2020_09_09_15_43_36” backupset

    ‘DB_DAMENG_INCRE_2020_09_09_15_43_36’;

    管理工具中沒有發(fā)現(xiàn)備份:

    手動指定工作目錄

    表空間備份:

    backup tablespace “DMHR” full to

    “TS_DMHR_FULL_2020_09_09_15_47_26” backupset

    ‘TS_DMHR_FULL_2020_09_09_15_47_26’;

    表備份:

    backup table “DMHR”.“EMPLOYEE” to

    “TAB_DMHR_EMPLOYEE_2020_09_09_15_50_23” backupset

    ‘TAB_DMHR_EMPLOYEE_2020_09_09_15_50_23’;

    歸檔日志備份:

    backup archivelog all to “ARCH_2020_09_09_15_51_32” backupset

    ‘ARCH_2020_09_09_15_51_32’;

    物理還原:
    檢查備份集

    整庫還原:

    restore database ‘/dm8/data/DAMENG/dm.ini’ from backupset

    ‘/dm8/backup’;

    recover database ‘/dm8/data/DAMENG/dm.ini’ with archivedir

    ‘/dm8/arch’;

    recover database ‘/dm8/data/DAMENG/dm.ini’ update db_magic;

    表空間還原

    表空間只能在聯(lián)機(jī)模式下進(jìn)行備份,脫機(jī)模式進(jìn)行還原

    restore database ‘/dm8/data/DAMENG/dm.ini’ tablespace DMHR from

    backupset ‘/dm8/backup’;

    recover database ‘/dm8/data/DAMENG/dm.ini’ tablespace DMHR;

    邏輯備份
    Dexp/dimp

    庫級別

    用戶

    模式

    /dm8/bin

    ./dexp help

    邏輯導(dǎo)出:

    全庫導(dǎo)出:

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

    [dmdba@localhost bin]$ ./dimp sysdba/dameng123 file=full.dmp log=full_imp.log directory=/dm8/backup full=y

    用戶導(dǎo)出:

    [dmdba@localhost bin]$ ./dexp sysdba/dameng123 file=test1.dmp log=test1.log directory=/dm8/backup owner=test1

    導(dǎo)出表:

    [dmdba@localhost bin]$ ./dexp test1/dameng123 file=test_emp.dmp directory=/dm8/backup tables=test_emp

    作業(yè)
    新建作業(yè)1,每周三,每周日22:00 做全備

    1.manager中創(chuàng)建代理環(huán)境

    2.新建作業(yè)

    ddl語句:

    call SP_CREATE_JOB(‘job1’,1,0,’’,0,0,’’,0,’’);

    call SP_JOB_CONFIG_START(‘job1’);

    call SP_ADD_JOB_STEP(‘job1’, ‘b1’, 5, ‘01000/dm8/bak’, 1, 2, 0, 0, NULL, 0);

    call SP_ADD_JOB_SCHEDULE(‘job1’, ‘h1’, 1, 2, 1, 8, 0, ‘22:00:00’, NULL, ‘2020-09-14 06:21:42’, NULL, ‘’);

    call SP_JOB_CONFIG_COMMIT(‘job1’);

    新建作業(yè)2,每周一、二、四、五、六22:00 做增備

    ddl語句:

    call SP_CREATE_JOB(‘job2’,1,0,’’,0,0,’’,0,’’);

    call SP_JOB_CONFIG_START(‘job2’);

    call SP_ADD_JOB_STEP(‘job2’, ‘b2’, 5, ‘11000/dm8/backup|/dm8/backup’, 1, 2, 0, 0, NULL, 0);

    call SP_ADD_JOB_SCHEDULE(‘job2’, ‘h2’, 1, 2, 1, 118, 0, ‘22:00:00’, NULL, ‘2020-09-14 06:26:17’, NULL, ‘’);

    call SP_JOB_CONFIG_COMMIT(‘job2’);

    DM8 開發(fā)

    JDBC:
    把驅(qū)動放到 Eclipse Standard/SDK ,對應(yīng)的測試程序的 lib 目錄
    檢查 JAVA build path,如未發(fā)現(xiàn)驅(qū)動,要增加到 lib 庫中。
    設(shè)置連接方式:
    private static String url =
    “jdbc:dm://192.168.10.65:5236”;
    oracle配置的時(shí)候要帶實(shí)例名
    設(shè)置用戶名:
    private static String username = “SYSDBA”;
    設(shè)置密碼:
    private static String password = “SYSDBA”;

    Linux 環(huán)境配置odbc

    用root 配置
    Linux:rpm 包安裝
    [root@localhost Packages]# rpm -qa|grep unixODBC
    unixODBC-devel
    安裝:[root@localhost Packages]# rpm -ivh unixODBC-2.3.1-
    10.el7.x86_64.rpm
    [root@localhost Packages]# rpm -ivh unixODBC-devel-2.3.1-
    10.el7.x86_64.rpm
    卸載:[root@localhost etc]# rpm -e unixODBC-devel
    [root@localhost etc]# rpm -e unixODBC
    源碼安裝:條件安裝 gcc
    [root@localhost home]# tar -xvf unixODBC-2.3.0.tar.gz

    [root@localhost home]# cd unixODBC-2.3.0/

    [root@localhost unixODBC-2.3.0]# ./configure

    [root@localhost unixODBC-2.3.0]# make

    [root@localhost unixODBC-2.3.0]# make install

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

    配置/usr/local/etc/odbc.ini /usr/local/etc/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

    修改文件權(quán)限:

    chmod 775 /usr/local/etc/odbc.ini

    chmod 775 /usr/local/etc/odbcinst.ini

    測試連接

    用dmdba 賬戶

    isql dm8

    總結(jié)

    以上是生活随笔為你收集整理的达梦8 DCA认证笔记的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。