漫谈的启动和关闭

<script type="text/javascript"><!-- google_ad_client = "pub-2947489232296736"; /* 728x15, 创建于 08-4-23MSDN */ google_ad_slot = "3624277373"; google_ad_width = 728; google_ad_height = 15; //--> </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
<script type="text/javascript"><!-- google_ad_client = "pub-2947489232296736"; /* 160x600, 创建于 08-4-23MSDN */ google_ad_slot = "4367022601"; google_ad_width = 160; google_ad_height = 600; //--> </script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>

对于DBA们来说,关闭和重新启动数据库以便优化、调整应用的运行是经常碰到的事情。如果用户已经log进如了数据库,你用SHUTDOWNIMMEDIATE或SHUTDOWNABORT命令来执行关闭数据库,那用户将不能连接,直到数据库重新启动,用户时常会抱怨:怎么又要重起。其实,每次这样的启动关闭都是为了数据库能更好的运做。这篇文章将具体介绍shutdown/startup操作时应想到的步骤和许多注意事项,或许这些能对你有所帮助。NOTE:在执行第一步前,SHUTDOWN数据库,不要提前关闭SQL*NET,直到你确认关闭了SERVER上的数据库后再关闭SQL*NET。因为一旦你关闭了SQL*NET,用户将将失去和数据库的会话。第一步---存档或删除老的tracefiles和logs当你启动ORACLE的一个实例(INSTANCE)时,ORACLE把关于该实例的诊断信息写入指定的trace和log文件。每个后台进程都增加一个TRACE文件,它被存储在指定的目录(该路径由INIT.ORA或CONFIG.ORA文件中的BACKGROUND_DUMP_DEST参数指定)。用户在数据库中遇到一个内部错误时也增加USERS'TRACE文件,该文件的位置由INIT.ORA或CONFIG.ORA文件中的USER_DUMP_DEST参数指定。TRACE文件的个数和名称形式由你的决定。例如在UNIX下,文件名是一个数字加下画线加后台进程号,类似3_12345.trc,当你下一次启动实例时,一个新的文件将被产生,因为进程号的不同,文件名可能是3_13245.trc。由于每次启动关闭数据库时,ORACLE并不自动删除TRACE文件,所以如果忽略这个步骤,那这些没有用的文件将占据大量的自由空间。所以DBA应该主动的管理这些文件,或删除或存档在别的指定目录下,如何管理主要是根据你自己的开发环境需要而订了。SQL*NET也产生LOG文件,一般叫LISTENER.LOG,为了能知道他的位置,可以键入命令lsnrctlstatusLISTENER.LOG文件大小也随着启动的次数不断的变大,所以通过妥善管理它也能有效的利用空间。第二步---改名ALERTLOG文件ALERTLOG文件也是用来记录INSTANCE的诊断信息的。它的存放目录也通过BACKGROUND_DUMP_DEST参数来指定。一般情况下ALERTLOG文件命名方式为:ALERT_.LOG。ALTERLOG文件包括了一些数据库主要事件信息,例如:startup,dhutdown,redolog的使用,tablespace的改变,文件的改变,内部错误信息,tablespace-backup的状态的改变等。ALTERLOG文件是重要的,同时该文件的大小增长的速度也很惊人,如果你不检查他,一段时间后你想看看它将是很费劲,因为它已经很大了,查起来也费劲。为了既能留下这些有用的信息,同时不至于浪费很大的空间,可以用改名的方法。你可以在任何时候更改ALTERLOG文件名,甚至在DATABASEOPEN时。当ORACLE不能找到被BACKGROUND_DUMP_DESC指定的文件时,他将增加一个新的ALTERLOG文件。虽然改名不要求SHUTDOW,但选择在SHUTDOWN/STARTUP数据库时更改名字是一个好的主意。NOTE:下面的几步是在restart数据库时做的。第三步---产生一个增加控制文件(CREATECONGROLFILE)命令的文件为了recover一个被破坏的数据库,你不得不用CREATECONTROLFILE命令来重建controlfiles。CREATECONTROLFILE命令有两个使用:1、在你的现有CONTROLFILES文件破化后重建它2、在ALTERDATABASE级别的参数时,如:MAXDATAFILES你可以手输入命令,但最好在STARTUP前发送一命令,以便你拥有最新版本的CREATECONTROLFILE命令。从进入SQLDBA,SERVERMANAGER或者SQL*PLUS,输入:alterdatabasebackupcontrolfiletotrace;该命令在USER_DUMP_DESC参数指定的路径产生一个TRACE文件,名字可能是SIDNAME_PROCESSID.TRC,该文件将包含针对你的数据库的完整的CREATECONTROLFILE语法。第四步--把PACKAGES和PROCEDURES驻留SGA区众所周知,当PL/SQLOBJECTS被一个用户调用时,它将被存储在SGA区的SQL共享池中,当别人再度调用该OBJECT时直接从SGA区读取,能感受到明显的速度提升。所以,把常用的PACKAGES和PROCEDURES在STARTUP时就载入并驻留SGA,将提高应用的整体性能。通过从新编译、调用等方法可以调用OBJECT(PROCEDURES或CURSORS)进SGA,然后用DBMS_SHARED_POOL.KEEP来驻留SGA。如下:alterpackageAPPOWNER.ADD_CLIENTcompile;executeDBMS_SHARED_POOL.KEEP('APPOWNER.ADD_CLIENT','P');(P代表PROCEDURES,C代表CURSORS)一般每个数据库包括两类驻留程序:1、数据库的核心PACKAGES2、用户自定义的PACKAGES核心PACKAGES包括SYS所有的PACKAGES,STANDARD,DBMS_SQL,DBMS_UTILITY,DIUTIL,为了查看你的INSTANCE中那些被驻留了,查询DBA_OBJECT_SIZE,用下面的语句:selectOwner,Name,Type,Source_Size+Code_Size+Parsed_Size+Error_SizeTotal_BytesfromDBA_OBJECT_SIZEwhereType='PACKAGEBODY'orderby4desc;1 <script type="text/javascript"><!-- google_ad_client = "pub-2947489232296736"; /* 728x15, 创建于 08-4-23MSDN */ google_ad_slot = "3624277373"; google_ad_width = 728; google_ad_height = 15; //--> </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
<script type="text/javascript"><!-- google_ad_client = "pub-2947489232296736"; /* 160x600, 创建于 08-4-23MSDN */ google_ad_slot = "4367022601"; google_ad_width = 160; google_ad_height = 600; //--> </script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
阅读更多
个人分类: 数据库
想对作者说点什么? 我来说一句

进程停止启动存在操作

2009年11月19日 31KB 下载

漫谈云计算.pdf

2011年10月04日 341KB 下载

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭