Oracle DBA的一天
通过查询基本视图,确认数据库和实例处于正常运行状态,可以对外提供数据服务。
查询返回实例名称、状态,正常状态应为Open。
辅助查询,实例当前会话数和启动最高连接会话数量。
查询数据库连接数以实例和用户分组。
查询给定参数的设置值,示例参数缺省值为300,通常中等规模数据库推荐设置为1000。
修改给定的初始化参数,RAC环境需要注意SID参数。
为了解决特殊问题,有时需要设置以下划线开头的隐含参数。
示例关闭了11.2版本中引入的Cardinality Feedback - 基数反馈特性。
当连接数据库实例出现缓慢、挂起等现象,需要进行诊断和分析,甚至可能需要重新启动数据库实例。
示范命令,通过采集系统的Hang信息、系统状态信息等,可以分析系统挂起的原因,间隔采样,可以用于对比变化,辅助分析。
如果在数据库关闭、启动时遇到阻塞、挂起等,可以通过示范命令进行跟踪,获取跟踪文件进行分析。
如果数据库出现异常需要重新启动,可以通过示范命令执行检查点、归档命令,然后尝试以立即方式关闭数据库。
如果立即方式不能顺利关闭数据库,强制的关闭方式为abort。示范命令可以通过分步骤的方式执行数据库启动。
当连接数据库出现异常,需要检测包括网络连通性,监听器状态等信息。
在安装具有Oracle客户端的环境,可以通过tnsping工具测试配置的服务名称,观察网络是否连通以及响应时间。
在数据库服务器上,可以通过lsnrctl工具检查监听状态和服务信息,具体的监听服务名称可以在最后定义修改。
在服务器上,可以通过adrci工具,显示各类告警文件,检查监听器日志,可以诊断监听问题。
日志状态检查检查数据库各类日志信息,确认数据库实例、集群等是否出现错误、告警,如存在问题,则需要进一步分析和应对。
2.1告警日志
根据示例找到告警日志,检查实例是否存在 ORA- 错误提示等。11G:
12C:
在相应路径找到RAC集群日志,检查是否存在错误提示信息等。
在相应路径找到ASM日志,检查是否存在错误提示信息等。
获取会话产生或全局转储位置,在诊断时需检查最近日期文件内容。
确保资源状态显示在线。
当遇到 ORA- 错误,而数据库的输出信息不足时,可以采用errorstack进行跟踪,采集更详细的转储信息。
示例显示了对ORA-600错误设置跟踪,并关闭。
Oracle REDO日志是数据库的核心组件,检查其状态,维护其成员,监控其归档,审核其性能,是DBA的重要工作。
查询日志组号、序号,是否归档完成和状态信息,如多组日志显示ACTIVE状态,则可能说明数据库存在IO方面的性能问题。
查看日志组和成员信息。
在日志切换频繁时,可能需要增加日志组或者加大日志大小。
切换日志组,开始写入下一个日志组。
对当前日志组执行归档,切换到下一个日志组,
在RAC会对所有实例执行归档,Thread参数指定归档实例。
删除指定日志组或日志成员,注意只能对INACTIVE状态的日志执行删除操作。
检查数据库是否处于归档模式。
示例步骤在MOUNT状态改变归档模式,注意启动归档模式之后
务必制订备份归档的日常策略,防止磁盘空间被耗尽。
如果数据库因归档耗尽空间,可以指定另外的归档路径,以尽快归档日志,恢复数据库运行。
确保数据存储空间可用,定期检查表空间余量,进行表空间和文件维护。
查看数据库表空间的使用信息。
查看数据库表空间的剩余空间。
查看数据库表空间的数据文件信息。
对数据库的表空间容量进行扩容。
Lock/Latch是数据库控制并发的核心手段,检查相关信息可以监控数据库的事务和运行状况。
查看锁会话ID,类型,持有时间等,
注意如果block >1,可能意味着阻塞了其他会话。
在数据库出现锁竞争和阻塞时,需要排查和处理锁定,必要时通过Kill阻塞进程消除锁定。
查询当前锁事物中阻塞会话与被阻塞会话的sid,sql_id和状态信息
通过sqlid查询得到SQL文本,例如通过sqlid查询出阻塞的SQL语句。
通过sid查询阻塞对象的详细信息如对象名称,所属用户等
在Oracle实例内杀死阻塞的会话进程,其中sid,serial# 为中止会话对应信息,来自v$session。
有时对于活动进程,在系统层面中止更为快速安全,示例找到系统进程号,然后kill中止。
注意:无论何时,需要认真分析,并且避免误杀重要后台进程。
检查数据库闩的使用情况,misses、SPIN_GETS统计高的,需要关注。
仅供学习:通过获得Latch的地址,找到该Latch守护的X$BH中相关的Buffer。
Wait和Statistics数据分别代表了数据库的等待和运行数据,观察这些数据以了解数据库的等待瓶颈和健康程度。
通过等待事件和等待时间,了解数据库当前连接会话的等待情况。
注意,如果会话众多,需要限定查询输出行数。
查看当前数据中TOP10等待事件信息,需要分析和关注非空闲的显著等待。
查询数据库会话的统计信息数据,示例查询了Redo的大小,SID需要提供。
查询整个系统的统计数据,示例显示数据库实例启动以来的REDO日志生成量。
表、索引、分区、约束等是数据库的核心存储对象,其核心信息和对象维护是DBA重要的日常工作。
查看表的基本信息数据:属主,表名,记录行数等。
根据提供的表名和用户(需大写),查询表的表结构信息(建表语句)。
查询给定用户、给定表(需大写),查询最后的统计信息分析收集时间。统计信息影响执行计划,当SQL执行异常时,需要重点分析统计信息。
收集统计信息是一项复杂任务,需要详细设计,示例对给出用户、表名的对象采集统计信息
查询索引的基本信息,示例输出包括叶块数和聚簇因子等,如聚簇因子过高接近行数可能代表索引效率不高。
根据提供的表名和用户名,查询索引的建立语句。
根据给定的用户名,表名称(需大写),查询索引信息,尤其应关注最后分析时间。
收集统计信息是一项复杂任务,示例对给出用户、索引名的对象采集统计信息。
查看分区表的基本信息:分区类型,数量,边界值等。
根据给定的分区表名、用户(需大写),查询分区表的结构信息(建表语句)。
查看分区表的统计信息收集时间,以及对分区表进行手工收集统计信息,注意分区表统计信息收集非常复杂,需要深入研究做出正确策略,示例仅提供最简单的采集命令。
查询指定数据表的约束信息,包括名称和类型。
检查数据库中的失效对象信息,通常运行健康的数据库中不应有失效的对象。
闪回查询功能对于恢复DML及部分DDL误操作非常便利,DBA必备技能。
7.13.1时间闪回
闪回表数据,基于时间点的表数据闪回查询。
闪回表数据,基于scn的表数据查询,需要提供SCN,如果不明确SCN,可以通过时间点闪回查询。
闪回删除操作,对已经删除的表进行闪回回复并重命名。
通过AWR报告了解日常高峰时段数据库各项指标和运行状况,通过对比报告观察和基线的变化,通过趋势分析持续关注数据库日常运行状态。
生成本地AWR报告信息,需要根据提示输入相应的信息。
生成指定实例AWR报告
生成本地AWR时间段对比报告
生成指定实例AWR时间段对比报告
使用awrextr脚本将AWR性能数据导出,可以用于留错或者异地分析。
通过awrload,可以将导出的AWR性能数据导入到其他数据库中,便于集中和分析。
对TOP SQL进行持续关注和分析,通过SQL报告分析SQL的效率、性能,并做出报告和优化建议等。
生成本地SQLReport报告
生成指定实例SQLRerport报告
生成当前会话的SQL Monitor Report
生成指定SQL_ID的SQL Monitor Report
示例通过explain plan for方法获取SQL执行计划
通过SQL*Plus的 autotrace 功能获取SQL执行计划。
通过DBMSXPLAN包获取SQL执行计划,sqlid 需要提供。
通过10053事件来查看执行计划和详细的SQL解析过程,trace文件提供了Oracle如何选择执行计划的原因。
查询SQL语句的绑定变量以及历史绑定变量值信息,需要给定SQL_ID信息。
检查数据库定时任务执行情况,确保后台任务正确执行,尤其应关注统计信息收集等核心任务。
查询用户的定时任务(job)信息,确保任务在期望的时间成功执行,这是DBA的重要工作之一。
查询系统定时调度信息,查询显示了任务名称、初始启动日期以及重复间隔。
11g之后增加的字典表,记录每个在7天和30天维护任务的统计信息,查询显示名称和平均执行时间。
关闭和开启oralce 10g 统计信息自动采集任务
关闭和开启Oralce 11g 统计信息自动采集任务
数据备份重于一切,日常应检查备份执行情况,并检查备份的有效性,确保备份能够保障数据安全,备份安全加密也应兼顾。
将数据库全库导出导入(示例以及以下示例显示的是非Windows环境),
通过提供的用户,执行全库导出。需要注意存储位置和空间。
将数据库按指定用户导出
将数据库按指定表导出
将数据库全库导出导入, 注意directory是数据库中创建的对象,指定服务器上的存储位置。
将数据库进行按用户导出和导入示例,impdp示例中,分别重新映射了导入的Schema和表空间。
将数据库进行按表导出和导入
检查备份集信息,确保备份有效和及时是DBA的重要工作之一。RMAN的备份信息记录在控制文件中。
控制文件对数据库十分重要,建议启动控制文件的自动备份,示范显示的是通过RMAN的设置。
通过RMAN或者SQL命令手动备份控制文件,备份的是控制文件的二进制拷贝。
通过以上命令转储控制文件二进制信息到文本,研究这些信息,可以极大加深对于数据库的了解。
通过SQL命令转储控制文件到文本,可以用于重建控制文件。
对于DBA备份是第一重要的工作,在归档模式下,
执行全库备份可以简化为示例的一个命令(需要根据容量进行分片)。
基本信息包括版本、组件、补丁集等信息,定期检查数据库信息并登记在案是数据库生命周期管理的重要内容之一。
查看数据库的版本信息
查看数据库的组件信息
如果使用了ASM管理,可以通过示例查看ASM磁盘及磁盘组容量等信息。
查询数据库的版本升级历史信息。
查询数据库补丁历史信息,是系统级的命令工具。
GO HOME!
下一篇:ORACLE DG 日志传输的停止与恢复