分类: Oracle
2009-10-29 09:51:06
一、启动几种方法:
1、
sqlplus /nolog
connect /as sysdba
startup
2、
sqlplus /nolog
connect /as sysdba
startup nomount
alter database mount
alter database open
在以上两种方法中,1方法中的startup相当于2方法中的
startup nomount
alter database mount
alter database open
三个命令
3、
$ORACLE_HOME/bin/dbstart
先启动数据库再启动监听
$ORACLE_HOME/bin/lsnrctl start
二、停止:
先停止监听再停止数据库
$ORACLE_HOME/bin/lsnrctl stop
停止的方法
1、
sqlplus /nolog
connect /as sysdba
shutdown immediate
2、
$ORACLE_HOME/bin/dbshut
三、startup的几个选项
1、nomount只启动实例,不安装和打开数据库
2、mount启动实例、安装数据库但不打开数据库,此参数用于修改数据库的运行模式或进行数据库恢复,如:
alter database archivelog;
alter database open;
archive log list
以上命令可以更改数据库的归档模式
3、read only只读属性
4、read write读写属性
5、open打开数据库
6、restrict表示数据库以受限制方式打开
7、pfile选项,用于参数文件破坏,或者另外指定参数文件,如:
startup pfile=/u01/user/proddb.ora
force以强制方式启动数据库,可以用于重新启动数据库
以上参数可以联合使用
四、数据库在启动过程中失败的几中恢复方法
1、数据库实例启动失败
1.1数据库实例定义错误
connect internal
select name from v$database;
show sga
执行以上两条语句会报如下错误:
ORA-01034:ORACLE not available
这是由于数据库实例与实际不相符造成的,重新定义数据库实例即可
$ORACLE_SID=orcl
$export ORACLE_SID
1.2参数文件错误
startup
ORA-03113:end-or-file on communication channel
重新修改参数文件,或者重新指定一个
2、数据库安装失败
ORA-00205:error in identifying controlfile,check alert log for more info
这是控制文件出错
重新建立一个控制文件
3、数据库打开失败
3.1数据文件破坏
ORA-01110:data file 11:'u01/app/oracle/oradata/ora8i/acc01.dbf'
这是数据文件损坏的错误
如果数据库运行在noarchivelog模式下
alter database 'u01/app/oracle/oradata/ora8i/acc01.dbf' offline drop;
alter database open;
这时数据库可以运行,但损坏的数据文件永远也不能恢复
如果是运行在archivelog模式下
alter database 'u01/app/oracle/oradata/ora8i/acc01.dbf' offline;
alter database open;
这时候数据库可以正常使用,而且损坏的数据文件也恢复了
3.2日志文件破坏
ORA-00312:inline log 4 thread 1:'u01/app/oracle/oradata/ora8i/log4a.log'
这是第四组的第一个日志文件出错了
删除已经损坏的日志文件组
alter database drop logfile group 4;
增加新的日志文件组
alter database add logfile group 4
('/u01/app/oracle/oradata/ora8i/log4a.log','/u01/app/oracle/oradata/ora8i/log4b.log') size 100m;
打开数据库
alter database open;
此外可以用dbv命令检测数据库文件是否损坏
dbv help=y
====================================================
启动数据库的同时也就创建了一个数据库的实例,并且可以选择数据库启动的状态。通常可以通过装载和打开数据库来启动实例。这样任何一个有效的用户都能连接到该实例并执行典型的数据访问操作,但是还可以选择另外的方法。这一节也将讨论这些内容
1.启动数据库的方法1. 使用SQL*Plus:可以先使用SQL*Plus 连接到具有管理员权限的Oracle 然后再发布STARTUP 命令
2.使用Recovery Manager:使用Recovery Manager RMAN 来执行STARTUP 和SHUTDOWN 命令
3. 使用Oracle Enterprise Manager
4. 使用DGMGRL.exe命令行数据库管理程序 (help查看所有命令)
2.使用SQL*Plus 启动数据库
1.作为SYSDBA 连接到Oracle:CONNECT username/password AS SYSDBA。
2.启动的初始化参数文件
使用STARTUP 命令来启动数据库实例要启动实例,Oracle 必须从服务器参数文件或传统的文本初始化参数文件中读取实例配置参数初始化参数。当发布不带PFILE 子句的STARTUP 命令时Oracle 将从平台指定的默认位置上的服务器参数文件SPFILE 中读取初始化参数。
对于UNIX 平台为服务器参数文件或文本初始化参数文件指定的默认位置目录是$ORACLE_HOME/dbs
对于Windows NT 和Windows 2000 其位置是%ORACLE_HOME%\database
在平台指定的默认位置上Oracle 通过检查文件名按照如下次序放置初始化参数文件
spfile$ORACLE_SID.ora
spfile.ora
init$ORACLE_SID.ora
通过使用STARTUP 命令的PFILE 子句命令,Oracle 从传统的文本初始化参数文件中读取初始化参数例如:
STARTUP PFILE = F:\oracle\ora92\database\INIToradb.ORA
从服务器参数文件创建初始化参数文件的语句如下:
connect system/system as sysdba;
create pfile from spfile;
3.启动实例可以采取不同的模式
启动没有装载数据库的实例
这种模式不允许访问数据库,并且通常只适用于数据库创建或控制文件的重新创建的情况。
启动实例并装载数据库,但是保持数据库关闭状态
这种模式适用于某些DBA 的动作,但是不允许对数据库的一般的访问动作。
启动实例,装载并打开数据库
这种模式可以在不受限制的方式下使用,允许所有用户访问,或者在受限制的方式下使用只允许数据库管理员访问。
另外,可以迫使实例启动,或者启动实例并立即开始完整的介质恢复过程。
STARTUP命令可以指定选项获取这些状态模式。
3.启动实例各种方案
当与STARTUP 命令的选项一起使用时会有一些限制条件:
注意如果没有可以利用的控制文件、数据库文件或重做日志文件,那么在启动实例时很可能会遇到一些问题。如果由CONTROL_FILES初始化参数指定的一个或多个文件不存在,或在装载数据库时不能打开,那么Oracle 将返回一条警告消息并不能装载数据库。如果数据文件或者重做日志文件,它的一个或多个不存在,或者在打开数据库时不能打开,那么Oracle 将返回一条警告消息并不能装载数据库。
1. 启动实例,装载并打开数据库
普通的数据库操作意味着某个实例已经启动并且数据库也已经装载并打开。这种模式允许任何一个有效的用户连接到数据库并执行典型的数据访问操作。
启动实例,接着从默认的服务器参数文件位置读取初始化参数,然后通过使用STARTUP 命令来装载和打开数据库(当然也可以选择由PFILE 或SPFILE 子句指定初始化参数文件)
STARTUP
2. 启动实例,不装载数据库
启动实例而不用装载数据库,通常只在整个数据库创建过程中使用该模式。使用带NOMOUNT 选项的STARTUP 命令。
STARTUP NOMOUNT
3. 启动实例并装载数据库
可以启动实例并装载数据库,不用打开数据库。该模式允许执行特定的维护操作。例如在下面的任务中必须装载数据库而不用打开数据库:
重命名数据文件
添加取消或重命名重做日志文件
允许和禁止重做日志存档选项
执行完整的数据库恢复操作
通过使用带MOUNT 选项的STARTUP 命令来启动实例并装载数据库,但是保持数据库关闭状态。
STARTUP MOUNT
4. 在启动过程中限制访问数据库
可以在受限制的模式下启动实例并装载和打开数据库,以便只有管理人员而不是一般的数据库用户可以利用数据库。当需要完成以下一种任务时使用这种数据库启动模式
执行数据库数据的导出或导入操作
执行数据装载操作用SQL*Loader
暂时阻止一般的用户使用数据
在某个移植过程和升级操作过程中
通常,所有拥有CREATE SESSION 系统权限的用户都能连接到一个打开的数据库上。以受限模式打开数据库可以允许拥有CREATE SESSION和RESTRICTED SESSION两种系统权限的用户访问数据库,只有数据库管理员拥有RESTRICTED SESSION 系统权限。
通过使用带RESTRICT 选项的STARTUP 命令,可以在受限模式下启动实例(还可以装载和打开数据库)。
STARTUP RESTRICT
之后使用ALTER SYSTEM 语句来禁止RESTRICTED SESSION 特性
ALTER SYSTEM DISABLE RESTRICTED SESSION;
如果是在非受限模式下打开的数据库,后来发现需要限制访问,此时可以使用带ENABLE RESTRICTED SESSION 子句的ALTER SYSTEM 语句来完成任务。
5. 迫使实例启动
在一些特殊环境下,可能会在启动数据库实例的时候遇到一些问题。一般不要迫使数据库启动,除非是在以下情形:
用SHUTDOWN NORMAL、SHUTDOWN IMMEDIATE、SHUTDOWN TRANSACTIONAL 命令不能关闭当前的实例时
在启动实例的时候遇到一些问题时
如果产生了上面的一种情形,通常可以使用带FORCE 选项的STARTUP 命令来启动一个新的实例,从而解决这个问题。
STARTUP FORCE
如果正在运行某个实例,那么在重新启动实例前STARTUP FORCE 可以使用ABORT模式关闭该实例。
6. 启动实例,装载数据库并启动完整的介质恢复过程
如果知道需要介质恢复过程,就可以启动实例并为其装载数据库,以及通过使用带RECOVER 选项的STARTUP 命令的方法来自动启动恢复进程。
STARTUP OPEN RECOVER
如果不需要任何的恢复进程时,在试图执行恢复进程时Oracle 将发布一条错误消息。
7. 在操作系统启动过程中自动启动数据库
使Oracle 实例和数据库在操作系统启动之后自动启动执行。这项任务的进程在不同的操作系统中是不同的