• 网络学院
  • 新手学堂
  • 操作系统
  • 网络技术
  • 软件应用
  • 办公软件
  • 编程技术
  • 网站架设
  • 数据库类
  • 平面设计
  • 多媒体类
  • 游戏资讯
  • 教学论文
  • 认证考试
启动Oracle常见疑难问题分析
广告位
  站点:
  • 首 页
  • 最新软件
  • 最新文章
  • 国内软件
  • 国外软件
  • 汉化软件
  • 源码下载
  • 字体下载
启动Oracle常见疑难问题分析
软件发布 启动Oracle常见疑难问题分析
网络软件 系统工具 应用软件 联络聊天 图形图像 多媒体类 行业软件 游戏娱乐 编程开发 安全相关 教育教学 数码软件
热门软件: QQ 瑞星 pplive e话通 木马克星 千千静听 office2000 五笔字根 Photoshop 视频分割
返回首页 | 文章首页 | 认证考试 | Oracle认证 | Oracle指导 | 启动Oracle常见疑难问题分析

启动Oracle常见疑难问题分析

 

添加时间: 2008-4-20 22:44:13  作者: Oracle指导  阅读次数:17   来源: http://www.d9soft.com

 

 

       

   实例和数据库的启动与关闭是DBA的重要职责之一。只有打开数据库,其他用户才能对数据库中的数据进行操作。一旦数据库关闭,便不能对其操作。对于DBA们来说,关闭和重新启动数据库以便优化、调整应用程序的运行是经常碰到的事情。如果用户已经进入了数据库,使用SHUTDOWN IMMEDIATE 或SHUTDOWN ABORT命令来执行关闭数据库,则用户将失去连接,直到数据库重新启动。经常关闭和启动会对数据库性能造成一定的影响,当然也会影响到用户对数据库的使用。本文从 管理 数据库的角度来分析在Oracle启动和关闭时经常遇到的问题,并总结了在启动和关闭Oracle数据库中应该注意的问题和事项。
    启动常见问题

    (一)在一个控制文件被损坏情况下,如何正常启动?

    系统环境

    操作系统:Windows 2000 Advanced Server

    数据库: Oracle 8i R2 (8.1.6) for NT 企业 版

    安装路径:C:ORACLE

    错误现象

    因硬盘有坏道,一个控制文件损坏了,或人工误删一个控制文件,控制面板的Oracle相关服务可以启动成功,但用SQL*Plus无法连接。错误提示为“ORA-01034: ORACLE not available”。

    解决方法

    (1)在开始菜单中直接运行命令,进入“svrmgrl>”提示符模式。

    (2)在“svrmgrl>”提示符下键入“connect internal”命令。

    (3)在“svrmgrl>”提示符下键入“shutdown abort”命令关闭数据库。

    (4)找到init.ora文件,它一般位于“C:Oracleadminoradbpfile”目录下,然后修改init.ora文件,使无法使用的控制文件不在control_files参数中定义。如“C:Oracleoradataoradbcontrol03.ctl”,可在init.ora中将其删除掉,或者更换成其它可启动的控制文件。

    修改前:

    control_files=(“C:Oracleoradataoradbcontrol01.ctl”.C:Oracleoradataoradbcontrol02.ctl“,”“C:Oracleoradataoradbcontrol03.ctl”)

    修改后:

    control_files=(“C:Oracleoradataoradb
    control01.ctl”,“C:Oracleoradataoradbcontrol02.ctl”)

    (5)重新启动数据库实例,即可解决问题。

    注意:在控制文件中最少要有两个控制文件。

    (二)联机热备份失败后,如何打开数据库?

    系统环境:

    操作系统:Windows 2000 Advanced Server

    数据库: Oracle 8i R2 (8.1.6) for NT 企业版

    安装路径:C:ORACLE

    错误现象

    进行联机热备份时,服务器发生故障(如掉电等)。重新启动服务器后,再启动数据库时,无法打开数据库,Oracle要求进行介质恢复,因为表空间还处在热备份状态。

    解决方法

    (1)先将数据库设置为归档模式

    C:>svrmgrl
    svrmgrl>connect internal
    svrmgrl>alter tablespace 表空间名 begin backup;

    说明:这是在表空间进行热备份模式没结束时,就强行关闭数据库所造成的错误。

    svrmgrl>shutdown abort
    svrmgrl>startup mount

    (2)将此表空间的数据文件在没打开数据库时,设置成“end backup”模式

    svrmgrl>alter database datafile '表空间的数据文件名' end backup;

    (3)执行表空间介质恢复

    svrmgrl>recover tablespace 表空间名;
    svrmgrl>alter database open;

    (三)Oracle启动时,监听器不启动或打开出错?

    错误现象:

    ORACLE启动时,监听器不启动或打开出错;服务器端:用username/password登录正常,但用username/password@alias登录不成功;客户端:用username/password@alias登录不成功

    解决方法

    (1)如果是因为修改了NT的机器名,则把listener.ora文件中的host参数全部改为新的NT机器名,重新启动OracleTNSListener80服务即可。
  例如:

    LISTENER =
    (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = TCP)(Host = NT_Name)(Port = 1521))

 

   (ADDRESS=(PROTOCOL=TCP)(Host=NT_Name)(Port= 1526))
       )

    (2)使用监听器实用程序:LSNRCTL80.exe。

    (3) 检查 监听器参数文件:c:orantNET80adminlistener.ora。

    (4)检查监听器日志文件:c:orantNET80loglistener.log。

    (5)Tnsnames.ora文件配置错误,重新配置。

    (6)检查client端 Tnsnames.ora。


    (四)Oracle Enterprise Manager(OEM)工具中如何以SYSOPER、SYSDBA方式登录?

    软件环境:

    Windows NT4.0+ORACLE 8.0.4

    ORACLE安装路径为:C:ORANT

    错误现象

    在以Oracle Enterprise Manager(OEM)工具登录数据库时,不论是sys用户、system用户,还是其他用户,在Connect As栏中以sysdba或sysoper角色登录均遭拒绝,报错:Ora-01017:invalid username/password;logon denied,但以normal登录成功。

    出错分析

    在Oracle数据库中有三种连接方式:

    (1)normal正常方式,基本连接方式,级别较低。

    (2)sysopr系统方式,系统连接方式,高一级。

    (3)sysdba 管理 员方式,是数据库管理员连接方式,级别最高。

    Oracle8中,sys、system已经只是具有特权的普通用户,而internal才是DBA。所以在DBA进行管理数据时,只能使用具有特权的“internal”连接方式才不会出错。

    解决方法

    以internal/oracle方式连接即可。

    Oracle数据库的启动

    启动实例

    启动实例,以使Oracle Server完成如下任务:

    ◆ 读参数文件init.ora文件,以决定如何初始化该实例;

    ◆ 根据参数文件中提供的SGA大小,来为SGA分配存贮空间;

    ◆ 启动后台进程;

    ◆ 打开后台跟踪文件。

    实例启动分正常启动和约束启动。所谓约束启动,就是当数据库打开后,只能使具有RESTRICTED SESSION系统特权的用户与其相连接。而正常启动则允许所有用户与其相连接。

    实例启动有如下三种方式:

    ◆ 只启动实例;

    ◆ 启动实例并安装数据库,但不打开数据库;

    ◆ 启动实例,并安装和打开数据库。

    数据库安装

    数据库安装就是将指定的数据库与已启动的实例相联系。被安装的数据库在打开之前保持关闭,此时只有DBA能存取。在安装数据库时,实例查找参数文件中的CONTROL-Files参数所指定的控制文件,并打开它,从中取得数据库的数据文件名和日志文件名,然后确认这些文件是否存在。如果希望多个实例并发地安装同一个数据库,则DBA可选择并行方式安装该数据库。如果希望只有一个实例可安装该数据库,则选择专用方式安装该数据库。如果ORACLE版本不支持并行服务器选项,则只能按专用方式安装数据库。当选择并行方式安装数据库时,并发安装同一个数据库的实例个数受预定义最大值的限制,而且在参数文件中必须有命名的私用回滚段或可用的公用回滚段。

  打开数据库

    在安装的数据库被打开之前,所有合法的用户(除DBA)都不能对该数据库进行连接和存取;只有被打开以后才能进行连接和存取。在打开数据库的同时,实例也打开在线的数据文件和在线日志文件。如果数据库是由于实例的异常而中止或电源故障而被关闭时,则下次打开它时会自动执行实例恢复。在数据库被打开时,实例试图获取一个或多个回滚段。在分布事务中,若当—个数据库因电源故障等突然被关闭,此时若有一个或多个分布式事务还没提交或回滚,则在该数据库被重新打开时,继续完成实例恢复,RECO后台进程将自动、立即和一致地解决尚未提交或回滚的任何分布事务。


    常用打开数据库和实例命令方式


   (1)startup nomount

    非安装启动,这种启动方式下可执行:重建控制文件、重建数据库和启动instance,即启动SGA和后台进程,这种启动只需要init.ora文件。

    (2)startup mount dbname

    安装启动,这种启动方式下可执行:数据库日志归档、数据库恢复和重新命名一些数据库文件。

    (3)startup open dbname

    先执行“nomount”,然后执行“mount”,再打开包括Redolog文件在内的所有数据库文件,这种方式下可访问数据库中的数据。

    (4)startup等于以下三个命令

    startup nomount
    alter database mount
    alter database open

    (5)startup restrict

    约束方式启动,这种方式能够启动数据库,但只允许具有一定特权的用户访问,非特权用户访问时,会出现以下提示:

    ERROR:

    ORA-01035: Oracle 只允许具有RESTRICTED SESSION权限的用户使用。

    (6)startup force

    强制启动方式,当不能关闭数据库时,可以用startup force来完成数据库的关闭,先关闭数据库,再执行正常启动数据库命令。

    (7)startup pfile=参数文件名

    带初始化参数文件的启动方式,先读取参数文件,再按参数文件中的设置启动数据库。例:startup pfile=E:Oracleadminoradbpfileinit.ora

    (8)startup exclusive

    SQL>conect internal

    作为internal连接时,connect命令不需要口令,因为其授权是由操作系统隐式提供的。Internal连接等价于sys连接,它们都是拥有Oracle数据字典的用户。

    应用

    在Unix下启动Oracle8i,其整个过程步骤如下:

    (1)telnet 主机IP或者是主机名

    user:***** password:*****

    (2)lsnrctl start

    (3)svrmgrl

    (4)svrmgrl>connect internal

    (5)svrmgrl>startup

    实例和数据库的关闭

    关闭实例的步骤

    关闭实例后,SGA从内存撤消,后台进程被停止。关闭实例的步骤如下:

    (1)启动SQL*DBA

    (2)作为INTERNAL用户与数据库相连接

    (3)关闭实例

    ◆ 关闭数据库

    ◆ 卸下数据库

    ◆ 关闭实例

    关闭数据库

    数据库关闭时,首先将SGA中的所有数据库数据和日志项数据写入相应的数据文件和日志文件。然后关闭所有联机数据文件和日志文件。在数据库关闭后和卸下之前,控制文件仍保持打开,此时如果需要打开时,还可重新打开数据库。

  卸下数据库

    卸下数据库就是切断实例与数据库的联系,关闭数据库控制文件,使内存仅保留实例。


    常用关闭数据库和实例命令

    (1)shutdown normal(正常关闭数据库)

    在正常关闭情况下,Oracle在关闭数据库前,等待所有与之相连接的用户正常结束其对话。于是在下次启动数据库时,就不需要恢复实例。

    (2)shutdown immediate(立即方式关闭数据库)

    当选择Immediate关闭方式时,即实现直接关闭。在SVRMGRL中执行shutdown immediate,数据库并不立即关闭, 而是在Oracle执行某些清除工作后才关闭(终止会话、释放会话资源),当使用shutdown不能关闭数据库时,shutdown immediate可以完成数据库关闭的操作。

    该关闭方式主要用于下列情况:

    ①马上停电;

    ②Oracle正在非正规的运行数据库或一个数据库应用。


    该方式关闭数据库过程如下:

    ①Oracle结束当前正在处理的SQL语句;

    ②回滚未提交的事务;

    ③Oracle不等待与之相连接的用户退出连接,就直接中断他们,使用这种关闭方式,下次启动数据库时,Oracle应自动执行实例恢复。

    (3)shutdown abort(撤消实例方式关闭数据库)

    这是一种最快的关闭方式,它主要用于下列情况:

    ①一分钟后就要停电;

    ②Oracle正在非正规的运行数据库或一个数据库应用,并且其它的关闭方式失效;

    ③启动一个数据库实例时碰到问题。

    该方式关闭数据库的过程如下:

    ①Oracle不等待调用完成,直接中断正在处理的SQL语句;

    ②回滚未提交事物。

    使用这种关闭方式,下次启动数据库时,Oracle应自动执行实例恢复。启动和关闭实例和数据库的操作需要connect internal系统特权,安装和打开数据库的操作还要有alter database系统特权。直接关闭数据库,正在访问数据库的会话会被突然终止,如果数据库中有大量操作正在执行,这时执行shutdown abort后,重新启动数据库需要很长时间。

    应用

    在Unix中关闭Oracle8i,其具体步骤如下:

    svrmgrl>connect internal
    svrmgrl>shutdown
    svrmgrl>exit

    在关闭Oracle数据库时需注意问题

    不要提前关闭SQL*NET。

    当需要SHUTDOWN数据库,不要提前关闭SQL*NET,直到确认关闭了SERVER上的所有数据库后再关闭SQL*NET。如果关闭了SQL*NET,用户将失去和数据库的会话。

    存档或删除旧的trace files和logs

    当启动Oracle的一个实例时,Oracle把关于该实例的诊断信息写入指定的trace和log文件。每个后台进程都增加一个TRACE文件,它被存储在指定的目录,该路径由INIT.ORA或CONFIG.ORA文件中的BACKGROUND_DUMP_DEST参数指定。用户在数据库中遇到一个内部错误时也增加用户的TRACE文件,该文件的位置由INIT.ORA或CONFIG.ORA文件中的USER_DUMP_DEST参数指定。TRACE文件的个数和名称形式由使用数据库的操作系统决定。

    在每次启动和关闭数据库时,Oracle不会自动删除TRACE文件。如果长期不删除这些无用文件,它们将占据数据库中大量的自由空间。数据库 管理 员应该很好的管理这些文件,可以采取删除或者存档的策略来避免无用文件占用大量自由空间。

    SQL*NET也产生LOG文件,一般叫LISTENER.LOG,LISTENER.LOG文件大小也随着启动的次数不断的变大,所以通过妥善管理它也能有效的利用空间。查看该文件可以键入命令:

    lsnrctl status

    在Oracle8i中使用该命令,其显示结果为:

    o200 5% lsnrctl status
    LSNRCTL for SGI IRIX64: Version 8.1.6.0.0 - Production on 09-APR-2003 09:16:26
    (c) Copyright 1998, 1999, Oracle Corporation. All rights reserved.
    Connecting to (ADDRESS=(PROTOCOL=ipc)(KEY=PNPKEY))
    STATUS of the LISTENER
    Alias LISTENER
    Version TNSLSNR for SGI IRIX64: Version 8.1.6.0.0 - Production
    Start Date 19-MAR-2003 14:43:53
    Uptime 20 days 18 hr. 4607182418800017439 min. 56 sec
    Trace Level off
    Security OFF
    SNMP OFF
    Listener Log File /data/ora8i/OraHome/network/log/listener.log
    The listener supports no services
    The command completed successfully

    改名ALERT LOG文件
    ALERT LOG文件也是用来记录INSTANCE的诊断信息的。它的存放目录也通过BACKGROUND_DUMP_DEST参数来指定。一般情况下ALERT LOG文件命名方式为:ALERT_ .LOG。ALTER LOG文件包括了一些数据库主要事件信息,例如:startup和shutdown及redolog的使用、表空间的改变、文件的改变、内部错误信息和数据库备份状态的改变等。

    ALTER LOG在后续数据库的使用中,其增长速度非常快。如果一段时间后,再查看它时,其文件已经变得非常大,所以查看它是非常的费劲。一般来讲,为了既能留下这些有用的信息,同时不至于浪费很大的空间,最好的 管理 办法就是给它改名。可以在任何时候更改ALTER LOG文件名,建议在SHUTDOWN/STARTUP数据库时更改名字。

 

 

 

上下文章:

 

上一篇文章: Oracle sqlplus语句编辑命令 下一篇文章: ORACLE PL/SQL 基础--游标的学习

相关文章:

  • 在ORACLE的存储过程中如何做简单的动态查询
  • Oracle下调数据库许可价格以适应多芯CPU
  • Oracle全球客户支持副总裁汤姆·舒尔滋演讲
  • Oracle中国前员工述说公司高层内部纷争史
  • Oracle发布免费数据库管理工具Raptor

相关软件:

  • 木马分析专家个人防火墙 2008 V0618
  • 木马分析专家 2008 V9.88 Build 0618
  • Windows启动大师 V4.25
  • OptionsOracle V1.3.1
  • 小博士儿童营养分析软件 V6.0
  • 纸黄金行情分析专家 v1.3.1

 

 

快速导航

  • 网络学院
  • 精品汇聚
  • 字体下载
  • 教程下载
  • ASP源码
  • PHP源码
  • Net源码
  • JSP 源码

Oracle认证分类导航

  • Oracle动态
  • Oracle指导
  • Oracle题库

本类经典文章推荐

  • Oracle中关于逻辑备份与恢复
  • Oracle开发人员JAVA存储过程
  • 为数据库的表自动生成行号
  • Oracle中的OOP概念
  • 用java从oracle取数
  • 冷备份移植到另一台Solaris机器上
  • 如何将excel数据导入oracle中
  • Oracle10.2g安装记录
  • 数据库监控工具ForOraclev1.2
  • oracle双机群集系统

Oracle指导阅读排行

  • Oracle系统表查询
  • 实例:Oracle导出EXCEL文件
  • Oracle企业管理器(OEM 2.1)使用...
  • 实例:Oracle导出EXCEL文件
  • Tomcat+SQLServer连接池配置
  • 服务器和客户机是怎样连接的
  • 入门基础:连接常见错误及解决方法
  • ORACLE数据库简介
  • 如何将excel数据导入oracle中
  • 如何取出某一用户的密码 再原样改...

Oracle认证阅读总排行

  • Oracle系统表查询
  • 实例:Oracle导出EXCEL文件
  • Oracle企业管理器(OEM 2.1)使用...
  • 在ORACLE的存储过程中如何做简单的...
  • 实例:Oracle导出EXCEL文件
  • AIX下自动启动Oracle数据库与监听...
  • Tomcat+SQLServer连接池配置
  • 服务器和客户机是怎样连接的
  • 入门基础:连接常见错误及解决方法
  • ORACLE数据库简介

广告位置

字母检索 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 回到顶部

关于我们 | 版权声明 | 免责条款 | 广告联系 | 软件发布 | 下载帮助 | 下载排行 | 网站地图 | 特别鸣谢 | 友情连接

copyright; 2005-2008 D9soft.com 第九软件网 版权所有