你知道DBA工程师到底需要做什么工作吗?

Posted Oracle暨大

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了你知道DBA工程师到底需要做什么工作吗?相关的知识,希望对你有一定的参考价值。

这个我整理的Oracle DBA所需要担负的职责以及日常工作中需要做到的一些工作,你们可以很清楚的知道做一个合格的DBA需要哪些知识和技能


DBA 职责及日常工作职责:

1.安装和升级数据库服务器,以及应用程序工具构建和配置网络环境.

2.熟悉数据库系统的存储结构预测未来的存储需求,制订数据库的存储方案.

3.根据开发人员设计的应用系统需求创建数据库存储结构.

4.根据开发人员设计的应用系统需求创建数据库对象

5.根据开发人员的反馈信息,在必要的时候修改数据库的结构

6.管理数据库的用户维护数据库的安全性

7.控制和监控用户对数据库的存取访问

8.监控和优化数据库的性能

9.制定数据库备份计划,灾难出现时对数据库信息进行恢复

10.备份和恢复数据库

11.联系数据库系统生产厂商,跟踪技术信息

12.解决客户端中间层和服务器的链接问题

13.保证安全连接 

每日工作:

1 确保服务器工作状态正常,各类数据库状态正常

2 检查硬盘空间是否够用

3 查看数据库日志,查看跟踪文件,检查是否有错误信息

4 检查备份的有效性

5 通过系统的性能监视器对服务器的性能参数监控发现数据库的性能是否下降,寻找原因并解决

6 填写dba日志

每周工作:

1 监控数据库对象的空间扩展情况

2 决定是否调整存储参数

3 对系统健康检查

4 检查删除没有任何意义的数据对象

5 检查删除没有意义的约束和触发器

6 对每周的备份检查处理

每月工作:

1 根据上面的检查情况,分析数据库中是否有影响性能的存储碎片存在

2 根据数据库性能的历史数据,决定如何优化性能

3 处理每日每周每月的备份

4 总结工作,提出下一步的管理计划

Oracle DBA日常工作总结

Oracle管理员应按如下方式对Oracle数据库系统做定期监控:

1、每天对Oracle数据库的运行状态、日志文件、备份情况、数据库空间使用情况、系统资源使用情况进行检查,发现并解决问题。

2、每周对数据库对象的空间扩展情况、数据的增长情况进行监控、对数据库做健康检查、对数据库对象的状态做检查。

3、每月对表和索引等进行analyze、检查表空间碎片、寻找数据库性能调整的机会、进行数据库性能调整、提出下一步空间管理计划。对Oracle数据库状态进行一次全面检查。

每天工作

1、确认所有的instance状态正常登录到所有数据库或实例,检测Oracle后台进程:#ps -ef | grep ora

2、检查文件系统的使用(剩余空间)。如果文件系统的剩余空间小于20%,需删除不用的文件以释放空间。#df -k

3、检查日志文件和trace文件记录alert和trace文件中的错误。 cd $Oracle_BASE/oradata/<sid>/bdumptail -f alert_<sid>.log 

发现任何新的ORA_错误,记录并解决

4、检查数据库当日备份的有效性

对RMAN备份方式,检查第三方备份工具的备份日志以确定备份是否成功

对EXPORT备份方式,检查exp日志文件以确定备份是否成功

对其它备份方式,检查相应的日志文件

5、检查数据文件的状态记录状态不是“online"的数据文件,并做恢复。

select file_name from dba_data_files where status="OFFLINE" 


6、检查表空间的使用情况
select a.tablespace_name,round((total-free)/total,3)*100 pecentfrom (select tablespace_name,sum(bytes) free from dba_free_space group by tablespace_name) a,(select tablespace_name,sum(bytes) total from dba_data_files group by tablespace_name) bwhere a.tablespace_name=b.tablespace_name 


7、检查剩余表空间
select tablespace_name,sum(blocks) as free_blk,trunc(sum(bytes)/(1024*1024)) as free_m,max(bytes)/(1024) as big_chunk_k,count(*) as num_chunksfrom dba_free_space group by tablespace_name; 


8、监控数据库性能

运行utlbstat.sql/utlestat.sql生成系统报告,或者使用statspace收集统计数据

9、检查数据库性能,记录数据库的CPU使用、IO、Buffer命中率等等,使用vmstat,iostat,glance,top

10、日常出现问题的处理

每周的工作

1、控制数据库对象的空间扩展情况,根据本周每天的检查情况找到空间扩展很快的数据库对象,并采取相应的措施。

删除历史数据、扩展表空间
alter tablespace <name> add datafile '<file>' size <size> 


调整数据对象的存储参数 next extent pct_increase

2、监控数据量的增长情况

根据本周每天的检查情况找到记录数据数量增长很快的数据库对象,并采取相应的措施

删除历史数据、扩表空间

alter tablespace <name> add datafile '<file>' size <size> 


3、系统健康检查

检查以下内容:
init<sid>.oracontrolfileredo log filearchiveingsort area sizetablespace(system,temporary,tablespace fragment)datafiles(autoextend,location)object(number of extent,next extent,index)rollback segmentlogging & tracing(alert.log,max_dump_file_size,sqlnet) 


4、检查无效的数据库对象

select owner,object_name,object_type from dba_objects where status='INVALID' 


5、检查不起作用的约束

select owner,constraint_name,table_name,constraint_type,status from dba_constraintswhere status='DISABLED' and c 


6、检查无效的trigger
select owner,trigger_name,table_name,status from dba_triggerswhere status='DISABLED' 


每月的工作

1、Analyze tables/indexes/cluster

analyze table <name> estimate statistics sample 50 percent;

2、检查表空间碎片

根据本月每周的检查分析数据库碎片,找到相应的解决方法

3、寻找数据库性能调整机会

比较每天对数据库性能的监控报告,确定是否有必要对数据库性能进行调整

4、数据库性能调整,如有必要进行性能调整

5、提出下一步空间管理计划,根据每周的监控,提出空间管理的改进方法


以上是关于你知道DBA工程师到底需要做什么工作吗?的主要内容,如果未能解决你的问题,请参考以下文章

用大白话告诉你 :Java 后端到底是在做什么?

用大白话告诉你 :Java 后端到底是在做什么?

考dba有啥条件?

嵌入式软件工程师能做什么!需要哪些专业技能!这些你了解吗?

DBA工程师每日流程——数据备份

云计算运维工程师是做什么的?需要经常加班吗?