Oracle数据库挂起了怎么办?
当Oracle数据库挂起或变得无响应时,你该怎么办?传统上,唯一的选择是重新启动数据库。但是从12c开始,Oracle引入了一个新特性,即实时自动数据库诊断监视器(Real-Time ADDM),它可以在传统连接失败时以latch-less方式连接到数据库,并进行诊断。
关于号主,姚远:
-
Oracle ACE(Oracle和MySQL数据库方向)
-
华为云最有价值专家
-
《MySQL 8.0运维与优化》的作者
-
拥有 Oracle 10g、12c和19c OCM等数十项数据库认证
-
曾任IBM公司数据库部门经理
-
20+年DBA经验,服务2万+客户
-
精通C和Java,发明两项计算机专利
01
—
概述
管理性能监视器进程(MMON)每3秒运行一次,检查内存中存在的性能问题。一旦检测到任何潜在的性能问题,MMON会启动Real-Time ADDM分析,生成报告,并将其存储在dba_hist_reports和dba_hist_reports_details视图中,视图保存在AWR表空间。有9种性能问题可以触发Real-Time ADDM分析,官方文档列表在这里(https://docs.oracle.com/en/database/oracle/oracle-database/19/tgdba/automatic-performance-diagnostics.html#GUID-9DD81F99-3B4D-4340-9F19-30E5B47DC41D)。
02
—
模拟性能问题
以下脚本通过模拟登录风暴来伪造性能问题:
#!/bin/bash# Oracle database connection detailsDB_HOST="192.168.???.???"DB_PORT="1521"DB_SID="?????.example.com"DB_USER="scott"DB_PASSWORD="scott"# Number of concurrent processesNUM_PROCESSES=1000# Function to perform loginperform_login() { sqlplus -S ${DB_USER}/${DB_PASSWORD}@${DB_HOST}:${DB_PORT}/${DB_SID} @?/rdbms/admin/rtaddmrpti.sqlInstances in this Report reposistory~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Db Id Inst Num---------- --------3148008031 1Default to current database**Enter value for dbid:**Using database id: 3148008031Enter begin time for report:-- Valid input formats:-- To specify absolute begin time:-- [MM/DD[/YY]] HH24:MI[:SS]-- Examples: 02/23/03 14:30:15-- 02/23 14:30:15-- 14:30:15-- 14:30-- To specify relative begin time: (start with '-' sign)-- -[HH24:]MI-- Examples: -1:15 (SYSDATE - 1 Hr 15 Mins)-- -25 (SYSDATE - 25 Mins)Default to -60 mins**Enter value for begin_time: -600**Report begin time specified: -600Enter duration in minutes starting from begin time:Defaults to SYSDATE - begin_timePress Enter to analyze till current time**Enter value for duration:**Report duration specified:Using 21/02/2024 04:24:05 as report begin timeUsing 21/02/2024 14:24:14 as report end timeReport ids in this workload repository.~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ DBID REPORT_ID TIME trigger_cause impact---------- --------- -------------------- ------------------------- ----------3148008031 7865 21/02/2024 10:44:45 High Load 1709.853148008031 7870 21/02/2024 11:31:13 High Load 1556.17Select a report id from the list. If the report id list is empty,please select a different begin time and end time.**Enter value for report_id: 7865**Report id specified : 7865Specify the Report Name~~~~~~~~~~~~~~~~~~~~~~~~The default report file name is rtaddmrpt_0221_1424.html. To use this name,press to continue, otherwise enter an alternative.Enter value for report_name:Using the report name rtaddmrpt_0221_1424.html... Removed HTML Output ...Report written to rtaddmrpt_0221_1830.html
欢迎关注我的公众号,一起学习数据库技术👇
推荐文章👇
从国内外IT人的差异谈如何破除35岁魔咒
试看号主的拙作《MySQL 8.0运维与优化》(清华大学出版社)
托业890分的Oracle ACE为您翻译国际大佬的雄文(合集)
晒一下号主的19个Oracle认证(OCP+OCM),欢迎PK