oracle数据库与达梦数据(DM)库的日常巡检

oracle数据库与达梦数据(DM)库的日常巡检

--1. 检查数据库基本状况:包含:检查Oracle实例状态,检查Oracle服务进程,检查Oracle监听进程,共三个部分。
	--1.1. 检查Oracle实例状态:其中“STATUS”表示Oracle当前的实例状态,必须为“OPEN”;“DATABASE_STATUS”表示Oracle当前数据库的状态,必须为“ACTIVE”。
	select instance_name,host_name,startup_time,status,database_status from v$instance;		--ORACLE## 标题
	select instance_name,host_name,a.start_time,a.status$ from v$instance a;  				--达梦数据:达梦数据库没有DATABASE_STATUS字段
	--1.2. 检查Oracle在线日志状态
	--输出结果应该有3条以上(包含3条)记录,“STATUS”应该为非“INVALID”,非“DELETED”。注:“STATUS”显示为空表示正常。
	select group#,status,type,member from v$logfile; 	--ORACLE;
	select * from V$RLOGFILE;	--达梦数据:
	--1.3. 检查Oracle/DM表空间的状态:输出结果中STATUS应该都为ONLINE。
	select tablespace_name,status from dba_tablespaces; 
	--1.4. 检查Oracle所有数据文件状态
	--输出结果中“STATUS”应该都为“ONLINE”。
	select name,status from v$datafile;    --DM数据库无name
	--输出结果中“STATUS”应该都为“AVAILABLE”
	select file_name,status from dba_data_files;  --(oracle,DM)
	--1.5. 检查无效对象
	--如果有记录返回,则说明存在无效对象。若这些对象与应用相关,那么需要重新编译生成这个对象
	select owner,object_name,object_type,status from dba_objects where status!='VALID' and owner!='SYS';   --(oracle,DM)
	SELECT owner, object_name, object_type FROM dba_objects WHERE status= 'INVALID';  --所有用户
	--1.6. 检查所有回滚段状态
	--输出结果中所有回滚段的“STATUS”应该为“ONLINE”。
	select segment_name,status from dba_rollback_segs;  --oracle,DM无此表
	--*************************************************************************************************************************************
	---------------------------------------------------------------------------------------------------------------------------------------
	---------------------------------------------------------------------------------------------------------------------------------------
--2. 检查Oracle/DM相关资源的使用情况
	/*包含:
	a.检查Oracle/DM初始化文件中相关的参数值
	b.检查数据库连接情况,检查系统磁盘空间
	c.检查Oracle/DM各个表空间使用情况,检查一些扩展异常的对象,
	d.检查system表空间内的内容,检查对象的下一扩展与表空间的最大扩展值,总共七个部分。*/
	--2.1. 检查Oracle/DM初始化文件中相关参数值
	--若LIMIT_VALUE-MAX_UTILIZATION<=5,则表明与RESOURCE_NAME相关的Oracle初始化参数需要调整。
	--可以通过修改Oracle初始化参数文件$ORACLE_BASE/admin/CKDB/pfile/initORCL.ora来修改。
	select resource_name,max_utilization,initial_allocation,limit_value	from v$resource_limit;  --(oracle)
	select * from v$resource_limit;  --(DM)
	--2.2. 检查数据库连接情况
	--查看当前会话连接数,是否属于正常范围。
	select count(*) from v$session;		--Oracle
	select sid,serial#,username,program,machine,status from v$session;   --Oracle
	select count(*) from v$sessions;   --DM
	select sess_id,sess_seq,user_name,appname,clnt_ip,state from v$sessions;   --DM
	/*其中:SID 会话(session)的ID号;
	SERIAL# 会话的序列号,和SID一起用来唯一标识一个会话;
	USERNAME 建立该会话的用户名;
	PROGRAM 这个会话是用什么工具连接到数据库的;
	STATUS 当前这个会话的状态,ACTIVE表示会话正在执行某些任务,INACTIVE表示当前会话没有执行任何操作;
	如果建立了过多的连接,会消耗数据库的资源,同时,对一些“挂死”的连接可能需要手工进行清理。如果DBA要手工断开某个会话,则执行:*/
	alter system kill session 
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值