达梦数据库运维常用视图
零、系统信息
select * from v$systeminfo;
一、数据字典相关
这个数据字典表可以查询数据库中所有的对象,通过where中的type列和subtype$可以做过滤,比如通过以下sql可以查询所有用户自创建的表:
select * from SYS.SYSOBJECTS where subtype$ = 'UTAB';
(SELECT * FROM ALL_TABLES;当然也可以通过这个视图查询,类似视图还有all_users/all_views/all_objects等等;)
(这两个不用+v$)
这两个一样,主要排查数据字典缓冲区的信息
SELECT * FROM V$DB_CACHE
SELECT * FROM V$DICT_CACHE
这两个一样,主要是排查数据字典的所存的系统对象的信息:
select * from V$DICT_CACHE_ITEM where type = 'TABLE';
SELECT * FROM V$DB_OBJECT_CACHE WHERE TYPE = 'TABLE';
二、数据库参数相关
select * from v$dm_INI;
三、许可证及版本相关
select * from V$license; select * from v$version; #数据库服务器版本 select id_code;
四、日志相关
很多时候,主备机的lsn因为网络问题会导致不一致,导致的现象就是数据库在执行任何sql时都会不定时的卡顿个几秒或十几秒然后又好了,原因是故障处理备机lsn要追赶主机lsn。在此时需要检查一下两台服务器日志的lsn,可以通过如下方式:
select * from V$RLOG;
五、会话相关
观察目前服务器有多少个会话连接,是否已经超过ini参数中max_sessions的限制
select * from v$sessions
六、事务和检查点相关
观察事务阻塞和死锁;
阻塞:相同数据的并发操作是主因,比如一个事务在操作这个数据时,需要等待另外一个先操作这个数据的事务commit后,才可以成功操作数据不然就一直等待。
select * from v$trx; select * from V$TRXWAIT select * from v$lock; select * from V$DEADLOCK_HISTORY
select * from V$CKPT #当前检查点信息 select * from V$CKPT_HISTORY #历史检查点的信息
七、数据库进程与线程
select * from v$process; #查看当前进程信息 select * from v$threads;#查看当前线程信息
检查点lsn和redo日志文件lsn有什么 区别:
检查点的lsn的到了5种情况下才会产生,然后活动事务对数据任何修改(包括rollback,commit语句)都会产生file lsn。
检查点和commit的区别:
- 将事务任何更改的记录写入日志文件(即通知 日志FLUSH 线程进行日志刷盘)并最终在合适的时机(如检查点、缓冲区满)写入到数据文件;
- 释放事务上的所有锁,将事务标记为完成;
- 返回提交成功消息给请求者。
所以COMMIT操作就不一定保证事务对DB的修改写到磁盘即脏数据页刷盘,但可以保证commit可以保证日志刷盘。
2、检查点时刻系统将缓冲区中的日志和脏数据页都刷盘
在系统恢复时,那些已经执行了COMMIT操作但修改仍留在内存缓冲区的事务需要做恢复工作,可以直接重做redo日志来恢复。具体原理如下:由于在事务执行时,会在日志中记下事务的开始标记、结束标志以及事务对DB的每一个修改,所以在系统恢复时,直接在热动日志中,通过检查故障点lsn(即系统恢复时启动的当前检查点)与最近一个检查点lsn(即上一个检查点)之间,哪些事务执行了COMMIT操作(这些事务应重做),哪些事务还未结束(这些事务应撤销)。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!