您好,欢迎访问三七文档
当前位置:首页 > 办公文档 > 其它办公文档 > Oracle实例操作经验总结-数据库实施方案-1
ORACLE数据库常用维护方法目录1、Oracle表空间设置......................................................................21.1逻辑数据库结构...........................................................................21.2表空间的创建和扩建...................................................................21.3创建用户......................................................................................31.4对用户CINMS35授权..................................................................31.5ORACLE回滚段设置.....................................................................32.Oracle初始化参数配置(initSID.ora)........................................43.数据库监控....................................................................................74.SQL语句使用技巧...................................................................105.常见问题处理..............................................................................12ORACLE数据库系统是CINMS35系统中重要的组成部分,是计算机网络系统与应用系统衔接的桥梁,对最终应用系统稳定的运行具有重要影响。本文档涉及数据库表空间设置、用户建立、常用数据字典、数据库性能调整等方面。1、Oracle表空间设置1.1逻辑数据库结构逻辑数据库结构按照存在数据库中的几组对象划分。一个数据库的逻辑结构对数据库的执行以及数据库的管理的难易程度有着重要的影响。数据库的设计目标是为了更好的配置数据库,良好的配置可以很大程度上减少数据库的管理工作量,同时也减少监视信息需求量。1.2表空间的创建和扩建每一个表空间包含一个或多个操作系统文件。数据库至少要有一个SYSTEM表空间,并且数据库启动以后SYSTEM表空间必须是online状态,SYSTEM表空间不能够被置于offline状态。根据应用情况建立应用数据表空间,索引表空间,临时表空间。(1)创建用户临时表空间initial=sort_area_size*2createtablespaceCINMS_TEMPdatafile'/u02/oradata/unicom/cinms_temp01.dbf'size500mDEFAULTSTORAGE(INITIAL1MNEXT1MMINEXTENTS4MAXEXTENTSUNLIMITEDPCTINCREASE0)temporary;(2)创建用户数据表空间CREATETABLESPACECINMS_USERDATAFILE'/u02/oradata/unicom/cinms_data01.dbf'size500mDEFAULTSTORAGE(INITIAL1MNEXT1MMINEXTENTS4MAXEXTENTSUNLIMITEDPCTINCREASE0);(3)创建索引表空间CREATETABLESPACECINMS_INDEXESDATAFILE'/u03/oradata/unicom/cinms_index01.dbf'SIZE500MDEFAULTSTORAGE(INITIAL1MNEXT1MMINEXTENTS4MAXEXTENTSUNLIMITEDPCTINCREASE0);(4)创建回滚表空间CREATETABLESPACERBSDATAFILE'/u03/oradata/unicom/rbs.dbf'SIZE500MDEFAULTSTORAGE(INITIAL1MNEXT1MMINEXTENTS4MAXEXTENTSUNLIMITEDPCTINCREASE0);(5)扩展表空间altertablespaceCINMS_USERadddatafile'/u02/oradata/unicom/cinms_data02.dbf'size500m;1.3创建用户当要在数据库上建立支持应用的对象时,必须在用户帐号下进行,这些对象隶属于用户。每一个这样的帐号可以用一个指定空间作为缺省表空间。建一个用户:SQLCREATEUSERCINMS35IDENTIFIEDBYCINMS35DEFAULTTABLESPACECINMS_USERTEMPORARYTABLESPACECINMS_TEMP;1.4对用户CINMS35授权grantconnecttocinms35;grantresourcetocinms35;grantdbatocinms35;1.5ORACLE回滚段设置回滚段设置原则:一般情况下,INITIAL=NEXT,设置OPTIMAL参数来节约空间的使用,OPTIMAL如果要指定,必须大于等于回滚段的初始大小,不要设置MAXEXTENTS为UNLIMITED,MINEXTENTS最好为20,回滚段应创建在一个特定的回滚段表空间内。回滚段的数量规划:对于OLTP系统,存在大量的小事务处理,一般建议:数量多的小回滚段;每四个事务一个回滚段;对于批处理,一般建议:少的大回滚段;每个事务一个回滚段。目前,应用系统回滚段个数设置为10到达20个。CREATEROLLBACKSEGMENTrbs01TABLESPACErbsSTORAGE(INITIAL1MNEXT1MMINEXTENTS20MAXEXTENTS500OPTIMAL21M);当回滚段创建后,回滚段是离线的,不能被数据库使用,为了使回滚段被事务利用,必须将回滚段在线。回滚段的问题及解决方法:问题一:事务要求的回滚段空间不够,表现为表空间用满(ORA-01560错误),回滚段扩展到达参数MAXEXTENTS的值(ORA-01628)。解决方法:向回滚段表空间添加文件或使已有的文件变大;增加MAXEXTENTS的值。问题二:读一致性错误(ORA-01555SNAPSHOTTOOOLD)解决方法一:增加MINEXTENTS的值,增加区的大小,设置一个高的OPTIMAL值。解决方法一:增加回滚段的个数。2.Oracle初始化参数配置(initSID.ora)CONTROLL_FILES将控制文件列入参数文件中。Oracle竭力建议你为每个数据库至少使用存储在不同的物理硬盘中的两个控制文件名。如:controll_files=(/oracle0/confile1.ora,/oracle1/confile2.ora)oracle0和oracle1分处于不同的物理硬盘上。PROCESS确定可同时与Oracle相联结的操作系统进程的数量。这一参数必须包括用于后台的5个进程和用于每个用户的一个进程。系统的连接产生的进程一旦达到这最大数,系统将出错误提示用户连接数已满。此配置参数参考数据字典V$RESOURCE_LIMITDB_FILESORACLE可以同时打开的数据文件的个数,系统缺省值80,如果要增加大小,则需重建控制文件。SHARED_POOL_SIZESharedMemoryPool由DictionaryCache和LibraryCache组成。DictionaryCache用来存放Oracle的数据字典信息。每一条SQL语句都需要数据字典。高速缓存中的数据字典按照leastrecentlyused(LRU)算法决定哪些数据字典放入高速缓存中。当要求的数据字典不在高速缓存中,就会引起递归的SQL调用,发生磁盘I/O。LibraryCache用来存放SQL和PL/SQL语句以及他们的执行计划。显示SGA使用情况:select*fromv$sga;计算Datadictionary命中率:如果thehitratiois90%,则增加SHARED_POOL_SIZE大小columnDataDict.Getsformat999,999,999columnDataDict.cachemissesformat999,999,999columnratioformat99.99headingDatadictCachehitratioselectsum(gets)DataDict.Gets,sum(getmisses)DataDict.cachemisses,(1-(sum(getmisses)/sum(gets)))*100ratiofromv$rowcache;计算Librarycachemiss命中率:如果themissratiois1%,则增加SHARED_POOL_SIZE大小columnLIBRARYCACHEMISSRATIOformat99.9999columnexecutionsformat999,999,999columnCachemisseswhileexecutingformat999,999,999columnratioformat99.9999headinglibrarycachemissratioselectsum(pins)executions,sum(reloads)Cachemisseswhileexecuting,(((sum(reloads)/sum(pins))))ratiofromv$librarycache;DB_BLOCK_BUFFERS确定系统全局区(SGA)的缓冲区快存里的缓冲区数量。较大的缓存规模减少了修改数据的磁盘写入量。但是过大的缓存可占由太多的存储。数据库buffercache存放数据信息。当Oracle需要一块数据,它首先检查BlockBufferCache,如果找不到,则需移相应的数据BufferCache。当DataBaseBufferCache的命中率90%,需增大init.ora中DB_BLOCK_BUFFERS的大小。计算BufferCachehit命中率:如果hitratiois70%,则增加DB_BLOCK_BUFFERS大小columnlogical_readsformat99,999,999,999columnphys_readsformat999,999,999columnphy_writesformat999,999,999columnratioformat999.99headingBufferHitRatioselecta.value+b.valuelogical_reads,c.valuephys_reads,d.valuephy_writes,100*((a.value+b.value)-c.value)/(a.value+b.value)ratiofromv$sysstata,v$sysstatb,v$sysstatc,v$sysstatdwherea.name='dbblockgets'andb.name='consistentgets'andc.name='physicalreads'andd.name='physicalwrites';LOG_BUFFERRedoLogbuffer也是SGA区中一个重要的组成部分,它记录对数据库做的改动。所有的redo项在被LGWR进程写之前都放在LogBuffer中。Oracle用redoallocationlatches和redocopylatc
本文标题:Oracle实例操作经验总结-数据库实施方案-1
链接地址:https://www.777doc.com/doc-4340342 .html