Oracle启动与关闭及常见问题

本文详细介绍了Oracle数据库的启动方式,包括Startup命令的不同选项,以及数据库从NOMOUNT、MOUNT到OPEN状态的转换。同时,文章还阐述了数据库的关闭方法,包括NORMAL、TRANSACTIONAL、IMMEDIATE和ABORT四种模式。针对启动过程中可能出现的问题,如数据文件位置错误、口令文件问题、磁盘空间不足和参数文件设置不当等,提供了相应的解决方案。
摘要由CSDN通过智能技术生成

一、ORACLE的启动方式

1、Startup启动

若要启动例程请使用以下命令

STARTUP [FORCE] [RESTRICT] [PFILE=filename]

[OPEN [RECOVER][database]

|MOUNT

|NOMOUNT]

注:这不是完整的语法。

其中:

     OPEN                           使用户得以访问数据库

     MOUNT                        为某些 DBA 活动装载数据库但不允许用户访问数据库

     NOMOUNT                   创建 SGA 并启动后台进程但不允许访问数据库

     PFILE=parfile                允许使用非缺省参数文件配置例程

     FORCE                         在执行正常启动之前终止运行的例程

     RESTRICT                    只允许具有 RESTRICTED SESSION 权限的用户访问数据库

     RECOVER                    在启动数据库时开始介质恢复Alter database Mount

2、将数据库状态由 NOMOUNT 改为 MOUNT:

ALTER DATABASE database MOUNT;

3、将数据库作为只读数据库打开:

ALTER DATABASE database MOUNT;

更改数据库的状态:若要从 STARTUP NOMOUNT 到 MOUNT 阶段或者从 MOUNT 到 OPEN 阶段打开数据库,请使用 ALTER DATABASE 命令:

ALTER DATABASE { MOUNT | OPEN }若要防止数据被用户事务修改,可以以只读模式打开数据库。

若要启动例程,请使用以下命令:

ALTER DATABASE OPEN

[READ WRITE| READ ONLY]其中

READ WRITE   以读写模式打开数据库           允许用户生成重做日志

READ ONLY    将用户限制为只读事务           防止生成重做日志信息

二、ORACLE的关闭方式

关闭数据库

      关闭数据库以制作所有物理结构的操作系统脱机备份并修改初始化参数,若要关闭例程使用以下命令:

      SHUTDOWN [NORMAL | TRANSACTIONAL | IMMEDIATE | ABORT ]

1、停正常关闭(NORMAL)

   正常是关闭的缺省方式正常的数据库关闭在下列情况下进行

   • 不允许新的连接

   • Oracle 服务器等待所有用户断开后才完成关闭

   • Oracle 在关闭例程前将关闭并卸装数据库

   • 下一次启动时将不要求例程恢复

2、事务处理关闭(TRANSACTIONAL)

   事务处理关闭防止客户丢失工作事务处理数据库关闭在下列情况下进行

   • 没有客户可以在此特定例程上启动新事务

   • 当客户结束正在进行的事务时断开客户

   • 当所有事务都已完成时会立即关闭

   • 下一次启动将不要求例程恢复

3、立即关闭(IMMEDIATE)

   立即关闭数据库在下列情况下进行

   • 由 Oracle 处理的当前 SQL 语句未完成

   • Oracle 服务器不等待当前连接数据库的用户断开

   • Oracle 回退活动的事务并断开所有连接的用户

   • Oracle 在关闭例程前将关闭并卸装数据库

   • 下一次启动将不要求例程恢复

4、关闭中止(ABORT)

   如果正常和立即关闭选项不起作用可以中止当前数据库例程中止例程可以在下列情况下进行

   • Oracle 服务器所处理的当前 SQL 语句被立即终止

   • Oracle 不等待当前连接数据库的用户断开

   • 未提交的事务不回退

   • 在不关闭文件的情况下例程被终止

   • 下一次启动将要求例程恢复

三、常见问题的处理

本小节主要是指数据库本身没有破坏,由于其他原因导致的启动问题

1)数据文件位置不对,原本在D:\ORACLE,结果把路径修改了等导致的问题

        解决:开始 → 运行 → 键入“sqlplus /nolog”→ connect sys/his as sysdba → 使用带参数的startup:

                 Startup pfile=filespec

2)安装多个实例,在默认实例启动后,其他实例不跟参数文件直接启动导致的问题

        解决:开始 → 运行 → 键入“sqlplus /nolog”→ connect sys/his as sysdba → 使用带参数的startup:

                 Startup pfile=filespec

3)口令文件导致的启动问题

ORA-01991: 无效的口令文件 ' D:\oracle\product\10.2.0\db_1\database\PWDorcl.ORA'

解决方法:

原因:密码文件丢失或损坏

方法:手工创建密码文件:

orapwd file= D:\oracle\product\10.2.0\db_1\database\pwdorcl.ora password=oracle

4)磁盘空间满了导致ORACLE宕机

进入http://server*:1158/em,表空间管理,根据错误提示将表空间扩展指定到其他的硬盘上。

5)参数文件设置不正确(比如数据缓冲区太大)导致ORACLE不能启动的问题

根据错误提示修改参数文件中对应的参数的值,或者按照管理工具中安装建议进行设置。

6)某一个控制文件损坏导致数据库无法启动的问题

进HIS时提示“oracle正在初如化或关闭”。

进sqlplus

conn sys/his as sysdba

SQL> shutdown

ORA-01507: 未安装数据库

ORACLE 例程已经关闭。

SQL> startup

ORACLE 例程已经启动。

Total System Global Area   63296780 bytes

Fixed Size                    70924 bytes

Variable Size              40374272 bytes

Database Buffers           22773760 bytes

Redo Buffers                  77824 bytes

ORA-00204: 读控制文件错误(块,#块)

ORA-00202: 控制文件: ' D:\oracle\product\10.2.0\oradata\orcl\CONTROL03.CTL'

ORA-27091: skgfqio: unable to queue I/O

OSD-04006:   ReadFile()   失败,   无法读取文件 
O/S-Error:   (OS   23)   数据错误   (循环冗余检查)。

解决方法:

控制文件CONTROL03.CTL损坏。

关闭oracle数据库,将CONTROL01.CTL拷到另一目录下,更名为CONTROL03.CTL,再拷回原目录,重新启动oracle服务,可正常启动。

​​​​​​​

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IT小西瓜

你的鼓励就是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值