启动关闭数据库

 

转自:http://www.cnblogs.com/JCSU/articles/1307775.html

1. 启动和关闭数据库:

Oracle体系结构参考:

 

1.1 ORACLE数据库的启动:


 启动ORACLE的一般步骤:

  • 第一步是实例(instance)本身启动。此时,内存被分配,各种后台进程启动。
  • 第二步是挂载(mount)数据库,此时可访问数据库文件。
  • 最后一步是打开数据,此时用户可访问数据库中的数据。 

尽管通常情况下启动数据库ORACLE要经历三个步骤。在启动过程中,有时候需要使ORACLE停在某一步。以下是相关操作的语法 (假设ORACLE已启动,可使用shutdown命令先关闭ORACLE)

  • STARTUP或STARTUP OPEN:告诉ORACLE,遍历启动过程中的三个阶段。如果想要ORACLE只启动实例(instance),可使用STARTUP NOMOUNT命令,此时,ORACLE将启动实例但不会接触任何的数据库文件。什么时候需要这么做呢?假设你要创建新的控制文件(用来存储数据库中元数据的文件)或一个新的数据库。在数据库能够被访问前,这些操作必须完成。
  • 你也可以使用STARTUP MOUNT (或者如果你已经使用了STARTUP NOMOUNT,可以使用ALTER DATABASE MOUNT) 告诉ORACLE,挂载(mount)数据库文件。在这种情况下,实例本身可访问与数据库相关的所有信息。然而,用户仍然不可访问数据库。在该阶段,可以重命名一些数据库文件。这些工作一旦完成,可以使用ALTER DATABASE OPEN命令使数据库能被公开访问。


以下是STARTUP的语法结构。中括号[ ]表示该项为可选项,可有可无。 

STARTUP  [ FORCE ]   [ RESTRICT ]   [ PFILE=filename ]  NOMOUNT 
STARTUP  [ FORCE ]   [ RESTRICT ]   [ PFILE=filename ]  MOUNT  [ dbname ]
STARTUP  [ FORCE ]   [ RESTRICT ]   [ PFILE=filename ]   OPEN   [ Open_options ]   [ dbname ]  

Open_options: 
READ  { ONLY   |  WRITE  [ RECOVER ] }  |  RECOVER



各关键字含义:

FORCE:在重新启动Oracle实例之前,使用ABORT模式的SHUTDOWN命令关闭当前Oracle实例(如果有实例正在运行)。如果当前实例正在运行,没有指定FORCE关键字,将产生错误。在调试时和处于非正常环境下,FORCE是有用的。一般情况下,不要经常使用该关键字。

RESTRICT:只允许具有RESTRICTED SESSION系统权限的用户连接到数据库。然后,可以使用ALTER SYSTEM命令将restricted session项设为不可用。

PFILE=filename:启动实例时,需要使用的init.ora参数文件。如果没有指定PFILE,则使用默认的STARTUP参数文件。默认文件与平台有关。如,在UNIX中,默认文件为$ORACLE_HOME/dbs/init$ORACLE_SID.ora,在Windows上为%ORACLE_HOME%/database/initORCL.ora。

MOUNT [dbname]:挂载(mount)一个数据库,但不打开它。dbname指需要挂载或打开的数据库名。如果没有指定数据库名,数据库名从初始化参数DB_NAME获取。

OPEN:挂载(mount)并打开指定数据库。

NOMOUNT:启动实例时不要挂载(mount)数据库。不能与MOUNT或OPEN同时使用。

RECOVER:在启动实例之前,如果需要进行恢复,该选项指定进行介质恢复(media recovery)。STARTUP RECOVER跟使用RECOVER DATABASE命令再启动实例的效果是一样的。带有RECOVER选项时,完全恢复(complete recovery)才有可能。不管AUTORECOVERY项是否打开,恢复都会进行。如果在某个位置找不到重做日志文件,恢复过程将通过为你指定一个位置后继续进行。

各种命令的介绍: 

  • Startup NOMOUNT:启动实例(SGA和后台进程),这种启动只需要init.ora文件。此时可重建控制文件、重建数据库。
  • Startup MOUNT dbname:执行NOMOUNT,再打开控制文件。该阶段可执行的一些操作:数据库日志归档、数据库恢复、重新命名一些数据库文件(如:系统表空间和日志文件)。
  • Startup OPEN dbname:首先执行“NOMOUNT”,然后执行“MOUNT”,再打开包括Redo log文件在内的所有数据库文件,这种方式下用户可访问数据库中的数据。
  • Startup:等价于Startup NOMOUNT;  ALTER DATABASE MOUNT;  ALTER DATABASE OPEN;

在Windows平台上,启动数据库服务的同时,也会启动实例。



1.2 ORACLE数据库的关闭:


 以下是SHUTDOWN的语法结构。中括号[ ]表示该项为可选项,可有可无。 

SHUTDOWN  ABORT
SHUTDOWN  IMMEDIATE
SHUTDOWN  TRANSACTIONAL  [ LOCAL ]
SHUTDOWN  NORMAL


各关键字含义:

ABORT:不需等调用完成或用户断开连接,是一种最快的数据库关闭方式。未提交的事务( uncommitted transactions )不会回滚。终止当前正在执行的客户端SQL语句。所有连接到数据库的当前用户断开连接。下一次数据库启动需要进行实例恢复。如果某个后台进程意外终止,你必须使用该选项。

IMMEDIATE:不需等待当前调用完成或用户从数据库中断开连接。禁止其它用户连接到数据库。数据库关闭且被卸载(closed and dismounted)。实例关闭,下一次数据库启动时不需要进行实例恢复。
              
NORMAL:该选项为默认选项。它等待用户断开到数据库的连接。禁止其它用户连接到数据库。数据库关闭且被卸载(closed and dismounted)。实例关闭,下一次数据库启动时不需要进行实例恢复。

TRANSACTIONAL [LOCAL]:允许活动事务先完成。不需要所有的用户退出登录就可以防止客户丢失数据。客户不能在该实例上启动新的事务。试图进行新的事务将导致断开连接。当所有事务完成后,任何仍连接到实例的客户将断开连接。此时,实例将关闭(SHUTDOWN IMMEDIATE)。下一次数据库启动时不需要任何实例恢复过程。LOCAL模式指定一个事务只在本地(local)实例上进行关闭。因此,它只等待本地(local)事务完成,并不是所有的事务完成。如,对于有计划的停电维修,这是很有用的。


关闭数据库的操作实例:

/*  关闭数据库  */

SQL >  connect system/manager @net service name   as  sysdba
SQL >   shutdown  immediate

/*  关闭数据库,丢弃所有事务,然后执行干净关闭  */

SQL >   alter  system  checkpoint ;
SQL >   shutdown  abort
SQL >  startup  restrict
SQL >   shutdown  immediate

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值