最全面的数据库健康检查报告模板(最全面的数据库健康检查报告模板是)
sinye56 2024-10-19 14:18 20 浏览 0 评论
XXX系统数据库健康检查报告
创建日期:2020年7月10日
巡检摘要
日期 | 巡检人 | 备注 |
2020-07-10 | xxx | |
巡检项:
|
目录
1 概要 4
2 系统配置检查 4
2.1 操作系统版本及补丁 4
2.2 网卡信息 5
2.3 系统IP规划 5
2.4 硬盘空间及利用率 6
2.5 系统负载状态 6
2.6 系统日志 6
3 数据库配置检查 7
3.1 数据库概况 7
3.2 数据库参数 7
3.3 运行日志和跟踪文件 9
3.4 数据库无效对象 10
3.5 SYSTEM系统表空间 10
3.6 控制文件 10
3.7 日志文件 11
3.8 数据文件 11
3.9 数据库归档 12
3.10 表空间 12
3.11 集群状态 13
3.12 ASM空间情况 14
3.13 数据库高可用feature 15
3.14 Dataguard 同步 15
4 数据库性能(AWR均节选业务高峰时段) 16
4.1 Instance Efficiency Percentages (Target 100%) 16
4.2 数据库资源使用情况 16
4.3 Top 10 Foreground Events by Total Wait Time 17
5 影响较大的SQL语句: 17
5.1 SQL调整原则 17
5.2 SQL ordered by Elapsed Time 18
5.3 SQL ordered by CPU Time 20
5.4 SQL ordered by Gets 21
5.5 SQL ordered by Reads 23
5.6 SQL ordered by Parse Calls 23
6 数据库备份 24
7 问题总结与建议 25
7.1 无效对象 25
7.2 SQL建议 25
7.3 数据库后台日志 26
7.4 数据库性能 26
7.5 表空间 26
7.6 Dblink访问 26
7.7 数据库备份 26
7.8 网卡 27
7.9 其他 27
概要
本次巡检主要对电子病历系统oracle集群数据库的配置,运行状态,性能进行检查,同时也进行相关的操作系统配置检查,包括一定量的数据库性能评估工作。
系统配置检查
和数据库相关的操作系统配置将被检查,包括以下方面:
- 操作系统补丁
- 存放oracle 文件的硬盘区可用空间(oracle 文件包括:数据文件,控制文件,在线redo logs,归档redo logs,运行情况文件和跟踪文件)
- 硬盘利用率
- CPU利用率
(这部分的检查并不是针对操作系统或硬件的全面深入的检查,如有上述要求请与操作系统厂商联系)
操作系统版本及补丁
服务器名 | 服务器配置 | 系统版本 | 补丁推荐 |
rac1 | cpu/mem: 40cores/512GB | CentOS 6.9(64bit) | |
rac2 | cpu/mem: 40cores/512GB | CentOS 6.9(64bit) |
网卡信息
目前集群私有网卡是千兆网卡,私有网卡主要用于集群两个节点间的数据交互,数据流量会比较大,官方推荐万兆或者光纤交换机
系统IP规划
#####################Configure for RAC################################
#RAC1
192.168.3.31 rac1 rac1.oracle.com
192.168.3.131 rac1-vip
163.168.3.31 rac1-priv
#RAC2
192.168.3.32 rac2 rac2.oracle.com
192.168.3.132 rac2-vip
163.168.3.32 rac2-priv
#scan-ip
192.168.3.130 dzblrac-cluster dzblrac-cluster-scan
####################Configure for RAC################################
硬盘空间及利用率
硬盘可用情况如下示:
服务器 | 文件系统 | 总大小(GB) | 可用大小(GB) | 使用率 |
rac1 | / | 201GB | 117GB | 39% |
/tmp | 9.8GB | 9.2GB | 1% | |
/OracleBak | 1008GB | 922GB | 4% | |
rac2 | / | 201GB | 164G | 15% |
/tmp | 9.8GB | 9.2GB | 1% |
系统负载状态
系统配置:cpu=40 mem=512GB
rac1:
rac2:
目前系统压力很小
系统日志
Jul 5 20:09:41 rac1 Oracle GoldenGate Capture for Oracle[209807]: 2020-07-05 20:09:41 ERROR OGG-01668 Oracle GoldenGate Capture for Oracle, emrnew.prm: PROCESS ABENDING.
Jul 5 20:13:44 rac1 Oracle GoldenGate Capture for Oracle[212085]: 2020-07-05 20:13:44 ERROR OGG-00664 Oracle GoldenGate Capture for Oracle, emrnew.prm: OCI Error beginning session (status = 1089-ORA-01089: immediate shutdown in progress - no operations are permitted).
除了OGG相关报错, 未发现操作系统日志报错
数据库配置检查
本次检查工作主要针对电子病历EMR数据库。
数据库概况
数据库名 | 数据库版本 | 数据库字符集 | 数据库大小 |
ORCL | ORACLE 11.2.0.4 | ZHS16GBK | 58.4GB |
数据库参数
参数文件‘init.ora’包含了数据库配置参数,在数据库启动时被使用,列出了数据库所有的非默认值的参数。
init.ora Parameters
Parameter Name | Begin value | End value (if different) |
_ash_size | 104857600 | |
_serial_direct_read | NEVER | |
audit_file_dest | /u01/app/oracle/admin/dzblorcl/adump | |
audit_trail | DB | |
cluster_database | TRUE | |
compatible | 11.2.0.4.0 | |
control_files | +DATA/dzblorcl/controlfile/current.260.1042555203 | |
db_block_size | 8192 | |
db_create_file_dest | +DATA | |
db_domain | ||
db_files | 1000 | |
db_name | orcl | |
deferred_segment_creation | FALSE | |
diagnostic_dest | /u01/app/oracle | |
dispatchers | (PROTOCOL=TCP) (SERVICE=dzblorclXDB) | |
enable_goldengate_replication | TRUE | |
fal_client | dzblorcl | |
fal_server | dzblorcldg | |
instance_number | 1 | |
local_listener | (ADDRESS=(PROTOCOL=TCP)(HOST=192.168.3.131)(PORT=1521)) | |
log_archive_config | DG_CONFIG=(orcl, orcldg) | |
log_archive_dest_1 | location=+FRA | |
log_archive_dest_2 | SERVICE=orcldg LGWR ASYNC AFFIRM VALID_FOR=(ONLINE_LOGFILES, PRIMARY_ROLE) DB_UNIQUE_NAME=orcldg | |
open_cursors | 1000 | |
parallel_force_local | TRUE | |
pga_aggregate_target | 53687091200 | |
plsql_warnings | DISABLE:ALL | |
processes | 5000 | |
remote_listener | dzblrac-cluster-scan:1521 | |
remote_login_passwordfile | EXCLUSIVE | |
service_names | ORCL | |
session_cached_cursors | 300 | |
sga_max_size | 161061273600 | |
sga_target | 161061273600 | |
spfile | +DATA/orcl/spfileorcl.ora | |
standby_file_management | AUTO | |
thread | 1 | |
undo_tablespace | UNDOTBS1 |
初始化建议参数都已经进行过调整
运行日志和跟踪文件
注意每天监控运行日志文件中的出错信息,以便于在问题还是隐患的时候及时发现并解决掉。建议每月初将当前的alert.log重新命名以作备份,同时也可以避免alert.log文件变得太大不易管理。
近3天出现错误日志:
TNS-12535: TNS:operation timed out
ns secondary err code: 12606
nt main err code: 0
nt secondary err code: 0
nt OS err code: 0
Client address: (ADDRESS=(PROTOCOL=tcp)(HOST=192.168.130.27)(PORT=51145))
WARNING: inbound connection timed out (ORA-3136)
Mon Jul 06 13:58:34 2020
ORA-3136 连接超时问题,表示client端在默认60秒内没有完成connection 认证报错,或者负载过高导致连接出现timeout. 一般来说应用没出现问题或者报错,可以优先忽略。如报错频繁影响应用程序,可以通过设置参数INBOUND_CONNECT_TIMEOUT=0,避免timeout现象。
参考:Note465043.1 Troubleshooting ORA - 3136WARNING Inbound Connection Timed Out
数据库无效对象
目前数据库有193个无效对象
SYSTEM系统表空间
业务用户supcon, comm有两个索引建在系统表空间system
控制文件
每个数据库至少有一个控制文件。控制文件记录了数据库的物理结构及同步信息。
Controlfile Name | Status |
+DATA/dzblorcl/controlfile/current.260.1042555203 | VALID |
+DATA/dzblorcl/controlfile/current.260.1042555203 | VALID |
日志文件
每个节点四组日志,每组1024MB
数据文件
数据库文件 /tmp/FY_REC_DATA.DAT, /tmp/FY_RST_DATA.DAT 目前被错误建在临时目录/tmp,数据文件一般都放在ASM磁盘组+DATA中。经确认目前这两个数据文件未被使用,以后也不会被使用。建议暂不进行处理。目前其他数据文件状态正常
数据库归档
Oracle允许将写满的在线Redo Log文件存放在一个或多个脱机位置,即归档Redo Log。在线日志文件通过归档写入归档日志文件。后台进程ARCn自动进行归档操作。您能通过归档日志进行:
- 在线备份
- 基于时间的恢复
Archived Redo Log Settings
DB NAME | Database log mode | Automatic archival | Archive Destination |
DZBLORCL | Archive Mode | YES | +FRA |
表空间
每个数据库由一个或多个逻辑存储单位,即表空间,所组成。而表空间则由逻辑存储单位段所组成。而段将被分为多个片。用户对象不应该在系统表空间中创建。这将导致系统表空间的碎片产生,并且阻止表空间增长。
目前数据库表空间使用率都不高,表空间使用率超过85%, 就要引起注意,需要添加数据文件。
集群状态
目前集群运行正常
ASM空间情况
ASM磁盘组空间使用较低
数据库高可用feature
db_name | force_logging | flashback_on | supplemental_log | recyclebin | dataguard |
dzblorcl | yes | no | yes | on | yes |
Dataguard 同步
Oracle dataguard 是官方推荐的一款数据库容灾产品,通过实时传输数据库redo log日志到standby端,并实时应用日志到standby, 实现数据库物理级别,数据库异地的数据同步,达到容灾的目的。
DATABASE_ROLE | DB_UNIQUE_NAME | OPEN_MODE | PROTECTION_LEVEL | SWITCHOVER_STATUS |
PHYSICAL STANDBY | dzblorcldg | READ ONLY WITH APPLY | MAXIMUM PERFORMANCE | NOT ALLOWED |
目前dataguard 处于实时数据恢复状态,实例已经Open可提供只读操作,已经和Primary实时同步。
数据库性能(AWR均节选业务高峰时段)
Instance Efficiency Percentages (Target 100%)
Buffer Nowait %: | 100.00 | Redo NoWait %: | 100.00 |
Buffer Hit %: | 100.00 | In-memory Sort %: | 100.00 |
Library Hit %: | 99.24 | Soft Parse %: | 99.41 |
Execute to Parse %: | 56.52 | Latch Hit %: | 99.99 |
Parse CPU to Parse Elapsd %: | 60.18 | % Non-Parse CPU: | 98.57 |
数据库的各个指标的命中率正常,数据库压力不大。
数据库资源使用情况
CURRENT_UTILIZATION:当前在用的数目(资源、锁或进程)
MAX_UTILIZATION :自最后一个实例启动以来这个资源的最大消耗I
LIMIT_VALUE:资源的限制值。
当前数据库主要会话数(processes),进程数(sessions),锁(dml_locks, ges_locks)等资源都未达到最大值。
Top 10 Foreground Events by Total Wait Time
Event | Waits | Total Wait Time (sec) | Wait Avg(ms) | % DB time | Wait Class |
DB CPU | 13.5K | 94.7 | |||
SQL*Net more data to client | 236,611 | 302.5 | 1 | 2.1 | Network |
SQL*Net message from dblink | 184,490 | 287.6 | 2 | 2.0 | Network |
control file sequential read | 586,524 | 144.6 | 0 | 1.0 | System I/O |
log file sync | 70,429 | 36.2 | 1 | .3 | Commit |
gc current block 2-way | 81,905 | 27.2 | 0 | .2 | Cluster |
gc cr block 2-way | 73,638 | 25.9 | 0 | .2 | Cluster |
rdbms ipc reply | 82,800 | 17.1 | 0 | .1 | Other |
gc current grant busy | 40,543 | 12.5 | 0 | .1 | Cluster |
log file sequential read | 38,577 | 10.2 | 0 | .1 | System I/O |
等待DB CPU, 可以忽略,是数据库正常等待
Wait class里Network相关的等待比较严重, 如SQL*Net message from dblink 等待比较严重,和数据库大量使用dblink有关。
其他等待在当前时间段,不严重,对数据库影响很小,可以忽略。
影响较大的SQL语句:
SQL调整原则
SQL语句性能调整的目标是:
去掉不必要的大表全表扫描 不必要的大表全表扫描会造成不必要的输入输出,而且还会拖垮整个数据库;
检查优化索引的使用 这对于提高查询速度来说非常重要;
检查子查询 考虑SQL子查询是否可以用简单连接的方式进行重写;
调整PCTFREE和PCTUSED等存储参数优化插入、更新或者删除等操作;
考虑数据表的全表扫描和在多个CPU的情况下考虑并行查询;
SQL ordered by Elapsed Time
Elapsed Time (s) | Executions | Elapsed Time per Exec (s) | %Total | %CPU | %IO | SQL Id | SQL Module | SQL Text |
2,496.56 | 0 | 17.57 | 99.61 | 0.00 | 95g2k0gx77y09 | iawork@rac1 (TNS V1-V3) | SELECT a.INST_ID, a.Sid, c.Ser... | |
792.01 | 825 | 0.96 | 5.57 | 99.56 | 0.00 | 99dd1032rfbpw | w3wp.exe | DELETE FROM CPOE_TEST_RESULT W... |
654.05 | 626 | 1.04 | 4.60 | 99.65 | 0.00 | a2z578h5vqtr3 | Unicorn.exe | SELECT PATIENT_ID, PATIENT_NAM... |
516.47 | 739 | 0.70 | 3.63 | 99.37 | 0.00 | 8xn7jp79ywh1g | JDBC Thin Client | SELECT a.*, e.id as e_id, e.ex... |
489.24 | 437 | 1.12 | 3.44 | 99.59 | 0.00 | asvqf4vfrbaj9 | ExecSQLTool.exe | Select b.result_item_code As i... |
444.69 | 185 | 2.40 | 3.13 | 34.71 | 0.00 | 3c6x3ajfk4cn2 | ORACLE.EXE | SELECT /*+ OPAQUE_TRANSFORM */... |
372.67 | 360 | 1.04 | 2.62 | 99.68 | 0.00 | 25v7fu812tf4b | oracle@hisdb2 (TNS V1-V3) | SELECT "PAT_INPATIENTNO", "PAT... |
247.58 | 750 | 0.33 | 1.74 | 98.73 | 0.00 | dc30xnqmjvmb7 | JDBC Thin Client | SELECT id, report_id, request_... |
195.95 | 277 | 0.71 | 1.38 | 90.39 | 0.00 | 9vthrjwcr06wq | w3wp.exe | SELECT M.CLINIC_ITEM_NAME, M.?ú... |
194.20 | 1,647 | 0.12 | 1.37 | 99.10 | 0.00 | 110axn1tv1ssw | w3wp.exe | SELECT ORDER_CHECK_NO FROM ORD... |
191.62 | 1,696 | 0.11 | 1.35 | 99.07 | 0.00 | 5cyxmk7sa9ndb | w3wp.exe | SELECT T.ORDER_CHECK_NO FROM O... |
176.13 | 1,658 | 0.11 | 1.24 | 99.03 | 0.00 | bmt7htt8w9k9z | w3wp.exe | INSERT INTO ORDADM.CPOE_ORDER_... |
175.22 | 1,662 | 0.11 | 1.23 | 99.24 | 0.00 | 4qnqpz7jb46uh | w3wp.exe | SELECT MAX(ORDER_CHECK_NO) FRO... |
156.91 | 552 | 0.28 | 1.10 | 99.56 | 0.00 | 395qaxvcycb64 | w3wp.exe | select * from CPOE_OUTP_ORDERS... |
SQL ordered by elapsed Time:记录了执行总和时间的TOP SQL(请注意是监控范围内该SQL的执行时间总和,而不是单次SQL执行时间 Elapsed Time = CPU Time + Wait Time)。
- TOP 1 SQL: 95g2k0gx77y09,消耗时间比较长, 数据库用户iawork, SQL内容:
SELECT a.INST_ID, a.Sid, c.Serial#, v.Spid, Decode(a.TYPE, 'TM', B1.NAME, '') obj, v.PROGRAM process_program, c.MACHINE, c.MODULE, c.PROGRAM session_program, c.Status, c.Username, c.Command, c.ACTION, c.Logon_Time, a.CTIME, a.TYPE, decode(a.lmode, 0, 'None', 1, 'Null', 2, 'Row share', 3, 'Row Exclusive', 4, 'Share', 5, 'Share Row Exclusive', 6, 'Exclusive') lock_mode, decode(a.request, 0, 'None', 1, 'Null', 2, 'Row share', 3, 'Row Exclusive', 4, 'Share', 5, 'Share Row Exclusive', 6, 'Exclusive') request_mode, a.BLOCK FROM Gv$lock a, Sys.Obj$ B1, Sys.User$ B2, Gv$session c, Gv$process v WHERE a.Id1 = B1.Obj#(+) AND B1.Owner# = B2.User#(+) AND a.Sid = c.Sid AND c.TYPE = 'USER' AND v.Addr = c.Paddr AND c.Inst_Id = v.Inst_Id AND A.INST_ID=C.INST_ID AND a.TYPE = 'TM' order by c.LOGON_TIME |
从SQL的内容来看,在查询当期会话信息
- 执行时间超过2秒的SQL: 3c6x3ajfk4cn2
SELECT /*+ OPAQUE_TRANSFORM */ "PACS_NO", "PATIENT_ID", "EVENT_NO", "PATIENT_TYPE", "PACS_TYPE", "PATIENT_NAME", "PATIENT_SEX", "PATIENT_AGE", "IN_DEPT", "BED", "WARD", "ADDRESS", "TELEPHONE", "MARRIAGE", "PROFESSION", "CHECKNO", "BARCODE_ID", "INSPECT_TYPE", "INSPECT_SUB_TYPE", "INSPECT_NAME", "INSTRUMENT_NAME", "APPLICANT", "OPERATER", "INSPECTOR", "OPERATER_TIME", "REPORT_TIME", "LAST_MODIFY_TIME", "MODIFY_FLAG", "REMARK1", "REMARK2", "STATUS", "CONCLUSION", "IMAGING" FROM "ZEMR_PACS_REPORT" "T" WHERE ("IMAGING" IS NOT NULL OR "CONCLUSION" IS NOT NULL) AND "REPORT_TIME">TRUNC(:1-10) | |
以下是执行计划:
ZEMR_PACS_REPORT 是一个比较复杂的视图,从执行计划来看,扫描成本较高的表有: CPOE_OUTP_ORDERS和CPOE_EXAM_DETAIL,同时走了全表扫描,扫描了1236k行和368k行数据,导致SQL超过2秒以上,具有了解具体的业务进一步优化。
其他SQL消耗时间都整体不长。
SQL ordered by CPU Time
CPU Time (s) | Executions | CPU per Exec (s) | %Total | Elapsed Time (s) | %CPU | %IO | SQL Id | SQL Module | SQL Text |
2,486.87 | 0 | 18.47 | 2,496.56 | 99.61 | 0.00 | 95g2k0gx77y09 | iawork@rac1 (TNS V1-V3) | SELECT a.INST_ID, a.Sid, c.Ser... | |
788.51 | 825 | 0.96 | 5.86 | 792.01 | 99.56 | 0.00 | 99dd1032rfbpw | w3wp.exe | DELETE FROM CPOE_TEST_RESULT W... |
651.77 | 626 | 1.04 | 4.84 | 654.05 | 99.65 | 0.00 | a2z578h5vqtr3 | Unicorn.exe | SELECT PATIENT_ID, PATIENT_NAM... |
513.23 | 739 | 0.69 | 3.81 | 516.47 | 99.37 | 0.00 | 8xn7jp79ywh1g | JDBC Thin Client | SELECT a.*, e.id as e_id, e.ex... |
487.23 | 437 | 1.11 | 3.62 | 489.24 | 99.59 | 0.00 | asvqf4vfrbaj9 | ExecSQLTool.exe | Select b.result_item_code As i... |
371.48 | 360 | 1.03 | 2.76 | 372.67 | 99.68 | 0.00 | 25v7fu812tf4b | oracle@hisdb2 (TNS V1-V3) | SELECT "PAT_INPATIENTNO", "PAT... |
244.44 | 750 | 0.33 | 1.82 | 247.58 | 98.73 | 0.00 | dc30xnqmjvmb7 | JDBC Thin Client | SELECT id, report_id, request_... |
192.46 | 1,647 | 0.12 | 1.43 | 194.20 | 99.10 | 0.00 | 110axn1tv1ssw | w3wp.exe | SELECT ORDER_CHECK_NO FROM ORD... |
189.85 | 1,696 | 0.11 | 1.41 | 191.62 | 99.07 | 0.00 | 5cyxmk7sa9ndb | w3wp.exe | SELECT T.ORDER_CHECK_NO FROM O... |
177.12 | 277 | 0.64 | 1.32 | 195.95 | 90.39 | 0.00 | 9vthrjwcr06wq | w3wp.exe | SELECT M.CLINIC_ITEM_NAME, M.?ú... |
174.43 | 1,658 | 0.11 | 1.30 | 176.13 | 99.03 | 0.00 | bmt7htt8w9k9z | w3wp.exe | INSERT INTO ORDADM.CPOE_ORDER_... |
173.88 | 1,662 | 0.10 | 1.29 | 175.22 | 99.24 | 0.00 | 4qnqpz7jb46uh | w3wp.exe | SELECT MAX(ORDER_CHECK_NO) FRO... |
156.23 | 552 | 0.28 | 1.16 | 156.91 | 99.56 | 0.00 | 395qaxvcycb64 | w3wp.exe | select * from CPOE_OUTP_ORDERS... |
154.35 | 185 | 0.83 | 1.15 | 444.69 | 34.71 | 0.00 | 3c6x3ajfk4cn2 | ORACLE.EXE | SELECT /*+ OPAQUE_TRANSFORM */... |
SQL ordered by CPU time: 记录了执行占CPU时间总和时间最长的TOP SQL(请注意是监控范围内该SQL的执行占CPU时间总和,而不是单次SQL执行时间)
CPU的资源消耗上,还是同样的SQL : 95g2k0gx77y09,
SQL ordered by Gets
Buffer Gets | Executions | Gets per Exec | %Total | Elapsed Time (s) | %CPU | %IO | SQL Id | SQL Module | SQL Text |
254,805,414 | 360 | 707,792.82 | 15.66 | 372.67 | 99.7 | 0 | 25v7fu812tf4b | oracle@hisdb2 (TNS V1-V3) | SELECT "PAT_INPATIENTNO", "PAT... |
77,112,750 | 739 | 104,347.43 | 4.74 | 516.47 | 99.4 | 0 | 8xn7jp79ywh1g | JDBC Thin Client | SELECT a.*, e.id as e_id, e.ex... |
47,829,036 | 437 | 109,448.59 | 2.94 | 489.24 | 99.6 | 0 | asvqf4vfrbaj9 | ExecSQLTool.exe | Select b.result_item_code As i... |
45,674,399 | 750 | 60,899.20 | 2.81 | 247.58 | 98.7 | 0 | dc30xnqmjvmb7 | JDBC Thin Client | SELECT id, report_id, request_... |
40,289,848 | 0 | 2.48 | 79.77 | 99.4 | 0 | c8dx985h4zwca | oracle@ods-server (TNS V1-V3) | SELECT "A1"."PATIENTCHARGE_ID"... | |
37,902,751 | 1,696 | 22,348.32 | 2.33 | 191.62 | 99.1 | 0 | 5cyxmk7sa9ndb | w3wp.exe | SELECT T.ORDER_CHECK_NO FROM O... |
37,142,877 | 1,662 | 22,348.30 | 2.28 | 175.22 | 99.2 | 0 | 4qnqpz7jb46uh | w3wp.exe | SELECT MAX(ORDER_CHECK_NO) FRO... |
37,061,741 | 1,658 | 22,353.28 | 2.28 | 176.13 | 99 | 0 | bmt7htt8w9k9z | w3wp.exe | INSERT INTO ORDADM.CPOE_ORDER_... |
36,807,682 | 1,647 | 22,348.32 | 2.26 | 194.20 | 99.1 | 0 | 110axn1tv1ssw | w3wp.exe | SELECT ORDER_CHECK_NO FROM ORD... |
31,189,110 | 44 | 708,843.41 | 1.92 | 43.77 | 99.7 | 0 | 48ynbdm8nck7b | oracle@hisdb2 (TNS V1-V3) | SELECT "PAT_INPATIENTNO", "PAT... |
30,899,994 | 552 | 55,978.25 | 1.90 | 156.91 | 99.6 | 0 | 395qaxvcycb64 | w3wp.exe | select * from CPOE_OUTP_ORDERS... |
29,299,299 | 212 | 138,204.24 | 1.80 | 131.25 | 98.1 | 0 | dvd3fhv94zsrk | w3wp.exe | select * from v_drug_stock a w... |
25,271,933 | 185 | 136,605.04 | 1.55 | 444.69 | 34.7 | 0 | 3c6x3ajfk4cn2 | ORACLE.EXE | SELECT /*+ OPAQUE_TRANSFORM */... |
19,077,381 | 825 | 23,124.10 | 1.17 | 792.01 | 99.6 | 0 | 99dd1032rfbpw | w3wp.exe | DELETE FROM CPOE_TEST_RESULT W... |
17,575,285 | 161 | 109,163.26 | 1.08 | 104.83 | 99.1 | 0 | 5wgasuumx8mts | DDTEK ODBC Oracle | select VERSION_NO as VERSION_... |
17,385,747 | 277 | 62,764.43 | 1.07 | 195.95 | 90.4 | 0 | 9vthrjwcr06wq | w3wp.exe | SELECT M.CLINIC_ITEM_NAME, M.?ú... |
SQL ordered by Gets:记录了执行占总buffer gets(逻辑IO)的TOP SQL(请注意是监控范围内该SQL的执行占Gets总和,而不是单次SQL执行所占的Gets)
目前这项指标正常
SQL ordered by Reads
Physical Reads | Executions | Reads per Exec | %Total | Elapsed Time (s) | %CPU | %IO | SQL Id | SQL Module | SQL Text |
121 | 9,004 | 0.01 | 0.58 | 1.99 | 41.25 | 1.02 | 9397yzqdrz2gv | oracle@hisdb2 (TNS V1-V3) | UPDATE "T_YIHUI_RESI_FEE" "A1"... |
33 | 0 | 0.16 | 79.77 | 99.43 | 0.02 | c8dx985h4zwca | oracle@ods-server (TNS V1-V3) | SELECT "A1"."PATIENTCHARGE_ID"... | |
16 | 33 | 0.48 | 0.08 | 0.06 | 62.49 | 4.35 | 508zw0x4na640 | Unicorn.exe | INSERT ALL INTO DOC_CLINIC_DAT... |
9 | 14,453 | 0.00 | 0.04 | 3.20 | 29.25 | 0.10 | 7jvcnbkgppx7b | w3wp.exe | INSERT INTO CPOE_TEST_RESULT (... |
5 | 191 | 0.03 | 0.02 | 27.63 | 98.11 | 0.03 | 4vpuqx31nvaru | w3wp.exe | select distinct t2.patient_con... |
5 | 358 | 0.01 | 0.02 | 64.22 | 96.80 | 0.00 | g7hc815q7vnuu | w3wp.exe | insert into CPOE_ORDER_SEND (O... |
3 | 825 | 0.00 | 0.01 | 792.01 | 99.56 | 0.00 | 99dd1032rfbpw | w3wp.exe | DELETE FROM CPOE_TEST_RESULT W... |
2 | 277 | 0.01 | 0.01 | 195.95 | 90.39 | 0.00 | 9vthrjwcr06wq | w3wp.exe | SELECT M.CLINIC_ITEM_NAME, M.?ú... |
2 | 16 | 0.13 | 0.01 | 0.06 | 69.27 | 1.38 | fhqs73k033qzd | Unicorn.exe | INSERT ALL INTO DOC_CLINIC_ITE... |
1 | 268 | 0.00 | 0.00 | 36.57 | 98.46 | 0.01 | 33hkfuds8puuu | w3wp.exe | select * from (SELECT A.PATIEN... |
SQL ordered by Reads: 记录了执行占总磁盘物理读(物理IO)的TOP SQL(请注意是监控范围内该SQL的执行占磁盘物理读总和,而不是单次SQL执行所占的磁盘物理读),可以反映具体某些SQL执行效率,一般都推荐从内存读取,物理读一般都指从硬盘读取数据,效率较低, delete,update, insert都会带来物理读,这是不可避免的。
目前数据库 除了top 1的update sql,其他的物理读都不高。
SQL ordered by Parse Calls
Parse Calls | Executions | % Total Parses | SQL Id | SQL Module | SQL Text |
497,125 | 497,119 | 20.19 | ggwdfnuqjg9xy | w3wp.exe | SELECT COUNT(1) FROM PATS_IN_H... |
289,729 | 289,730 | 11.77 | 3bcxa2bxgu6a2 | w3wp.exe | SELECT M.PATIENT_ID, M.VISIT_I... |
289,334 | 289,333 | 11.75 | 1b6f97pwy7az2 | w3wp.exe | SELECT PATIENT_ID, VISIT_ID, A... |
113,276 | 113,276 | 4.60 | 7h35uxf5uhmm1 | w3wp.exe | select sysdate from dual |
106,042 | 106,042 | 4.31 | djnrjdzdb65rd | w3wp.exe | SELECT ORDER_NO, PAT_ID, VISIT... |
76,202 | 76,202 | 3.10 | fuphg1dmwa2js | w3wp.exe | SELECT COUNT(1) FROM cpoe_orde... |
71,169 | 71,169 | 2.89 | caba6r6j8mthj | w3wp.exe | SELECT a.order_no, a.ord_statu... |
53,517 | 53,517 | 2.17 | 9q9yhgc0u15gk | w3wp.exe | insert into CPOE_ORDER_EXE_REC... |
33,385 | 33,385 | 1.36 | gcf937cx27gsy | w3wp.exe | SELECT ORDER_NO, PAT_ID, VISIT... |
25,378 | 25,378 | 1.03 | 6ynn15u2kycjw | w3wp.exe | SELECT VERSION, PACKAGE_PATH F... |
SQL ordered by Parse Calls: 即记录了SQL的软解析次数的TOP SQL, 软解析一般SQL通过绑定变量的形式执行。在Oracle的SQL优化引擎中推荐通过绑定变量的形式执行SQL,执行效率高。
目前这项指标正常
数据库备份
备份策略:每天晚上22:50进行数据库RMAN全备。
50 22 * * * sh /opt/scripts/rmanfull.sh
每天全量压缩备份,容量15GB左右,查看备份情况如下:(备份正常)
备份状态正常,目前归档没有进行备份,建议把归档放到每天的备份任务中。
问题总结与建议
无效对象
目前数据库存在大量无效对象,存储过程,视图等,建议开发仔细确认哪些对象是否需要,不需要的对象进行删除,生产环境严格禁止有测试对象存在。
SQL建议
- 以下iawork 用户下SQL占用CPU较高,目前整体对性能影响不算大,其他SQL整体运行速度良好,后期需要进行观察
SELECT a.INST_ID, a.Sid, c.Serial#, v.Spid, Decode(a.TYPE, 'TM', B1.NAME, '') obj, v.PROGRAM process_program, c.MACHINE, c.MODULE, c.PROGRAM session_program, c.Status, c.Username, c.Command, c.ACTION, c.Logon_Time, a.CTIME, a.TYPE, decode(a.lmode, 0, 'None', 1, 'Null', 2, 'Row share', 3, 'Row Exclusive', 4, 'Share', 5, 'Share Row Exclusive', 6, 'Exclusive') lock_mode, decode(a.request, 0, 'None', 1, 'Null', 2, 'Row share', 3, 'Row Exclusive', 4, 'Share', 5, 'Share Row Exclusive', 6, 'Exclusive') request_mode, a.BLOCK FROM Gv$lock a, Sys.Obj$ B1, Sys.User$ B2, Gv$session c, Gv$process v WHERE a.Id1 = B1.Obj#(+) AND B1.Owner# = B2.User#(+) AND a.Sid = c.Sid AND c.TYPE = 'USER' AND v.Addr = c.Paddr AND c.Inst_Id = v.Inst_Id AND A.INST_ID=C.INST_ID AND a.TYPE = 'TM' order by c.LOGON_TIME |
- 视图ZEMR_PACS_REPORT查询耗时超过2秒,视图里大表走了全表扫描,需要进一步优化SQL或者添加索引,进行相关优化。 参考 5.2
数据库后台日志
后台出现ORA-3136 连接超时报错,,表示client端在默认60秒内没有完成connection 认证报错,或者负载过高导致连接出现timeout. 一般来说应用没出现问题或者报错,可以优先忽略。如报错频繁影响应用程序,可以通过设置参数INBOUND_CONNECT_TIMEOUT=0,避免timeout现象。
数据库性能
目前数据库各项性能指标正常,配置参数都做过优化,数据库的资源都未达到最大值。随着业务量,数据量增加,数据库需要持续进行巡检,优化。
表空间
发现业务表的索引建在了系统system表空间,建议统一移到各自用户表空间下。参考 3.10
Dblink访问
数据库使用大量dblink, 目前发现有些访问是跨网段访问,硬件交换机没有进行多层转换,确保网络层网络延迟低,速度快。参考 4.3 数据库等待事件。
数据库备份
- 目前备份只有RMAN基于时间点恢复的备份,建议加上逻辑备份datapump,可以进行容灾快速恢复。
- 当前备份策略是两天进行一次全备,后续数据库体量大了以后,耗时较长,影响业务,建议进行增量备份。
网卡
目前集群私有网卡是千兆网卡,建议采用万兆活光纤网网络,可以有效提供集群节点间的数据通信,提高数据库集群性能。
其他
目前中间件Oracle Goldengate 部署在节点1, 数据库已经部署了Oracle Dataguard,建议Goldengate迁移到Dataguard端,减少对主库的影响。
相关推荐
- 程序员:JDK的安装与配置(完整版)_jdk的安装方法
-
对于Java程序员来说,jdk是必不陌生的一个词。但怎么安装配置jdk,对新手来说确实头疼的一件事情。我这里以jdk10为例,详细的说明讲解了jdk的安装和配置,如果有不明白的小伙伴可以评论区留言哦下...
- Linux中安装jdk并配置环境变量_linux jdk安装教程及环境变量配置
-
一、通过连接工具登录到Linux(我这里使用的Centos7.6版本)服务器连接工具有很多我就不一一介绍了今天使用比较常用的XShell工具登录成功如下:二、上传jdk安装包到Linux服务器jdk...
- 麒麟系统安装JAVA JDK教程_麒麟系统配置jdk
-
检查检查系统是否自带java在麒麟系统桌面空白处,右键“在终端打开”,打开shell对话框输入:java–version查看是否自带java及版本如图所示,系统自带OpenJDK,要先卸载自带JDK...
- 学习笔记-Linux JDK - 安装&配置
-
前提条件#检查是否存在JDKrpm-qa|grepjava#删除现存JDKyum-yremovejava*安装OracleJDK不分系统#进入安装文件目...
- Linux新手入门系列:Linux下jdk安装配置
-
本系列文章是把作者刚接触和学习Linux时候的实操记录分享出来,内容主要包括Linux入门的一些理论概念知识、Web程序、mysql数据库的简单安装部署,希望能够帮到一些初学者,少走一些弯路。注意:L...
- 测试员必备:Linux下安装JDK 1.8你必须知道的那些事
-
1.简介在Oracle收购Sun后,Java的一系列产品就被整合到Oracle官网中,打开官网乍眼一看也不知道去哪里下载,还得一个一个的摸索尝试,而且网上大多数都是一些Oracle收购Sun前,或者就...
- Linux 下安装JDK17_linux 安装jdk1.8 yum
-
一、安装环境操作系统:JDK版本:17二、安装步骤第一步:下载安装包下载Linux环境下的jdk1.8,请去官网(https://www.oracle.com/java/technologies/do...
- 在Ubuntu系统中安装JDK 17并配置环境变量教程
-
在Ubuntu系统上安装JDK17并配置环境变量是Java开发环境搭建的重要步骤。JDK17是Oracle提供的长期支持版本,广泛用于开发Java应用程序。以下是详细的步骤,帮助你在Ubuntu系...
- 如何在 Linux 上安装 Java_linux安装java的步骤
-
在桌面上拥抱Java应用程序,然后在所有桌面上运行它们。--SethKenlon(作者)无论你运行的是哪种操作系统,通常都有几种安装应用程序的方法。有时你可能会在应用程序商店中找到一个应用程序...
- Windows和Linux环境下的JDK安装教程
-
JavaDevelopmentKit(简称JDK),是Java开发的核心工具包,提供了Java应用程序的编译、运行和开发所需的各类工具和类库。它包括了JRE(JavaRuntimeEnviro...
- linux安装jdk_linux安装jdk软连接
-
JDK是啥就不用多介绍了哈,外行的人也不会进来看我的博文。依然记得读大学那会,第一次实验课就是在机房安装jdk,编写HelloWorld程序。时光飞逝啊,一下过了十多年了,挣了不少钱,买了跑车,娶了富...
- linux安装jdk,全局配置,不同用户不同jdk
-
jdk1.8安装包链接:https://pan.baidu.com/s/14qBrh6ZpLK04QS8ogCepwg提取码:09zs上传文件解压tar-zxvfjdk-8u152-linux-...
- 运维大神教你在linux下安装jdk8_linux安装jdk1.7
-
1.到官网下载适合自己机器的版本。楼主下载的是jdk-8u66-linux-i586.tar.gzhttp://www.oracle.com/technetwork/java/javase/downl...
- window和linux安装JDK1.8_linux 安装jdk1.8.tar
-
Windows安装JDK1.8的步骤:步骤1:下载JDK打开浏览器,找到JDK下载页面https://d.injdk.cn/download/oraclejdk/8在页面中找到并点击“下载...
- 最全的linux下安装JavaJDK的教程(图文详解)不会安装你来打我?
-
默认已经有了linux服务器,且有root账号首先检查一下是否已经安装过java的jdk任意位置输入命令:whichjava像我这个已经安装过了,就会提示在哪个位置,你的肯定是找不到。一般我们在...
你 发表评论:
欢迎- 一周热门
- 最近发表
- 标签列表
-
- oracle忘记用户名密码 (59)
- oracle11gr2安装教程 (55)
- mybatis调用oracle存储过程 (67)
- oracle spool的用法 (57)
- oracle asm 磁盘管理 (67)
- 前端 设计模式 (64)
- 前端面试vue (56)
- linux格式化 (55)
- linux图形界面 (62)
- linux文件压缩 (75)
- Linux设置权限 (53)
- linux服务器配置 (62)
- mysql安装linux (71)
- linux启动命令 (59)
- 查看linux磁盘 (72)
- linux用户组 (74)
- linux多线程 (70)
- linux设备驱动 (53)
- linux自启动 (59)
- linux网络命令 (55)
- linux传文件 (60)
- linux打包文件 (58)
- linux查看数据库 (61)
- linux获取ip (64)
- linux进程通信 (63)