1. 程式人生 > >oracle啟動/停止的幾種方法以及 啟動和停止過程中出錯的解決辦法

oracle啟動/停止的幾種方法以及 啟動和停止過程中出錯的解決辦法

一、啟動幾種方法:
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 的動作,但是不允許對資料庫的一般的訪問動作。
       啟動例項,裝載並開啟資料庫
這種模式可以在不受限制的方式下使用,允許所有使用者訪問,或者在受限制的方式下使用只允許資料庫管理員訪問。 (責任編輯:admin)