深刻理解Oracle数据库的启动和关闭
正在看的ORACLE教程是:深刻理解Oracle数据库的启动和关闭。 Oracle数据库提供了几种不同的数据库启动和关闭方式,本文将详细介绍这些启动和关闭方式之间的区别以及它们各自不同的功能。 一、启动和关闭Oracle数据库 对于大多数OracleDBA来说,启动和关闭Oracle数据库最常用的方式就是在命令行方式下的ServerManager。从Oracle8i以后,系统将ServerManager的所有功能都集中到了SQLPlus中,也就是说从8i以后对于数据库的启动和关闭可以直接通过SQLPlus来完成,而不再另外需要ServerManager,但系统为了保持向下兼容,依旧保留了ServerManager工具。另外也可通过图形用户工具(GUI)的OracleEnterpriseManager来完成系统的启动和关闭,图形用户界面InstanceManager非常简单,这里不再详述。 要启动和关闭数据库,必须要以具有Oracle管理员权限的用户登陆,通常也就是以具有SYSDBA权限的用户登陆。一般我们常用INTERNAL用户来启动和关闭数据库(INTERNAL用户实际上是SYS用户以SYSDBA连接的同义词)。Oracle数据库的新版本将逐步淘汰INTERNAL这个内部用户,所以我们最好还是设置DBA用户具有SYSDBA权限。 二、数据库的启动(STARTUP) 启动一个数据库需要三个步骤: 1、创建一个Oracle实例(非安装阶段) 2、由实例安装数据库(安装阶段) 3、打开数据库(打开阶段) 在Startup命令中,可以通过不同的选项来控制数据库的不同启动步骤。 1、STARTUPNOMOUNT NONOUNT选项仅仅创建一个Oracle实例。读取init.ora初始化参数文件、启动后台进程、初始化系统全局区(SGA)。Init.ora文件定义了实例的配置,包括内存结构的大小和启动后台进程的数量和类型等。实例名根据Oracle_SID设置,不一定要与打开的数据库名称相同。当实例打开后,系统将显示一个SGA内存结构和大小的列表,如下所示: [NextPage] 三、数据库的关闭(SHUTDOWN) 对于数据库的关闭,有四种不同的关闭选项,下面对其进行一一介绍。 1、SHUTDOWNNORMAL 这是数据库关闭SHUTDOWN命令的确省选项。也就是说如果你发出SHUTDOWN这样的命令,也即是SHUTDOWNNORNAL的意思。 发出该命令后,任何新的连接都将再不允许连接到数据库。在数据库关闭之前,Oracle将等待目前连接的所有用户都从数据库中退出后才开始关闭数据库。采用这种方式关闭数据库,在下一次启动时不需要进行任何的实例恢复。但需要注意一点的是,采用这种方式,也许关闭一个数据库需要几天时间,也许更长。 2、SHUTDOWNIMMEDIATE 这是我们常用的一种关闭数据库的方式,想很快地关闭数据库,但又想让数据库干净的关闭,常采用这种方式。 当前正在被Oracle处理的SQL语句立即中断,系统中任何没有提交的事务全部回滚。如果系统中存在一个很长的未提交的事务,采用这种方式关闭数据库也需要一段时间(该事务回滚时间)。系统不等待连接到数据库的所有用户退出系统,强行回滚当前所有的活动事务,然后断开所有的连接用户。 3、SHUTDOWNTRANSACTIONAL 该选项仅在Oracle8i后才可以使用。该命令常用来计划关闭数据库,它使当前连接到系统且正在活动的事务执行完毕,运行该命令后,任何新的连接和事务都是不允许的。在所有活动的事务完成后,数据库将和SHUTDOWNIMMEDIATE同样的方式关闭数据库。 4、SHUTDOWNABORT 这是关闭数据库的最后一招,也是在没有任何办法关闭数据库的情况下才不得不采用的方式,一般不要采用。如果下列情况出现时可以考虑采用这种方式关闭数据库。 1、数据库处于一种非正常工作状态,不能用shutdownnormal或者shutdownimmediate这样的命令关闭数据库; 2、需要立即关闭数据库; 3、在启动数据库实例时遇到问题; 所有正在运行的SQL语句都将立即中止。所有未提交的事务将不回滚。Oracle也不等待目前连接到数据库的用户退出系统。下一次启动数据库时需要实例恢复,因此,下一次启动可能比平时需要更多的时间。 表1可以清楚地看到上述四种不同关闭数据库的区别和联系。 表1Shutdown数据库不同方式对比表 上一页 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |