ORACLE数据库管理员应按如下方式对ORACLE数据库系统做定期监控: (1). 每天对ORACLE数据库的运行状态,日志文件,备份情况,数据 PHP程序员站
库的空间使用情况,系统资源的使用情况进行检查,发现并解决 www phperz com
问题。 PHP程序员站
(2). 每周对数据库对象的空间扩展情况,数据的增长情况进行监控,对数据库做健康检查,对数据库对象的状态做检查。 www phperz com
(3). 每月对表和索引等进行Analyze,检查表空间碎片,寻找数据库 PHP程序员站--PHP程序员之家
性能调整的机会,进行数据库性能调整,提出下一步空间管理 www phperz com
计划。对ORACLE数据库状态进行一次全面检查。 PHP程序员站--PHP程序员之家
每天的工作 PHP程序员站
(1).确认所有的INSTANCE状态正常 www~phperz~.com
登陆到所有数据库或例程,检测ORACLE后台进程: www phperz com
$ps –ef|grep ora www.phperz.com
(2). 检查文件系统的使用(剩余空间)。如果文件系统的剩余空间小于20%,需删除不用的文件以释放空间。 PHP程序员站--PHP程序员之家
$df –k www~phperz~.com
(3). 检查日志文件和trace文件记录alert和trace文件中的错误。 www phperz com
连接到每个需管理的系统 phperz.com
? 使用’telnet’ phperz.com
? 对每个数据库,cd 到bdump目录,通常是$ORACLE_BASE/<SID>;/bdump PHP程序员站
? 使用 Unix ‘tail’命令来查看alert_<SID>;.log文件 www phperz com
? 如果发现任何新的ORA- 错误,记录并解决 phperz.com
(4). 检查数据库当日备份的有效性。 phperz.com
对RMAN备份方式: PHP程序员站
检查第三方备份工具的备份日志以确定备份是否成功 www~phperz~.com
对EXPORT备份方式: phperz.com
检查exp日志文件以确定备份是否成功 PHP程序员站
对其他备份方式: PHP程序员站--PHP程序员之家
检查相应的日志文件 www phperz com
(5). 检查数据文件的状态记录状态不是“online”的数据文件,并做恢复。 PHP程序员站
Select file_name from dba_data_files where status=’OFFLINE’ www.phperz.com
(6). 检查表空间的使用情况 PHP程序员站--PHP程序员之家
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 www phperz com
FROM ( SELECT tablespace_name,sum(bytes)/1024/1024 AS sum_m FROM dba_data_files GROUP BY tablespace_name), www phperz com
( 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 ) www phperz com
WHERE tablespace_name = fs_ts_name www.phperz.com
(7). 检查剩余表空间 PHP程序员站--PHP程序员之家
SELECT tablespace_name, sum ( blocks ) as free_blk , www.phperz.com
trunc ( sum ( bytes ) /(1024*1024) ) as free_m, PHP程序员站
max ( bytes ) / (1024) as big_chunk_k, count (*) as num_chunks www phperz com
FROM dba_free_space GROUP BY tablespace_name; PHP程序员站
(8). 监控数据库性能 www~phperz~.com
运行bstat/estat生成系统报告 PHP程序员站--PHP程序员之家
或者使用statspack收集统计数据 PHP程序员站
(9). 检查数据库性能,记录数据库的cpu使用、IO、buffer命中率等等 PHP程序员站--PHP程序员之家
使用vmstat,iostat,glance,top等命令 www phperz com
(10). 日常出现问题的处理。 www.phperz.com
每周的工作 PHP程序员站
(1). 控数据库对象的空间扩展情况 www phperz com
根据本周每天的检查情况找到空间扩展很快的数据库对象,并采取相 www~phperz~.com
应的措施 www~phperz~.com
-- 删除历史数据 PHP程序员站
--- 扩表空间 PHP程序员站--PHP程序员之家
alter tablespace <name>; add datafile ‘<file>;’ size <size>; PHP程序员站
--- 调整数据对象的存储参数 PHP程序员站--PHP程序员之家
next extent PHP程序员站
pct_increase www.phperz.com
(2). 监控数据量的增长情况 PHP程序员站--PHP程序员之家
根据本周每天的检查情况找到记录数量增长很快的数据库对象,并采 www~phperz~.com
取相应的措施 www phperz com
-- 删除历史数据 PHP程序员站--PHP程序员之家
--- 扩表空间 PHP程序员站--PHP程序员之家
alter tablespace <name>; add datafile ‘<file>;’ size <size>; www~phperz~.com
(3). 系统健康检查 www.phperz.com
检查以下内容: www.phperz.com
init<sid>;.ora www~phperz~.com
controlfile www.phperz.com
redo log file www phperz com
archiving www~phperz~.com
sort area size phperz.com
tablespace(system,temporary,tablespace fragment) www phperz com
datafiles(autoextend,location) www phperz com
object(number of extent,next extent,index) PHP程序员站--PHP程序员之家
rollback segment PHP程序员站--PHP程序员之家
logging &tracing(alert.log,max_dump_file_size,sqlnet) PHP程序员站--PHP程序员之家
(4). 检查无效的数据库对象 www phperz com
SELECT owner, object_name, object_type FROM dba_objects www.phperz.com
WHERE status=’INVALID’。 PHP程序员站
(5). 检查不起作用的约束 PHP程序员站--PHP程序员之家
SELECT owner, constraint_name, table_name, www~phperz~.com
constraint_type, status www.phperz.com
FROM dba_constraints www phperz com
WHERE status = 'DISABLED’ AND constraint_type = 'P' www~phperz~.com
(6). 检查无效的trigger www~phperz~.com
SELECT owner, trigger_name, table_name, status www~phperz~.com
FROM dba_triggers PHP程序员站
WHERE status = 'DISABLED’ phperz.com
每月的工作 PHP程序员站
(1). Analyze Tables/Indexes/Cluster PHP程序员站
analyze table <name>; estimate statistics sample 50 percent; www~phperz~.com
(2). 检查表空间碎片 PHP程序员站
根据本月每周的检查分析数据库碎片情况,找到相应的解决方法 www phperz com
(3). 寻找数据库性能调整的机会 phperz.com
比较每天对数据库性能的监控报告,确定是否有必要对数据库性能进 行调整 www phperz com
(4). 数据库性能调整 www~phperz~.com
如有必要,进行性能调整 PHP程序员站
(5). 提出下一步空间管理计划 PHP程序员站
根据每周的监控,提出空间管理的改进方法 www phperz com
Oracle DBA 日常管理 phperz.com
目的:这篇文档有很详细的资料记录着对一个甚至更多的ORACLE 数据库每天的,每月的, PHP程序员站
每年的运行的状态的结果及检查的结果,在文档的附录中你将会看到所有检查,修改的SQL PHP程序员站--PHP程序员之家
和PL/SQL 代码。 www phperz com
目录 PHP程序员站--PHP程序员之家
1.日常维护程序 www.phperz.com
A. 检查已起的所有实例 PHP程序员站
B. 查找一些新的警告日志 www.phperz.com
C. 检查DBSNMP 是否在运行 PHP程序员站
D. 检查数据库备份是否正确 www phperz com
E. 检查备份到磁带中的文件是否正确 PHP程序员站--PHP程序员之家
F. 检查数据库的性能是否正常合理,是否有足够的空间和资源 www phperz com
G. 将文档日志复制到备份的数据库中 PHP程序员站--PHP程序员之家
H. 要常看DBA 用户手册 www phperz com
2.晚间维护程序 www phperz com
A.收集VOLUMETRIC 的数据 PHP程序员站
3.每周维护工作 PHP程序员站--PHP程序员之家
A. 查找那些破坏规则的OBJECT www phperz com
B. 查找是否有违反安全策略的问题 phperz.com
C. 查看错误地方的SQL*NET 日志 www phperz com
D. 将所有的警告日志存档 phperz.com
E. 经常访问供应商的主页 PHP程序员站
4.月维护程序 www phperz com
A. 查看对数据库会产生危害的增长速度 www phperz com
B. 回顾以前数据库优化性能的调整 PHP程序员站--PHP程序员之家
C. 查看I/O 的屏颈问题 www phperz com
D. 回顾FRAGMENTATION PHP程序员站
E. 将来的执行计划 www phperz com
F. 查看调整点和维护 PHP程序员站--PHP程序员之家
5.附录 PHP程序员站--PHP程序员之家
A. 月维护过程 www phperz com
B. 晚间维护过程 PHP程序员站--PHP程序员之家
C. 周维护过程 PHP程序员站--PHP程序员之家
6.参考文献 PHP程序员站--PHP程序员之家
---------------------------------------------------------------- www phperz com
一.日维护过程 PHP程序员站--PHP程序员之家
A.查看所有的实例是否已起 PHP程序员站
确定数据库是可用的,把每个实例写入日志并且运行日报告或是运行测试 www phperz com
文件。当然有一些操作我们是希望它能自动运行的。 www.phperz.com
可选择执行:用ORACLE 管理器中的‘PROBE’事件来查看 www.phperz.com
B.查找新的警告日志文件 PHP程序员站--PHP程序员之家
1. 联接每一个操作管理系统 www phperz com
2. 使用‘TELNET’或是可比较程序 phperz.com
3. 对每一个管理实例,经常的执行$ORACLE_BASE/<SID>;/bdump 操 PHP程序员站
作,并使其能回退到控制数据库的SID。 PHP程序员站
4. 在提示下,使用UNIX 中的‘TAIL’命令查看alert_<SID>;.log,或是 PHP程序员站
用其他方式检查文件中最近时期的警告日志 www phperz com
5. 如果以前出现过的一些ORA_ERRORS 又出现,将它记录到数据库 PHP程序员站--PHP程序员之家
恢复日志中并且仔细的研究它们,这个数据库恢复日志在〈FILE〉中 PHP程序员站
C.查看DBSNMP 的运行情况 PHP程序员站--PHP程序员之家
检查每个被管理机器的‘DBSNMP’进程并将它们记录到日志中。 www~phperz~.com
在UNIX 中,在命令行中,键入ps –ef | grep dbsnmp,将回看到2 个 www phperz com
DBSNMP 进程在运行。如果没有,重启DBSNMP。 www~phperz~.com
D.查数据库备份是否成功 PHP程序员站--PHP程序员之家
E.检查备份的磁带文档是否成功 www phperz com
F.检查对合理的性能来说是否有足够的资源 PHP程序员站
1. 检查在表空间中有没有剩余空间。 PHP程序员站
对每一个实例来说,检查在表空间中是否存在有剩余空间来满足当天 www~phperz~.com
的预期的需要。当数据库中已有的数据是稳定的,数据日增长的平均 www phperz com
数也是可以计算出来,最小的剩余空间至少要能满足每天数据的增 长。 phperz.com
A) 运行‘FREE.SQL’来检查表空间的剩余空间。 PHP程序员站
B) 运行‘SPACE.SQL’来检查表空间中的剩余空间百分率 www~phperz~.com
2. 检查回滚段 PHP程序员站
回滚段的状态一般是在线的,除了一些为复杂工作准备的专用 段,它一般状态是离线的。 PHP程序员站
a) 每个数据库都有一个回滚段名字的列表。 PHP程序员站
b) 你可以用V$ROLLSTAT 来查询在线或是离线的回滚段的现在状 态. PHP程序员站
c) 对于所有回滚段的存储参数及名字, 可用 www.phperz.com
DBA_ROLLBACK_SEGS 来查询。但是它不如V$ROLLSTAT 准确。 PHP程序员站
3. 识别出一些过分的增长 www phperz com
查看数据库中超出资源或是增长速度过大的段,这些段的存储参 数需要调整。 www phperz com
a) 收集日数据大小的信息, 可以用 phperz.com
‘ANALYZE5PCT.SQL’。如果你收集的是每晚的信息, 则可跳过这一步。 www~phperz~.com
b) 检查当前的范围,可用‘NR.EXTENTS.SQL’。 www~phperz~.com
c) 查询当前表的大小信息。 www phperz com
d) 查询当前索引大小的信息。 PHP程序员站
e) 查询增长趋势。 phperz.com
4. 确定空间的范围。 www phperz com
如果范围空间对象的NEXT_EXTENT 比表空间所能提供的最大范 www.phperz.com
围还要大,那么这将影响数据库的运行。如果我们找到了这个目标,可 www phperz com
以用‘ALTER TABLESPACE COALESCE’调查它的位置,或加另外 的数据文件。 www phperz com
A)运行‘SPACEBOUND.SQL’。如果都是正常的,将不返回任何行。 www.phperz.com
5. 回顾CPU,内存,网络,硬件资源论点的过程 www~phperz~.com
A)检查CPU的利用情况,进到x:.htm =>;system PHP程序员站
metrics=>;CPU 利用页,CPU 的最大限度为400,当CPU 的占用保持 PHP程序员站--PHP程序员之家
在350 以上有一段时间的话,我们就需要查看及研究出现的问题。 phperz.com
G.将存档日志复制到备用数据库中 PHP程序员站--PHP程序员之家
如果有一个备用数据库,将适当的存档日志复制到备用数据库的期望 www~phperz~.com
位置,备用数据库中保存最近期的数据。 www phperz com
H. 经常查阅DBA 用户手册 PHP程序员站
如果有可能的话,要广泛的阅读,包括DBA 手册,行业杂志,新闻 组或是邮件列表。 www.phperz.com
------------------------------------------------------------- PHP程序员站--PHP程序员之家
二.晚间维护过程 PHP程序员站
大部分的数据库产品将受益于每晚确定的检查进程的运行。 PHP程序员站--PHP程序员之家
A. 收集VOLUMETRIC 数据 www.phperz.com
1. 分析计划和收集数据 phperz.com
更准确的分析计算并保存结果。 PHP程序员站--PHP程序员之家
a) 如果你现在没有作这些的话,用‘MK VOLFACT.SQL’来创建测定体积的 表。 PHP程序员站
b) 收集晚间数据大小的信息,用‘ANALYZE COMP.SQL’。 PHP程序员站
c) 收集统计结果,用‘POP VOL.SQL’。 www phperz com
d) 在空闲的时候检查数据,可能的话,每周或每个月进行。 PHP程序员站--PHP程序员之家
我是用MS EXCEL 和ODBC 的联接来检查数据和图表的增长 PHP程序员站--PHP程序员之家
------------------------------------------------------------- www phperz com
三.每周维护过程 PHP程序员站--PHP程序员之家
A. 查找被破坏的目标 www.phperz.com
1. 对于每个给定表空间的对象来说,NEXT_EXTENT 的大小是相同的,如 PHP程序员站--PHP程序员之家
12/14/98,缺省的NEXT_EXTENT 的DATAHI 为1G,DATALO 为500MB, PHP程序员站
INDEXES 为256MB。 www phperz com
A) 检查NEXT_EXTENT 的设置,可用‘NEXTEXT。SQL’。 PHP程序员站--PHP程序员之家
B) 检查已有的EXTENTS,可用‘EXISTEXT。SQL’。 PHP程序员站--PHP程序员之家
2. 所有的表都应该有唯一的主键 phperz.com
a) 查看那些表没有主键,可用‘NO_PK.SQL’。 www.phperz.com
b) 查找那些主键是没有发挥作用的,可用‘DIS_PK.SQL’。 PHP程序员站
c) 所有作索引的主键都要是唯一的,可用‘ NONUPK。SQL’来检 查。 PHP程序员站
3. 所有的索引都要放到索引表空间中。运行‘MKREBUILD_IDX。SQL’ PHP程序员站--PHP程序员之家
4. 不同的环境之间的计划应该是同样的,特别是测试环境和成品环境之间的 计划应该相同。 PHP程序员站--PHP程序员之家
a) 检查不同的2 个运行环境中的数据类型是否一致,可用 www~phperz~.com
‘DATATYPE.SQL’。 PHP程序员站--PHP程序员之家
b) 在2 个不同的实例中寻找对象的不同点, 可用 phperz.com
‘OBJ_COORD.SQL’。 www phperz com
c) 更好的做法是,使用一种工具,象寻求软件的计划管理器那样的 工具。 PHP程序员站--PHP程序员之家
B. 查看是否有危害到安全策略的问题。 www~phperz~.com
C. 查看报错的SQL*NET 日志。 www phperz com
1. 客户端的日志。 PHP程序员站
2. 服务器端的日志。 PHP程序员站--PHP程序员之家
D..将所有的警告日志存档 www.phperz.com
E..供应商的主页 PHP程序员站
1. ORACLE 供应商 www.phperz.com
http://www.oracle.com www phperz com
http://technet.oracle.com PHP程序员站
http://www.oracle.com/support PHP程序员站--PHP程序员之家
http://www.oramag.com phperz.com
2. Quest Software www~phperz~.com
http://www.quests.com PHP程序员站--PHP程序员之家
3. Sun Microsystems PHP程序员站--PHP程序员之家
http://www.sun.com PHP程序员站--PHP程序员之家
---------------------------------------------------------------- PHP程序员站--PHP程序员之家
四.月维护过程 PHP程序员站
A.查看对数据库会产生危害的增长速度 www~phperz~.com
1. 从以前的记录或报告中回顾段增长的变化以此来确定段增长带来危害 PHP程序员站--PHP程序员之家
B. 回顾以前数据库优化性能的调整 www~phperz~.com
1. 回顾一般ORACLE 数据库的调整点,比较以前的报告来确定有害的发展 趋势。 PHP程序员站
C. 查看I/O 的屏颈问题 www phperz com
1. 查看前期数据库文件的活动性,比较以前的输出来判断有可能导致屏颈 问题的趋势。 www phperz com
D. 回顾FRAGMENTATION PHP程序员站
E. 计划数据库将来的性能 www.phperz.com
1. 比较ORACLE 和操作系统的CPU,内存,网络,及硬盘的利用率以此 PHP程序员站
来确定在近期将会有的一些资源争夺的趋势 www~phperz~.com
2. 当系统将超出范围时要把性能趋势当作服务水平的协议来看 www phperz com
F. 完成调整和维护工作 PHP程序员站--PHP程序员之家
1.使修改满足避免系统资源的争夺的需要,这里面包括增加新资源或使预期 的停工。 PHP程序员站
---------------------------------------------------------------- PHP程序员站
五.附录 www.phperz.com
A. 日常程序 www.phperz.com
-- free.sql www phperz com
--To verify free space in tablespaces www.phperz.com
--Minimum amount of free space PHP程序员站--PHP程序员之家
--document your thresholds: PHP程序员站
--<tablespace_name>; = <amount>; m www phperz com
SELECT tablespace_name, sum ( blocks ) as free_blk , trunc ( sum ( bytes ) / PHP程序员站--PHP程序员之家
(1024*1024) ) as free_m, max ( bytes ) / (1024) as big_chunk_k, count (*) as num_chunks phperz.com
FROM dba_free_space GROUP BY tablespace_name phperz.com
1. Space.sql PHP程序员站--PHP程序员之家
-- space.sql www.phperz.com
-- To check free, pct_free, and allocated space within a tablespace www~phperz~.com
-- 11/24/98 www phperz com
SELECT tablespace_name, largest_free_chunk PHP程序员站--PHP程序员之家
, nr_free_chunks, sum_alloc_blocks, sum_free_blocks PHP程序员站
, to_char(100*sum_free_blocks/sum_alloc_blocks, '09.99') || '%' PHP程序员站
AS pct_free www~phperz~.com
FROM ( SELECT tablespace_name , sum(blocks) AS sum_alloc_blocks www.phperz.com
FROM dba_data_files GROUP BY tablespace_name ) www~phperz~.com
, ( SELECT tablespace_name AS fs_ts_name www~phperz~.com
, max(blocks) AS largest_free_chunk PHP程序员站
, count(blocks) AS nr_free_chunks PHP程序员站
, sum(blocks) AS sum_free_blocks FROM dba_free_space www~phperz~.com
GROUP BY tablespace_name ) WHERE tablespace_name = fs_ts_name www phperz com
2. analyze5pct.sql phperz.com
-- analyze5pct.sql PHP程序员站
-- To analyze tables and indexes quickly, using a 5% sample size www~phperz~.com
-- (do not use this script if you are performing the overnight PHP程序员站
-- collection of volumetric data) PHP程序员站--PHP程序员之家
-- 11/30/98 www.phperz.com
BEGIN phperz.com
dbms_utility.analyze_schema ( '&OWNER', 'ESTIMATE', NULL, 5 ) ; www phperz com
END ; PHP程序员站--PHP程序员之家
/ www phperz com
3. nr_extents.sql www phperz com
-- nr_extents.sql PHP程序员站
-- To find out any object reaching <threshold>; www~phperz~.com
-- extents, and manually upgrade it to allow unlimited phperz.com
-- max_extents (thus only objects we *expect* to be big PHP程序员站
-- are allowed to become big) PHP程序员站
-- 11/30/98 PHP程序员站
SELECT e.owner, e.segment_type , e.segment_name , count(*) as nr_extents , www~phperz~.com
s.max_extents www phperz com
, to_char ( sum ( e.bytes ) / ( 1024 * 1024 ) , '999,999.90') as MB www phperz com
FROM dba_extents e , dba_segments s www.phperz.com
WHERE e.segment_name = s.segment_name www~phperz~.com
GROUP BY e.owner, e.segment_type , e.segment_name , s.max_extents www phperz com
HAVING count(*) >; &THRESHOLD PHP程序员站
OR ( ( s.max_extents - count(*) ) < &&THRESHOLD ) PHP程序员站--PHP程序员之家
ORDER BY count(*) desc www phperz com
4. spacebound.sql PHP程序员站
-- spacebound.sql www phperz com
-- To identify space-bound objects. If all is well, no rows are returned. PHP程序员站
-- If any space-bound objects are found, look at value of NEXT extent PHP程序员站
-- size to figure out what happened. PHP程序员站--PHP程序员之家
-- Then use coalesce (alter tablespace <foo>; coalesce . www.phperz.com
-- Lastly, add another datafile to the tablespace if needed. PHP程序员站--PHP程序员之家
-- 11/30/98 PHP程序员站--PHP程序员之家
SELECT a.table_name, a.next_extent, a.tablespace_name www phperz com
FROM all_tables a, PHP程序员站
( SELECT tablespace_name, max(bytes) as big_chunk PHP程序员站
FROM dba_free_space www~phperz~.com
GROUP BY tablespace_name ) f PHP程序员站--PHP程序员之家
WHERE f.tablespace_name = a.tablespace_name PHP程序员站
AND a.next_extent >; f.big_chunk PHP程序员站--PHP程序员之家
B. 每晚处理程序 www.phperz.com
1. mk_volfact.sql PHP程序员站
-- mk_volfact.sql (only run this once to set it up; do not run it nightly!) PHP程序员站
-- -- Table UTL_VOL_FACTS www~phperz~.com
CREATE TABLE utl_vol_facts ( phperz.com
table_name VARCHAR2(30), PHP程序员站--PHP程序员之家
num_rows NUMBER, PHP程序员站
meas_dt DATE ) www phperz com
TABLESPACE platab www phperz com
STORAGE ( www.phperz.com
INITIAL 128k www phperz com
NEXT 128k PHP程序员站--PHP程序员之家
PCTINCREASE 0 www.phperz.com
MINEXTENTS 1 PHP程序员站--PHP程序员之家
MAXEXTENTS unlimited PHP程序员站
) PHP程序员站--PHP程序员之家
/ PHP程序员站
-- Public Synonym www.phperz.com
CREATE PUBLIC SYNONYM utl_vol_facts FOR &OWNER..utl_vol_facts PHP程序员站--PHP程序员之家
/ phperz.com
-- Grants for UTL_VOL_FACTS PHP程序员站--PHP程序员之家
GRANT SELECT ON utl_vol_facts TO public phperz.com
/ PHP程序员站--PHP程序员之家
2. analyze_comp.sql PHP程序员站--PHP程序员之家
-- www~phperz~.com
-- analyze_comp.sql PHP程序员站
-- PHP程序员站--PHP程序员之家
BEGIN phperz.com
sys.dbms_utility.analyze_schema ( '&OWNER','COMPUTE'); phperz.com
END ; www phperz com
/ PHP程序员站--PHP程序员之家
3. pop_vol.sql www~phperz~.com
-- www.phperz.com
-- pop_vol.sql www.phperz.com
-- phperz.com
insert into utl_vol_facts PHP程序员站--PHP程序员之家
select table_name PHP程序员站
, NVL ( num_rows, 0) as num_rows PHP程序员站--PHP程序员之家
, trunc ( last_analyzed ) as meas_dt phperz.com
from all_tables -- or just user_tables PHP程序员站
where owner in ('&OWNER') -- or a comma-separated list of owners PHP程序员站
/ PHP程序员站
commit PHP程序员站
/ phperz.com
www.phperz.com
C. 每周处理程序 www~phperz~.com
1. nextext.sql www.phperz.com
-- PHP程序员站--PHP程序员之家
-- nextext.sql PHP程序员站--PHP程序员之家
-- www phperz com
-- To find tables that don't match the tablespace default for NEXT extent. phperz.com
-- The implicit rule here is that every table in a given tablespace should PHP程序员站--PHP程序员之家
-- use the exact same value for NEXT, which should also be the tablespace's phperz.com
-- default value for NEXT. PHP程序员站
-- www.phperz.com
-- This tells us what the setting for NEXT is for these objects today. www~phperz~.com
-- www.phperz.com
-- 11/30/98 www.phperz.com
SELECT segment_name, segment_type, ds.next_extent as Actual_Next PHP程序员站
, dt.tablespace_name, dt.next_extent as Default_Next www phperz com
FROM dba_tablespaces dt, dba_segments ds PHP程序员站
WHERE dt.tablespace_name = ds.tablespace_name www.phperz.com
AND dt.next_extent !=ds.next_extent www phperz com
AND ds.owner = UPPER ( '&OWNER' ) PHP程序员站--PHP程序员之家
ORDER BY tablespace_name, segment_type, segment_name www~phperz~.com
2. existext.sql www phperz com
-- www.phperz.com
-- existext.sql PHP程序员站--PHP程序员之家
-- phperz.com
-- To check existing extents phperz.com
-- PHP程序员站--PHP程序员之家
-- This tells us how many of each object's extents differ in size from PHP程序员站
-- the tablespace's default size. If this report shows a lot of different www.phperz.com
-- sized extents, your free space is likely to become fragmented. If so, www~phperz~.com
-- this tablespace is a candidate for reorganizing. PHP程序员站--PHP程序员之家
-- PHP程序员站
-- 12/15/98 www.phperz.com
SELECT segment_name, segment_type phperz.com
, count(*) as nr_exts PHP程序员站
, sum ( DECODE ( dx.bytes,dt.next_extent,0,1) ) as nr_illsized_exts www.phperz.com
, dt.tablespace_name, dt.next_extent as dflt_ext_size www phperz com
FROM dba_tablespaces dt, dba_extents dx phperz.com
WHERE dt.tablespace_name = dx.tablespace_name www~phperz~.com
AND dx.owner = '&OWNER' www phperz com
GROUP BY segment_name, segment_type, dt.tablespace_name, dt.next_extent phperz.com
3. No_pk.sql PHP程序员站
-- www~phperz~.com
-- no_pk.sql www.phperz.com
-- phperz.com
-- To find tables without PK constraint PHP程序员站--PHP程序员之家
-- PHP程序员站--PHP程序员之家
-- 11/2/98 www.phperz.com
SELECT table_name www phperz com
FROM all_tables PHP程序员站--PHP程序员之家
WHERE owner = '&OWNER' PHP程序员站
MINUS www phperz com
SELECT table_name phperz.com
FROM all_constraints www phperz com
WHERE owner = '&&OWNER' www~phperz~.com
AND constraint_type = 'P' phperz.com
4. disPK.sql www.phperz.com
-- phperz.com
-- disPK.sql www phperz com
-- www phperz com
-- To find out which primary keys are disabled PHP程序员站
-- www~phperz~.com
-- 11/30/98 www~phperz~.com
SELECT owner, constraint_name, table_name, status www phperz com
FROM all_constraints PHP程序员站
WHERE owner = '&OWNER' AND status = 'DISABLED’ AND constraint_type = 'P' PHP程序员站--PHP程序员之家
5. nonuPK.sql PHP程序员站
-- phperz.com
-- nonuPK.sql www phperz com
-- PHP程序员站
-- To find tables with nonunique PK indexes. Requires that PK names www~phperz~.com
-- follow a naming convention. An alternative query follows that PHP程序员站
-- does not have this requirement, but runs more slowly. www phperz com
-- PHP程序员站--PHP程序员之家
-- 11/2/98 PHP程序员站--PHP程序员之家
SELECT index_name, table_name, uniqueness www phperz com
FROM all_indexes PHP程序员站--PHP程序员之家
WHERE index_name like '&PKNAME%' www phperz com
AND owner = '&OWNER' AND uniqueness = 'NONUNIQUE' www.phperz.com
SELECT c.constraint_name, i.tablespace_name, i.uniqueness PHP程序员站--PHP程序员之家
FROM all_constraints c , all_indexes i PHP程序员站--PHP程序员之家
WHERE c.owner = UPPER ( '&OWNER' ) AND i.uniqueness = 'NONUNIQUE' phperz.com
AND c.constraint_type = 'P' AND i.index_name = c.constraint_name phperz.com
6. mkrebuild_idx.sql www phperz com
-- PHP程序员站--PHP程序员之家
-- mkrebuild_idx.sql phperz.com
-- PHP程序员站--PHP程序员之家
-- Rebuild indexes to have correct storage parameters www phperz com
-- PHP程序员站--PHP程序员之家
-- 11/2/98 phperz.com
SELECT 'alter index ' || index_name || ' rebuild ' www~phperz~.com
, 'tablespace INDEXES storage ' PHP程序员站--PHP程序员之家
|| ' ( initial 256 K next 256 K pctincrease 0 ) ; ' phperz.com
FROM all_indexes PHP程序员站
WHERE ( tablespace_name != 'INDEXES' www phperz com
OR next_extent != ( 256 * 1024 ) PHP程序员站--PHP程序员之家
) www phperz com
AND owner = '&OWNER' phperz.com
/ www.phperz.com
7. datatype.sql PHP程序员站--PHP程序员之家
-- PHP程序员站
-- datatype.sql phperz.com
-- PHP程序员站--PHP程序员之家
-- To check datatype consistency between two environments PHP程序员站--PHP程序员之家
-- PHP程序员站
-- 11/30/98 www phperz com
SELECT PHP程序员站--PHP程序员之家
table_name, PHP程序员站--PHP程序员之家
column_name, www~phperz~.com
data_type, PHP程序员站--PHP程序员之家
data_length, PHP程序员站
data_precision, phperz.com
data_scale, www phperz com
nullable PHP程序员站
FROM all_tab_columns -- first environment PHP程序员站--PHP程序员之家
WHERE owner = '&OWNER' www phperz com
MINUS PHP程序员站--PHP程序员之家
SELECT PHP程序员站
table_name, phperz.com
column_name, phperz.com
data_type, www~phperz~.com
data_length, www.phperz.com
data_precision, phperz.com
data_scale, phperz.com
nullable PHP程序员站--PHP程序员之家
FROM all_tab_columns@&my_db_link -- second environment www.phperz.com
WHERE owner = '&OWNER2' PHP程序员站--PHP程序员之家
order by table_name, column_name www phperz com
8. obj_coord.sql www.phperz.com
-- www phperz com
-- obj_coord.sql www phperz com
-- PHP程序员站--PHP程序员之家
-- To find out any difference in objects between two instances www~phperz~.com
-- PHP程序员站--PHP程序员之家
-- 12/08/98 PHP程序员站--PHP程序员之家
SELECT object_name, object_type phperz.com
FROM user_objects www.phperz.com
MINUS phperz.com
SELECT object_name, object_type www phperz com
FROM user_objects@&my_db_link www~phperz~.com
六. 参考文献 PHP程序员站--PHP程序员之家
1. Loney, Kevin Oracle8 DBA Handbook www.phperz.com
2. Cook, David Database Management from Crisis to Confidence www~phperz~.com
[http://www.orapub.com/] ; www phperz com
3. Cox, Thomas B. The Database Administration Maturity Model PHP程序员站
|