网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > 数据库 > Oracle教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
数据库:数据库教程,数据库技巧,Oracle教程,MySQL教程,Sybase教程,Access教程,DB2教程,数据库安全,数据库文摘
本月文章推荐
.如何避免Oracle数据库中密码出现.
.解析:不能忽视的Oracle 10g STA.
.win2000不能自动启动oracle服务全.
.[优化]Oracle 内在索引和参数数的.
.Oracle9i Supplied PL/SQL Packa.
.如何让Oracle的数据不丢失?.
.Qmail如何设置一个简单的邮件列.
.Oracle数据库技术(35).
.Oracle中Decode()函数使用技巧.
.Oracle数据库备份与恢复的三种方.
.Oracle Database 10g 中新特性.
.Oracle PL/SQL语言初级教程之操作.
.DataGuard.
.利用多个转储文件导出大量Oracle.
.ORACLE 10g认证6月将正式登场.
.数据库监控工具 For Oracle v1.2.
.Oracle数据库中的锁机制研究.
.启动postfix的时候提示unsupport.
.什么时候oracle使用绑定变量性能.
.使用快速失败转移还是灾难保护.

漫谈数据库的启动和关闭

发表日期:2008-2-9



  对于DBA们来说,关闭和重新启动数据库以便优化、调整应用的运行是经常碰到的事情。假如用户已经log进如了数据库,你用SHUTDOWN IMMEDIATE 或SHUTDOWN ABORT命令来执行关闭数据库,那用户将不能连接,直到数据库重新启动,用户时常会抱怨:怎么又要重起。 其实,每次这样的启动关闭都是为了数据库能更好的运做。这篇文章将具体介绍shutdown/startup操作时应想到的步骤和许多注重事项,或许这些能对你有所帮助。
  
  NOTE:在执行第一步前,SHUT DOWN 数据库,不要提前关闭SQL*NET,直到你确认关闭了SERVER上的数据库后再关闭SQL*NET。因为一旦你关闭了SQL*NET,用户将将失去和数据库的会话。
  
  第一步---存档或删除老的trace files 和 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,为了能知道他的位置,可以键入命令
  lsnrctl status
  
  LISTENER.LOG文件大小也随着启动的次数不断的变大,所以通过妥善治理它也能有效的利用空间。
  
  第二步---改名ALERT LOG文件
  ALERT LOG文件也是用来记录INSTANCE的诊断信息的。它的存放目录也通过BACKGROUND_DUMP_DEST参数来指定。一般情况下ALERT LOG文件命名方式为:ALERT_.LOG。ALTER LOG文件包括了一些数据库主要事件信息,例如:startup,dhutdown, redo log 的使用,tablespace的改变,文件的改变,内部错误信息,tablespace-backup的状态的改变等。ALTER LOG文件是重要的,同时该文件的大小增长的速度也很惊人,假如你不检查他,一段时间后你想看看它将是很费劲,因为它已经很大了,查起来也费劲。
  
  为了既能留下这些有用的信息,同时不至于浪费很大的空间,可以用改名的方法。你可以在任何时候更改ALTER LOG文件名,甚至在DATABASE OPEN时。当ORACLE不能找到被BACKGROUND_DUMP_DESC指定的文件时,他将增加一个新的ALTER LOG文件。虽然改名不要求SHUTDOW,但选择在SHUTDOWN/STARTUP数据库时更改名字是一个好的主意。
  
  NOTE:下面的几步是在restart数据库时做的。
  
  第三步---产生一个增加控制文件(CREATE CONGROLFILE )命令的文件
  为了recover一个被破坏的数据库,你不得不用CREATE CONTROLFILE 命令来重建control files。CREATE CONTROLFILE命令有两个使用:
  1、在你的现有CONTROL FILES文件破化后重建它
  2、在ALTER DATABASE 级别的参数时,如:MAXDATAFILES
  
  你可以手输入命令,但最好在STARTUP前发送一命令,以便你拥有最新版本的CREATE CONTROLFILE命令。从进入SQLDBA,SERVER MANAGER或者SQL*PLUS,输入:
  alter database backup controlfile to trace;
  
  该命令在USER_DUMP_DESC参数指定的路径产生一个TRACE文件,名字可能是SIDNAME_PROCESSID.TRC,该文件将包含针对你的数据库的完整的CREATE CONTROLFILE 语法。
  
  第四步--把PACKAGES 和 PROCEDURES驻留SGA区
  众所周知,当PL/SQL OBJECTS被一个用户调用时,它将被存储在SGA区的SQL共享池中,当别人再度调用该OBJECT时直接从SGA区读取,能感受到明显的速度提升。所以,把常用的PACKAGES 和 PROCEDURES在STARTUP时就载入并驻留SGA,将提高应用的整体性能。通过从新编译、调用等方法可以调用OBJECT(PROCEDURES 或 CURSORS)进SGA,然后用DBMS_SHARED_POOL.KEEP来驻留SGA。如下:
  alter package APPOWNER.ADD_CLIENT compile;
  execute DBMS_SHARED_POOL.KEEP('APPOWNER.ADD_CLIENT','P');

  (P代表PROCEDURES,C代表CURSORS)
  
  一般每个数据库包括两类驻留程序:
  1、数据库的核心PACKAGES
  2、用户自定义的PACKAGES
  核心PACKAGES包括SYS 所有的PACKAGES,STANDARD,DBMS_SQL, DBMS_UTILITY, DIUTIL,为了查看你的INSTANCE中那些被驻留了,查询DBA_OBJECT_SIZE,用下面的语句:
  select Owner,
  Name,
  Type,
  Source_Size+Code_Size+Parsed_Size+Error_Size Total_Bytes
  from DBA_OBJECT_SIZE
  where Type = 'PACKAGE BODY' order by 4 desc;
上一篇:了解Oracle数据库中的系统参数 人气:598
下一篇:如何使用归档日志进行完全恢复? 人气:1117
浏览全部Oracle教程的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐