DM数据库的性能监测工具,以图形化界面的方式对数据库进行监测,便于管理员运维管理数据库的活动和性能情况,方式:远程或本机。
一、查看方式:
数据库安装路径tool下自带:
[dmdba@linux137 tool]$ cd /dm/dmdbms/dm8/tool
[dmdba@linux137 tool]$ ./monitor
登录首页显示:
内存使用情况、CPU使用情况、线程、会话数:
阿里云运维监测界面:
Granafa:
二、性能监控:
包括线程监视、会话监视、事务监视、SQL监视、SQL日志文件分析和DM.INI参数:
2.1、线程监控:
数据库当前活跃的线程,内容包含 ID 号、线程名称、线程开始时间、运行状态和详细的说明,上面一排按钮可以选择筛查过滤历史线程。
通过以下视图可以查询到相关线程信息:
V$LATCHES 记录当前正在等待的线程信息
V$THREADS 记录当前系统中活动线程的信息
V$WTHRD_HISTORY 记录自系统启动以来,所有活动过线程的相关历史信息
V$PROCESS 记录服务器进程信息
2.2、会话监控:
数据库当前会话执行的详细信息,包括 SQL 语句和会话的连接状态等信息:
可以点击某个会话右侧显示详细信息:
相关视图查看V$SESSIONS:
2.3、事务监控:
可以查看当前事务的 ID 和状态等详细信息,右键还可以查看锁信息和历史命令等具体内容:
包括所有事务信息、当前事务可见的事务信息、事务锁信息(TID 锁、对象锁)、回滚段信息、事务等待信息;涉及的动态视图有
V$TRX、V$TRXWAIT、V$TRX_VIEW、V$LOCK、V$PURGE 等:
示例:
update demo01 set id =2 where id = 1;
update demo01 set id =3 where id = 1;
2.4、SQL监控:
展示系统中执行的 SQL 语句,用户可以选择某条 SQL 语句的详细内容和执行情况并且能查看到 SQL 执行计划:
通过 V$SQL_HISTORY 视图可以查询执行 SQL 的历史记录信息;可以方便用户经常使用的记录进行保存。
通过 V$SQL_NODE_HISTORY 既可以查询 SQL 执行节点信息,包括 SQL 节点的类型、进入次数和使用时间等等;也可以查询所有执行的 SQL 节点执行情况,如哪些使用最频繁、耗时多少等。当 INI 参数 ENABLE_MONITOR 和 MONITOR_SQL_EXEC 都开启时,才会记录 SQL 执行节点信息。如果需要时间统计信息,还需要打开 MONITOR_TIME。
通过 V$SQL_NODE_NAME 显示所有的 SQL 节点描述信息,包括 SQL 节点类型、名字和详细描述。
2.5、日志文件分析:
以设定执行毫秒以上的 SQL 语句进行分析,也可以通过指定 SQL 内容进行更细致的筛选分析,展示 SQL 语句和详细执行计划,便于优化使用:
通过查询 V$ RLOG 获取日志的总体信息。通过该视图可以了解系统当前日志事务号 LSN 的情况、归档日志情况、检查点的执行情况等。
通过查询 V$RLOGFILE 视图可以显示日志文件的具体信息。包括文件号、完整路径、文件的状态、文件大小等等。
2.6、dm.ini:
2.7、资源监控:
包括内存池、缓冲池、日志包、SQL 缓存和字典缓存:
内存池:
动态视图:V$MEM_POOL
缓冲池:
动态视图:V$SCP_CACHE
SQL缓存:
包含在执行 SQL 语句过程中所需要的内存,包括计划、SQL 语句和结果集缓存的信息,可以查看缓存项的状态和时间戳:
动态视图:V$SCP_CACHE
字典缓存:
查看到字典缓存区的具体信息,其中缓存对象的 ID、类型、状态等信息均有记录:
视图:V$DICT_CACHE
存储监控:
存储监视包括表空间、日志文件和数据库总体监视信息
表空间:
看到库中的所有表空间信息(包括类型、状态、最大大小、文件数、总大小、空间大小和使用率),通过选定表空间可以看到表空间上的数据库文件信息
动态视图:
SELECT ts.NAME, df.PATH FROM V$TABLESPACE AS ts, V$DATAFILE AS df WHERE ts.ID = df.GROUP_ID;
若要检查表空间失效文件,可以通过 dm.ini 中的参数 FIL_CHECK_INTERVAL 的值指定 DM 系统检查数据文件是否仍存在的时间间隔。将其设为 0 表示不进行检查。
也可以通过系统过程 SP_FILE_SYS_CHECK() 来手动的进行检查。系统一旦检测出某个表空间内的数据文件被删除,则与该表空间所有的操作都将会失败,并报错该表空间内有数据文件被删除。
日志文件:
可以监控到数据库日志文件总体情况,大小、检查点等信息,通过选定日志文件会详细列出该日志文件的路径和创建时间等详细信息:
数据库:
监控数据库总体状态、是否为归档模式、数据库版本等信息
系统监视:
系统监视包括运行时错误、死锁、捕获、大量数据返回结果集、数据库连接、数据库事件:
运行时错误:
监控到用户对数据库执行操作的 SQL 语句和错误信息:
死锁:
当发生死锁时可以监控到发生死锁的 SQL 和会话等信息:
动态视图:V$DEADLOCK_HISTORY
大量数据返回结果集:
数据库中执行事务返回的结果集信息,包括执行 SQL 语句和会话事务信息:
动态视图:V$PRE_RETURN_HISTORY
三、调优向导:
包括内存配置向导、线程配置向导、数据库物理存储维护向导、数据库逻辑存储维护向导、性能瓶颈分析与调优向导、索引优化向导、索引重组向导:
3.1、内存配置向导:
3.2、线程配置向导:
3.3、数据库物理存储维护向导:
3.4、数据库逻辑存储维护向导:
页、簇在创建数据库实例时已指定大小,后续无法改变
3.5、性能瓶颈分析与调优向导:
3.6、索引优化向导:
当前可以将SQL粘贴到工作负荷中单个查询语句,在优化建议里查看需要改的地方,比较智能,同阿里的SQL诊断优化有相似之处,但实际上SQL优化还有很多种方式,添加、修改索引只是其中之一,所以需要SQL优化者自行判断。
四、预警配置:
预警配置页面可以配置监控的关键指标和警告发送方式,以监测所配置的关键指标是否达到预警值,如果达到则通过所配置的警告发送方式把警告信息发送给管理员。
五、系统命令:
top、free、iostat、vmstat等
六、常用操作:
查看所有表空间:
select tablespace_name from dba_tablespaces;
查看表空间详细信息:
select * from V$TABLESPACE;
新建表空间:
create tablespace wj20220609 datafile '/dm/dmdata/wjdb/wj2022060901.dbf' size 100 autoextend off;
用户、授权相关:
select username from dba_users;
create user wj identified by “dameng123” default tablespace wj20220609 ;
create user wj identified by dameng123 default tablespace wj20220609 ;
select user;
alter user wj identified by 123456789;
alter user wj account lock;
alter user wj account unlock;
drop user wj;
drop user wj cascade;
select grantee,granted_role from dba_role_privs;
select grantee,privilege from dba_sys_privs where grantee=‘PUBLIC’;
grant resource to wj;
select table_name from user_tables;
长时间SQL:
SELECT t1.sql_text, t1.state, t1.trx_id FROM v$sessions t1, v$trx t2 WHERE t1.trx_id = t2.id AND t1.state = 'IDLE' AND t2.status = 'ACTIVE';
有事务未提交的表查询:
SELECT b.object_name, c.sess_id, a.* FROM v$lock a, dba_objects b, v$sessions c WHERE a.table_id = b.object_id AND ltype = 'OBJECT' AND a.trx_id = c.trx_id;
已执行未提交的SQL查询:
SELECT t1.sql_text, t1.state, t1.trx_id FROM v$sessions t1, v$trx t2 WHERE t1.trx_id = t2.id AND t1.state = 'IDLE' AND t2.status = 'ACTIVE';