分手快乐 发表于 2015-1-16 22:42:22

MYSQL网页编程之Oracle DBA 一样平常办理

表里面的记录数量越多,这个操作的代价就越高。如果作为搜索条件的列上已经创建了索引,MySQL无需扫描任何记录即可迅速得到目标记录所在的位置。oracle
OracleDBA一样平常办理
修正:2000/8/23
ThomasB.Cox,withChristineChoi
目标:这篇文档有很具体的材料纪录着对一个乃至更多的ORACLE数据库天天的,每个月的,
每一年的运转的形态的了局及反省的了局,在文档的附录中你将会看到一切反省,修正的SQL
和PL/SQL代码。
修正条记:1.1在SteveDeNunzio的existext.sql中所辨认的范例
1.2流动的范例
1.3加的GnuPublicLicense;在重修index中增添pctincr0
1.4加了一个最新的概念,是从GEOCITIES的主页上失掉的。
http://www.geocities.com/tbcox23
目次
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.周保护历程
6.参考文献


一.日保护历程
A.检察一切的实例是不是已起
断定数据库是可用的,把每一个实例写进日记而且运转日呈报或是运转测试
文件。固然有一些操纵我们是但愿它能主动运转的。
可选择实行:用ORACLE办理器中的‘PROBE’事务来检察
B.查找新的告诫日记文件
1.连接每个操纵办理体系
2.利用‘TELNET’或是可对照程序
3.对每个办理实例,常常的实行$ORACLE_BASE/<SID>/bdump操
作,并使其能回退到把持数据库的SID。
4.在提醒下,利用UNIX中的‘TAIL’命令检察alert_<SID>.log,或是
用其他体例反省文件中比来时代的告诫日记
5.假如之前呈现过的一些ORA_ERRORS又呈现,将它纪录到数据库
恢复日记中而且细心的研讨它们,这个数据库恢复日记在〈FILE〉中
C.检察DBSNMP的运转情形
反省每一个被办理呆板的‘DBSNMP’历程并将它们纪录到日记中。
在UNIX中,在命令行中,键进ps–ef|grepdbsnmp,将回看到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)搜集日数据巨细的信息,能够用
‘ANALYZE5PCT.SQL’。假如你搜集的是每晚的信息,
则可跳过这一步。
b)反省以后的局限,可用‘NR.EXTENTS.SQL’。


c)查询以后表的巨细信息。
d)查询以后索引巨细的信息。
e)查询增加趋向。
4.断定空间的局限。
假如局限空间工具的NEXT_EXTENT比表空间所能供应的最年夜范
围还要年夜,那末这将影响数据库的运转。假如我们找到了这个方针,可
以用‘ALTERTABLESPACECOALESCE’查询拜访它的地位,或加别的
的数据文件。
A)运转‘SPACEBOUND.SQL’。假如都是一般的,将不前往任何行。
5.回忆CPU,内存,收集,硬件资本论点的历程
A)反省CPU的使用情形,进到x:webphase2default.htm=>system
metrics=>CPU使用页,CPU的最年夜限制为400,当CPU的占用坚持
在350以上有一段工夫的话,我们就必要检察及研讨呈现的成绩。
G.将存档日记复制到备用数据库中
假如有一个备用数据库,将得当的存档日记复制到备用数据库的希冀
地位,备用数据库中保留比来期的数据。
F.常常查阅DBA用户手册
假如有大概的话,要普遍的浏览,包含DBA手册,行业杂志,旧事
组或是邮件列表。
二.晚间保护历程
年夜部分的数据库产物将受害于每晚断定的反省历程的运转。
A.搜集VOLUMETRIC数据
1.剖析企图和搜集数据
更正确的剖析盘算并保留了局。
a)假如你如今没有作这些的话,用‘MKVOLFACT.SQL’来创立测定体积的
表。
b)搜集晚间数据巨细的信息,用‘ANALYZECOMP.SQL’。
c)搜集统计了局,用‘POPVOL.SQL’。
d)在余暇的时分反省数据,大概的话,每周或每月举行。
我是用MSEXCEL和ODBC的连接来反省数据和图表的增加
三.每周保护历程
A.查找被损坏的方针
1.关于每一个给定表空间的工具来讲,NEXT_EXTENT的巨细是不异的,如
12/14/98,缺省的NEXT_EXTENT的DATAHI为1G,DATALO为500MB,
INDEXES为256MB。
A)反省NEXT_EXTENT的设置,可用‘NEXTEXT。SQL’。
B)反省已有的EXTENTS,可用‘EXISTEXT。SQL’。
2.一切的表都应当有独一的主键
a)检察那些表没有主键,可用‘NO_PK.SQL’。
b)查找那些主键是没有发扬感化的,可用‘DIS_PK.SQL’。
c)一切作索引的主键都如果独一的,可用‘NONUPK。SQL’来检
查。
3.一切的索引都要放到索引表空间中。运转‘MKREBUILD_IDX。SQL’
4.分歧的情况之间的企图应当是一样的,出格是测试情况和制品情况之间的


企图应当不异。
a)反省分歧的2个运转情况中的数据范例是不是分歧,可用
‘DATATYPE.SQL’。
b)在2个分歧的实例中寻觅工具的分歧点,可用
‘OBJ_COORD.SQL’。
c)更好的做法是,利用一种工具,象追求软件的企图办理器那样的
工具。
B.检察是不是有伤害到平安战略的成绩。
C.检察报错的SQL*NET日记。
1.客户真个日记。
2.服务器真个日记。
D..将一切的告诫日记存档
E..供给商的主页
1.ORACLE供给商
http://www.ckuyun.com
http://technet.oracle.com
http://www.ckuyun.com/support
http://www.oramag.com
2.QuestSoftware
http://www.quests.com
3.SunMicrosystems
http://www.sun.com
四.月保护历程
A.检察对数据库会发生伤害的增加速率
1.从之前的纪录或呈报中回忆段增加的变更以此来断定段增加带来伤害
B.回忆之前数据库优化功能的调剂
1.回忆一样平常ORACLE数据库的调剂点,对照之前的呈报来断定无害的开展
趋向。
C.检察I/O的屏颈成绩
1.检察后期数据库文件的举动性,对照之前的输入来判别有大概招致屏颈
成绩的趋向。
D.回忆FRAGMENTATION
E.企图数据库未来的功能
1.对照ORACLE和操纵体系的CPU,内存,收集,及硬盘的使用率以此
来断定在近期将会有的一些资本争取的趋向
2.当体系将超越局限时要把功能趋向看成服务程度的协定来看
F.完成调剂和保护事情
1.使修正满意制止体系资本的争取的必要,这内里包含增添新资本或使预期
的复工。
五.附录
A.一样平常程序


--
--free.sql
--
--Toverifyfreespaceintablespaces
--Minimumamountoffreespace
--documentyourthresholds:
--<tablespace_name>=<amount>m
--
SELECTtablespace_name,sum(blocks)asfree_blk,trunc(sum(bytes)/
(1024*1024))asfree_m,max(bytes)/(1024)asbig_chunk_k,count(*)asnum_chunks
FROMdba_free_space
GROUPBYtablespace_name
1.Space.sql
--
--space.sql
--
--Tocheckfree,pct_free,andallocatedspacewithinatablespace
--
--11/24/98
SELECTtablespace_name,largest_free_chunk
,nr_free_chunks,sum_alloc_blocks,sum_free_blocks
,to_char(100*sum_free_blocks/sum_alloc_blocks,09.99)||%
ASpct_free
FROM(SELECTtablespace_name
,sum(blocks)ASsum_alloc_blocks
FROMdba_data_files
GROUPBYtablespace_name
)
,(SELECTtablespace_nameASfs_ts_name
,max(blocks)ASlargest_free_chunk
,count(blocks)ASnr_free_chunks
,sum(blocks)ASsum_free_blocks
FROMdba_free_space
GROUPBYtablespace_name)
WHEREtablespace_name=fs_ts_name
2.analyze5pct.sql
--
--analyze5pct.sql
--
--Toanalyzetablesandindexesquickly,usinga5%samplesize
--(donotusethisscriptifyouareperformingtheovernight


--collectionofvolumetricdata)
--
--11/30/98
BEGIN
dbms_utility.analyze_schema(&OWNER,ESTIMATE,NULL,5);
END;
/
3.nr_extents.sql
--
--nr_extents.sql
--
--Tofindoutanyobjectreaching<threshold>
--extents,andmanuallyupgradeittoallowunlimited
--max_extents(thusonlyobjectswe*expect*tobebig
--areallowedtobecomebig)
--
--11/30/98
SELECTe.owner,e.segment_type,e.segment_name,count(*)asnr_extents,
s.max_extents
,to_char(sum(e.bytes)/(1024*1024),999,999.90)asMB
FROMdba_extentse,dba_segmentss
WHEREe.segment_name=s.segment_name
GROUPBYe.owner,e.segment_type,e.segment_name,s.max_extents
HAVINGcount(*)>&THRESHOLD
OR((s.max_extents-count(*))<&&THRESHOLD)
ORDERBYcount(*)desc
4.spacebound.sql
--
--spacebound.sql
--
--Toidentifyspace-boundobjects.Ifalliswell,norowsarereturned.
--Ifanyspace-boundobjectsarefound,lookatvalueofNEXTextent
--sizetofigureoutwhathappened.
--Thenusecoalesce(altertablespace<foo>coalesce;).
--Lastly,addanotherdatafiletothetablespaceifneeded.
--
--11/30/98
SELECTa.table_name,a.next_extent,a.tablespace_name
FROMall_tablesa,
(SELECTtablespace_name,max(bytes)asbig_chunk


FROMdba_free_space
GROUPBYtablespace_name)f
WHEREf.tablespace_name=a.tablespace_name
ANDa.next_extent>f.big_chunk
B.每晚处置程序
1.mk_volfact.sql
--
--mk_volfact.sql(onlyrunthisoncetosetitup;donotrunitnightly!)
--
----TableUTL_VOL_FACTS
CREATETABLEutl_vol_facts
(
table_nameVARCHAR2(30),
num_rowsNUMBER,
meas_dtDATE
)
TABLESPACEplatab
STORAGE(
INITIAL128k
NEXT128k
PCTINCREASE0
MINEXTENTS1
MAXEXTENTSunlimited
)
/
--PublicSynonym
CREATEPUBLICSYNONYMutl_vol_factsFOR&OWNER..utl_vol_facts
/
--GrantsforUTL_VOL_FACTS
GRANTSELECTONutl_vol_factsTOpublic
/
2.analyze_comp.sql
--
--analyze_comp.sql
--
BEGIN


sys.dbms_utility.analyze_schema(&OWNER,COMPUTE);
END;
/
3.pop_vol.sql
--
--pop_vol.sql
--
insertintoutl_vol_facts
selecttable_name
,NVL(num_rows,0)asnum_rows
,trunc(last_analyzed)asmeas_dt
fromall_tables--orjustuser_tables
whereownerin(&OWNER)--oracomma-separatedlistofowners
/
commit
/
C.每周处置程序
1.nextext.sql
--
--nextext.sql
--
--TofindtablesthatdontmatchthetablespacedefaultforNEXTextent.
--Theimplicitrulehereisthateverytableinagiventablespaceshould
--usetheexactsamevalueforNEXT,whichshouldalsobethetablespaces
--defaultvalueforNEXT.
--
--ThistellsuswhatthesettingforNEXTisfortheseobjectstoday.
--
--11/30/98
SELECTsegment_name,segment_type,ds.next_extentasActual_Next
,dt.tablespace_name,dt.next_extentasDefault_Next
FROMdba_tablespacesdt,dba_segmentsds
WHEREdt.tablespace_name=ds.tablespace_name
ANDdt.next_extent!=ds.next_extent
ANDds.owner=UPPER(&OWNER)
ORDERBYtablespace_name,segment_type,segment_name
2.existext.sql
--
--existext.sql
--


--Tocheckexistingextents
--
--Thistellsushowmanyofeachobjectsextentsdifferinsizefrom
--thetablespacesdefaultsize.Ifthisreportshowsalotofdifferent
--sizedextents,yourfreespaceislikelytobecomefragmented.Ifso,
--thistablespaceisacandidateforreorganizing.
--
--12/15/98
SELECTsegment_name,segment_type
,count(*)asnr_exts
,sum(DECODE(dx.bytes,dt.next_extent,0,1))asnr_illsized_exts
,dt.tablespace_name,dt.next_extentasdflt_ext_size
FROMdba_tablespacesdt,dba_extentsdx
WHEREdt.tablespace_name=dx.tablespace_name
ANDdx.owner=&OWNER
GROUPBYsegment_name,segment_type,dt.tablespace_name,dt.next_extent
3.No_pk.sql
--
--no_pk.sql
--
--TofindtableswithoutPKconstraint
--
--11/2/98
SELECTtable_name
FROMall_tables
WHEREowner=&OWNER
MINUS
SELECTtable_name
FROMall_constraints
WHEREowner=&&OWNER
ANDconstraint_type=P
4.disPK.sql
--
--disPK.sql
--
--Tofindoutwhichprimarykeysaredisabled
--
--11/30/98


SELECTowner,constraint_name,table_name,status
FROMall_constraints
WHEREowner=&OWNERANDstatus=DISABLED’ANDconstraint_type=P
5.nonuPK.sql
--
--nonuPK.sql
--
--TofindtableswithnonuniquePKindexes.RequiresthatPKnames
--followanamingconvention.Analternativequeryfollowsthat
--doesnothavethisrequirement,butrunsmoreslowly.
--
--11/2/98
SELECTindex_name,table_name,uniqueness
FROMall_indexes
WHEREindex_namelike&PKNAME%
ANDowner=&OWNERANDuniqueness=NONUNIQUE
SELECTc.constraint_name,i.tablespace_name,i.uniqueness
FROMall_constraintsc,all_indexesi
WHEREc.owner=UPPER(&OWNER)ANDi.uniqueness=NONUNIQUE
ANDc.constraint_type=PANDi.index_name=c.constraint_name
6.mkrebuild_idx.sql
--
--mkrebuild_idx.sql
--
--Rebuildindexestohavecorrectstorageparameters
--
--11/2/98
SELECTalterindex||index_name||rebuild
,tablespaceINDEXESstorage
||(initial256Knext256Kpctincrease0);
FROMall_indexes
WHERE(tablespace_name!=INDEXES
ORnext_extent!=(256*1024)
)
ANDowner=&OWNER
/
7.datatype.sql


--
--datatype.sql
--
--Tocheckdatatypeconsistencybetweentwoenvironments
--
--11/30/98
SELECT
table_name,
column_name,
data_type,
data_length,
data_precision,
data_scale,
nullable
FROMall_tab_columns--firstenvironment
WHEREowner=&OWNER
MINUS
SELECT
table_name,
column_name,
data_type,
data_length,
data_precision,
data_scale,
nullable
FROMall_tab_columns@&my_db_link--secondenvironment
WHEREowner=&OWNER2
orderbytable_name,column_name
8.obj_coord.sql
--
--obj_coord.sql
--
--Tofindoutanydifferenceinobjectsbetweentwoinstances
--
--12/08/98
SELECTobject_name,object_type
FROMuser_objects
MINUS
SELECTobject_name,object_type
FROMuser_objects@&my_db_link


六.参考文献
1.Loney,KevinOracle8DBAHandbook
2.Cook,DavidDatabaseManagementfromCrisistoConfidence

3.Cox,ThomasB.TheDatabaseAdministrationMaturityModel
客户还是可以使用DBaaS系统所能提供的所有能力。数据库云服务消除了组织对专职人员、本地数据库存储设备的需要。他们不必安装、配置和维护任何软硬件。

第二个灵魂 发表于 2015-1-19 11:13:16

索引视图2k就有。但是2005对其效率作了一些改进但是schema.viewname的作用域真是太限制了它的应用面。还有一大堆的环境参数和种种限制都让人对它有点却步。

只想知道 发表于 2015-1-24 12:22:49

再开发调试阶段和OLAP环境中,外键是可以建立的。新版本中加入了SETNULL和SETDEFAULT属性,能够提供能好的级联设置。

因胸联盟 发表于 2015-2-1 10:42:02

学习SQL语言的话如果要学会去做网站就不是很难!但是要做数据库管理的话就有难度了!

不帅 发表于 2015-2-7 04:00:03

但是随着数据量的增大,这种成本差距会逐渐减小,趋于相等。(500万数量级只相差10%左右)

小魔女 发表于 2015-2-20 11:53:08

外键的级联更能扩展可能大部分的同行在设计OLTP系统的时候都不愿意建立外键,都是通过程序来控制父子数据的完整性。

再现理想 发表于 2015-3-6 17:02:37

你可以简单地认为适合的就是好,不适合就是不好。

乐观 发表于 2015-3-13 04:26:48

呵呵,这就是偶想说的
页: [1]
查看完整版本: MYSQL网页编程之Oracle DBA 一样平常办理