达梦DCA培训共分为以下几个部分

1、DM8 企业版安装
2、数据库和实例管理
3、DM8 客户端工具
4、DMSQL
5、DM体系结构
6、表空间管理
7、用户管理
8、模式和对象管理
9、数据字典和动态性能视图
10、数据库备份恢复
11、作业管理
12、DM8 开发

DM 数据库版本

开发版: 除了不支持集群, 其他功能和企业版相同, 试用时间为一年
标准版: 为政府部门、中小型企业及互联网/内部网应用提供的数据管理和分析平台
企业版: 企业版是伸缩性良好、功能齐全的数据库, 为高端应用提供了数据复制、数据守护等高可靠性、高性能的数据管理能力, 完全能够支撑各类企业应用
安全版: 拥有企业版的所有功能, 并重点加强了其安全特性, 引入强制访问控制功能, 安全级别达到B1级, 适合于对安全性要求更高的政府或企业敏感部门选用

具体的版本不同请参数达梦手册 https://eco.dameng.com/docs/zh-cn/start/dm-version-differences.html

DM 数据库安装

一、检查操作系统信息

1、操作系统内核版本必须大于或等于 2.6

 [root@itsapp1 ~]# uname -aLinux itsapp1 3.10.0-1160.el7.x86_64 #1 SMP Mon Oct 19 16:18:59 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux[root@itsapp1 ~]#

2、根据不同的CPU类型选择不同版本

[root@itsapp1 ~]# lscpu

3、磁盘空间检查, DM8安装时要求 /tmp 分区如果是单独分区则该分区大小必须大于1.5G

        [root@itsapp1 ~]# df -HPT /tmp/文件系统       类型  容量  已用  可用 已用% 挂载点/dev/sda3      xfs    42G  4.7G   37G   12% /[root@itsapp1 ~]#

4、glibc版本要求大于等于 2.3

  [root@itsapp1 ~]# rpm -qa |grep glibccompat-glibc-2.12-4.el7.centos.x86_64glibc-common-2.17-317.el7.x86_64compat-glibc-headers-2.12-4.el7.centos.x86_64glibc-headers-2.17-317.el7.x86_64glibc-devel-2.17-317.el7.x86_64glibc-2.17-317.el7.x86_64[root@itsapp1 ~]# ldd --versionldd (GNU libc) 2.17Copyright (C) 2012 Free Software Foundation, Inc.This is free software; see the source for copying conditions.  There is NOwarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.由 Roland McGrath 和 Ulrich Drepper 编写。[root@itsapp1 ~]#

二、安装前准备工作

1、目录规划

    [root@itsapp1 ~]# mkdir /dm8

2、创建转移用户和组

    [root@itsapp1 ~]# groupadd -g 5236 dinstall[root@itsapp1 ~]# useradd -g dinstall -m -d /home/dmdba -s /bin/bash -u 5236 dmdba[root@itsapp1 ~]# chown -R dmdba:dinstall /dm8

3、操作系统参数检查及配置

    [dmdba@itsapp1 ~]$ ulimit -acore file size          (blocks, -c) 0          -- 产生core文件大小 0: 表示不生成core文件 建议该值设置为 unlimiteddata seg size           (kbytes, -d) unlimited  -- 段大小, 建议该值设置为 unlimitedscheduling priority             (-e) 0file size               (blocks, -f) unlimitedpending signals                 (-i) 7798max locked memory       (kbytes, -l) 64max memory size         (kbytes, -m) unlimited  -- 使用内存的限制open files                      (-n) 655350     -- 打开文件数, 建议设置为 65535pipe size            (512 bytes, -p) 8POSIX message queues     (bytes, -q) 819200real-time priority              (-r) 0stack size              (kbytes, -s) 8192       -- 栈大小, 建议设置为 32768cpu time               (seconds, -t) unlimitedmax user processes              (-u) 655350     -- 用户最大进程数, 建议设置为 65535virtual memory          (kbytes, -v) unlimitedfile locks                      (-x) unlimited[dmdba@itsapp1 ~]$

三、安装DM8企业版

1、挂载数据库软件进行安装

    [root@itsapp1 ~]# mkdir /mnt/dm8[root@itsapp1 ~]# mount dm8_20220304_x86_rh6_64_ent_8.1.2.114.iso /mnt/dm8/

2、图形化安装DM8

    [root@itsapp1 ~]# xhost +[root@itsapp1 ~]# su - dmdba[dmdba@itsapp1 ~]$ export DISPLAY='100.63.1.60:0'[dmdba@itsapp1 ~]$ cd /mnt/dm8/[dmdba@itsapp1 dm8]$ ./DMInstall.bin

3、图形化安装数据库软件










DM 数据库安装方式

1、图形化安装

上面的方式就是图形化安装

2、命令行安装

[dmdba@itsapp2 dm8]$ ./DMInstall.bin -i请选择安装语言(C/c:中文 E/e:英文) [C/c]:        -- 选择安装语言, 默认中文解压安装程序..........欢迎使用达梦数据库安装程序是否输入Key文件路径? (Y/y:是 N/n:否) [Y/y]:n    -- 如果有key, 输入key路径是否设置时区? (Y/y:是 N/n:否) [Y/y]:            -- 设置时区设置时区:[ 1]: GTM-12=日界线西[ 2]: GTM-11=萨摩亚群岛[ 3]: GTM-10=夏威夷[ 4]: GTM-09=阿拉斯加[ 5]: GTM-08=太平洋时间(美国和加拿大)[ 6]: GTM-07=亚利桑那[ 7]: GTM-06=中部时间(美国和加拿大)[ 8]: GTM-05=东部部时间(美国和加拿大)[ 9]: GTM-04=大西洋时间(美国和加拿大)[10]: GTM-03=巴西利亚[11]: GTM-02=中大西洋[12]: GTM-01=亚速尔群岛[13]: GTM=格林威治标准时间[14]: GTM+01=萨拉热窝[15]: GTM+02=开罗[16]: GTM+03=莫斯科[17]: GTM+04=阿布扎比[18]: GTM+05=伊斯兰堡[19]: GTM+06=达卡[20]: GTM+07=曼谷,河内[21]: GTM+08=中国标准时间[22]: GTM+09=汉城[23]: GTM+10=关岛[24]: GTM+11=所罗门群岛[25]: GTM+12=斐济[26]: GTM+13=努库阿勒法[27]: GTM+14=基里巴斯请选择设置时区 [21]:            -- 根据需要选择时区安装类型:1 典型安装2 服务器3 客户端4 自定义请选择安装类型的数字序号 [1 典型安装]:    -- 安装类型所需空间: 1579M请选择安装目录 [/home/dmdba/dmdbms]:      -- 安装目录可用空间: 31G是否确认安装路径(/home/dmdba/dmdbms)? (Y/y:是 N/n:否)  [Y/y]:y安装前小结安装位置: /home/dmdba/dmdbms所需空间: 1579M可用空间: 31G版本信息: 有效日期: 安装类型: 典型安装是否确认安装? (Y/y:是 N/n:否):y2022-07-03 20:15:27 [INFO] 安装达梦数据库...2022-07-03 20:15:28 [INFO] 安装 基础 模块...2022-07-03 20:15:34 [INFO] 安装 服务器 模块...2022-07-03 20:15:35 [INFO] 安装 客户端 模块...2022-07-03 20:15:40 [INFO] 安装 驱动 模块...2022-07-03 20:15:40 [INFO] 安装 手册 模块...2022-07-03 20:15:41 [INFO] 安装 服务 模块...2022-07-03 20:15:41 [INFO] 移动日志文件。2022-07-03 20:15:42 [INFO] 安装达梦数据库完成。请以root系统用户执行命令:/home/dmdba/dmdbms/script/root/root_installer.sh    -- 执行dmap服务脚本安装结束[dmdba@itsapp2 dm8]$

3、静默安装

DM 的静默安装是依据xml文件自动安装, 具体配置信息可以参考官方手册
https://eco.dameng.com/docs/zh-cn/pm/install-uninstall.html#2-2-2-3-%E9%9D%99%E9%BB%98%E5%AE%89%E8%A3%85

[dmdba@itsapp3 dm8]$ ./DMInstall.bin -q /home/dmdba/install.xml 解压安装程序..........2022-07-03 20:32:45 [INFO] 安装达梦数据库...2022-07-03 20:32:46 [INFO] 安装 基础 模块...2022-07-03 20:32:52 [INFO] 安装 服务器 模块...2022-07-03 20:32:52 [INFO] 安装 客户端 模块...2022-07-03 20:32:57 [INFO] 安装 驱动 模块...2022-07-03 20:32:58 [INFO] 安装 手册 模块...2022-07-03 20:32:58 [INFO] 安装 服务 模块...2022-07-03 20:32:59 [INFO] 移动日志文件。2022-07-03 20:32:59 [INFO] 安装达梦数据库完成。请以root系统用户执行命令:/home/dmdba/dmdbms/script/root/root_installer.sh[dmdba@itsapp3 dm8]$

DM8 目录结构

[dmdba@itsapp1 ~]$ tree -L 1 /dm8
/dm8                    -- 软件主目录
├── bin                 -- 二进制文件目录
├── bin2                -- 二进制文件目录
├── desktop             -- 桌面图标目录
├── doc                 -- 官方手册
├── drivers             -- DM提供的各种语言驱动
├── include             -- 头文件
├── jar                 -- jar包
├── jdk                 -- jdk
├── log                 -- 日志目录
├── samples             -- 示例数据库
├── script              -- 脚本目录
├── tool                -- 客户端工具
├── uninstall           -- 卸载数据库所需的文件目录
└── web                 -- DEM相关

初始化数据库实例

初始化方式

1、图形化界面

[dmdba@itsapp1 ~]$ export DISPLAY='100.63.1.60:0'
[dmdba@itsapp1 ~]$ cd /dm8/tool/
[dmdba@itsapp1 tool]$ ./dbca.sh








2、命令行工具

[dmdba@itsapp1 ~]$ cd /dm8/bin
[dmdba@itsapp1 bin]$ ./dminit help          -- 可以查看dminit工具的参数和使用方法[dmdba@itsapp1 bin]$ ./dminit PATH=/dm8/data/ PAGE_SIZE=32 DB_NAME=dm01 INSTANCE_NAME=dm1 PORT_NUM=5237
initdb V8
db version: 0x7000c
file dm.key not found, use default license!
License will expire on 2023-03-04
Normal of FAST
Normal of DEFAULT
Normal of RECYCLE
Normal of KEEP
Normal of ROLLlog file path: /dm8/data/dm01/dm0101.log
log file path: /dm8/data/dm01/dm0102.logwrite to dir [/dm8/data/dm01].
create dm database success. 2022-07-03 21:15:00
[dmdba@itsapp1 bin]$

– dminit 初始化的数据库实例, 不会执行注册服务脚本, 所以需要手动注册或者不使用服务管理

注册服务

注册服务方式

1、图形化界面(dbca.sh)


2、命令行工具

 [root@itsapp1 root]# ./dm_service_installer.sh -t dmserver -p dm1 -dm_ini /dm8/data/dm01/dm.ini

启动和停止数据库

启动和停止数据库方式

1、命令行启动

1.1、前台启动
[dmdba@itsapp1 bin]$ ./dmserver /dm8/data/dm01/dm.ini
file dm.key not found, use default license!
version info: develop
DM Database Server 64 V8 03134283890-20220304-158322-10045 startup...
Normal of FAST
Normal of DEFAULT
Normal of RECYCLE
Normal of KEEP
Normal of ROLL
Database mode = 0, oguid = 0
License will expire on 2023-03-04
file lsn: 34875
ndct db load finished
ndct second level fill fast pool finished
ndct third level fill fast pool finished
ndct second level fill fast pool finished
ndct third level fill fast pool finished
ndct fill fast pool finished
iid page's trxid[4008]
NEXT TRX ID = 4009
pseg_collect_mgr_items, total collect 0 active_trxs, 0 cmt_trxs, 0 pre_cmt_trxs, 0 to_release_trxs, 0 active_pages, 0 cmt_pages, 0 pre_cmt_pages, 0 to_release_p
ages, 0 mgr pages, 0 mgr recs!iid page's trxid[5010]
NEXT TRX ID = 6012.
total 0 active crash trx, pseg_crash_trx_rollback sys_only(0) begin ...
pseg_crash_trx_rollback end, total 0 active crash trx, include 0 empty_trxs, 0 empty_pages which only need to delete mgr recs.
pseg_crash_trx_rollback end
pseg recv finished
nsvr_startup end.
aud sys init success.
aud rt sys init success.
systables desc init success.
ndct_db_load_info success.
nsvr_process_before_open begin.
nsvr_process_before_open success.
total 0 active crash trx, pseg_crash_trx_rollback sys_only(0) begin ...
pseg_crash_trx_rollback end, total 0 active crash trx, include 0 empty_trxs, 0 empty_pages which only need to delete mgr recs.
pseg_crash_trx_rollback end
SYSTEM IS READY.
1.2、后台启动
[root@itsapp1 root]# systemctl start DmServicedm1
[dmdba@itsapp1 bin]$ ./DmServicedm1 start
-- 上面两种方式都可以启动数据库, 随便那种方式都可以

2、控制台启动

 [dmdba@itsapp1 ~]# cd /dm8/tool/[dmdba@itsapp1 tool]# ./dmservice.sh    -- DM 提供的类似windows控制台的工具, 需要注意的是必须使用root用户执行

DM 数据库状态

MOUNT    可以对数据库进行参数配置, 但不能读写数据文件
OPEN     正常状态,可以读ie数据文件
SUSPEND  只读状态, 一旦执行 COMMIT 操作, 则数据库会被挂起

查看当前数据库状态

    SQL> SELECT status$ FROM v$instance;行号     STATUS$---------- -------1          OPEN

切换数据库状态

 SQL> ALTER DATABASE MOUNT;SQL> SELECT STATUS$ FROM V$INSTANCE;行号     STATUS$---------- -------1          MOUNTSQL> ALTER DATABASE OPEN;SQL> ALTER DATABASE SUSPEND;SQL> SELECT STATUS$ FROM V$INSTANCE;行号     STATUS$---------- -------1          SUSPENDSQL> SELECT STATUS$ FROM V$INSTANCE;行号     STATUS$---------- -------1          SUSPENDSQL> CREATE TABLE T1(ID INT);   -- 数据库处于SUSPENDzhuangtai, 不能执行任何写操作

DM 数据库启动流程

1、读取参数文件dm,ini, 对数据库参数进行初始化
2、根据 dm.ini 中配置的控制文件位置, 读取控制文件信息, 将数据库数据文件等调整到正常状态

DM 客户端工具

manager 管理工具

$DM_HOME/tool/manager 主要功能: 和数据库进行交互、执行SQL语句、用户管理、权限管理、备份管理等一切日常工作都可以实现

dts迁移工具

$DM_HOME/tool/dts 主要功能: 数据库和数据库之间的数据迁移、异构数据库之间的迁移、导出数据等

monitor 监控工具

$DM_HOME/tool/monitor 主要功能: 对数据库和服务器的性能进行监控

console 控制台工具

$DM_HOME/tool/console 主要功能: 对数据库服务进行管理、日常的启动关闭

disql命令行交互工具

$DM_HOME/bin/disql 主要功能: 命令行的交互工具、对数据库进行日常管理

manager 管理工具简单使用


console 控制台工具简单使用

monitor 监控工具简单使用


disql 命令行交互工具简单使用

1、连接数据库

[dmdba@itsapp1 ~]$ disql SYSDBA/SYSDBA:5236

2、执行SQL

 SQL> SELECT STATUS$ FROM V$INSTANCE;行号     STATUS$
---------- -------1          OPEN
已用时间: 0.353(毫秒). 执行号:1201.SQL>

3、执行操作系统命令

SQL> HOST ls /
bin  boot  dev  dm8  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
SQL>

4、导入数据

SQL> START /home/dmdba/1.sql

DMSQL

DML 数据操作语句

INSERT

用法

   插入单行或多行数据,该方式需要插入所有列的值: INSERT INTO TB_ANME VALES(),[()]插入单行或多行数据,该方式可以指定插入那些列: INSERT INTO TB_NAME(COL_NAME1,COL_NAME2....) VALUES(VAL1,VAL2...)基于某个表创建一个新表: INSERT .... SELECT ...

UPDATE

用法
      UPDATE TB_NAME SET 更新字段=更新的值 WHERE …

DELETE

DELETE FROM TB_NAME WHERE …

SELECT 查询语句

WHERE 语句
用于条件过滤, 主要操作符包含下面这些算术运算符+ - * / %比较运算符> <= >= <= <> != <=>IS NULL         判断是否为空IS NOT NULL     判断是否不为空LEAST           在多个值中返回最小值GREATEST        在多个值中返回最大值BETWEEN AND     判断区间IN              判断一个值是否存在于列表中NOT IN          判断一个值是否不存在于列表中LIKE            模糊匹配 % 匹配多个值 _ 匹配单个值REGEXP          正则表达式规则匹配RLIKE           一个值是否符合正则表达式的规则逻辑运算符NOT  , !AND  , && OR   , ||XOR
GROUP BY

根据指定字段, 对数据进行分组显示, 常和聚集函数一起使用

 SELECT * FROM B GROUP BY B.IDSELECT A.ID, COUNT(*) FROM A GROUP BY A.ID
HAVING

对分组后的数据进行过滤

 SELECT A.ID, COUNT(*) C FROM A GROUP BY A.ID HAVING C > 100;
ORDER BY

根据指定字段进行排序\

SELECT ID,NAME FROM A  ORDER BY ID [ASC,DESC]

连接查询

自然连接

自然连接: 根据两张表相同名的字段自动进行等值连接
自然连接写法

SELECT * FROM T1 NATURAL JOIN T2 ;
SELECT * FROM T1 JOIN T2 USING(ID);
SELECT * FROM T1 JOIN T2 ON T1.ID = T2.ID;

自连接

自己和自己进行关联
自连接写法

SELECT * FROM A AS A1,B AS B1 WHERE A1.ID = B1.ID

内连接

根据连接条件, 仅将满足条件的数据显示

SELECT * FROM A INNER JOIN B ON A.ID = B.ID

左外连接

左外连接: 以左表为准, 左表全部显示 匹配右表数据, 匹配不到得使用NULL补齐 根据ON条件进行等值连接,如果左表有数据,右表没有数据则右表以NULL补齐

SELECT * FROM A LEFT  JOIN B ON A.id = B.id

右外连接

右外连接: 以右表为准, 右表全部显示 匹配左表数据, 匹配不到得使用NULL补齐 根据ON条件进行等值连接,右表没有数据则左表以NULL补齐

SELECT * FROM A RIGHT JOIN B ON A.id = B.id

DM8 体系结构

存储结构

逻辑存储结构

表空间

表空间是一个逻辑概念, 由多个段组成, 一个表空间可以包含多个数据文件, 默认数据库会自动出创建5个表空间
SYSTEM : 存储数据库的元数据信息
ROLL : 回滚段, 用于提供MVCC机制
MAIN : 如果创建的用户没有指定表空间, 则默认创建的数据库对象就存放在该表空间中, 相当于ORACLE的user表空间
TEMP : 存放临时数据, 例如SQL语句的执行结果
HMAIN : HTS表空间

表空间相关视图
   V$TABLESPACE        当前数据库中有多少表空间V$HUGE_TABLESPACE   HTS表空间相关信息

段时逻辑概念, 由多个区组成
段的类型
数据段: 存放数据和索引的段
临时段: 临时结果集等, 临时段的分配和释放完全由系统自动控制,用户不能手工进行干预
回滚段: 用于存储多版本并发

簇是一个逻辑概念, 由多个页组成, 主要用于当进行表空间扩展时, 一次性扩展多少空间
在进行数据库初始化时可以指定

数据库的最小存储单元, 也是最小的I/O操作单元
DM数据库页大小分为 4k 8k 16k 32k , 默认8k, 在数据库初始化时可以指定页大小, 一旦指定后就无法修改

页中存放内容

1、页的类型
2、记录
3、页的元数据信息

页大小的选择

页中存放的是真实的记录, 当一个表中的一行记录的总长度很大时, 则选择16k或者32k的页大小
因为数据库每次从磁盘读取都是根据数据页的大小进行读取可以减少磁盘IO

物理存储结构

数据文件

用于存储真是数据的文件

控制文件

dm.ctl 该文件是二进制文件, 只能通过命令行工具dmctlcvt工具打开
控制文件中包含了 OGUID、数据库状态、数据库名称、最后启动时间等、表空间信息、数据文件信息、联机日志文件信息等

配置文件

dm.ini 每个数据库实例在数据目录下都会生成一个 dm.ini 配置文件

配置文件参数类型
read only 数据库运行过程中无法使用语句进行修改, 只能修改 dm.ini 参数文件 重启后生效
sys       动态参数, 可以对内存中的值进行修改、也可以对 dm.ini 参数文件进行修改
session   会话参数, 可以对内存中的值进行修改、也可以对 dm.ini 参数文件进行修改 但是只对当前会话生效
in file   静态参数, 不能对内存中的值进行修改、只能修改参数文件, 重启后生效
参数修改方法
   SP_SET_PARA_VALUE           修改整型参数SP_SET_PARA_DOUBLE_VALUE    修改浮点型参数SP_SET_PARA_STRING_VALUE    修改字符型参数ALTER SYSTEM SET var=value <both|memory|spfile>

联机日志

在数据库运行过程中, 产生的一切写操作的日志记录

归档日志

对联机日志的备份

内存结构

数据缓冲区

存放数据和索引的区域, 根据LRU算法进行脏页的刷写
LRU 链表
      FREE LIST 当前空闲页的数量
      LRU LIST LRU列表中的数量
      DIRTY LIST 脏页列表的数量, LRU LIST 包含脏页列表

DM 中存在一个叫做热区的概念, 防止热数据被刷写, 个人理解, 根据LRU算法热数据一般不会被刷写不理解这个存在的意义

系统试图
 v$bufferpool;

配置参数

BUFFER           数据缓冲区大小 根据业务不同所定义的大小不同 OLTP: 建议内存的 40%-60%  OLAP: 建议内存的 60%-80%
FAST_POOL_PAGES  快速回收数据缓冲区中的页

日志缓冲区

存储redo日志信息

        RLOG_BUF_SIZE对日志缓冲区大小进行控制

配置参数

            RLOG_BUF_SIZE 日志缓冲区大小

SQL 缓冲区

        存储SQL语句执行过程中所需要的内存, 执行计划和结果集缓存

字典缓冲区

存储数据库的元数据信息, 采用LRU算法进行淘汰
DICT_BUF_SIZE 默认的配置大小为5M

主内存池

数据库启动后想服务器申请的内存, 在运行过程中该内存区域会将内存分配给其他线程

相关参数

MEMORY_POOL:初始大小
MEMORY_EXTENT_SIZE:扩展大小
MEMORY_TARGET:目标大小
MEMORY_N_POOL:共享内存池个数,默认为 1,高并发时可设置多个。
MAX_OS_MEMORY:内存占用操作系统内存的比例,默认 100,建议调整到 80-90%

运行时内存

所谓运行时内存就是会话级别的内存, 当有连接时需要使用内存则会进行内存的申请

线程

DM 是单进程多线程对称服务器架构

监听线程

用于监听客户端请求, 当有新的连接时, 分配一个线程接收客户端的数据

工作线程

负责将用户输入的SQL, 进行执行并将结果返回客户端

I/O线程

负责从磁盘读写数据到内存, 脏页的刷写 IO_THR_GROUPS用于配置IO线程的个数 DM使用的是aio

调度线程

负责处理系统中的定时任务, 调度线程每秒钟轮询一次
主要负责的任务有以下任务
1、检查系统级的时间触发器,如果满足触发条件则生成任务加到工作线程的任务队列由工作线程执行;
2、清理SQL缓存、计划缓存中失效的项,或者超出缓存限制后淘汰不常用的缓存项;
3、检查数据重演捕获持续时间是否到期,到期则自动停止捕获;
4、执行动态缓冲区检查。根据需要动态扩展或动态收缩系统缓冲池;
5、自动执行检查点。为了保证日志的及时刷盘,减少系统故障时恢复时间,根据INI参数设
6、会话超时检测。当客户连接设置了连接超时时,定期检测是否超时,如果超时则自动断开连接;
7、必要时执行数据更新页刷盘;
8、唤醒等待的工作线程

日志FLUSH线程

将日志缓冲区的数据, 写入redo日志
如果系统配置了实时归档,在FLUSH线程日志刷盘前,会直接将日志通过网络发送到实时备库。如果配置了本地归档,则生成归档任务,通过日志归档线程完成

归档线程

将redo日志进行归档

日志APPLAY线程

主要用于主备系统中, 相当于MySQL的SQL_THREAD

定时器线程

用于定义的定时任务, 每秒检测一次定时器链表

逻辑日志规定线程

主要用于复制环境

MAL系统线程

DM内部高速通道, 基于TCP/IP 主要用于和其他主机进行通信, 所有高可用环境都会用到

其他线程

完成某些特定功能的线程

线程信息的查看

 V$LATCHES       记录当前正在等待的线程信息V$THREADS      记录当前系统中活动线程的信息V$WTHRD_HISTORY   记录自系统启动以来,所有活动过线程的相关历史信息。V$PROCESS       记录服务器进程信息

表空间管理

DM 默认表空间

    SYSTEM 系统表空间, 存储数据字典、表、字段、视图等对象的定义权限等信息ROLL   回滚段, 用于存储DML操作对应的undo日志信息MAIN   用户的默认表空间, 如果一个用户没有指定表空间则默认使用该表空间TEMP   存储系统运行过程中产生的临时数据, 例如排序产生的数据HMAIN  列存储表空间

相关数据字典

    dba_tablespacesdba_data_filesv$tablespacev$datafiledba_free_space

表空间管理

创建表空间

CREATE TABLESPACE tbs_its DATAFILE 'tbs_its01.dbf' SIZE 128;  # 数据文件如果没有指定路径, 默认会根据参数存放到指定路径下

表空间脱机

ALTER TABLESPACE tbs_its OFFLINE;

表空间重命名

ALTER TABLESPACE tbs_its RENAME TO tbs1;

删除表空间

DROP TABLESPACE tbs1;

修改表空间

向表空间中添加数据文件

ALTER TABLESPACE tbs_its ADD DATAFILE 'tbs_its02.dbf' SIZE 128 MAXSIZE 1024;

修改表空间属性

  ALTER TABLESPACE tbs_its DATAFILE 'tbs_its02.dbf' AUTOEXTEND ON NEXT 2 MAXSIZE 1024;

修改数据文件大小

   ALTER TABLESPACE tbs_its RESIZE DATAFILE 'tbs_its02.dbf' TO 256;

数据文件迁移

ALTER TABLESPACE OFFLINE;
ALTER TABLESPACE tbs_its RENAME DATAFILE 'tbs_its02.dbf' TO '/tmp/tbs_its02.dbf';
ALTER TABLESPACE ONLINE;

临时表空间管理

收缩临时表空间方法

1、重启数据库, 会自动重建临时表空间, 表空间大小等于配置文件中指定的参数
2、使用方法 SP_TRUNC_TS_FILE 方法

重做日志管理

系统视图

v$rlogfile
v$rlog

修改联机日志大小

alter database RESIZE LOGFILE 'its01.log' to 300;

添加联机日志

alter database ADD LOGFILE 'its03.log' SIZE 300; SQL> select * from v$rlogfile;LINEID     GROUP_ID    FILE_ID     PATH                  CLIENT_PATH CREATE_TIME                RLOG_SIZE            MIN_EXEC_VER MIN_DCT_VER
---------- ----------- ----------- --------------------- ----------- -------------------------- -------------------- ------------ -----------
1          2           0           /dmdata/its/its01.log its01.log   2022-06-30 23:45:34.000000 314572800            V8.1.1.1     4
2          2           1           /dmdata/its/its02.log its02.log   2022-06-30 23:45:34.000000 268435456            V8.1.1.1     4
3          2           2           /dmdata/its/its03.log its03.log   2022-07-04 11:17:23.000000 314572800            V8.1.1.1     4used time: 0.438(ms). Execute id is 816.
SQL>

修改联机日志路径

 SQL> ALTER DATABASE MOUNT;SQL> ALTER DATABASE RENAME LOGFILE 'its01.log' TO '/tmp/its01.log';SQL> select * from v$rlogfile;LINEID     GROUP_ID    FILE_ID     PATH                  CLIENT_PATH    CREATE_TIME                RLOG_SIZE            MIN_EXEC_VER MIN_DCT_VER---------- ----------- ----------- --------------------- -------------- -------------------------- -------------------- ------------ -----------1          2           0           /tmp/its01.log        /tmp/its01.log 2022-06-30 23:45:34.000000 314572800            V8.1.1.1     42          2           1           /dmdata/its/its02.log its02.log      2022-06-30 23:45:34.000000 268435456            V8.1.1.1     43          2           2           /dmdata/its/its03.log its03.log      2022-07-04 11:17:23.000000 314572800            V8.1.1.1     4used time: 0.319(ms). Execute id is 818.SQL> alter database open;

归档管理

开启归档方法

1、手动开启

ALTER DATABASE MOUNT;
ALTER DATABASE ADD ARCHIVELOG 'TYPE=LOCAL ,DEST=/dmdata/arch ,FILE_SIZE=128 ,SPACE_LIMIT=2048';
ALTER DATABASE ARCHIVELOG;
ALTER DATABASE OPEN;

2、配置文件配置

dm.ini
ARCH_INI = 1  dmarch.ini
ARCH_WAIT_APPLY      = 0[ARCHIVE_LOCAL1]
ARCH_TYPE            = LOCAL
ARCH_DEST            = /dmdata/arch
ARCH_FILE_SIZE       = 128
ARCH_SPACE_LIMIT     = 2048
ARCH_FLUSH_BUF_SIZE  = 0
ARCH_HANG_FLAG       = 1

查看当前数据库归档状态

 SQL> SELECT arch_mode FROM v$database;LINEID     ARCH_MODE---------- ---------1          Yused time: 0.399(ms). Execute id is 701.SQL>

修改归档配置参数

SQL> ALTER DATABASE MODIFY ARCHIVELOG 'TYPE=LOCAL ,DEST=/dmdata/arch ,FILE_SIZE=128 ,SPACE_LIMIT=20480';

关闭归档

 SQL> alter database mount;SQL> alter database noarchivelog;SQL> alter database delete archivelog 'TYPE=LOCAL ,DEST=/dmdata/arch ,FILE_SIZE=128 ,SPACE_LIMIT=20480';SQL> alter database open;SQL> SELECT arch_mode FROM v$database;LINEID     ARCH_MODE---------- ---------1          N

###切换归档

 alter database archivelog current;alter system switch logfile;alter system archive log current;

删除归档

根据时间删除

        SQL> SF_ARCHIVELOG_DELETE_BEFORE_TIME(SYSDATE);DMSQL executed successfully

根据LSN删除

        SF_ARCHIVELOG_DELETE_BEFORE_LSN()

用户管理

相关视图

    dba_users;

DM 多权分立

将用户分为多个角色
系统管理员 SYSDBA 身份验证, 资源限制, 数据加密, 访问控制, 客体重用
系统审计员 SYSAUDITOR 审计
系统安全员 SYSSSO 策略和标记管理
对象管理员 SYSDBO 访问对象控制

用户口令策略

PWD_POLICY = 设置密码口的策略
      0: 无限制, 但总长度不得超过48个字节
      1: 禁止与用户名相同
      2: 口令长度需大于等于INI参数PWD_MIN_LEN设置的值
      4: 至少包含一个大写字母
      8: 至少包含一个数字
      16: 至少包含一个标点符号, 英文输入法状态下, 除“和空格外的所有符号

PWD_POLICY 是隐藏参数, 只能通过函数或者语句进行修改, 配置文件中没有该参数

 SQL> alter system set 'pwd_policy'=3 both;DMSQL executed successfullyused time: 1.757(ms). Execute id is 1401.SQL>SQL>SQL>SQL> exit[dmdba@itsdata its]$ disqlSQL> create user fyu identified by fyu;create user fyu identified by fyu;[-2160]:Error in line: 1Password must be different from login name.used time: 1.230(ms). Execute id is 0.SQL> create user fyu identified by fangyu;create user fyu identified by fangyu;[-2504]:Error in line: 1Password length invalid.used time: 0.806(ms). Execute id is 0.SQL> create user fyu identified by fangyu1111;executed successfullyused time: 48.792(ms). Execute id is 1500.SQL>

用户身份验证模式

数据库认证模式

使用创建用户时, 设置的密码登录

基于操作系统认证模式

开启操作系统认证参数
ENABLE_LOCAL_OSAUTH = 1 开启本地操作系统认证
ENABLE_REMOTE_OSAUTH = 1 开启远程操作系统认证
ENABLE_ENCRYPT = 1 表示使用ssl安全加密
上面的参数时静态参数, 需要重启数据库

  1、开启操作系统认证需要先将系统用户添加到useradd fangyugroupadd dmusersusermod -G dmusers fangyu 2、数据库中创建一个和系统用户相同名字的用户CREATE USER fangyu IDENTIFIED BY "fangyu421";3、登录数据库disql /localhost:5236 users

用户管理示例

CREATE USER FANGYU IDENTIFIED BY 123456  DEFAULT TABLESPACE FYU_ITS DEFAULT INDEX TABLESPACE FYU_ITS;
ALTER USER FANGYU ACCOUNT LOCK;   # 锁定用户
ALTER USER FANGYU ACCOUNT UNLOCK; # 解锁ALTER USER FANGYU DEFAULT TABLESPACE MAIN;  修改用户的默认表空间
ALTER USER FANGYU IDEDNTIFIED BY 01234;     修改用户密码
DROP USER FANGYU                            删除用户, 如果该用户在库中存在创建的对象则无法删除
DROP USER FANGYU CASCADE;                   删除用户, 相当于强制删除

用户资源限制

相关视图

dba_profiles 可以定义的策略

SQL> select * from SYS.DBA_PROFILES;LINEID     PROFILE RESOURCE_NAME        RESOURCE_TYPE LIMIT
---------- ------- -------------------- ------------- ---------
1          DEFAULT CPU_PER_CALL         KERNEL        UNLIMITED
2          DEFAULT CPU_PER_SESSION      KERNEL        UNLIMITED
3          DEFAULT MEM_SPACE            KERNEL        UNLIMITED
4          DEFAULT READ_PER_CALL        KERNEL        UNLIMITED
5          DEFAULT READ_PER_SESSION     KERNEL        UNLIMITED
6          DEFAULT CONNECT_TIME         KERNEL        UNLIMITED
7          DEFAULT SESSION_PER_USER     KERNEL        UNLIMITED
8          DEFAULT CONNECT_IDLE_TIME    KERNEL        UNLIMITED
9          DEFAULT FAILED_LOGIN_ATTEMPS PASSWORD      3
10         DEFAULT PASSWORD_LIFE_TIME   PASSWORD      UNLIMITED
11         DEFAULT PASSWORD_REUSE_TIME  PASSWORD      UNLIMITED
12         DEFAULT PASSWORD_REUSE_MAX  PASSWORD      UNLIMITED
13         DEFAULT PASSWORD_LOCK_TIME  PASSWORD      1
14         DEFAULT PASSWORD_GRACE_TIME PASSWORD      10

LIMIT 语句

SQL> alter user fyu limit FAILED_LOGIN_ATTEMPS 10 , PASSWORD_LOCK_TIME 5;
SQL> SELECT * FROM SYSUSER$;    # 该视图中可以看到修改的资源限制

PROFILE 语句

CREATE PROFILE P1 LIMIT FAILED_LOGIN_ATTEMPS 10 , PASSWORD_LOCK_TIME 5;
ALTER USER FYU PROFILE P1;

权限管理

授权和撤销

授权

GRANT 权限 TO username [WITH ADMIN OPTION]

回收

REVOKE 权限 FROM username

示例

 SQL> CREATE USER FYU IDENTIFIED BY "fangyu421";SQL> GRANT RESOURCE TO FYU ;SQL> REVOKE RESOURCE FROM FYU;

权限相关系统表

        DBA_SYS_PRIVS   系统权限DBA_TAB_PRIVS   对象权限DBA_ROLE_PRIVS  角色DBA_COL_PRIVS   列权限

查看权限

    查看当前用户的权限SQL> select * from session_privs;LINEID     PRIVILEGE---------- -------------------1          CREATE SESSION2          DBA3          RESOURCE4          PUBLIC5          SYS_ADMIN6          SOI7          EXECUTE DBMS_XMLGEN

角色管理

角色: 一组权限的集合

预定角色

管理类

        DBA         数据库管理角色, 在该数据库内具备除审计和标记相关权限之外的所有权限RESOURCE    具备部分创建数据库对象的权限, 且对其自身创建的数据库对象拥有所有的权限, 并能将其转授给其他用户PUBLIC      只能连接数据库并访问部分数据字典在缺省情况下,VTI         具有查询动态视图的查询权限SVI         查看v开头视图的权限SOI         查看系统表的权限

审计类

        DB_AUDIT_ADMIN  数据库审计管理角色, 在该库内具备所有与审计相关的权限, 包括创建审计用户和进行数据库审计DB_AUDIT_OPER   可连接数据库并进行审计操作DB_AUDIT_PUBLIC 只能连接数据库并访问部分数据字典缺省情况下, 每个审计用户在被创建时即具有此角色DB_AUDIT_VTI    具有查询动态视图的查询权限DB_AUDIT_SOI    查看v开头视图的权限DB_AUDIT_SVI    查看v开头视图的权限

安全类

        DB_POLICY_ADMIN     数据库标记管理角色, 在该库内具备所有与标记相关的权限, 包括创建标记用户和管理数据库标记DB_POLICY_OPER      可连接数据库并进行标记操作DB_POLICY_PUBLIC    只能连接数据库并访问部分数据字典缺省情况下, 每个标记用户在被创建时即具有此角色DB_POLICY_VTI       具有查询动态视图的查询权限DB_POLICY_SOI       查看系统表的权限DB_POLICY_SVI       查看v开头视图的权限

创建角色

    CREATE ROLE role_name;

删除角色

    DROP ROLE role_name;

禁用角色

    SP_SET_ROLE('role_name',0)

模式管理

模式

模式是一个特定的对象集合
类似MySQL中的database , 用户可以创建多个database, 在DM中表示为模式, 默认情况下当创建用户时, 则默认会创建一个同名的模式

模式和用户的关系
一个用户可以有多个模式, 一个模式只能属于一个用户

查看模式

SELECT * FROM sysobjects WHERE tyepe$='SCH';查看模式和用户的对应关系selecta.id scheid    ,a.name schename,b.id userid    ,b.name usernamefromSYS.SYSOBJECTS a,SYS.SYSOBJECTS bwherea."TYPE$" = 'SCH'and a.pid     = b.id;

创建模式

    CREATE SCHEMA s1 AUTHORIZATION FYU;

查看当前模式和用户

SQL>
SELECT SYS_CONTEXT('USERENV','CURRENT_SCHEMA');LINEID     SYS_CONTEXT('USERENV','CURRENT_SCHEMA')
---------- ---------------------------------------
1          SYSDBAused time: 4.635(ms). Execute id is 600.
SELECT SYS_CONTEXT('USERENV','CURRENT_USER');LINEID     SYS_CONTEXT('USERENV','CURRENT_USER')
---------- -------------------------------------
1          SYSDBAused time: 1.060(ms). Execute id is 601.
SQL>

切换模式

    SQL> SET SCHEMA S2;

删除模式

    SQL> drop schema s1;

表管理

创建表

创建表方式

1、普通方式

 SQL> CREATE TABLE T1(id INT, name VARCHAR(12));executed successfullyused time: 9.683(ms). Execute id is 501.SQL> INSERT INTO T1 VALUES(1,'AAA'),(2,'BBB');affect rows 2used time: 0.629(ms). Execute id is 502.SQL> COMMIT;executed successfullyused time: 1.372(ms). Execute id is 503.SQL> SELECT * FROM T1;LINEID     ID          NAME---------- ----------- ----1          1           AAA2          2           BBBused time: 0.412(ms). Execute id is 504.SQL> 

2、基于某个表创建

SQL> CREATE TABLE T2 LIKE T1;       # 在MySQL中这种语句不复制表中数据, 但是DM中会复制数据
executed successfully
used time: 5.761(ms). Execute id is 505.
SQL> SELECT * FROM T2;LINEID     ID          NAME
---------- ----------- ----
1          1           AAA
2          2           BBBused time: 0.326(ms). Execute id is 506.

3、CREATE TABLE AS SELECT

SQL> CREATE TABLE T3 AS SELECT * FROM T1;
executed successfully
used time: 4.945(ms). Execute id is 507.
SQL> SELECT * FROM T3;LINEID     ID          NAME
---------- ----------- ----
1          1           AAA
2          2           BBBused time: 0.431(ms). Execute id is 508.
SQL>

向表中添加字段

    ALTER TABLE T1 ADD COLUMN sex char(1);

删除字段

    ALTER TABLE T1 DROP COLUMN sex ;

修改字段

    ALTER TABLE T1 MODIFY sex char(10);

移动表到指定表空间

    ALTER TABLE T1 MOVE TABLESPACE MAIN;

表相关视图

    dba_tablesdba_tab_column

数据导入

    start /path_to_file` /path_to_file

约束管理

约束类型

    NOT NULL:   非空约束UNIQUE:     唯一约束PRIMARY KEY:主键约束 (唯一约束+非空约束)FOREIGN KEY:外键约束CHECK:      检验约束

向表上添加约束

NOT NULL
        ALTER TABLE T1 MODIFY id NOT NULL DEFAULT '';
唯一约束
        ALTER TABLE T1 ADD CONSTRAINT idx_uniq_id UNIQUE(id);
主键约束
        ALTER TABLE T1 ADD CONSTRAINT idx_pri_id PRIMARY KEY(id);
外键约束
        ALTER TBALE T1 ADD CONSTRAINT fk_id FOREIGN KEY (id) REFERENCES T2(id)
禁用约束
        ALTER TABLE T1 DISABLE CONSTRAINT idx_uniq_id;
开启约束
        ALTER TABLE T1 ENABLE CONSTRAINT idx_uniq_id;
删除约束
        ALTER TABLE T1 DROP CONSTRAINT idx_uniq_id;

约束系统视图

    dba_constraints;dba_cons_columns;

索引管理

CREATE TABLE i1(id INT, name VARCHAR(12));
INSERT INTO i1 VALUES(1,'a');
INSERT INTO i1 VALUES(2,'b');
INSERT INTO i1 VALUES(3,'c');
INSERT INTO i1 VALUES(4,'d');
COMMIT;

创建索引

SQL> CREATE INDEX idx_id ON i1(id);

删除索引

SQL> DROP INDEX idx_id;

监控索引

SQL> ALTER INDEX idx_name MONITORING USAGE;
executed successfully
used time: 1.354(ms). Execute id is 815.
SQL> SELECT * FROM V$OBJECT_USAGE;
LINEID     INDEX_NAME SCH_NAME TABLE_NAME MONITORING USED START_MONITORING    END_MONITORING
---------- ---------- -------- ---------- ---------- ---- ------------------- --------------1          IDX_NAME   SYSDBA   I1         YES        NO   2022-07-04 13:53:29 NULLused time: 0.512(ms). Execute id is 816.SQL>

重建索引

 SQL> ALTER INDEX idx_name rebuild;executed successfullyused time: 6.013(ms). Execute id is 817.SQL> ALTER INDEX idx_name rebuild online;executed successfullyused time: 14.616(ms). Execute id is 818.SQL>

统计信息收集

    SQL>  dbms_stats.gather_table_stats('SYSDBA','I1');SQL> dbms_stats.table_stats_show('SYSDBA','I1');LINEID     NUM_ROWS             LEAF_BLOCKS          LEAF_USED_BLOCKS---------- -------------------- -------------------- --------------------1          4                    1                    1

视图管理

由SQL语句组成的表, 视图不存储真实的数据, 只存储表的查询语句

SQL> CREATE VIEW v1 AS SELECT * FROM T1;
executed successfully
used time: 36.400(ms). Execute id is 514.
SQL> SELECT * FROM V1;LINEID     ID          NAME SEX1
---------- ----------- ---- ----
1          1           AAA  NULL
2          2           BBB  NULLused time: 0.563(ms). Execute id is 515.
SQL>

数据字典和性能视图

DM 常用系统表

DBA_TAB_PARTITIONS      表分区信息
DBA_TAB_PRIVS           表权限
DBA_TAB_STATISTICS      表的统计信息
DBA_TAB_SUBPARTITIONS   表的子分区信息
DBA_TRIGGERS            触发器信息
DBA_TRIGGER_COLS        触发器字段信息
DBA_USERS               用户信息
DBA_VIEWS               视图信息
DBA_COL_COMMENTS        系统中所有表的字段注释
DBA_CONSTRAINTS         约束信息
DBA_CONS_COLUMNS        约束字段信息
DBA_DATA_FILES          数据文件信息
DBA_DB_LINKS            存放dblink信息
DBA_FREE_SPACE          空闲表空间
DBA_INDEXES             索引信息
DBA_DIRECTORIES         使用dexpdp 导入导出时需要设置的路径配置信息
DBA_JSON_COLUMNS        系统的json字段信息
DBA_OBJECTS             数据库对象信息
DBA_ROLES               系统中角色信息
DBA_SEGMENTS            数据段信息
DBA_SEQUENCES           创建的序列信息
DBA_SOURCE              创建的存储过程函数等信息
DBA_TABLES              系统中所有表信息
DBA_TABLESPACES         表空间信息
DBA_TAB_COLS            表的字段信息
DBA_TAB_COMMENTS        表的注释信息
DBA_PROXIES             记录所有代理用户的全部信息只有角色DBA和DB_OBJECT_ADMIN才能访问该系统视图
DBA_ROLE_PRIVS          角色权限
DBA_SYNONYMS            同义词
DBA_SYS_PRIVS           系统权限表
DBA_TAB_COLUMNS         系统中所有表的字段信息
DBA_ENCRYPTED_COLUMNS   加密字段
DBA_IND_COLUMNS         系统中那些字段添加了索引
DBA_IND_PARTITIONS      分区索引
DBA_IND_SUBPARTITIONS   子分区索引
DBA_PART_KEY_COLUMNS    分区表的分区字段
DBA_PART_TABLES         分区表的状态信息
DBA_PROCEDURES          系统中又那些存储过程
DBA_SOURCE_AE           系统中所有包和存储过程的定义
DBA_COL_PRIVS           字段权限
SYSOBJECTS              系统中所有对象的信息, 包括对象的类型、创建事件、是否有效等信息
SYSINDEXES              系统中所有索引的信息
SYSCOLUMNS              系统中所有表的列信息
SYSCONS                 系统中所有约束信息
SYSSTATS                系统中的统计信息
SYSTEXTS                存放字典对象的文本信息使用时, 系统内部临时解析的字典对象才会放入此处
SYSGRANTS               记录系统中权限信息
SYSAUDIT                记录系统中的审计设置
SYSAUDITRULES           记录系统中审计规则的信息
SYSHPARTTABLEINFO       记录系统中分区表的信息
SYSMACCOMPS             记录策略的范围
SYSMACGRPS              记录策略所在组的信息
SYSMACUSRPLY            记录用户的策略信息
USER_PROXIES            记录当前用户的代理的全部信息只有角色PUBLIC、DB_AUDIT_PUBLIC、 DB_POLICY_PUBLIC以及DB_OBJECT_PUBLIC才能访问该系统视图
PROXY_USERS             记录所有代理用户名的信息只有角色DBA、DB_AUDIT_ADMIN 、DB_POLICY_ADMIN以及DB_OBJECT_ADMIN才能访问该系统视图
SYS.PROXY_INFO$         记录所有代理用户ID的信息只有角色DBA、DB_AUDIT_ADMIN 、DB_POLICY_ADMIN以及DB_OBJECT_ADMIN才能访问该系统表
SYSFCOLDEFAULT          记录表添加列时追加列的默认值
SYSINJECTHINT           记录已指定的SQL语句和对应的HINT
SYSMSTATS               记录多维统计信息的内容
SYSSTATTABLEIDU         记录所有表在上一次收集统计信息时的总行数和之后对表增删改的影响行数以及是否有过TRUNCATE操作
SYSDEPENDENCIES         记录对象间的依赖关系
SYSUSERINI              记录定制的INI参数
SYSCOLINFOS             记录列的附加信息, 例如是否虚拟列
SYSRESOURCES            记录用户使用系统资源的限制信息
SYSOBJINFOS             记录对象的依赖信息
SYSUSERS                记录系统中用户信息
SYSCOLUMNCOMMENTS       记录列的注释信息
SYSTABLECOMMENTS        记录表或视图的注释信息
SYSCONTEXTINDEXES       记录全文索引的信息
SYSPWDCHGS              记录密码的修改信息
SYSCOLCYT               记录列的加密信息
SYSACCHISTORIES         记录登录失败的历史信息
SYSMACOBJ               录扩展客体标记信息
SYSMACTABPLY            录表策略信息
SYSMACLABELS            录策略的标记信息
SYSMACGRPS              录策略所在组的信息
SYSMACLVLS              录策略的等级
SYSMACPLYS              录策略定义

动态性能视图

资源管理

V$DYNAMIC_TABLES                获得所有的动态性能视图名称
V$DICT_CACHE_ITEM               显示字典缓存中的字典对象信息
V$DICT_CACHE                    显示字典缓存信息
V$BUFFERPOOL                    页面缓冲区动态性能表, 用来记录页面缓冲区结构的信息
V$BUFFER_LRU_FIRST              显示所有缓冲区LRU链首页信息
V$BUFFER_UPD_FIRST              显示所有缓冲区UPDATE链首页信息
V$BUFFER_LRU_LAST               显示所有缓冲区LRU链末页信息
V$BUFFER_UPD_LAST               显示所有缓冲区UPDATE链末页信息
V$CACHEITEM                     显示缓冲区中缓冲项的相关信息在ini参数USE_PLN_POOL !=0时才统计
V$CACHERS                       显示结果集缓冲区的相关信息在ini参数USE_PLN_POOL !=0时才统计
V$CACHESQL                      显示SQL缓冲区中SQL语句的信息在ini参数USE_PLN_POOL !=0时才统计
V$SQLTEXT                       显示缓冲区中的SQL语句信息
V$SQL_PLAN                      显示缓冲区中的执行计划信息在ini参数USE_PLN_POOL !=0时才统计
V$MEM_POOL                      显示所有的内存池信息
V$MEM_REGINFO                   显示系统当前已分配并未释放的内存信息, 当MEMORY_LEAK_CHECK为1时才会在此动态视图注册信息
V$GSA                           显示全局SORT内存缓冲区的使用情况
V$MEM_HEAP                      显示系统当前内存堆的信息, 仅当系统启动时MEMORY_LEAK_CHECK为1时有效
V$LARGE_MEM_SQLS                最近1000条使用大内存的sql语句一条sql语句使用的内存值超过ini参数LARGE_MEM_THRESHOLD, 就认为使用了大内存
V$SYSTEM_LARGE_MEM_SQLS         系统中使用大内存最多的20条sql语句字段定义与v$large_mem_sqls相同
V$SCP_CACHE                     显示缓存池信息
V$DB_SYSPRIV_CACHE              系统权限缓存信息
V$DB_OBJPRIV_CACHE              对象权限缓存信息
V$SQL_STAT                      语句级资源监控内容记录当前正在执行的SQL语句的资源开销需要ENABLE_MONITOR=1才开始监控其中5~58列中的监控项, 可以通过SP_SET_SQL_STAT_THRESHOLD()设置监控阀值, 超过阀值才开始监控具体使用参考《DM8_SQL语言使用手册》
$SQL_STAT_HISTORY               语句级资源监控内容记录历史SQL语句执行的资源开销需要ENABLE_MONITOR=1才开始监控视图的格式和V$SQL_STAT一样单机最大行数为10000
V$HLDR_TABLE                    记录当前系统中所有HLDR使用HLDR_BUF的情况

段簇页

V$SEGMENT_INFOS                 显示所有的段信息
V$SEGMENTINFO                   索引叶子段信息视图查询该视图时, 一定要带WHERE条件, 并且必须是等值条件
V$BTREE_INNER_PAGES             索引的叶子段/内节点段的页信息视图查询该视图时, 一定要带WHERE条件, 并且必须是等值条件如: select * from v$btree_leaf_pages where index_id =id;
V$BTREE_LIST_PAGES              LIST索引的叶子段的页信息视图查询该视图时, 一定要带WHERE条件, 并且必须是等值条件如: select * from v$btree_list_pages where index_id = id;
V$TABLE_LOB_PAGES               表中的大字段的页信息视图查询该视图时, 一定要带WHERE条件, 并且必须是等值条件如: select * from v$table_lob_pages where table_id = id;
V$LOB_SEG                       用于查看各表大字段的段首页中记录的信息
V$RESOURCE_LIMIT                显示表、用户的空间限制信息
V$SEGMENT_PAGES                 段中数据页的信息视图查询该视图时, 一定要带WHERE条件指定GROUP_ID和SEG_ID, 并且必须是等值条件例如: select * from v$segment_pages where group_id=1 and seg_id = 200;
V$PSEG_SYS                      显示当前回滚段信息
V$PSEG_ITEMS                    显示回滚系统中当前回滚项信息
V$PSEG_COMMIT_TRX               显示回滚项中已提交但未PURGE的事务信息
V$PSEG_PAGE_INFO                显示当前回滚页信息
V$PURGE                         显示当前PURGE回滚段信息
V$PURGE_PSEG_OBJ                显示PURGE系统中, 待PURGE的所有PSEG对象信息
V$PURGE_PSEG_TAB                显示待PURGE表信息

数据库信息

V$LICENSE                       显示LICENSE信息, 用来查询当前系统的LICENSE信息
V$VERSION                       显示版本信息, 包括服务器版本号与DB版本号如果为DMDSC环境, 则还会增加显示DMDSC版本号
V$DATAFILE                      显示数据文件信息
V$DATABASE                      显示数据库信息
V$IID                           显示下一个创建的数据库对象的ID该视图提供用户可以查询下一个创建对象的ID的值, 可以方便用户查询预知自己所要建立对象的信息
V$HINT_INI_INFO                 显示支持的HINT参数信息
V$ERR_INFO                      显示系统中的错误码信息
V$INSTANCE                      显示实例信息
V$DYNAMIC_TABLES                显示当前数据库中的动态视图
V$RESERVED_WORDS                保留字统计表, 记录保留字的分类信息

数据库对象相关

V$TABLESPACE                    显示表空间信息, 不包括RLOG表空间信息
V$HUGE_TABLESPACE               显示HUGE表空间信息
V$HUGE_TABLESPACE_PATH          显示HUGE表空间路径信息
V$SEQCACHE                      显示当前系统中缓存的序列的信息
V$PKGPROCS                      显示包中的方法信息
V$PKGPROCPARAMS                 显示包中方法的参数信息
V$DB_CACHE                      数据字典缓存表, 用于记录数据字典的实时信息
V$DB_OBJECT_CACHE               数据字典对象缓存表, 用于记录数据字典中每个对象的信息
V$OBJECT_USAGE                  记录索引监控信息
V$IFUN                          显示数据库提供的所有函数
V$IFUN_ARG                      显示数据库提供的所有函数的参数
V$SYSSTAT                       显示系统统计信息
V$JOBS_RUNNING                  显示系统中正在执行的作业信息
V$AUTO_STAT_TABLE_IDU           记录表中数据的变化信息在ini参数AUTO_STAT_OBJ =1时才统计

数据库配置参数

V$PARAMETER                     显示ini参数和dminit建库参数的类型及参数值信息(当前会话值、系统值及dm.ini文件中的值)
V$DM_INI                        所有ini参数和dminit建库参数信息
V$DM_ARCH_INI                   归档参数信息
V$DM_MAL_INI                    MAL参数信息
V$DM_REP_RPS_INST_NAME_INI      数据复制服务器参数信息
V$DM_REP_MASTER_INFO_INI        数据复制主库参数信息
V$DM_REP_SLAVE_INFO_INI         数据复制从机参数信息
V$DM_REP_SLAVE_TAB_MAP_INI      数据复制从机表对应关系参数信息
V$DM_REP_SLAVE_SRC_COL_INFO_INI 数据复制从机列对应关系参数信息
V$DM_LLOG_INFO_INI              逻辑日志信息参数信息
V$DM_LLOG_TAB_MAP_INI           逻辑日志与表对应的参数信息
V$DM_TIMER_INI                  定时器参数信息
V$OPTION                        安装数据库时的参数设置
V$OBSOLETE_PARAMETER            已作废的INI信息

日志管理

V$RLOG                          显示日志的总体信息通过该视图可以了解系统当前日志事务号LSN的情况、归档日志情况、检查点的执行情况等
V$RLOG_PKG                      显示日志包信息通过该视图可以查询日志系统中当前日志包的使用情况, 如包的长度、最大LSN、最小LSN等通过该视图还可以查询当前实例日志系统中等待刷盘的链表上的日志包信息
V$RLOG_PKG_STAT                 显示当前实例日志系统中日志包使用的统计信息
V$RLOGFILE                      显示日志文件的具体信息包括文件号、完整路径、文件的状态、文件大小等等
V$ARCHIVED_LOG                  显示当前实例的所有归档日志文件信息此动态视图还有一些未列出的保留列, 查询时均显示NULL
V$LOGMNR_LOGS                   显示当前会话添加的需要分析的归档日志文件此动态视图还有一些未列出的保留列, 查询时均显示NULL
V$LOGMNR_PARAMETERS             显示当前会话START_LOGMNR启动日志文件分析的参数此动态视图还有一些未列出的保留列, 查询时均显示NULL
V$LOGMNR_CONTENTS               显示当前会话日志分析的内容此动态视图还有一些未列出的保留列, 查询时均显示NULL
V$ARCH_QUEUE                    显示当前归档任务队列信息
V$RLOG_HISTORY                  显示日志的历史总体信息通过该视图可以了解最近一周内系统每过一分钟日志事务号LSN的情况、归档日志情况以及检查点的执行情况等

会话

V$CONNECT                       显示活动连接的所有信息
V$SESSIONS                      显示会话的具体信息, 如执行的sql语句、主库名、当前会话状态、用户名等等
V$SESSION_SYS                   显示系统中会话的一些状态统计信息
V$OPEN_STMT                     连接语句句柄表, 用于记录SESSION上语句句柄的信息
V$SESSION_HISTORY               显示会话历史的记录信息, 如主库名、用户名等, 与V$SESSIONS的区别在于会话历史记录只记录了会话一部分信息, 对于一些动态改变的信息没有记录, 如执行的SQL语句等
V$CONTEXT                       显示当前会话所有上下文的名字空间、属性和值
V$SESSION_STAT                  记录每个session上的相关统计信息
V$NLS_PARAMETERS                显示当前会话的日期时间格式和日期时间语言

SQL执行相关

V$SQL_HISTORY                   当INI参数ENABLE_MONITOR=1时, 显示执行sql的历史记录信息;可以方便用户经常使用的记录进行保存
V$SQL_NODE_HISTORY              通过该视图既可以查询sql执行节点信息, 包括sql节点的类型、进入次数和使用时间等等;又可以查询所有执行的sql节点执行情况, 如哪些使用最频繁、耗时多少等当INI参数ENABLE_MONITOR 和 MONITOR_SQL_EXEC都开启时, 才会记录SQL执行节点信息如果需要时间统计信息, 还需要打开MONITOR_TIME
V$SQL_NODE_NAME                 显示所有的sql节点描述信息, 包括sql节点类型、名字和详细描述
V$COSTPARA                      显示SQL计划的代价信息
V$LONG_EXEC_SQLS                当INI参数ENABLE_MONITOR=1、MONITOR_TIME=1时, 显示系统最近1000条执行时间超过预定值的SQL语句默认预定值为1000毫秒可通过SP_SET_LONG_TIME系统函数修改, 通过SF_GET_LONG_TIME系统函数查看当前值
V$SYSTEM_LONG_EXEC_SQLS         当INI参数ENABLE_MONITOR=1、MONITOR_TIME=1时, 显示系统自启动以来执行时间最长的20条SQL语句, 不包括执行时间低于预定值的语句
V$VMS                           显示虚拟机信息
V$STKFRM                        显示虚拟机栈桢信息该参数必须在INI参数ENABLE_MONITOR和MONITOR_SQL_EXEC都开启时才有信息
V$STMTS                         显示当前活动会话的最近的语句的相关信息
V$SQL_PLAN_NODE                 当INI参数ENABLE_MONITOR和MONITOR_SQL_EXEC都开启时, 显示执行计划的节点信息
V$SQL_SUBPLAN                   显示子计划信息
V$SQL_PLAN_DCTREF               显示所有执行计划相关的详细字典对象信息
V$MTAB_USED_HISTORY             显示系统自启动以来使用MTAB空间最多的50个操作符信息
V$SORT_HISTORY                  当INI参数ENABLE_MONITOR=1都打开时, 显示系统自启动以来使用排序页数最多的50个操作符信息
V$HASH_MERGE_USED_HISTORY       HASH MERGE连接操作符使用的缓存信息
V$PLSQL_DDL_HISTORY             记录DMSQL程序中执行的DDL语句, 主要监控truncate table和Execute immediate DDL语句的情况
V$PRE_RETURN_HISTORY            记录大量数据返回结果集的历史信息(查询大量数据产生)
V$DMSQL_EXEC_TIME               记录动态监控的sql语句执行时间当ENABLE_MONITOR_DMSQL=1时才会记录监控的sql语句
V$VIRTUAL_MACHINE               显示活动的虚拟机信息

事务和检查点

V$TRX                           显示所有活动事务的信息通过该视图可以查看所有系统中所有的事务以及相关信息, 如锁信息等
V$TRXWAIT                       显示事务等待信息
V$TRX_VIEW                      显示当前事务可见的所有活动事务视图信息根据达梦多版本规则, 通过该视图可以查询系统中自己所见的事务信息;可以通过与v$trx表的连接查询它所见事务的具体信息
V$RECV_ROLLBACK_TRX             显示数据库启动时回滚的所有事务信息
V$LOCK                          显示活动的事务锁信息
V$DEADLOCK_HISTORY              记录死锁的历史信息目前DMDSC环境下暂不支持记录死锁历史信息
V$FLASHBACK_TRX_INFO            显示闪回信息
V$CKPT_HISTORY                  显示检查点历史信息
V$CKPT                          显示系统检查点信息

事件

V$WAIT_HISTORY                  通过该视图可以查询等待事件的具体信息, 如等待的线程id, 会话id等可以查看具体等待事件的信息, 如果某个事务等待时间过长, 则可以查询到具体事务信息以及所在的线程和所牵涉的对象, 分析原因进行优化等操作
V$EVENT_NAME                    显示当前系统所支持的等待事件的类型汇总信息
V$SYSTEM_EVENT                  显示自系统启动以来所有等待事件的详细信息
V$SESSION_EVENT                 显示当前会话等待事件的所有信息
V$SESSION_WAIT_HISTORY          显示会话等待事件的历史信息
V$DANGER_EVENT                  数据库重要事件和行为信息视图
V$TASK_QUEUE                    任务队列信息
V$TRACE_QUEUE                   事件跟踪任务队列信息

进程和线程

V$PROCESS                       显示当前进程信息
V$THREADS                       显示系统中所有活动线程的信息
V$LATCHES                       显示正在等待的线程信息
V$WTHRD_HISTORY                 通过本视图可以观察系统从启动以来, 所有活动过线程的相关历史信息其中CHG_TYPE有REUSE_OK(本SESSION 重用成功)、REUSE_FAIL (重用失败)、To_IDLE(不重用, 直接变IDLE)等几种类型

系统信息

V$SYSTEMINFO                    系统信息视图
V$CMD_HISTORY                   通过本视图可以观察系统的一些命令的历史信息其中cmd指的是SESS_ALLOC, SESS_FREE, CKPT, TIMER_TRIG, SERERR_TRIG, LOG_REP, MAL_LETTER,  CMD_LOGIN等
V$RUNTIME_ERR_HISTORY           监控运行时错误历史异常分为三种: 一种是系统异常, 用户没有捕获, 由vm_raise_runtime_error产生;第二种是用户异常, 用户捕获错误, 并抛出自定义异常, 由nthrow_exec产生;第三种是语法异常, 语法未通过, 由nsvr_build_npar_cop_out产生
V$INSTANCE_LOG_HISTORY          用于查询服务器实例运行期间生成的最近1万条事件日志
V$MAL_SYS                       MAL系统信息视图如果是数据守护环境, 则只显示主库的MAL系统信息
V$MAL_INFO                      MAL邮箱信息视图
V$MAL_LETTER_INFO               MAL上的信件信息视图
V$MAL_USING_LETTERS             服务器中正在使用或者使用过但是没有释放的邮件信息, 用于检查MAL系统潜在的内存泄露, INI参数MAL_LEAK_CHECK为1时有效

通讯

V$DBLINK                        动态使用到的数据库链接信息视图

MPP

V$MPP_CFG_SYS                   MPP系统配置信息视图
V$MPP_CFG_ITEM                  MPP站点配置信息视图
V$MAL_SITE_INFO                 MAL站点信息视图, MPP模式下, 自动收集MPP各个站点的信息

DSC

V$DSC_EP_INFO                   显示实例信息, 登录任意节点查询得到的结果一致
V$DSC_GBS_POOL                  显示 GBS 控制结构的信息, 仅显示登录节点的信息
V$DSC_GBS_POOLS_DETAIL          显示分片的 GBS_POOL 详细信息, 仅显示登录节点的信息
V$DSC_GBS_CTL                   显示 GBS 控制块信息多个 pool, 依次扫描, 仅显示登录节点的信息
V$DSC_GBS_CTL_DETAIL            显示 GBS 控制块详细信息多个 pool, 依次扫描, 仅显示登录节点的信息
V$DSC_GBS_CTL_LRU_FIRST         显示 GBS 控制块 LRU 链表首页信息多个 pool, 依次扫描, 仅显示登录节点的信息
V$DSC_GBS_CTL_LRU_FIRST_DETAIL  显示 GBS 控制块 LRU 链表首页详细信息多个 pool, 依次扫描, 仅显示登录节点的信息
V$DSC_GBS_CTL_LRU_LAST          显示 GBS 控制块 LRU 链表尾页信息多个 pool, 依次扫描, 仅显示登录节点的信息
V$DSC_GBS_CTL_LRU_LAST_DETAIL   显示 GBS 控制块 LRU 链表尾页详细信息多个 pool, 依次扫描, 仅显示登录节点的信息
V$DSC_GBS_REQUEST_CTL           显示等待 GBS 控制块的请求信息多个 pool, 依次扫描, 仅显示登录节点的信息
V$DSC_LBS_POOL                  显示 LBS 控制结构的信息, 仅显示登录节点的信息
V$DSC_LBS_POOLS_DETAIL          显示分片的 LBS_POOL 详细信息多个 pool, 依次扫描, 仅显示登录节点的信息
V$DSC_LBS_CTL                   显示 LBS 控制块信息多个 pool, 依次扫描, 仅显示登录节点的信息
V$DSC_LBS_CTL_LRU_FIRST         显示 LBS 的 LRU_FIRST 控制块信息多个 pool, 依次扫描, 仅显示登录节点的信息
V$DSC_LBS_CTL_LRU_LAST          显示 LBS 的 LRU_LAST 控制块信息多个 pool, 依次扫描, 仅显示登录节点的信息
V$DSC_LBS_CTL_DETAIL            显示 LBS 控制块详细信息多个 pool, 依次扫描, 仅显示登录节点的信息
V$DSC_LBS_CTL_LRU_FIRST_DETAIL  显示 LBS 的 LRU_FIRST 控制块详细信息多个 pool, 依次扫描, 仅显示登录节点的信息
V$DSC_LBS_CTL_LRU_LAST_DETAIL   显示 LBS 的 LRU_LAST 控制块详细信息多个 pool, 依次扫描, 仅显示登录节点的信息
V$DSC_GTV_SYS                   显示 GTV 控制结构的信息, 仅登录集群环境控制节点才能获取数据, 登录其他节点返回数据无效
V$DSC_GTV_TINFO                 显示 TINFO 控制结构的信息, 仅登录集群环境控制节点才能获取数据, 登录其他节点返回数据为空暂时没有什么用, 查询结果为空
V$DSC_GTV_ACTIVE_TRX            显示全局活动事务信息, 仅登录集群环境控制节点才能获取数据, 登录其他节点返回数据为空暂时没有什么用, 查询结果为空
V$DSC_LOCK                      显示全局活动的事务锁信息, 登录任意节点查询得到的结果一致
V$DSC_TRX                       显示所有活动事务的信息通过该视图可以查看所有系统中所有的事务以及相关信息, 如锁信息等, 登录任意节点查询得到的结果一致
V$DSC_TRXWAIT                   显示事务等待信息, 登录任意节点查询得到的结果一致
V$DSC_TRX_VIEW                  显示当前事务可见的所有活动事务视图信息根据达梦多版本规则, 通过该视图可以查询系统中自己所见的事务信息;可以通过与 v$dsc_trx 表的连接查询它所见事务的具体信息, 登录任意节点查询得到的结果一致
V$ASMATTR                       如果使用有 ASM 文件系统, 可通过此视图查看 ASM 文件系统相关属性, 登录任意节点查询得到的结果一致
V$ASMGROUP                      如果使用有 ASM 文件系统, 可通过此视图查看 ASM 磁盘组信息, 登录任意节点查询得到的结果一致
V$ASMDISK                       如果使用有 ASM 文件系统, 可通过此视图查看所有的 ASM 磁盘信息, 登录任意节点查询得到的结果一致
V$ASMFILE                       如果使用有 ASM 文件系统, 可通过此视图查看所有的 ASM 文件信息, 登录任意节点查询得到的结果一致
V$DCR_INFO                      查看 DCR 配置的全局信息, 登录任意节点查询得到的结果一致
V$DCR_GROUP                     查看 DCR 配置的组信息, 登录任意节点查询得到的结果一致
V$DCR_EP                        查看 DCR 配置的节点信息, 登录任意节点查询得到的结果一致
V$DSC_REQUEST_STATISTIC         统计 DSC 环境内 TYPE 类型请求时间, 仅显示登录节点的信息
V$DSC_REQUEST_PAGE_STATISTIC    统计 lbs_XX 类型最耗时的前 100 页地址信息, 仅显示登录节点的信息
V$DSC_CRASH_OVER_INFO           显示 DSC 环境各节点数据页最小first_modified_lsn, 以及故障节点 file_lsn如果活动节点 buffer 中不存在更新页则 min_first_modified_lsn 为 NULL;节点故障后, 只有在所有 OK 节点 min_first_modified_lsn 都大于或等于故障节点file_lsn 之后, 才允许故障节点重加入;满足所有 OK 节点 min_first_modified_lsn都大于 crash_lsn 之后, crash_lsn 会清零
V$DSC_GLS_SYS                   显示 DSC 环境下的系统全局封锁相关信息

数据守护

V$RECOVER_STATUS                该视图需要在主库上查询(DMDSC主库需要在控制节点上查询), 用于查询备库的恢复进度, 如果已恢复完成, 查询结果为空
V$KEEP_RLOG_PKG                 该视图需要在备库上查询(DMDSC备库需要在控制节点(重演节点)上查询), 用于查询备库上的KEEP_RLOG_PKG信息, 在备库归档状态有效的情况下可以查到内容
V$RAPPLY_SYS                    该视图需要在备库上查询(DMDSC备库需要在控制节点(重演节点)上查询), 用于查询备库重做日志时的一些系统信息
V$RAPPLY_LOG_TASK               该视图需要在备库上查询(DMDSC备库需要在控制节点(重演节点)上查询), 用于查询备库当前重做任务的日志信息
V$ARCH_FILE                     查询本地归档日志信息对DMDSC集群, 除了显示本地归档外, 也显示远程归档信息
V$ARCH_STATUS                   查询归档状态信息, 归档状态是由主库记录和维护的, 此视图只在主库上查询有效, 备库上的查询结果没有实际意义
V$MAL_LINK_STATUS               查询本地实例到远程实例的MAL链路连接状态
V$DMWATCHER                     查询当前登录实例所对应的守护进程信息, 注意一个守护进程可以同时守护多个组的实例, 因此查询结果中部分字段(N_GROUP、SWITCH_COUNT)为守护进程的全局信息, 并不是当前登录实例自身的守护信息在DMDSC集群环境中, 只显示控制守护进程的信息
V$UTSK_INFO                     查询守护进程向服务器发送请求的执行情况
V$UTSK_SYS2                     显示服务器当前的全局信息
V$ARCH_SEND_INFO                此视图用于在主库上查询各备库的日志发送统计信息
V$RAPPLY_STAT                   此视图用于在备库上查询备库重演日志的统计信息
V$RAPPLY_LSN_INFO               查询备库的重演信息, 如果备库是DMDSC集群, 则需要在控制节点(重演节点)上查询如果在主库上查询此视图, 则查到的是主库曾经作为备库时的历史重演信息其中后面四个CKPT_XX字段, 是在备库刷检查点时才调整, 前面四个是随备库重演而动态调整的
V$RAPPLY_PARALLEL_INFO          查询备库的并行重演信息, 如果备库是DMDSC集群, 则需要在控制节点(重演节点)上查询

系统包

V$CACHEPKG                      显示当前系统中的包的使用信息
V$DBMS_LOCKS                    显示当前系统中的申请的DBMS_LOCK包封锁情况
V$DB_PIPES                      记录使用DBMS_PIPE包创建的管道的相关信息
V$SCHEDULER_JOBS_RUNNING        记录数据库中所有由DBMS_SCHEDULER包创建且正在执行的作业

捕获

V$CAPTURE                       显示捕获信息

审计与加密

V$AUDITRECORDS                  显示审计记录, 用来查询当前系统默认路径下的审计文件信息此动态性能视图只有在审计开关打开时才有内容, 且只有审计用户可以查询
V$AUDIT_SPACE                   显示审计文件存储空间信息此动态性能视图只有审计用户可以查询
V$CIPHERS                       显示系统加密算法信息
V$EXTERNAL_CIPHERS              显示系统中所有的第三方加密算法信息
V$EXTERNAL_CIPHER_LIBS          显示加密引擎、第三方链接库相关信息

数据库备份恢复

备份恢复概念

备份: 从数据库文件中拷贝有效的数据页保存到备份集中 有效数据页指的是: 数据文件的描述页和被分配使用的数据页
还原: 将有效的数据页重新写入目标数据文件中的过程
恢复: 通过归档日志将数据恢复到备份结束时的状态, 也可以恢复到指定的时间或者LSN的位置
– 在恢复后数据库中的未提交数据在启动时会有DM自动进行回滚

备份类型

逻辑备份
      通过dexp工具, 将指定对象的数据导出到文件, 逻辑备份针对的是数据内容, 不关系数据物理存储在什么位置

物理备份
      直接扫描数据文件, 找出已经分配使用的数据页拷贝并保存到备份集, 物理备份不关心数据的内容只是通过数据库文件系统的藐视来挑选有效的数据页

联机备份
      数据库处于运行状态并正常提供数据库服务的状态下进行备份

脱机备份
      数据库处于关闭状态下进行数据库的备份

DM dmrman备份只能是关闭数据库下才可以进行脱机备份

联机备份

SQL> BACKUP DATABASE BACKUPSET 'bak_db';     默认如果没有指定备份路径, 则根据 dm.ini 中配置的BAK_PATH参数将备份的数据库存放在该路径下BACKUP 语句参数FULL              表示完全备份, 默认就是完全备份, 可以不写DDL_CLONE         数据库克隆, 只备份元数据信息, 不备份数据INCREMENT         增量备份参数CUMULATIVE        用于增量备份中, 指明为累积增量备份WITH BACKUPDIR    用于增量备份中, 用于指定增量备份的基备份搜索目录BASE ON BACKUPSET 用于增量备份, 指定基备份路径TO                指定生成备份的名称, 不指定则系统随机生成 默认格式: DB_库名_备份类型_备份时间BACKUPSET         指定当前备份集的路径DEVICE TYPE       指定存储介质BACKUPINFO        备份的描述信息MAXPIECESIZE      最大备份片大小限制LIMIT             指定备份时最大的读写文件速度 单位M/s IDENTIFIED BY     指定备份时加密的密码WITH ENCRYPTION   指定加密类型ENCRYPT WITH      指定加密算法COMPRESSED        备份时压缩WITHOUT LOG       联机数据库备份是否备份日志TRACE FILE        指定生成的TRACE文件TRACE LEVEL       是否启用TRACE 1: 不启用 2: 启用TASK THREAD       备份过程中数据库处理线程的格式 默认:4 PARALLEL          指定并行备份的并行数和拆分块大小**-- 在执行备份过程中, 如果报错归档不完整 则需要先执行生成检查点操作才能正常备份 SELECT CHECKPOINT(100)**

完全备份

1、完全备份, 备份时指定备份名称 并且 添加备份注释信息

SQL> BACKUP DATABASE TO FULL_DATABASE_02 BACKUPSET '/dmbak/full_db_02' BACKUPINFO '第二次完全备份';

2、完全备份, 备份时指定备份片最大大小

SQL> BACKUP DATABASE BACKUPSET '/dmbak/full_db_03' MAXPIECESIZE 300;

3、完全备份, 备份时进行压缩

SQL> BACKUP DATABASE BACKUPSET '/dmbak/full_db_04' COMPRESSED LEVEL 5;

4、完全备份, 采用并行备份, 并行数是8

SQL> BACKUP DATABASE BACKUPSET '/dmbak/full_db_05' PARALLEL 8;

增量备份

SQL> BACKUP DATABASE INCREMENT WITH BACKUPDIR '/dmbak' BACKUPSET '/dmbak/incr_db_01' BACKUPINFO '第一次增量备份';

表空间备份

1、备份TBS_ITS表空间

SQL> BACKUP TABLESPACE TBS_ITS BACKUPSET '/dmbak/tbs_its';

2、增量备份, 没有指定基备份, 则在备份目录下搜索最近一次的完全备份或者增量备份作为基备份

SQL> BACKUP TABLESPACE TBS_ITS INCREMENT BACKUPSET '/dmbak/tbs_its_incr';

3、增量备份, 基于某个备份做增量备份

SQL> BACKUP TABLESPACE TBS_ITS INCREMENT BASE ON BACKUPSET '/dmbak/tbs_its' BACKUPSET '/dmbak/tbs_its_incr02';

4、增量备份, 基于某个备份

SQL> BACKUP TABLESPACE TBS_ITS INCREMENT WITH BACKUPDIR '/dmbak/' BACKUPSET '/dmbak/tbs_its_incr_03';

表备份

SQL> BACKUP TABLE FANGYU.EMP BACKUPSET '/dmbak/t_emp';

归档备份

SQL> BACKUP ARCHIVE LOG ALL BACKUPSET '/dmbak/arch_full_01';

归档备份参数

FROM LSN    指定备份开始LSN
UNTIL LSN   指定备份结束LSN
FROM TIME   指定备份的开始时间
UNTIL TIME  指定备份的结束时间
DELETE FROM 用于指定备份完成后, 是否删除归档
TO          指定备份名称
BETWEEN ... AND ...  指定备份的区间

DMRMAN 备份

备份数据库

完全备份

RMAN> BACKUP DATABASE '/dmdata/itsdata/dm.ini' BACKUPSET '/dmbak/full_db_01';
BACKUP DATABASE '/dmdata/itsdata/dm.ini' BACKUPSET '/dmbak/full_db_01';
Database mode = 0, oguid = 0
Normal of FAST
Normal of DEFAULT
Normal of RECYCLE
Normal of KEEP
Normal of ROLL
EP[0]s cur_lsn[59891], file_lsn[59891]
Processing backupset /dmbak/full_db_01
[Percent:100.00%][Speed:0.00M/s][Cost:00:00:02][Remaining:00:00:00]
backup successfully!
time used: 00:00:03.272
RMAN>

增量备份

BACKUP DATABASE '/dmdata/itsdata/dm.ini' INCREMENT WITH BACKUPDIR '/dmbak' BACKUPSET '/dmbak/incr_db_01';

归档备份

BACKUP ARCHIVE LOG ALL DATABASE '/dmdata/itsdata/dm.ini' BACKUPSET '/dmbak/arch_db_01';

备份集校验

SQL> SELECT SF_BAKSET_CHECK('DISK','/dmbak/full_db');
行号     SF_BAKSET_CHECK('DISK','/dmbak/full_db')
---------- ----------------------------------------
1          1

删除备份集

删除指定设备类型和指定备份集目录的备份集
SQL> SELECT SF_BAKSET_REMOVE('DISK','/dmbak/full_db',0);
行号     SF_BAKSET_REMOVE('DISK','/dmbak/full_db',0)---------- -------------------------------------------
1          1

逻辑备份

dexp 逻辑备份
    dexp 参数USERID               指定用户名和密码FILE                 指定导出文件的名称, 如果不指定默认: dexp.dmpDIRECTORY            指定导出文件目录FULL                 全量备份OWNER                导出指定用户的数据, 格式: (user1,user2,...)SCHEMAS              导出指定模式的数据, 格式: (schema1,schema2,...)TABLES               指定导出某个表    , 格式: (table1,table2,...)FUZZY_MATCH          使用TABLES选项时, 是否对表名进行模糊匹配 默认:NQUERY                导出表数据时, 过滤条件PARALLEL             并发导出TABLE_PARALLEL       对于表进行并发导出, MPP模式下会转换成单线程TABLE_POOL           指定表的缓冲区个数EXCLUDE              指定导出时排除那些不导出   EXCLUDE=(CONSTRAINTS,INDEXES,ROWS,TRIGGERS,GRANTS) or EXCLUDE=TABLES:table1,table2 or EXCLUDE=SCHEMAS:sch1,sch2 INCLUDE              指定导出的对象  INCLUDE=(CONSTRAINTS,INDEXES,ROWS,TRIGGERS,GRANTS) or  INCLUDE=TABLES:table1,table2CONSTRAINTS          导出约束 (Y)TABLESPACE           导出对象带有表空间 (N)GRANTS               导出权限 (Y)INDEXES              导出索引 (Y)TRIGGERS             导出触发器 (Y)ROWS                 导出数据行 (Y)LOG                  指定日志文件NOLOGFILE            不使用日志文件(N)NOLOG                屏幕上不显示日志信息(N)LOG_WRITE            日志信息实时写入文件: 是(Y),否(N)DUMMY                交互信息处理: 打印(P), 所有交互都按YES处理(Y),NO(N) PARFILE              参数文件名FEEDBACK             每 x 行显示进度 (0)COMPRESS             导出数据是否压缩 (N)ENCRYPT              导出数据是否加密 (N)ENCRYPT_PASSWORD     导出数据的加密密钥ENCRYPT_NAME         加密算法的名称FILESIZE             每个转储文件的最大大小FILENUM              一个模板可以生成的文件数DROP                 导出后删除原表,但不级联删除 (N)DESCRIBE             导出数据文件的描述信息,记录在数据文件中COL_DEFAULT_SEPARATE 是否单独导出列默认值 (Y)HELP                 打印帮助信息

示例

全库导出: dexp USERID=SYSDBA/fangyu421 FULL=y FILE=full.dmp LOG=full.log DIRECTORY=/tmp
导出某个用户的数据: dexp USERID=SYSDBA/fangyu421 OWNER=fangyu  FILE=fnagyu.dmp LOG=fangyu.log DIRECTORY=/tmp
导出某个模式的数据: dexp USERID=SYSDBA/fangyu421 SCHEMAS=fangyu FILE=fnagyu.dmp LOG=fangyu.log DIRECTORY=/tmp
导出指定的表数据: dexp USERID=SYSDBA/fangyu421 TABLES=t1,t2 FILE=t1_t2.dmp LOG=t1_t2.log DIRECTORY=/tmp

dimp 逻辑备份还原

dimp USERID=SYSDBA/fangyu421 FILE=/dmbak/full.dmp LOG=full.log FULL=Y DIRECTORY=/dmbak/dimp/

FILE: 指定要导入的文件
DIRECTORY: 在导入过程中, 生成的日志文件会存放在该目录下

作业系统

创建备份作业

全量备份








增量备份





DM8 开发

JDBC 连接数据库

JDBC 接口编程

JDBC (Java Database Connectivity) 是 Java 应用程序与数据库的接口规范,旨在让各数据库开发商为 Java 程序员提供标准的数据库应用程序编程接口 (API)
JDBC 定义了一个跨数据库、跨平台的通用 SQL 数据库 API。
DM JDBC 数据库驱动程序是一个能够支持基本 SQL 功能的通用应用程序编程接口,
支持一般的 SQL 数据库访问。通过 JDBC 驱动程序,用户可以在应用程序中实现对 DM 数据库的连接与访问,

JDBC 驱动程序的主要功能包括:
建立与 DM 数据库的连接。
转接发送 SQL 语句到数据库。
处理并返回语句执行结果。

JDBC 连接池

数据库连接池负责分配、管理和释放数据库连接。它允许应用程序重复使用一个现有的数据库连接,
而不是再重新建立一个;对空闲时间超过最大空闲时间的数据库连接能自动释放,
避免因数据库连接未释放而引起的连接泄露问题

JDBC常见连接池

1、C3P0:是一个开放源代码的JDBC连接池,实现jdbc3和jdbc2扩展规范说明的Connection 和Statement 池的DataSources 对象。
2、Proxool:是一个Java SQL Driver驱动程序,提供了对选择的其它类型的驱动程序的连接池封装。可以透明地为现存的JDBC驱动程序增加连接池功能。
3、Jakarta DBCP:DBCP是一个依赖Jakartacommons-pool对象池机制的数据库连接池。DBCP可以直接在应用程序中使用。
4、BoneCP:是一个快速、开源的数据库连接池。帮用户管理数据连接,让应用程序能更快速地访问数据库。比C3P0/DBCP连接池速度快25倍。
5、Druid:Druid不仅是一个数据库连接池,还包含一个ProxyDriver、一系列内置的JDBC组件库、一个SQL Parser。
6、Hikari:Hikari是一款非常强大,高效,并且号称“史上最快连接池”。在springboot2.0之后,采用的默认数据库连接池就是Hikari。

JDBC连接基础参数

jdbc.driver=dm.jdbc.driver.DmDriver
jdbc.url=jdbc:dm://localhost:5236
jdbc.username=test
jdbc.password=Test12345

ODBC 连接数据库

开放数据库连接, 为解决异构数据库间的数据共享而产生的, ODBC 为异构数据库访问提供统一接口, 允许应用程序以SQL 为数据存取标准, 存取不同DBMS管理的数据
使应用程序直接操纵DB中的数据, 免除随DB的改变而改变。用ODBC 可以访问各类计算机上的DB文件
DM ODBC 3.0 遵照 Microsoft ODBC 3.0 规范设计与开发, 实现了 ODBC 应用程序与 DM 数据库的互连接口
用户可以直接调 DM ODBC 3.0 接口函数访问 DM, 也可以使用可视化编程工具如 C++ Builder、PowerBuilder 等利用 DM ODBC 3.0 访问 DM 数据库

查看ODBC信息

 [dmdba@itsdata bin]$ odbcinst -junixODBC 2.3.1DRIVERS............: /etc/odbcinst.iniSYSTEM DATA SOURCES: /etc/odbc.iniFILE DATA SOURCES..: /etc/ODBCDataSourcesUSER DATA SOURCES..: /home/dmdba/.odbc.iniSQLULEN Size.......: 8SQLLEN Size........: 8SQLSETPOSIROW Size.: 8[dmdba@itsdata bin]$

配置ODBC

[root@itsdata ~]# vi /etc/odbcinst.ini [DM8 ODBC DRIVER]
Description = ODBC DRIVER FOR DM8
Driver = /dm8/bin/libdodbc.so[root@itsdata ~]# vi /etc/odbc.ini[DM8]
Description = DM ODBC DSN
Driver = DM8 ODBC DRIVER
SERVER = localhost
UID = SYSDBA
PWD = SYSDBA
TCP_PORT = 5236

测试连接

 [dmdba@itsdata ~]$ isql dm8 -v+---------------------------------------+| Connected!                            ||                                       || sql-statement                         || help [tablename]                      || quit                                  ||                                       |+---------------------------------------+SQL> select status$ from v$instance;+---------------------------------------------------------------------------------------------------------------------------------+| STATUS$                                                                                                                         |+---------------------------------------------------------------------------------------------------------------------------------+| OPEN                                                                                                                            |+---------------------------------------------------------------------------------------------------------------------------------+SQLRowCount returns 11 rows fetchedSQL>

更多详情请访问达梦在线服务平台 https://eco.dameng.com/

达梦 DCA 培训总结相关推荐

  1. 我的达梦DCA培训小记

    @达梦 我的达梦DCA培训笔记 感谢达梦大学给予我三天时间的培训.新冠疫情期间,不能到现场开展面对面的学习,单依然无法阻挡我们学习达梦数据库基础运维的热情. 感谢我们的王文欢老师.李梦等老师的辛勤付出 ...

  2. 圆你国产数据库DBA之梦,达梦DCA培训考试券免费拿

    2020首届达梦数据库精英挑战赛是在工信部等各级单位指导下,达梦公司联合国内信创产业知名企业共同打造信创人才"万人培养计划". 活动报名 报名时间:2020年7月22日-8月5日 ...

  3. 【DM】达梦DCA培训及考试认证

    达梦DCA 安装前准备 安装达梦数据库 创建数据库实例 使用DM管理工具 SQL 开启归档 数据库备份与还原 作业管理 ODBC DCA考试 达梦数据库是一款全自主的国产数据库,近年来在信息创新项目中 ...

  4. 达梦DCA培训及认证总结

    有幸参加了达梦DCA培训课程及认证考试,培训为期3天,培训老师对国产数据库的现状及未来做了精彩的介绍,然后对整个达梦数据库的产品线做了详细的讲解,后面开始对DM8数据库安装及各类基本操作进行实操培训, ...

  5. 达梦DCA培训 考试培训总结(部分内容)

    经过达梦公司组织的达梦数据库DCA培训,我获益良多,现分享我的个人学习心得笔记. 上课环境 操作系统:银河麒麟V10 数据库: DM8企业版(去达梦官网上下载支持低版本操作系统的安装包) 虚拟机:VM ...

  6. 达梦DCA培训考试笔记

    软件安装 Libc版本 Dm安装包要求得版本高于系统版本可能会报错 [root@localhost root]# ldd  --version ldd (GNU libc) 2.28 Copyrigh ...

  7. 达梦DCA培训笔记20220810-20220812

    注意事项 数据库创建完成后,如果没有初始化,可以通过使用达梦数据库配置助手创建一个数据库实例. 创建数据库时,默认情况下勾选字符串比较大小写敏感. 可以通过达梦服务查看器查看当前系统中存在的服务,包含 ...

  8. 达梦DCA认证培训考试心得体会

    一.概述 达梦数据库DCA认证是属达梦数据库入门级认证,主要针对在实际工作中系统维护实操不多的学员.线上培训三天即可预约报名参加认证考试,考试全部为机考.主要考试的知识点如下: 机试(95 分):安装 ...

  9. 达梦数据库培训学习学习心得

    达梦数据库培训学习心得内容 表空间管理 总结 学习了数据库行业的发展状态.国产数据库现状,介绍了达梦公司和达梦产品的历程,让我们明白了公司从无到有的一个过程. DM7的安装前的配置流程 1.收集软件信 ...

  10. 达梦DCA 认证考试培训学习技术分享

    DCA考试整体难度适中,有ORACLE的经验相对容易,内容上大部分兼容oracle.考试时间2小时,全为上机实操,包含:数据库安装.实例创建.参数修改.创建表空间.创建用户.角色.权限管理: 创建表. ...

最新文章

  1. 30个精美的模板,贺卡,图形圣诞素材
  2. php邮箱文件发送源码,php简单实现发送带附件的邮件
  3. html滑动直播,HTML5 canvas实现的静态循环滚动播放弹幕
  4. Android新权限机制 AppOps
  5. Oracle 双机热备 镜像 纯软 实战 配置教程 配置手册
  6. Python必备知识点:对Json的基本使用方法
  7. Web 趋势榜:上周最有意思又热门的 10 大 Web 项目 - 210709
  8. main函数执行前执行一个函数的写法
  9. 2017 年全国大学生电子设计竞赛试题——四旋翼自主飞行器探测跟踪系统(C 题)【本科组】1
  10. Kotlin Weekly 中文周报
  11. jzoj3853-帮助Bsny【dp】
  12. 数据结构之图:有向图的介绍与实现,Python代码实现——25
  13. 合众朱光林:借O2O模式反馈企业才有价值
  14. qqbot python_Python3.6 QQBot 机器人 - 注册响应函数
  15. OleDb与Access数据访问中日期时间参数类型错误和命名参数的用法
  16. 解决“HTTP Error 401 – Unauthorized”
  17. Swift和Object-C的区别和优缺点
  18. mysql数据库order by_[数据库]mysql 使用order by
  19. Cursor的关闭问题
  20. 小时候的蓝精灵,大家还记得木有哇?

热门文章

  1. 如何剪裁证件照大小?2寸证件照片怎么制作?
  2. win10计算机切换用户,win10系统账户切换的三种方法
  3. 国产手机的18年历史
  4. ARM基础学习-寄存器寻址方式和指令
  5. The Perfect Match: 3D Point Cloud Matching with Smoothed Densities
  6. mysql 分区表max_mysql 分区
  7. 练习4.4 萨提亚冰山理论应用
  8. jQuery创建表格
  9. 基于R语言的分位数回归(quantile regression)
  10. 干货满满!亲测国内四大AI智能抠图网站