注册
达梦数据库:运维常用系统视图、系统表、SQL语句、授权(key)替换
专栏/技术分享/ 文章详情 /

达梦数据库:运维常用系统视图、系统表、SQL语句、授权(key)替换

肖鹏程 2023/10/07 1939 1 0
摘要

常用系统视图

视图名 作用
v$database 显示数据库信息
v$tablespace 可查询表空间信息
v$datafile 可查询数据文件信息
v$dm_arch_ini 显示归档信息
v$instance 显示数据库实例信息
v$rlogfile 显示日志文件信息
v$version 可查询数据库版本信息
v$sessions 显示会话的具体信息
v$lock 查看数据库当前锁信息
v$mem_pool 显示内存池信息
v$deadlock_histor 记录死锁的历史信息
v$TRX 显示所有活动事务的信息,如锁信息

常用系统表

系统表名 作用
SYSOBJECTS 可查询所有对象
SYSCOLUMNS 可查询表的所有列的信息
dba_tables 可查询表信息(包括系统表)
dba_users 可查询系统所有用户
dba_data_files 可查询数据库文件信息
dba_segments 可查询模式
all_tables 可查询所有用户的表
user_tables 可查询当前用户所拥有的所有表
user_tablespaces 可查询表空间

常用SQL语句

(1) 查询表空间名称和大小

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

image.png
(2) 查看表空间物理文件的名称和大小

select t.name tablespace_name, t.id file_id, d.path file_name,
       d.total_size * sf_get_page_size() / 1024 / 1024 || 'M' total_space
  from v$tablespace t, v$datafile d
 where t.id = d.group_id;

image.png
(3) 查看表空间使用情况

select t1.NAME tablespace_name,
       t2.FREE_SIZE * SF_GET_PAGE_SIZE() / 1024 / 1024 || 'M' free_space,
       t2.TOTAL_SIZE * SF_GET_PAGE_SIZE() / 1024 / 1024 || 'M' total_space,
       t2.FREE_SIZE * 100 / t2.total_size" % FREE" 
  from V$TABLESPACE t1, V$DATAFILE t2 where t1.ID = t2.GROUP_ID;

image.png
(4) 查看控制文件

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

image.png
(5) 查看日志文件大小

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

image.png
(6) 查看数据库对象

select t2.name owner, t1.subtype$ object_type,
       t1.valid status, count(1) count# 
  from sysobjects t1, sysobjects t2
 where t1.schid = t2.id and t1.schid != 0
 group by t2.name, t1.subtype$, t1.valid;

image.png
(7) 查看数据库创建日期和归档方式

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

image.png
(8) 查看数据库在线实例信息

select distinct NAME, HOST_NAME, SVR_VERSION, DB_VERSION, START_TIME, STATUS$, MODE$ from V$INSTANCE;

image.png
(9) 查看数据库参数

select  PARA_NAME,PARA_VALUE FROM  V$DM_INI WHERE PARA_NAME IN('MEMORY_POOL','BUFFER','PORT_NUM','MAX_SESSIONS','MAX_SESSION_STATEMENT','INSTANCE_NAME','BAK_PATH','SYSTEM_PATH','ARCH_INI');

image.png
(10) 查看数据库初始化设置

select SF_GET_PAGE_SIZE() page_size, SF_GET_EXTENT_SIZE() extent_size, SF_GET_UNICODE_FLAG() unicode_flag, SF_GET_CASE_SENSITIVE_FLAG() case_sensitive_flag, SF_GET_SYSTEM_PATH() system_path;

image.png
(11) 查看数据库日志分组情况

select GROUP_ID,FILE_ID,PATH,CLIENT_PATH,RLOG_SIZE FROM SYS.V$RLOGFILE;

image.png
(12) 查看数据库管理用户状态,默认表空间,是否存在被锁定

select D.USERNAME,A.CREATED,D.ACCOUNT_STATUS,D.DEFAULT_TABLESPACE,D.EXPIRY_DATE,D.LOCK_DATE FROM DBA_USERS D,ALL_USERS A;

image.png
(13) 查看会话信息

select  A.SESS_ID,A.SQL_TEXT,A.STATE,A.N_USED_STMT,A.CURR_SCH,
A.USER_NAME,A.TRX_ID,A.CREATE_TIME,A.CLNT_TYPE,A.TIME_ZONE,A.OSNAME,A.CONN_TYPE, B.PROTOCOL_TYPE,B.IP_ADDR FROM  SYS.V$SESSIONS A,SYS.V$CONNECT B where  A.Sess_id= B.SADDR ORDER BY SF_GET_EP_SEQNO(A.rowid),A.Sess_id;

image.png
(14) 显示系统统计信息,查看数据库性能数据

select NAME,STAT_VAL FROM V$SYSSTAT WHERE NAME IN('logic read count','physical read count','physical write count');
![image.png](https://download.dameng.com/eco-file-server/file/eco/preview/20231008133833XB8UEC2QLLZ2NWEPUF)

(15) 查看执行SQL的历史记录信息

select SQL_ID,SESS_ID,SESS_SEQ,TRX_ID,TOP_SQL_TEXT,START_TIME,TIME_USED,N_LOGIC_READ,N_PHY_READ,HARD_PARSE_FLAG FROM V$SQL_HISTORY;

image.png

(16) 查看环境运行慢于5秒的SQL

select * from (SELECT sess_id,sql_text,datediff(ss,last_send_time,sysdate) ss,SF_GET_SESSION_SQL(SESS_ID) fullsql FROM V$SESSIONS WHERE STATE='ACTIVE' and sess_id <> sessid())where ss>=1;
--ss>=1表示1秒及以上的慢SQL,可以替换成其他时间;

授权(key)替换

注意:
拿到的key文件有时候不叫做dm.key 而是 dmxxxx编号.key 请在替换时,更名成dm.key

1.备份之前的dm.key

如果之前存在key文件,需要备份一下,进入到数据库安装目录

cd /dm8/bin 
mv dm.key dm_bak.key

2.关闭数据库

DmServiceDMSERVER stop

3.拷贝新的key文件到安装目录下

cp /opt/dm.key /dm8/bin 

4.启动数据库

DmServiceDMSERVER start

5.登录数据库查看

./disql sysdba/dameng123
select * from v$license;

6.不重启数据库替换key文件后,登录数据库执行

SP_LOAD_LIC_INFO();

注意事项:
申请key时,请注意提供明确的平台信息(CPU类型、操作系统类型),不同平台的key文件不通用。 关于替换的说明:
1.该目录下原有的 dm.key 文件请事先做好备份。
2.拿到的key文件有时候不叫做dm.key 而是 dmxxxx编号.key 请在替换时,更名成dm.key
3.对于不方便重启的的环境,在替换后,可以登录数据库执行函数:SP_LOAD_LIC_INFO();来对key生效(不需要重启服务器)

https://eco.dameng.com

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服