ORACLE数据库管理员的职责
应按如下⽅式对ORACLE数据库系统做定期监控:
(1). 每天对ORACLE数据库的运⾏状态,⽇志⽂件,备份情况,数据库的空间使⽤情况,系统资源的使⽤情况进⾏检查,发现并解决问题。
(2). 每周对数据库对象的空间扩展情况,数据的增长情况进⾏监控,对数据库做健康检查,对数据库对象的状态做检查。
(3). 每⽉对表和索引等进⾏Analyze,检查表空间碎⽚,寻数据库性能调整的机会,进⾏数据库性能调整,提出下⼀步空间管理计划,对ORACLE数据库状态进⾏⼀次全⾯检查。
每天的⼯作:
(1).确认所有的INSTANCE状态正常。
登陆到所有数据库或例程,检测ORACLE后台进程:
$ps -ef|grep ora
(2). 检查⽂件系统的使⽤(剩余空间)。如果⽂件系统的剩余空间⼩于20%,需删除不⽤的⽂件以释放空间:
$df -k
(3). 检查⽇志⽂件和trace⽂件记录alert和trace⽂件中的错误。
连接到每个需管理的系统:
使⽤'telnet'
对每个数据库,cd到bdump⽬录,通常是$ORACLE_BASE /bdump
使⽤ Unix 'tail'命令来查看alert_ .log⽂件,如果发现任何新的ORA-错误,记录并解决。
(4). 检查数据库当⽇备份的有效性。
对RMAN备份⽅式:
检查第三⽅备份⼯具的备份⽇志以确定备份是否成功。
对EXPORT备份⽅式:
检查exp⽇志⽂件以确定备份是否成功
对其他备份⽅式:
检查相应的⽇志⽂件
(5). 检查数据⽂件的状态记录状态不是“online”的数据⽂件,并做恢复:
Select file_name from dba_data_files where status='OFFLINE';
(6). 检查表空间的使⽤情况:
SELECT tablespace_name,max_m,count_blocks free_blk_cnt,sum_free_m,to_char(100*sum_free_m/sum_m, '99.99') || '%' AS pct_free FROM (SELECT tablespace_name,sum(bytes)/1024/1024 AS sum_m FROM dba_data_files GROUP BY tablespace_name),(SELECT tablespace_name AS fs_ts_name, max(bytes)/1024/1024 AS max_m,count(blocks) AS count_blocks,sum(bytes/1024/1024) AS sum_free_m FROM dba_free_space GROUP BY tablespace_name) WHERE tablespace_name=fs_ts_name;
(7). 检查剩余表空间:
oracle数据库自动备份方法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_chunks FROM dba_free_space GROUP BY tablespace_name;
(8). 监控数据库性能:
运⾏bstat/estat⽣成系统报告,或者使⽤statspack收集统计数据;
(9). 检查数据库性能,记录数据库的cpu使⽤、IO、buffer命中率等等;
使⽤vmstat,iostat,glance,top等命令。
(10). ⽇常出现问题的处理。
每周的⼯作:
(1). 监控数据库对象的空间扩展情况:
根据本周每天的检查情况到空间扩展很快的数据库对象,并采取相应的措施
-- 删除历史数据
--- 扩表空间
alter tablespace add datafile‘xxxx.dbf ’ size 10M;
--- 调整数据对象的存储参数
next extent
pct_increase
(2). 监控数据量的增长情况
根据本周每天的检查情况到记录数量增长很快的数据库对象,并采取相应的措施
-- 删除历史数据
--- 扩表空间
alter tablespace add datafile ‘xxx.dbf ’ size 100M;?
(3). 系统健康检查
检查以下内容:
init .ora
controlfile
redo log file
archiving
sort area size
tablespace(system,temporary,tablespace fragment)
datafiles(autoextend,location)
object(number of extent,next extent,index)
rollback segment
logging &tracing(alert.log,max_dump_file_size,sqlnet)
(4). 检查⽆效的数据库对象:
SELECT owner, object_name, object_type FROM dba_objects W HERE status='INVALID'; (5). 检查不起作⽤的约束
SELECT owner, constraint_name, table_name,constraint_type,status FROM dba_constraints
WHERE status = 'DISABLED’ AND constraint_type = 'P';
(6). 检查⽆效的trigger
SELECT owner,trigger_name,table_name,status FROM dba_triggers WHERE status ='DISABLED’;
每⽉的⼯作
(1). Analyze Tables/Indexes/Cluster
analyze table estimate statistics sample 50 percent;
(2). 检查表空间碎⽚
根据本⽉每周的检查分析数据库碎⽚情况,到相应的解决⽅法。
(3). 寻数据库性能调整的机会
⽐较每天对数据库性能的监控报告,确定是否有必要对数据库性能进⾏调整
(4). 数据库性能调整
如有必要,进⾏性能调整
(5). 提出下⼀步空间管理计划
根据每周的监控,提出空间管理的改进⽅法
Oracle DBA ⽇常管理
⽬的:这篇⽂档有很详细的资料记录着对⼀个甚⾄更多的ORACLE 数据库每天的,每⽉的,每年的运⾏的状态的结果及检查的结果,在⽂档的附录中你将会看到所有检查,修改的SQL和PL/SQL 代码。
⽬录
1.⽇常维护程序
A.检查已起的所有实例
B.查⼀些新的警告⽇志
C.检查DBSNMP 是否在运⾏
D.检查数据库备份是否正确
E.检查备份到磁带中的⽂件是否正确
F.检查数据库的性能是否正常合理,是否有⾜够的空间和资源
G.将⽂档⽇志复制到备份的数据库中
H.要常看DBA ⽤户⼿册
2.晚间维护程序
A.收集VOLUMETRIC 的数据
3.每周维护⼯作
A.查那些破坏规则的OBJECT
B.查是否有违反安全策略的问题
C.查看错误地⽅的SQL*NET ⽇志
D.将所有的警告⽇志存档
E.经常访问供应商的主页
4.⽉维护程序
A.查看对数据库会产⽣危害的增长速度
B.回顾以前数据库优化性能的调整
C.查看I/O 的屏颈问题
D.回顾FRAGMENTATION
E.将来的执⾏计划
F.查看调整点和维护
5.附录
A.⽉维护过程
B.晚间维护过程
C.周维护过程
⼀.⽇维护过程
A.查看所有的实例是否已起
确定数据库是可⽤的,把每个实例写⼊⽇志并且运⾏⽇报告或是运⾏测试
⽂件。当然有⼀些操作我们是希望它能⾃动运⾏的。
可选择执⾏:⽤ORACLE 管理器中的‘PROBE’事件来查看
B.查新的警告⽇志⽂件
1. 联接每⼀个操作管理系统
2. 使⽤‘TELNET’或是可⽐较程序
3. 对每⼀个管理实例,经常的执⾏$ORACLE_BASE/ /bdump 操
作,并使其能回退到控制数据库的SID。
4. 在提⽰下,使⽤UNIX 中的‘TAIL’命令查看alert_ .log,或是⽤其他⽅式检查⽂件中最近时期的警告⽇志。
5. 如果以前出现过的⼀些ORA_ERRORS ⼜出现,将它记录到数据库恢复⽇志中并且仔细的研究它们,这个数据库恢复⽇志在〈FILE〉中。C.查看DBSNMP 的运⾏情况
检查每个被管理机器的‘DBSNMP’进程并将它们记录到⽇志中。
在UNIX 中,在命令⾏中,键⼊ps –ef | grep dbsnmp,将回看到2个DBSNMP 进程在运⾏。如果没有,重启DBSNMP。
D.查数据库备份是否成功
E.检查备份的磁带⽂档是否成功
F.检查对合理的性能来说是否有⾜够的资源
1. 检查在表空间中有没有剩余空间。
对每⼀个实例来说,检查在表空间中是否存在有剩余空间来满⾜当天
的预期的需要。当数据库中已有的数据是稳定的,数据⽇增长的平均
数也是可以计算出来,最⼩的剩余空间⾄少要能满⾜每天数据的增长。
A)运⾏‘FREE.SQL’来检查表空间的剩余空间。
B)运⾏‘SPACE.SQL’来检查表空间中的剩余空间百分率
2. 检查回滚段
回滚段的状态⼀般是在线的,除了⼀些为复杂⼯作准备的专⽤段,它⼀般状态是离线的。
a) 每个数据库都有⼀个回滚段名字的列表。
b) 你可以⽤V$ROLLSTAT 来查询在线或是离线的回滚段的现在状态.
c) 对于所有回滚段的存储参数及名字,可⽤
DBA_ROLLBACK_SEGS 来查询。但是它不如V$ROLLSTAT 准确。
3. 识别出⼀些过分的增长
查看数据库中超出资源或是增长速度过⼤的段,这些段的存储参数需要调整。
a)收集⽇数据⼤⼩的信息,可以⽤'A NALYZE5PCT.SQL'。如果你收集的是每晚的信息,则可跳过这⼀步。
b)检查当前的范围,可⽤‘NR.EXTENTS.SQL’。
c)查询当前表的⼤⼩信息。
d)查询当前索引⼤⼩的信息。
e)查询增长趋势。
4. 确定空间的范围。
如果范围空间对象的NEXT_EXTENT ⽐表空间所能提供的最⼤范围还要⼤,那么这将影响数据库的运⾏。如果我们到了这个⽬标,可以⽤‘ALTER TABLESPACE COALESCE’调查它的位置,或加另外的数据⽂件。
A)运⾏‘SPACEBOUND.SQL’。如果都是正常的,将不返回任何⾏。
5. 回顾CPU,内存,⽹络,硬件资源论点的过程
A)检查CPU的利⽤情况,进到x:.htm =>system
metrics=>CPU 利⽤页,CPU 的最⼤限度为400,当CPU 的占⽤保持
在350 以上有⼀段时间的话,我们就需要查看及研究出现的问题。
G.将存档⽇志复制到备⽤数据库中
如果有⼀个备⽤数据库,将适当的存档⽇志复制到备⽤数据库的期望
位置,备⽤数据库中保存最近期的数据。
H. 经常查阅DBA ⽤户⼿册
如果有可能的话,要⼴泛的阅读,包括DBA ⼿册,⾏业杂志,新闻组或是邮件列表。
-------------------------------------------------------------
⼆.晚间维护过程
⼤部分的数据库产品将受益于每晚确定的检查进程的运⾏。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。