当前位置:   article > 正文

如何启动和关闭oracle数据库,启动和关闭Oracle数据库

启动关闭数据库oralce

Oracle数据库的启动和关闭

Oracle数据库提供了几种不同的数据库启动和关闭方式,本文将详细介绍这些启动和关闭方式之间的区别以及它们各自不同的功能。

一、启动和关闭Oracle数据库

对于大多数Oracle DBA来说,启动和关闭Oracle数据库最常用的方式就是在命令行(windows)或终端方式(linux)。

要启动和关闭数据库,必须要以具有Oracle管理员权限的用户登陆,通常也就是以具有sysdba权限的用户登陆(命令:sqlplus “/as sysdba”)。一般我们常用INTERNAL用户来启动和关闭数据库(internal用户实际上是sys用户以sysdba连接的同义词)。oracle数据库的新版本将逐步淘汰internal这个内部用户,所以我们最好还是设置dba用户具有 sysdba权限。

二、数据库的启动(startup)

启动一个数据库需要三个步骤:

1、 创建一个Oracle实例(非安装阶段)(命令: startup nomout)

2、 由实例安装数据库(安装阶段) (命令:startup mout)

3、 打开数据库(打开阶段)(命令:startup)

1、startup nomount

nomount选项仅仅创建一个oracle实例。只读取initSID.ora初始化参数文件、启动实例和后台进程、初始化系统全局区(SGA)。initSID.ora文件定义了实例的配置,包括内存结构的大小和启动后台进程的数量和类型等。实例名根据环境变量Oracle_SID设置,不一定要与打开的数据库名称相同。当实例打开后,系统将显示一个SGA内存结构和大小的列表,如下所示:

该命令创建实例并且安装数据库,但不打开数据库。Oracle系统读取控制文件中关于数据文件和重作日志文件的位置信息,但并不会打开该文件。这种打开方式常在数据库维护操作中使用,如对数据文件的更名、改变重作日志以及打开归档方式等。在这种打开方式下,除了可以看到SGA系统列表以外,系统还会给出"数据库装载完毕"的提示。 此阶段可执行的操作有“重建控制文件”,“重建数据库”。

n重建控制文件

以下是一种较好的重建控制文件的方法:

1.备份数据库中的数据,以防不测。

2. sqlplus “/as sysdba”

3. alter database backup controlfile to trace;

5.在$ORACLE_BASE/admin/实例名/udump下可找到最新生成的TRACE文件,假设为”实例名_ora_15269.trc”,此文件就包含了当前控制文件的参数及生成语法。

6.提取”实例名_ora_15269.trc”中有关控制文件生成的语句另存为creatctl.sql。

7. creatctl.sql的内容为:

STARTUP NOMOUNT

….

8.可按自己的需要编辑creatctl.sql中的参数,如maxdatafiles、maxinstances等。

9. sqlplus “/as sysdba”

11. shutdown immediate

12. @creatctl.sql

13. alter database open;

至此,数据库已按新的参数运行.

n重建数据库

1.对数据库进行冷备份(密码文件,初始化文件,数据文件,联机日志文件,控制文件)

2.密码文件存放位置(文件名中带有pw): $ORACLE_HOME/dbs/

3.初始化文件存放位置(以ora结尾):$ORACLE_HOME/dbs/

4.数据文件存放位置(以dbf结尾):$ORACLE_BASE/oradata/实例名/

5.联机日志文件存放位置(以log结尾):$ORACLE_BASE/oradata/实例名/

6.控制文件存放位置(以ctl结尾):$ORACLE_BASE/oradata/实例名/

7.以被恢复主机上建立与原数据库相同目录

8.还原初始化文件

9.还原密码文件

10.还原数据文件

11.还原联机日志文件

12.还原控制文件

13.手动增加服务(命令oradim –NEW –SID实例名 –STARTMODE a –PFILE初始文件全路径)

14.启动数据库,收工

3、STARTUP MOUNT

该命令完成读取控制文件转换到MOUNT阶段,在数据库加载阶段,所有数据文件和联机日志文件的名称和位置都可以从控制文件中读取,但并不会打开这些文件,在此阶段,可以执行的操作有:“数据库日志归档”,“数据库介质恢复”,“使数据文件联机或脱机”,“重定向数据文件和联机日志”。

n数据库日志归档

切换到归档模式:alter database archivelog;

切换到非归档模式:alter database noarchivelog;

n数据库介质恢复

一言难尽(后续)

n数据文件联机或脱机

脱机:alter database datafile “全路径”offline;

联机:alter database datafile “全路径”online;

n重定向数据文件和联机日志

数据库OPEN状态下:

alter tablespace名称offline;

alter database rename file “全路径-原文件名“to “全路径-新文件名”

alter tablespace名称online;

数据库MOUNT状态下:

Alter database rename file“全路径-原文件名“to“全路径-新文件名”

4、STARTUP

该命令完成读取数据文件和联机日志来转换到OPEN阶段,等同于执行了创建实例、安装实例和打开数据库的所有三个步骤。此时数据库使数据文件和重作日志文件在线,通常还会请求一个或者是多个回滚段。这时系统除了可以看到前面Startup Mount方式下的所有提示外,还会给出一个"数据库已经打开"的提示。此时,数据库系统处于正常工作状态,可以接受用户请求。

如果采用STARTUP NOMOUNT或者是STARTUP MOUNT的数据库打开命令方式,必须采用”ALTER DATABASE OPEN”命令来执行打开数据库的操作。例如,如果你以STARTUP NOMOUNT方式打开数据库,也就是说实例已经创建,但是数据库没有安装和打开。这是必须运行下面的两条命令,数据库才能正确启动。

ALTER DATABASE MOUNT;

ALTER DATABASE OPEN;

而如果以STARTUP MOUNT方式启动数据库,只需要运行下面一条命令即可以打开数据库:

ALTER DATABASE OPEN.

4、其他打开方式

除了前面介绍的三种数据库打开方式选项外,还有另外其他的一些选项。

(1) STARTUP RESTRICT

这种方式下,数据库将被成功打开,但仅仅允许一些特权用户(具有DBA角色的用户)才可以使用数据库。这种方式常用来对数据库进行维护,如数据的导入/导出操作时不希望有其他用户连接到数据库操作数据。

(2) STARTUP FORCE

该命令其实是强行关闭数据库(shutdown abort)和启动数据库(startup)两条命令的一个综合。该命令仅在关闭数据库遇到问题不能关闭数据库时采用。

(3) ALTER DATABASE OPEN READ ONLY;

该命令在创建实例以及安装数据库后,以只读方式打开数据库。对于那些仅仅提供查询功能的产品数据库可以采用这种方式打开。

三、数据库的关闭(SHUTDOWN)

对于数据库的关闭,有四种不同的关闭选项,下面对其进行一一介绍。

1、SHUTDOWN NORMAL

这是数据库关闭SHUTDOWN命令的确省选项。也就是说如果你发出SHUTDOWN这样的命令,也即是SHUTDOWN NORNAL的意思。

发出该命令后,任何新的连接都将再不允许连接到数据库。在数据库关闭之前,Oracle将等待目前连接的所有用户都从数据库中退出后才开始关闭数据库。采用这种方式关闭数据库,在下一次启动时不需要进行任何的实例恢复。但需要注意一点的是,采用这种方式,也许关闭一个数据库需要几天时间,也许更长。

2、SHUTDOWN IMMEDIATE

这是我们常用的一种关闭数据库的方式,想很快地关闭数据库,但又想让数据库干净的关闭,常采用这种方式。

当前正在被Oracle处理的SQL语句立即中断,系统中任何没有提交的事务全部回滚。如果系统中存在一个很长的未提交的事务,采用这种方式关闭数据库也需要一段时间(该事务回滚时间)。系统不等待连接到数据库的所有用户退出系统,强行回滚当前所有的活动事务,然后断开所有的连接用户。

3、SHUTDOWN TRANSACTIONAL

该选项仅在Oracle 8i后才可以使用。该命令常用来计划关闭数据库,它使当前连接到系统且正在活动的事务执行完毕,运行该命令后,任何新的连接和事务都是不允许的。在所有活动的事务完成后,数据库将和SHUTDOWN IMMEDIATE同样的方式关闭数据库。

4、SHUTDOWN ABORT

这是关闭数据库的最后一招,也是在没有任何办法关闭数据库的情况下才不得不采用的方式,一般不要采用。如果下列情况出现时可以考虑采用这种方式关闭数据库。

1、 数据库处于一种非正常工作状态,不能用shutdown normal或者shutdown immediate这样的命令关闭数据库;

2、 需要立即关闭数据库;

3、 在启动数据库实例时遇到问题;

所有正在运行的SQL语句都将立即中止。所有未提交的事务将不回滚。Oracle也不等待目前连接到数据库的用户退出系统。下一次启动数据库时需要实例恢复,因此,下一次启动可能比平时需要更多的时间。

表1可以清楚地看到上述四种不同关闭数据库的区别和联系。

表1 Shutdown数据库不同方式对比表

关闭方式AITN

允许新的连接× × × ×

等待直到当前会话中止× × × √

等待直到当前事务中止× × √ √

强制CheckPoint,关闭所有文件× √ √ √

其中:A-Abort I-Immediate T-Transaction N-Normal

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/85857
推荐阅读
相关标签
  

闽ICP备14008679号