达梦数据库学习分享

本文详细介绍了数据库的多种集群模式,包括数据守护集群的实时归档、读写分离集群的即时归档以及DSC集群的本地归档和远程归档。讨论了数据库的模式转换、状态切换以及数据库的高可用性、高吞吐量和负载均衡特性。此外,还深入探讨了事务一致性、锁机制、物理和逻辑备份以及归档配置的相关内容,为数据库管理和维护提供了全面的知识框架。
摘要由CSDN通过智能技术生成
  1. 数据库状态和模式
  2. 数据守护集群基本归档模式:实时归档
  3. 读写分离集群基本归档模式:即时归档
  4. 实时归档:redo日志写入日志文件前,先发送给备机并等待返回确认消息,备机接受redo日志后,马上通知自己已经接受到日志了,在进行重演
  5. 即时归档:redo日志写入日志文件后,再发送redo日志到备机,等备机进行完日志重演后,再通知主机返回消息。

  1. 数据库模式
  2. 所有模式转换,必须在mount状态下进行
  3. normal:服务正常,操作无限制(常用于单机)
  4. primary:服务正常,修改对象强制生成redo日志
  5. standby:只读访问,实时归档失效,根据配置向本地归档写redo日志
  6. primary和standby的区别:primary模式是可读可写的,standby不支持实时归档
  7. 数据库状态
  8. 三种状态可以相互切换,mount不能直接切换成suspend,只能先切换到open再切换到suspend
  9. open:可读可写
  10. mount:不能修改数据,不能访问表,视图之类操作,可以查询动态性能
  11. suspend:挂起状态,可以访问、修改数据库对象,但是不建议提交数据,否则整个页面都会被挂起
  12. startup:数据库启动后的状态,在进行redo日志重做,在redo日志重做完成之后,回滚活动事务之前,处于after  redo状态
  13. shutdown:数据库关闭状态
  1. 数据库和数据库集群原理

数据库

dm数据库指的是磁盘上存放在DM数据库中的数据的集合,一般包括:数据文件、日志文件、控制文件以及临时数据文件等。

实例

一般是由一组正在运行的 DM 后台进程/线程以及一个大型的共享内存组成。简单来说,实例就是操作 DM 数据库的一种手段,是用来访问数据库的内存结构以及后台进程的集合。

DM 数据库存储在服务器的磁盘上,而 DM 实例则存储于服务器的内存中

数据守护集群

1.数据守护集群的概述

DM数据守护(Data Watch)是一种集成化的高可靠性解决方案,同时满足用户对数据安全性和高可用性的要求。解决由于硬件故障、

自然灾害等原因导致的数据库服务长时间中断问题,满足用户不间断提供数据库服务的要求,即双机热备。

2.数据守护集群实现原理

将主库产生的 Redo日志传输到备库,备库接收并重演Redo日志,从而实现备库与主库的数据同步。

DM数据守护的核心思想是监控数据库状态,获取主、备库数据同步情况,为 Redo 日志传输与重演过程中出现的各种异常情况提供一系列的解决方案。

读写分离集群

1.读写分离集群概述

读写分离集群是基于即时归档实现的高性能数据库集群,不但提供数据保护、容灾等数据守护基本功能,还具有读写操作自动分离、负载均衡等特性。

2.读写分离集群特点

 1)纯读操作的事务全部在备机执行

 2)纯写操作的事务全部在主机执行

 3)既有读又有写的事务,从写事务开始全部在主机执行

3.读写分离集群实现过程

 1)接口收到用户请求

 2)接口优先将sql发送到备库执行

 3)备库执行并返回执行结果,如果接口收到的是备库执行成功消息,则转到第6步,如果接口收到的是备库执行失败的消息,则转到第4步

 4)重新将执行失败的sql发送到主库执行,只要第3步中的sql在备库执行失败,则同一个事务后续的所有操作都会直接发送到主库执行

 5)主库执行并返回执行结果给接口。一旦主库上执行的写事务提交,则下次继续从第1步开始执行

 6)接口响应用户并将执行结果返回给用户

DSC集群

1.dsc集群概述

dsc集群是一个多实例,单数据库的集群,多个数据库实例可以访问、修改一个数据库里的数据,用户可以登录集群中任意

一个数据库实例,或得完整的数据库服务。数据文件、控制文件在集群系统中只有一份,集群中的多个节点同时使用这些文件

数据文件和控制文件等存放在共享磁盘上,每个节点都有自己独立的日志文件和归档文件,在节点本地存储。

2.dsc集群组件

 1)数据库和数据库实例:数据库是一个文件的集合,数据库是一组可以操纵数据库的操作系统进程(单进程或单进程多线程)

 2)共享存储:集群中,为了实现多个数据库实例可以同时访问、修改数据,要求将数据文件、控制文件、日志文件存放在共享存储中。

 3)本地存储:用来保存配置文件(dm.ini、dmmal.ini、dmarch.ini),本地归档日志,远程归档日志。

 4)通信网络:集群中,网络分为内部网络和公共网络两个部分。内部网络用于数据库实例间的互相交互信息和数据,如mal系统使用的内部网络,公共网络用于对外提供数据库服务

 5)集群控制软件DMCSS:负责监控集群中各个节点的运行状态,主要功能包括:管理集群的启动和关闭,控制节点故障切换,管理节点重新加入集群。

3.dsc集群特点

 1)高可用性:集群中,只要有一个节点在运行,就可以正常对外提供数据库服务。

 2)高吞吐量:多个节点同时提供数据库服务,有效提升集群事务处理能力。

 3)负载均衡:用户连接请求,被平均分配到集群中各个节点,确保各个节点的负载大致平衡。

 4.dsc集群实现原理

 DMDSC是一个共享存储的数据库集群系统,多个数据库实例同时访问、修改同一个书库,因此带来了全局并发问题,DMDSC集群基于单节点数据库管理系统之上

 改造了buffer缓冲区、事务系统、封锁系统和日志系统等,来适应共享存储集群节点间的全局并发访问控制要求,同事,引入缓冲交换技术,来提升数据在节点间的传递效率。

归档配置

本地归档:最多配置8个,写入redo日志到本地归档文件,在redo日志写入日志文件后触发

实时归档:最多配置8个,在redo日志写入到日志文件前,通过mal系统发送redo日志到远程备机并等待返回消息

即时归档:最多配置8个,在redo日志写入到日志文件后,通过mal系统发送reod日志到远程备机并等待重演完成后返回消息

异步归档:最多配置8个,由主备机定时同步日志到异备

单机采用本地归档

数据守护集群采用实时归档

读写分离集群采用即时归档

DMDSC集群采用本地归档和远程归档

即时归档分为事务一致模式和高性能模式,通过dmarch.ini中ARCH_WAIT_APPLY配置项来确定,1表示事务一致模式,0表示高性能模式

事务一致模式:主库事务提交触发redo日志刷盘和即时归档,备库收到主库发送的redo日志,并重演完成后再响应主库,主库收到备库响应消息后

再响应用户的提交请求,事务一致模式下,同一个事务的select语句无论是在主库执行,还是在备库执行,查询结果到满足read commit隔离级别要求。

高性能模式:和实时归档一样,备库收到主库发送的redo日志后,马上响应主库,再进行重演,高性能模式下,备库与主库的数据同步存在一定延时

(一般情况下延迟时间非常短暂,用户几乎感觉不到),不能严格保证事务一致性。

keep_pkg作用:用于存放备库收到的主库通过mal系统发送的redo日志包,并不马上进行重演,防止在主库发送完redo日志后,主库故障,等主库修复后,主备库数据不统一的问题,而即时归档不存在这种机制。

3.事务锁

3.1锁模式

1.共享锁(S)

用于读操作,防止其他事务修改正在访问的对象。

s锁允许多个事务同时读取相同的资源,但是不允许任何事务修改这个资源。

2.排它锁(X)

用于写操作,以独占的方式访问对象,不允许任何其他事务访问被封锁对象;防止多个事务同时修改相同的数据,避免引发数据错误,防止其他事务访问一个正在修改的对象,避免数据不一致。

3.意向锁

意向锁(Intent Lock)用于读取或修改被访问对象数据时使用,多个事务可以同时

对相同对象上意向锁,DM 支持两种意向锁:

意向共享锁(IS)

一般在只读访问对象时使用;

不允许其他事务独占修改该表。意向共享锁定后,不同事务可以同时增、删、改、查该表的数据,也支持在该表上创建索引,但不支持修改该表的定义。

意向排它锁(IX)

一般在修改对象数据时使用;

不允许其他事务独占访问和独占修改该表。被意向排他后,不同事务可以同时增、删、改、查该表的数据,不支持在该表上创建索引,也不支持修改该表定义。

3.2锁粒度

按照封锁对象的不同,锁可以分为 TID 锁和对象锁。

1.TID锁

数据库每一行记录隐含一个TID字段,用于事务可见性判断。执行 insert delete update操作时,设置事务的事务号到TID字段,会隐式地为该行上TID锁。

同一事务的增删改,不会导致对该行重新加锁,提升了性能。

不同事务操作相同行时,第二个事务会加锁,其锁对象为第一个事务的TID号。

DM使用多版本并发控制机制,因此不再存在行锁的概念。

2.对象锁

DM取消了传统数据库的数据字典锁和表锁,引入对象锁用以减少事务冲突,提升并发性能。为提供与表锁同样的功能,从逻辑上将对象锁的动作分为四类:

1.独占访问(EXCLUSIVE ACCESS),不允许其他事务修改对象,不允许其他事务访问对象,使用 X 方式封锁

2.独占修改(EXCLUSIVE MODIFY),不允许其他事务修改对象,允许其他事务共享访问对象,使用 S + IX 方式封锁

3.共享修改(SHARE MODIFY),允许其他事务共享修改对象,允许其他事务共享访问对象,使用 IX 方式封锁

4.共享访问(SHARE ACCESS),允许其他事务共享修改对象,允许其他事务共享访问对象,使用 IS 方式封锁

3.显示锁定表

用户可以根据自己的需要显式的对表对象进行封锁。显式锁定表的语法如下:

LOCK TABLE <table_name> IN <lock_mode> MODE [NOWAIT];

Lock_mode的取值:

SHARE     加共享锁

EXCLUSIVE 加排它锁

INTENT SHARE 意向共享锁

INTENT EXCLUSIVE 意向排它锁

参数nowait,若提供,则表示对表加锁时若不能立即上锁,就返回加锁失败错误。

3.3查看锁

命令:

select * from v$lock;

 

列含义

字段

含义

ADDR

表示锁的内存地址

TRX_ID

表示锁所属的事务 ID

LTYPE 

表示锁的类型,OBJECT(对象锁)或者 TIDTID 锁)

LMODE 

锁的模式,S(共享锁)X(排他锁)IS(意向共享锁)IX(意向排它锁)

BLOCKED 

表示锁是否处于上锁等待状态(0表示上锁成功,1处于上锁等待状态)

TABLE_ID

对于对象锁,表示表对象或字典对象的 ID,对于 TID 锁,表示封锁记录对应的表 ID

ROW_IDX

TID 锁封锁记录的行信息

TID

TID 锁对象事务 ID

3.4阻塞和死锁

1.阻塞

insert产生阻塞原因:当多个事务同时试图向有主键或UNIQUE约束的表中插入相同的数据时,前一个事务未提交,后面的事务将被阻塞,直到前一个事务提交或回滚。

update和delete产生阻塞原因:操作执行时,如果有别的事务正在对操作的行进行相同类型的操作,则在别的事务提交,或者回滚前,操作一直会阻塞。

2.死锁

死锁与阻塞的不同之处在于死锁包括两个或者多个已阻塞事务,它们之间形成了等待环,每个都等待其他事务释放锁。

例如事务1给表T1上了排他锁,第二个事务给表T2上了排他锁,此时事务1请求T2的排他锁,就会处于等待状态,被阻塞。若此时T2再请求表T1的排他锁,则T2也处于阻塞状态。此时这两个事务发生死锁,DM数据库会选择牺牲掉其中一个事务。

3.5锁等待解决方法

  1. 获取表id

select name, id from sysobjects where name = '表名';

注:此命令的表名需要大写

  1. 查询处于等待的锁

方法一:

select TRX_ID, LTYPE, LMODE, BLOCKED, BLOCKED TABLE_ID, TID from v$lock where table_id = 表的id;

例:

 

BLOCKED为1是处于上锁等待状态

方法二:

Select * from v$trxwait;

例:

  1. 根据事务id找到会话id

select sess_id, sql_text, trx_id from v$sessions where trx_id=10035;

例:

  1. 通过会话id结束会话

sp_close_session(会话id);

3.物理备份

  1. 1备份还原工具

命令行:

Disql:联机数据备份与还原,包括库备份、表空间备份与还原、表备份与还原

Dmrman:脱机数据库备份还原与恢复

图形化:

Manager:联机数据备份与还原,包括库备份、表空间备份与还原、表备份与还原

Console:脱机数据库备份还原与恢复

1.2创建实例

初始化实例

1.3归档配置

在进行备份前,首先要设置归档配置

1.3.3Sql配置

登录disql工具

Alter database mount;

修改数据库模式为mount

alter database add archivelog 'dest = /dm8/dm_arch/arch, type = local, file_size = 1024, space_limit = 2048';

配置本地归档,存放路径在/dm8/dm_arch/arch,文件大小为1024M,最大上限2048M

Alter database archivelog;

开启归档

开启归档后将数据库的状态改回open

1.3.2手动配置

手动编辑dmarch.ini文件,保存在dm.ini文件所在路径

注:dm.ini文件中需要设置ARCH =1,表示启用归档

1.4disql联机备份

1.4.1数据库备份

完全备份:

FULL参数可省略,默认为完全备份

Backup database full backupset 'db_bak_03'

Backup database backupset 'db_bak_03';

完全备份中,可指定DDL_CLONE(数据库克隆)参数,只备份定义不备份数据。该参数只用于数据库级完全备份中。

增量备份:

 BACKUP DATABASE INCREMENT WITH BACKUPDIR '/home/dm_bak' BACKUPSET '/dm8/dm_arch/arch/db_increment_bak_02';

在数据库中新建表,添加数据,进行备份

进行备份

再添加数据进行增备

进行增备

1.4.2表空间备份

完全备份:

Backup tablespace main backupset '/dm8/dm_arch/ts_bak/ts_bak_01';

注:备份目录自己生成,不用创建

增量备份:

backup tablespace main increment with backupdir '/dm8/dm_arch/ts_bak' backupset '/dm8/dm_arch/ts_bak/ts_bak_02';

注:备机状态/MOUNT状态/MPP和RAC环境均不允许表空间备份。

1.4.3表备份

表备份均为联机完全备份,不需要备份归档日志,不存在增量备份之说。

Backup table test backupset 'tab_bak_01'

注:备机状态/MOUNT状态/MPP和RAC环境均不允许表备份还原。

1.4.4归档备份

归档备份拷贝指定归档目录下的所有的归档文件到备份集中。

备份归档需要服务器配置归档。

Bakcup archive log all backupset 'arch_bak_01';

1.4.5数据库加密备份

例:数据库完全备份,创建加密密码为“1111111111”,加密算法为“rc4”,复杂数据库加密备份:backup database backupset '/dm8/dm_arch/dm_bak/dm_bak_01' identified by "111111111" with encryption 2 encrypt with rc4;

其中, 参数WITH ENCRYPTION(默认值为 1 ,简单加密) 和 ENCRYPT WITH(默认加密算法AES256_CFB)可不指定。

1.5disql还原

注:DIsql只能进行表空间和表的还原,库还原使用脱机工具DMRMAN。

1.5.1表还原

先删除一条数据,进行还原测试

restore table test from backupset 'tab_bak_01';

查看数据是否还原

还原完成

备份文件与目标表中都包含索引或约束该如何还原

1) 保证数据库为 OPEN 状态;

2) 创建待备份的表;

  1. 创建索引

  1. 备份表

5)执行表结构还原,表备份和目标表中都包含索引,如果直接执行表数据还原会报错:

还原表中存在二级索引或冗余约束;

STRUCT执行表结构还原,若未指定,则认为是表中数据还原;表数据还原要求还原

目标表结构与备份集中完全一致,否则报错,所以表结构还原可以在表数据还原之前执行,

减少报错

6)执行表数据还原。

1.5.2表还原高级主题

DIsql 工具仅支持对表进行还原。

指定还原时不重建索引

表备份时会默认备份表中的索引,还原时使用RESTORE TABLE...WITHOUT INDEX...语句可选择不还原索引。完整示例如下:

1) 保证数据库为 OPEN 状态;

2) 准备数据,创建待备份的表及索引

  1. 备份表数据

  1. 还原表数据,但不重建索引。

指定还原时不重建约束

表备份时会默认备份表中的索引定义,还原时使用 RESTORE TABLE...WITHOUT

CONSTRAINT...语句可选择还原时不重建约束。完整示例如下

1) 保证数据库为 OPEN 状态;

2) 准备数据,创建待备份的表及索引;

3) 备份表数据;

4)还原表数据,但不还原约束。

1.6dmrman脱机备份

数据库出入关闭状态

使用dmrman工具

1.6.1数据库备份

完成备份:

backup database '/home/dmdba1/dmdbms/data/dm02/dm.ini' backupset '/home/dm_bak/db_bak_01';

增量备份:

backup database '/home/dmdba1/dmdbms/data/dm02/dm.ini' increment with backupdir '/home/dm_bak' backupset '/home/dm_bak/db_increment_02';

1.6.2归档备份

创建归档备份

backup archive log all database '/home/dmdba1/dmdbms/data/dm02/dm.ini' backupset '/home/dm_bak/arch_all_bak_01';

创建设置条件的归档备份:

  通过设置 LSN 或者时间点,控制需要备份归档的范围。

backup archive log lsn between 50000 and 20000 database '/home/dmdba1/dmdbms/data/dm02/dm.ini' backupset '/home/dm_bak/db_increment_bak_02';

1.6.3加密备份

例:数据库完全备份,创建加密密码为“cdb546”,加密算法为“rc4”,复杂数据库加密备份:

backup database '/home/dmdba1/dmdbms/data/dm02/dm.ini' backupset '/home/dm_bak/db_bak_for_encrypt_04' identified by "111111111" with encryption 2 encrypt with rc4;

其中, 参数WITH ENCRYPTION(默认值为 1 ,简单加密) 和 ENCRYPT WITH(默认加密算法AES256_CFB)可不指定。

1.6.4备份管理

备份集查看

备份集校验

备份集删除

  1. 查看备份集

show backupset '/home/dm_bak/db_bak_01';

  1. 校验特定备份集

ckeck backupset 'db_bak_01' database '/home/dmdba1/dmdbms/data/dm02/dm.ini';

  1. 删除备份集

REMOVE BACKUPSET '/home/dm_bak/db_bak_for_remove_01';

批量删除所有备份集:

REMOVE BACKUPSETS WITH BACKUPDIR '/home/dm_bak';

批量删除指定时间之前的备份集:

REMOVE BACKUPSETS WITH BACKUPDIR '/home/dm_bak' UNTIL TIME'2015-11-1 00:00:00';

4.逻辑备份

4.1dexp命令行式导出

Cd /dm8/bin

进入dm数据库的安装目录中的bin目录中

执行:./dexp help

查看dexp工具所有参数的详细介绍

./dexp SYSDBA/SYSDBA@LOCALHOST:5239 DIRECTORY=/dm/dmexp FILE=dexp_SYSDBA_1_%U.dmp OWNER=SYSDBA LOG=dexp_SYSDBA_1_%U.log FILESIZE=200M

DIRECTORY=/dm/dmexp:导出目录为/dm/dmexp

FILE=dexp_emp_1_%U.dmp:导出文件为dexp_emp_1_%U.dmp

OWNER=SYSDBA

LOG=dexp_emp_1_%U.log:日志文件名为dexp_emp_1_%U.log

FILESIZE=200M:每个转储文件的最大大小为200M

导出成功

4.2dimp命令行式导入

进入dm数据库的安装目录中的bin目录中

执行:./dimp help

查看dimp工具所有参数的详细介绍

./dimp SYSDBA/SYSDBA@LOCALHOST:5239 DIRECTORY=/dm/dmexp FILE=dexp_SYSDBA_1_01.dmp LOG=dimp_SYSDBA_1.log TABLE_FIRST=Y

DIRECTORY=/dm/dmexp :导入文件的目录是/dm/dmexp

FILE=dexp_SYSDBA_1_01.dmp:导入文件名称是dexp_SYSDBA_1_01.dmp

LOG=dimp_SYSDBA_1.log:日志文件为dimp_SYSDBA_1.log

TABLE_FIRST=Y:Y是先导入表

导入完成

5.常用查询语句

查看数据库实例信息

SELECT "NAME" "实例名称" ,"INSTANCE_NUMBER" "实例ID" ,"HOST_NAME" "主机名称" ,"SVR_VERSION" "服务器版本" ,"DB_VERSION" "数据库版本" ,"START_TIME" "服务器启动时间" ,"STATUS$" "系统状态" ,"MODE$" "数据库模式" ,"OGUID" "控制文件的 OGUID",SF_GET_PARA_VALUE(2,'PORT_NUM') "端口号"FROM V$INSTANCE;

字符集

select '字符集',DECODE(UNICODE,'0','GB18030','1','UTF-8','2','EUC-KR');

大小写是否敏感

select '大小写敏感',DECODE(SF_GET_CASE_SENSITIVE_FLAG,'0','不敏感','1','敏感');

varchar以字符为单位

select 'char是否以字符为单位', DECODE(PARA_VALUE,0,'否',1,'是') from V$DM_INI WHERE "V$DM_INI".PARA_NAME='LENGTH_IN_CHAR';

页大小

select '页大小',page()/1024||'KB';

兼容性要求

select '数据库兼容',DECODE(PARA_VALUE,0,'不兼容',1,'SQL92',2,'Oracle',3,'MS SQL Server',4,'MySQL',5,'DM6',6,'Teradata') from v$dm_ini where para_name='COMPATIBLE_MODE';

关键字过滤

select '关键字过滤',PARA_VALUE from v$dm_ini where para_name ='EXCLUDE_RESERVED_WORDS';

同时核实dm_svc.conf

cat /etc/dm_svc.conf grep KEYWORDS

查询表空间名称和大小

select name, total_size * sf_get_page_size() / 1024 / 1024 || 'M' from v$tablespace;

查看控制文件所在路径

select para_value name from v$dm_ini where para_name='CTL_PATH';

查看日志文件大小

select PATH, RLOG_SIZE / 1024 / 1024 || 'M' from v$rlogfile;

查看数据库创建日期和归档方式

select create_time,case when arch_mode = 'n' then '非归档模式' else '归档模式' end arch from v$database;

查询活动会话数

select count(*) from v$sessions where state='ACTIVE';

查询已执行超过 2 秒的活动 SQL

select * from (select SESS_ID, SQL_TEXT, DATEDIFF(SS,LAST_RECV_TIME,SYSDATE) Y_EXETIME, SF_GET_SESSION_SQL(SESS_ID) FULLSQL, CLNT_IP FROM V$SESSIONS WHERE STATE='ACTIVE') WHERE Y_EXETIME >=2;

锁查询

SELECT O.NAME,L.* FROM V$LOCK L,SYSOBJECTS O WHERE L.TABLE_ID=O.ID AND BLOCKED=1;

阻塞查询

WITH LOCKS

     AS (SELECT O.NAME,L.*,S.SESS_ID,S.SQL_TEXT,S.CLNT_IP,S.LAST_SEND_TIME

           FROM V$LOCK L, SYSOBJECTS O, V$SESSIONS S

          WHERE L.TABLE_ID = O.ID AND L.TRX_ID = S.TRX_ID),

     LOCK_TR

     AS (SELECT TRX_ID WT_TRXID, TID BLK_TRXID

           FROM LOCKS

          WHERE BLOCKED = 1),

     RES

     AS (SELECT SYSDATE STATTIME,T1.NAME,T1.SESS_ID WT_SESSID,S.WT_TRXID,

                T2.SESS_ID BLK_SESSID,S.BLK_TRXID,T2.CLNT_IP,

                SF_GET_SESSION_SQL (T1.SESS_ID) FULSQL,

                DATEDIFF (SS, T1.LAST_SEND_TIME, SYSDATE) SS,

                T1.SQL_TEXT WT_SQL

           FROM LOCK_TR S, LOCKS T1, LOCKS T2

          WHERE     T1.LTYPE = 'OBJECT'

                AND T1.TABLE_ID <> 0

                AND T2.LTYPE = 'OBJECT'

                AND T2.TABLE_ID <> 0

                AND S.WT_TRXID = T1.TRX_ID

                AND S.BLK_TRXID = T2.TRX_ID)

SELECT DISTINCT WT_SQL,CLNT_IP,SS,WT_TRXID,BLK_TRXID

  FROM RES;

查看数据库运行时长

SELECT (SYSDATE-START_TIME)*24 db_lifetime FROM V$INSTANCE;

查看表空间使用情况

select a.tablespace_name,

       a.total_mb,

       round(b.free_mb, 2) free_mb,

       TO_CHAR(ROUND((a.total_mb - b.free_mb) / a.total_mb * 100, 2),

               '990.99') || '%' "usage %"

  from (select tablespace_name, sum(bytes) / 1024 / 1024 total_mb

          from dba_data_files

         group by tablespace_name) a,

       (select tablespace_name, sum(bytes) / 1024 / 1024 free_mb

          from dba_free_space

         group by tablespace_name) b,

       dba_tablespaces d where a.tablespace_name = b.tablespace_name(+)

   and a.tablespace_name = d.tablespace_name(+)order by 4 desc;

6常用命令

主备集群注册服务:

server主:./dm_service_installer.sh -t dmserver -m mount  -dm_ini /home/dmdba/dmdbms/data/DAMENG/dm.ini -p DM22

server备:./dm_service_installer.sh -t dmserver -m mount  -dm_ini /home/dmdba/dmdbms/data/DAMENG/dm.ini -p DM23

watcher主:./dm_service_installer.sh -t dmwatcher -watcher_ini /home/dmdba/dmdbms/data/DAMENG/dmwatcher.ini -p DM22

watcher备:./dm_service_installer.sh -t dmwatcher -watcher_ini /home/dmdba/dmdbms/data/DAMENG/dmwatcher.ini -p DM23

查看所有会话

select count(*) from v$sessions;

达梦统计信息变化的查询方法

dbms_stats.INDEX_STATS_SHOW('模式名','索引名'):展示索引统计信息

dbms_stats.TABLE_STATS_SHOW('模式名','表名'):展示表统计信息

dbms_stats.COLUMN_STATS_SHOW('模式名','表名', '列名'):展示列统计信息

disql中查看归档信息

select arch_mode from v$database;

select * from v$dm_arch_ini;

查看已注册系统服务的实例

systemctl list-unit-files |grep DmService

删除服务

cd /home/dmdba1/dmdbms/script/root

./dm_service_uninstaller.sh -n 服务名

创建表空间

create tablespace "test" datafile 'test.dbf' size 128 autoextend on next 2048;

创建用户

create user 用户 identified by '密码' defalut tablespace "test" default index tablespace"test"

创建聚集索引

create clustered index on table(id);

赋予权限

grant "public","resource","vti","soi" to "用户";

取消用户限制

alter user "用户" limit failed_login_attemps unlimited, password_lock_time unlimited, password_grace_time unlimited;

删除用户

drop user "用户" cascade;

删除表空间

drop tablespace "表空间名"

disql

数据库备份:

      全备命令:backup database backupset '备份路径'

      增备命令:backup database increment with backupdir '备份文件所存目录'  backupset '新生成的备份文件';

表空间备份:

      全备命令:backup tablespace 表空间 backupset  '备份路径'

      增备命令:backup tablespace 表空间 increment with backupdir '备份文件所在目录' backupset '新生成的备份文件名';

归档备份:

   Bakcup archive log all backupset 'arch_bak_01';

数据库加密备份:

     backup database backupset '备份路径' identified by "密码" with encryption 2 encrypt with rc4;

disql表还原:

    restore table test from backupset '备份文件';

表结构还原:

    restore table t1 struct from backupset '备份文件';  --struct:执行表结构还原,若未指定,则是还原表数据。

dmrman脱机备份:

库全备:

   backup database '/home/dmdba/dmdbms/data/DAMENG/dm.ini' backupset '/home/dm_bak/db_bak_01';

库增备:

   backup database '/home/dmdba/dmdbms/data/DAMENG/dm.ini'  increment with backupdir '/home/dm_bak backupset /home/dm_bak/db_increment_02';

归档备份:

   backup archive log all database '/home/dmdba/dmdbms/data/DAMENG/dm.ini' backupset '/home/dm_bak/arch_all_bak_01';

有条件的归档备份:通过设置LSN或时间点,控制需要备份归档的范围

   backup archive log lsn between 50000 and 20000 database '/home/dmdba/dmdbms/data/DAMENG/dm.ini' backupset '/home/dm_bak/db_increment_bak_02';

查看备份集

   select * from v$backupset;

查看备份集

   show backupset '/home/dm_bak/db_bak_01';

删除备份集

   remove backupset '/home/dm_bak/db_bak_for_remove_01';

dmrman还原数据库:

   restore database '/home/dmdba/dmdbms/data/DAMENGdm.ini' from backupset '备份文件所在目录';

更新db_magic恢复:

   recover database '/home/dmdba/dmdbms/data/DAMENG/dm.ini' update db_magic;

恢复数据库:

   recover database '/home/dmdba/dmdbms/data/DAMENG/dm.ini' from backupset '备份文件所在目录';

利用归档恢复数据库:

   recover database '/home/dmdba/dmdbms/data/DAMENG/dm.ini' with archivedir '归档备份文件所在目录'

达梦数据库 - 新一代大型通用关系型数据库 | 达梦云适配中心

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值