百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 优雅编程 > 正文

最全面的数据库健康检查报告模板(最全面的数据库健康检查报告模板是)

sinye56 2024-10-19 14:18 20 浏览 0 评论

XXX系统数据库健康检查报告

创建日期:2020年7月10日

巡检摘要

日期

巡检人

备注

2020-07-10

xxx






巡检项:

  1. 系统配置检查
  2. 数据库配置检查
  3. 数据库性能指标检查
  4. SQL检查
  5. 备份检查

目录

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像我这个已经安装过了,就会提示在哪个位置,你的肯定是找不到。一般我们在...

取消回复欢迎 发表评论: