启动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:\Oracle\admin\oradb\pfile”目录下,然后修改init.ora文件,使无法使用的控制文件不在control_files参数中定义。如“C:\Oracle\oradata\oradb\control03.ctl”,可在init.ora中将其删除掉,或者更换成其它可启动的控制文件。
修改前:
control_files=(“C:\Oracle\oradata\oradb\control01.ctl”.C:\Oracle\oradata\oradb\control02.ctl“,”“C:\Oracle\oradata\oradb\control03.ctl”)
修改后:
control_files=(“C:\Oracle\oradata\oradb\
control01.ctl”,“C:\Oracle\oradata\oradb\control02.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:\orant\NET80\admin\
listener.ora。
(4)检查监听器日志文件:c:\orant\NET80\log\
listener.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:\Oracle\admin\oradb\pfile\init.ora
(8)startup exclusive
SQL>conect internal
作为internal连接时,connect命令不需要口令,因为其授权是由操作系统隐式提供的。Internal连接等价于sys连接,它们都是拥有Oracle数据字典的用户。
WORD常用快捷键
快捷键作用Ctrl+Shift+Spacebar创建不间断空格Ctrl+ -(连字符)创建不间断连字符Ctrl+B使字符变为粗体Ctrl+I使字符变为斜体Ctrl+U为字符添加下划线Ctrl+Shift+缩小字号Ctrl+Shift+>增大字号Ctrl+Q删除段落格式Ctrl+Spacebar删除字符格式Ctrl+C复制所选文本或对象Ctrl+X剪切所选文本或对象Ctrl+V粘贴文本或对象Ctrl+Z撤消上一操作Ctrl+Y重复上一操作