达梦数据库简单检查数据库的常用操作


外套丰富
外套丰富 2024-01-12 14:43:06 49473 赞同 0 反对 0
分类: 资源 标签: 运维
达梦数据库简单检查数据库的常用操作

1、查看正在运行的实例

ps -ef | grep dm.ini
或者
ps -ef | grep dmserver

2、查看运行实例的端口号

netstat -aptn | grep LISTEN | grep dmserver

3、查看数据库版本

select * from v$version;

4、查询授权信息

select * from v$license;

5、查询数据库实例信息(实例名,实例模式)

SELECT INSTANCE_NAME,MODE$ FROM V$INSTANCE;

6、查看非系统用户权限信息

-- 查看非系统用户权限信息
SELECT * FROM (
SELECT GRANTEE,GRANTED_ROLE PRIVILEGE,'ROLE_PRIVS' PRIVILEGE_TYPE,CASE ADMIN_OPTION WHEN 'Y' THEN 'YES' ELSE 'NO' END ADMIN_OPTION FROM DBA_ROLE_PRIVS
UNION SELECT GRANTEE,PRIVILEGE,'SYS_PRIVS' PRIVILEGE_TYPE,ADMIN_OPTION FROM DBA_SYS_PRIVS
UNION SELECT GRANTEE,PRIVILEGE||' ON '||OWNER||'.'||TABLE_NAME PRIVILEGE,'TABLE_PRIVS' PRIVILEGE_TYPE,GRANTABLE FROM DBA_TAB_PRIVS
)
WHERE GRANTEE IN (SELECT USERNAME FROM ALL_USERS WHERE USERNAME NOT IN ('SYS','SYSDBA','SYSSSO','SYSAUDITOR') )
ORDER BY GRANTEE,PRIVILEGE_TYPE,PRIVILEGE;

7、用户状态查询、锁定与解锁

-- 用户锁定状态查询
select username as "达梦数据库用户名", account_status as "账户状态",lock_date as "锁定时间" from dba_users;
--解锁
alter user scott account unlock;
--锁定
alter user scott account lock;

8、数据库最慢的20条

-- 数据库最慢的20条 SQL
SELECT TOP 20 START_TIME,TIME_USED/1000 TIME_USED,TOP_SQL_TEXT FROM V$SQL_HISTORY ORDER BY TIME_USED DESC;

9、查看表空间

--不管是不是自动扩展,均可以查询表空间使用率 
set lines 168
set pages 168
select tbs_used_info.tablespace_name,tbs_used_info.alloc_mb,tbs_used_info.used_mb,tbs_used_info.max_mb,tbs_used_info.free_of_max_mb,tbs_used_info.used_of_max || '%' used_of_max_pct from (select a.tablespace_name,round(a.bytes_alloc / 1024 / 1024) alloc_mb,round((a.bytes_alloc - nvl(b.bytes_free, 0)) / 1024 / 1024) used_mb,round((a.bytes_alloc - nvl(b.bytes_free, 0)) * 100 / a.maxbytes) used_of_max,round((a.maxbytes - a.bytes_alloc + nvl(b.bytes_free, 0)) / 1048576) free_of_max_mb,round(a.maxbytes / 1048576) max_mb from (select f.tablespace_name,sum(f.bytes) bytes_alloc,sum(decode(f.autoextensible,'YES',f.maxbytes,'NO',f.bytes)) maxbytes from dba_data_files f group by tablespace_name) a,(select f.tablespace_name, sum(f.bytes) bytes_free from dba_free_space f group by tablespace_name) b where a.tablespace_name = b.tablespace_name(+)) tbs_used_info order by tbs_used_info.used_of_max;

--查询表空间对应的数据文件
select ts.name,df.path,df.auto_extend from v$tablespace as ts,v$datafile as df where ts.id=df.group_id;

--把scott表空间自动扩展属性关闭
ALTER TABLESPACE TEST DATAFILE ‘/dmdatabase/data/DAMENG/SCOTT.DBF’ AUTOEXTEND OFF;

10、死锁测试和查询、解锁

死锁在操作系统中指的是两个或两个以上的进程在执行的过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去。

死锁测试:

(1)建表插数据

create table testlock (id int,name char(30));
insert into testlock values(1,'aaa');
insert into testlock values(2,'bbb');
insert into testlock values(12,'ccc');
insert into testlock values(3,'das');
insert into testlock values(4,'fds');
commit;

(2)通过DML语句制造死锁

//A会话
update testlock set id=1 where name='bbb';
//B会话
update testlock set id=2 where name='aaa';
//A会话
update testlock set id=3 where name='aaa';
//此时A会话已经hang住了
//B会话
update testlock set id=4 where name='bbb';
//B会话产生了死锁

A会话已经hang住了:

图片

B会话产生了死锁:

图片

(3)查询死锁源事务的线程号和SQL语句

SELECT VTW.ID AS TRX_ID, VS.SESS_ID, VS.SQL_TEXT, VS.APPNAME, VS.CLNT_IP FROM V$TRXWAIT VTW LEFT JOIN V$TRX VT ON(VTW.ID=VT.ID) LEFT JOIN V$SESSIONS VS ON(VT.SESS_ID=VS.SESS_ID);
或者
select lc.lmode,lc.table_id,lc.blocked,vtw.id as trx_id, vs.sess_id, vs.sql_text, vs.appname, vs.clnt_ip
from v$lock lc
left join v$trxwait vtw on (lc.trx_id=vtw.id)
left join v$trx vt on (vtw.id=vt.id)
left join v$sessions vs on (vt.sess_id=vs.sess_id)
where vs.sql_text is not null;

查看死锁方法一:

图片

查看死锁方法二:S表示共享锁,X表示排他锁,IS表示意向共享锁,IX表示意向排他锁。blocked列表示锁是否处于上锁等待状态,0 表示已上锁成功,1 表示处于上锁等待状态;当处于1时是属于资源等待状态,会话会hang住。

图片

(4)释放资源,通过调用系统包来杀掉A会话,当杀掉A会话后资源会释放,这时B会话再次执行sql不会再报“Deadlock”问题。B会话完成提交后会A会话会自动执行之前hang住的sql语句。

SQL>  sp_close_session(139636435086160);

B会话再次执行sql不会再报“Deadlock”问题:

图片

B执行后提交后A会话自动执行:

图片

最后查询数据如下:

图片

11、查看alert日志,在排查数据库错误时可以查看事件日志并定位问题,位于log子目录下,命名规则一般为“dm实例名日期”。对DM数据库运行时的关键事件进行记录,如系统启动、关闭、内存申请失败、IO错误等一些致命错误。

[dmdba@localhost log]$ cd /dm/log

[dmdba@localhost log]$ ls -lrt
total 1452
-rw-r--r--. 1 dmdba dinstall 308966 Jul 29 23:11 install_ant.log
-rwxr-xr-x. 1 dmdba dinstall 504 Jul 29 23:11 install.log
-rw-r--r--. 1 dmdba dinstall 162 Jul 29 23:12 dm_dmap_202207.log
-rw-r--r--. 1 dmdba dinstall 2384 Jul 29 23:40 dm_unknown_202207.log
-rw-r--r--. 1 dmdba dinstall 6428 Jul 29 23:40 dm_DMSERVER_202207.log
-rw-r--r--. 1 dmdba dinstall 0 Dec 13 16:14 DmAPService.log
-rw-r--r--. 1 dmdba dinstall 162 Dec 13 16:14 dm_dmap_202212.log
-rw-r--r--. 1 dmdba dinstall 2427 Dec 13 18:39 dm_unknown_202212.log
-rw-r--r--. 1 dmdba dinstall 4049 Dec 13 18:40 DmServiceDMSERVER.log
-rw-r--r--. 1 dmdba dinstall 54598 Dec 13 18:40 dm_DMSERVER_202212.log
-rw-r--r--. 1 dmdba dinstall 1545 Dec 13 18:40 dmsvc_sh.log
-rw-rw-rw-. 1 root root 579 Dec 14 04:17 tool-2022-12-13-1.log.gz
-rw-rw-rw-. 1 root root 14245 Dec 14 04:19 tool.log

[dmdba@localhost log]$ less -I dm_DMSERVER_202212.log
2022-12-13 16:14:35.348 [INFO] database P0000001381 T0000000000000001381 INI parameter DPC_2PC changed, the original value 1, new value 0
2022-12-13 16:14:35.771 [INFO] database P0000001381 T0000000000000001381 version info: develop
2022-12-13 16:14:35.777 [INFO] database P0000001381 T0000000000000001381 os_sema2_create_low, create and inc sema success, key:138471630, sem_id:65536, sem_value:1!
2022-12-13 16:14:35.808 [INFO] database P0000001381 T0000000000000001381 Database's huge_with_delta is 1, and rlog_gen_for_huge is 0!
2022-12-13 16:14:36.052 [INFO] database P0000001381 T0000000000000001381 DM Database Server 64 V8 03134283890-20220720-165295-10045 startup...
2022-12-13 16:14:36.056 [INFO] database P0000001381 T0000000000000001381 INI parameter RECYCLE_POOLS changed, the original value 19, new value 12
2022-12-13 16:14:36.056 [INFO] database P0000001381 T0000000000000001381 INI parameter ROLLSEG_POOLS changed, the original value 19, new value 1
2022-12-13 16:14:37.642 [WARNING] database P0000001381 T0000000000000001381 fail to load libproj.so, libproj.so: cannot open shared object file: No such file or directory

PS:
可用less命令阅读大型文本文件,不会打乱终端屏幕,“只读”模式,也无因意外改动到正在查看的文件内容。
less在默认情况下,对小写字母的搜索是区分大小写的,可使用less 命令结合-I选项
less -I <filename>
g – 移到文件的开头
G – 移动到文件的末尾
/向下查找
?向上查找
个人在使用less方式查看某个关键字,比如寻找warn相关内容时,less -I <filename>后,G拉到最下,/想前搜索,N向前翻找。

 

如果您发现该资源为电子书等存在侵权的资源或对该资源描述不正确等,可点击“私信”按钮向作者进行反馈;如作者无回复可进行平台仲裁,我们会在第一时间进行处理!

评价 0 条
外套丰富L3
粉丝 0 资源 99 + 关注 私信
最近热门资源
银河麒麟桌面操作系统备份用户数据  123
统信桌面专业版【全盘安装UOS系统】介绍  116
银河麒麟桌面操作系统安装佳能打印机驱动方法  108
银河麒麟桌面操作系统 V10-SP1用户密码修改  102
最近下载排行榜
银河麒麟桌面操作系统备份用户数据 0
统信桌面专业版【全盘安装UOS系统】介绍 0
银河麒麟桌面操作系统安装佳能打印机驱动方法 0
银河麒麟桌面操作系统 V10-SP1用户密码修改 0
作者收入月榜
1

prtyaa 收益393.62元

2

zlj141319 收益217.85元

3

1843880570 收益214.2元

4

IT-feng 收益208.98元

5

风晓 收益208.24元

6

777 收益172.71元

7

Fhawking 收益106.6元

8

信创来了 收益105.84元

9

克里斯蒂亚诺诺 收益91.08元

10

技术-小陈 收益79.5元

请使用微信扫码

加入交流群

请使用微信扫一扫!