Menghe

导航

ORACLE数据库启动关闭

用命令shutdown/startup对ORACLE数据库的关闭和启动对DBA来讲是很正常的事,当系统运行到某个时候,有些用户进程可能已死 (比如非法退出、非法关闭程序等),这样ORACLE的资源就不能释放,影响到了ORACLE的性能;再有,在DBA优化了系统设置参数后,也必须启动数 据库等等,这些就牵涉到了ORACLE数据库的启动和关闭,在讲这两个操作之前,我想先明确几个概念:

一、关闭数据库

1、   SQL*NET:是分布式ORACLE数据库的组成部分,负责用户或应用程序和数据库的对话;

2、   trace files 和 logs:trace files文件是在ORACLE启动INSTANCE时自动创建该文件的,该文件存在于由INIT.ORA 或CONFIG.ORA文件中的BACKGROUND_DUMP_DEST参数指定的路径中,对不同的操作系统,trace files有不同的名称,我们都知道,当启动ORACLE时必须先启动监听,也就在这个时候产生了LISTENER.LOG,当ORACLE启动和关闭 时,trace files和LISTENER.LOG文件并不删除

现在我们明确了以上两点,应该知道下步我要做什么了:

1、   在关闭数据库之前不要先关SQL*NET

2、   将trace files 和 logs妥善管理,比如删除或改名

3、   关闭数据库shutdown

二、启动数据库

1、   对于被破坏的数据库我们可以先增加一个控制文件,可用这个控制文件覆盖掉原控制文件,我们可以在SQLPLUS的环境下输入:alter database backup controlfile to trace;创建

2、   启动数据库后,我们要把系统和应用程序经常用到的包放到SGA区中,当ORACLE从SGA区读数据时,我们会觉得速度明显加快,我们可以通过如下语句将包放到SGQ区:

alter package APPOWNER.ADD_CLIENT compile;
execute DBMS_SHARED_POOL.KEEP('APPOWNER.ADD_CLIENT','P');

三、其他

同时启动两个监听:在当一台机器同时装了两个数据库时(这样的情况很少见),我们可能要同时启动两个监听,当我们在启动第二个监听时,这是 ORACLE可能报TNS-01106的错误,其实引起这个错误的是LISTENER.ORA中IPC协议的KEY不同,我们只要将它修改成一致就可以 了。

四、下面推荐一个比较好的停止和启动ORACLE的好方法(包含C/S和B/S结构):

1、   停止所有应用程序;

2、   对于B/S结构(这里的中间件用的是WebLogic)应该停掉服务,C/S结构可以省略这一步;

3、   对trace files 和 logs进行改名处理,建议用时间作为文件名,比如20040801.trc;

4、   将ORACLE的监听停止:$lsnrctl stop;

5、   为了防止我们在下次启动ORACLE时出现以外,建议备份控制文件:SQL>alter database backup controlfile to trace;

6、   为了确保数据已保存到数据库,有必要切换日志文件:SQL>alter system switch logfile;对于B/S结构,我们应该先操作这步,再停掉监听;

7、   关闭数据库:SVRMGRL>shutdown immediate;

8、   启动数据库的监听:$lsnrctl start

9、   启动ORACLE数据库:$svrmgrl ;SVRMGRL>connect internal;SVRMGRL>startup;

10、启动中间件(B/S结构,所用中间件为WebLogic);

11、启动应用程序。



Oracle9I开始,取消了服务器管理器(svrmgl)和internal用户,数据库的启动和停止都是通过sql*plus来完成!Oracle10g可以通过浏览器来启动和停止数据库服务!这里主要说说9I下的启动和停止服务,下面的命令在8i下也可以使用

  要启动或者停止服务,必须拥有sysdba的权限。可以使用两中方式连接:

  第一种,以sys用户连接

  c:\>sqlplus sys/change_on_install as sysdba;

  进入sql*plus环境;(注意,ORACLE9I在安装的时候需要你自己设定sys和system的口令,并且不能才用ORACLE9I以前这两个用户的默认口令,这主要是为了保证数据库系统的安全,我为了好记忆,在安装完成后立刻恢复了默认的口令)

  第二种:

  C:\>sqlplus /nolog

  SQL*Plus: Release 9.2.0.1.0 - Production on 星期一 4月 26 09:42:00 2004

  Copyright (c) 1982, 2002[/img][/img], Oracle Corporation. All rights reserved.

  SQL> connect /as sysdba

  已连接。

  SQL>

  在进入后就可以进行下面的操作了!

  关闭数据库

  shutdown有四个参数,四个参数的含义如下:
  Normal 需要等待所有的用户断开连接
  Immediate 等待用户完成当前的语句
  Transactional 等待用户完成当前的事务
  Abort 不做任何等待,直接关闭数据库
  normal需要在所有连接用户断开后才执行关闭数据库任务,所以有的时候看起来好象命令没有运行一样!在执行这个命令后不允许新的连接
  immediate在用户执行完正在执行的语句后就断开用户连接,并不允许新用户连接。
  transactional 在拥护执行完当前事物后断开连接,并不允许新的用户连接数据库。
  abort 执行强行断开连接并直接关闭数据库。

  前三种方式不回丢失用户数据。第四种在不的已的情况下,不建议采用!

  数据库的启动

  数据库启动使用startup命令,它有三种情况:

  第一种:不带参数,启动数据库实例并打开数据库,以便用户使用数据库,在多数情况下,使用这种方式!

  第二种:带nomount参数,只启动数据库实例,但不打开数据库,在你希望创建一个新的数据库时使用,或者在你需要这样的时候使用!

  第三种:带mount参数,在进行数据库更名的时候采用。这个时候数据库就打开并可以使用了!


posted on 2005-07-05 15:33  孟和  阅读(4833)  评论(2编辑  收藏  举报