<>DBA的日常运维–Part1

1.活动状态检查
1-1.检查实例状态
SELECT instance_name,status FROM gv$instance; --查询返回实例名称、状态,正常状态应为Open。
$crsctl status resource –t ---集群状态 select name,open_mode from v$PDBS; ---PDB状态
GDSCTL> config shard ---Sharding状态
1-2.会话信息
SELECT SESSIONS_CURRENT,SESSIONS_HIGHWATER FROM v$license;
---辅助查询,实例当前会话数和启动最高连接会话数量。 SELECT inst_id,username,COUNT(*) FROM gv$session
GROUP BYinst_id,username; ---查询数据库连接数以实例和用户分组。
1-3.参数检查
SELECT value FROM v$parameter WHERE name='open_cursors';
---查询给定参数的设置值,示例参数缺省值为300,通常中等规模数据库推荐设置为1000。
1-4.参数修改
ALTER SYSTEM SET undo_retention=3600 COMMENT='default 900' SID='*' SCOPE=both;
---修改给定的初始化参数,RAC环境需要注意SID参数。
1-5.实例异常
当连接数据库实例出现缓慢、挂起等现象,需要进行诊断和分析,甚至可能需要重新启动数据库实例。

1.5.1信息采集
SQL>sqlplus -prelim / as sysdba SQL>oradebug setmypid SQL>oradebug unlimit
SQL>oradebug hanganalyze 3 SQL>oradebug dump systemstate 266 ---
间隔一定时间,如20秒,执行下一次数据采样. SQL>oradebug hanganalyze 3 SQL>oradebug dump systemstate
266
示范命令,通过采集系统的Hang信息、系统状态信息等,可以分析系统挂起的原因,间隔采样,可以用于对比变化,辅助分析。

1.5.2 跟踪
SQL>alter session set events '10046 trace name context forever,level 12';
SQL>shutdown immedaite; SQL>startup mount; SQL>alter session set events '10046
trace name context forever,level 12'; SQL>alter database open;
如果在数据库关闭、启动时遇到阻塞、挂起等,可以通过示范命令进行跟踪,获取跟踪文件进行分析。

1.5.3 安全停库
SQL>alter system checkpoint; SQL>alter system archive log current;
SQL>shutdown immediate;
如果数据库出现异常需要重新启动,可以通过示范命令执行检查点、归档命令,然后尝试以立即方式关闭数据库。

1.5.4 强制停库
SQL>shutdown abort; SQL>startup nomount; SQL>alter database mount; SQL>alter
database open;
如果立即方式不能顺利关闭数据库,强制的关闭方式为abort。示范命令可以通过分步骤的方式执行数据库启动。

1-6. 连接异常
当连接数据库出现异常,需要检测包括网络连通性,监听器状态等信息。

1.6.1连通性
tnsping tns_name
在安装具有Oracle客户端的环境,可以通过tnsping工具测试配置的服务名称,观察网络是否连通以及响应时间。

1.6.2监听器
lsnrctl status LISTENER lsnrctl status LISTENER_SCAN1 lsnrctl service
在数据库服务器上,可以通过lsnrctl工具检查监听状态和服务信息,具体的监听服务名称可以在最后定义修改。

1.6.3监听日志检查
adrci>showalert
在服务器上,可以通过adrci工具,显示各类告警文件,检查监听器日志,可以诊断监听问题。