整理了下關(guān)于"Oracle數(shù)據(jù)庫提供了幾種不同數(shù)據(jù)庫啟動(dòng)和關(guān)閉方式",然后,自己就回去就寫了個(gè)示例.
其中,就出現(xiàn)了1個(gè)問題:
ORA-12528: TNS:listener: all appropriate instances are blocking new connections
于是到網(wǎng)上就大量的查閱資料,哈哈,好不錯(cuò),解決方法找到了.其中紅色的就是主要解決方法.下面就把我整理的東西給共享下. -
一:注意事項(xiàng)
要啟動(dòng)和關(guān)閉數(shù)據(jù)庫,必須要以具有Oracle 管理員權(quán)限用戶登陸,通常也就是以具有SYSDBA權(quán)限用戶登陸。一般我們常用INTERNAL用戶來啟動(dòng)和關(guān)閉數(shù)據(jù)庫(INTERNAL用戶實(shí)際上是SYS用戶以SYSDBA連接同義詞)。Oracle數(shù)據(jù)庫新版本將逐步淘汰INTERNAL這個(gè)內(nèi)部用戶,所以我們最還是設(shè)置DBA用戶具有SYSDBA權(quán)限。
二:啟動(dòng)一個(gè)數(shù)據(jù)庫需要三個(gè)步驟
1、 創(chuàng)建一個(gè)Oracle實(shí)例(非安裝階段)
2、 由實(shí)例安裝數(shù)據(jù)庫(安裝階段)
3、 打開數(shù)據(jù)庫(打開階段)
三:Startup(啟動(dòng)數(shù)據(jù)庫命令)
1、 STARTUP NOMOUNT
NONOUNT選項(xiàng)僅僅創(chuàng)建一個(gè)Oracle實(shí)例。讀取init.ora初始化參數(shù)文件、啟動(dòng)后臺(tái)進(jìn)程、初始化系統(tǒng)全局區(qū)(SGA)。Init.ora文件定義了實(shí)例配置,包括內(nèi)存結(jié)構(gòu)大小和啟動(dòng)后臺(tái)進(jìn)程數(shù)量和類型等。實(shí)例名根據(jù)Oracle_SID設(shè)置,不一定要與打開數(shù)據(jù)庫名稱相同。當(dāng)實(shí)例打開后,系統(tǒng)將顯示一個(gè)SGA內(nèi)存結(jié)構(gòu)和大小列表,如下所示:
SQL> startup nomount
Oracle 例程已經(jīng)啟動(dòng)。
Total System Global Area 35431692 bytes
Fixed Size 70924 bytes
Variable Size 18505728 bytes
Database Buffers 16777216 bytesu
Redo Buffers 77824 bytes
2、STARTUP MOUNT
該命令創(chuàng)建實(shí)例并且安裝數(shù)據(jù)庫,但沒有打開數(shù)據(jù)庫。Oracle系統(tǒng)讀取控制文件中關(guān)于數(shù)據(jù)文件和重作日志文件內(nèi)容,但并不打開該文件。這種打開方式常在數(shù)據(jù)庫維護(hù)操作中使用,如對數(shù)據(jù)文件更名、改變重作日志以及打開歸檔方式等。在這種打開方式下,除了可以看到SGA系統(tǒng)列表以外,系統(tǒng)還會(huì)給出"數(shù)據(jù)庫裝載完畢"提示。
3、STARTUP
該命令完成創(chuàng)建實(shí)例、安裝實(shí)例和打開數(shù)據(jù)庫所有三個(gè)步驟。此時(shí)數(shù)據(jù)庫使數(shù)據(jù)文件和重作日志文件在線,通常還會(huì)請求一個(gè)或者是多個(gè)回滾段。這時(shí)系統(tǒng)除了可以看到前面Startup Mount方式下所有提示外,還會(huì)給出一個(gè)"數(shù)據(jù)庫已經(jīng)打開"提示。此時(shí),數(shù)據(jù)庫系統(tǒng)處于正常工作狀態(tài),可以接受用戶請求。
如果采用STARTUP NOMOUNT或者是STARTUP MOUNT數(shù)據(jù)庫打開命令方式,必須采用ALTER DATABASE命令來執(zhí)行打開數(shù)據(jù)庫操作。例如,如果你以STARTUP NOMOUNT方式打開數(shù)據(jù)庫,也就是說實(shí)例已經(jīng)創(chuàng)建,但是數(shù)據(jù)庫沒有安裝和打開。這是必須運(yùn)行下面兩條命令,數(shù)據(jù)庫才能正確啟動(dòng)。
ALTER DATABASE MOUNT;
ALTER DATABASE OPEN
4、其他打開方式
除了前面介紹三種數(shù)據(jù)庫打開方式選項(xiàng)外,還有另外其他一些選項(xiàng)。
(1) STARTUP RESTRICT
這種方式下,數(shù)據(jù)庫將被成功打開,但僅僅允許一些特權(quán)用戶(具有DBA角色用戶)才可以使用數(shù)據(jù)庫。這種方式常用來對數(shù)據(jù)庫進(jìn)行維護(hù),如數(shù)據(jù)導(dǎo)入/導(dǎo)出操作時(shí)不希望有其他用戶連接到數(shù)據(jù)庫操作數(shù)據(jù)。
(2) STARTUP FORCE
該命令其實(shí)是強(qiáng)行關(guān)閉數(shù)據(jù)庫(shutdown abort)和啟動(dòng)數(shù)據(jù)庫(startup)兩條命令一個(gè)綜合。該命令僅在關(guān)閉數(shù)據(jù)庫遇到問題不能關(guān)閉數(shù)據(jù)庫時(shí)采用。
(3) ALTER DATABASE OPEN READ ONLY;
該命令在創(chuàng)建實(shí)例以及安裝數(shù)據(jù)庫后,以只讀方式打開數(shù)據(jù)庫。對于那些僅僅提供查詢功能產(chǎn)品數(shù)據(jù)庫可以采用這種方式打開。
四:數(shù)據(jù)庫關(guān)閉(SHUTDOWN)
1、SHUTDOWN NORMAL
這是數(shù)據(jù)庫關(guān)閉SHUTDOWN命令確省選項(xiàng)。也就是說如果你發(fā)出SHUTDOWN這樣命令,也即是SHUTDOWN NORNAL意思。
發(fā)出該命令后,任何新連接都將再不允許連接到數(shù)據(jù)庫。在數(shù)據(jù)庫關(guān)閉之前,Oracle將等待目前連接所有用戶都從數(shù)據(jù)庫中退出后才開始關(guān)閉數(shù)據(jù)庫。采用這種方式關(guān)閉數(shù)據(jù)庫,在下一次啟動(dòng)時(shí)不需要進(jìn)行任何實(shí)例恢復(fù)。但需要注意一點(diǎn)是,采用這種方式,也許關(guān)閉一個(gè)數(shù)據(jù)庫需要幾天時(shí)間,也許更長。
2、SHUTDOWN IMMEDIATE
這是我們常用一種關(guān)閉數(shù)據(jù)庫方式,想很快地關(guān)閉數(shù)據(jù)庫,但又想讓數(shù)據(jù)庫干凈關(guān)閉,常采用這種方式。
當(dāng)前正在被Oracle處理SQL語句立即中斷,系統(tǒng)中任何沒有提交事務(wù)全部回滾。如果系統(tǒng)中存在一個(gè)很長未提交事務(wù),采用這種方式關(guān)閉數(shù)據(jù)庫也需要一段時(shí)間(該事務(wù)回滾時(shí)間)。系統(tǒng)不等待連接到數(shù)據(jù)庫所有用戶退出系統(tǒng),強(qiáng)行回滾當(dāng)前所有活動(dòng)事務(wù),然后斷開所有連接用戶。
3、SHUTDOWN TRANSACTIONAL
該選項(xiàng)僅在Oracle 8i后才可以使用。該命令常用來計(jì)劃關(guān)閉數(shù)據(jù)庫,它使當(dāng)前連接到系統(tǒng)且正在活動(dòng)事務(wù)執(zhí)行完畢,運(yùn)行該命令后,任何新連接和事務(wù)都是不允許。在所有活動(dòng)事務(wù)完成后,數(shù)據(jù)庫將和SHUTDOWN IMMEDIATE同樣方式關(guān)閉數(shù)據(jù)庫。
4、SHUTDOWN ABORT
這是關(guān)閉數(shù)據(jù)庫最后一招,也是在沒有任何辦法關(guān)閉數(shù)據(jù)庫情況下才不得不采用方式,一般不要采用。如果下列情況出現(xiàn)時(shí)可以考慮采用這種方式關(guān)閉數(shù)據(jù)庫。
下面是問題解決:
ORA-12528: TNS:listener: all appropriate instances are blocking new connections
1:修改listener.ora的參數(shù)
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(Oracle_HOME = C:\oracle\product\10.1.0\db_1)
(PROGRAM = extproc)
)
(SID_DESC =
(GLOBAL_DBNAME = ammicly)
(Oracle_HOME = c:\oracle\product\10.1.0\db_1)
(SID_NAME = ammicly)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = lypch )(PORT = 1521))
)
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))
)
)
)
2:修改tnsnames.ora的參數(shù)
AMMICLY =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = lypch )(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = ammicly)
(UR=A)
)
)
EXTPROC_CONNECTION_DATA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))
)
(CONNECT_DATA =
(SID = PLSExtProc)
(PRESENTATION = RO)
)
)
啟動(dòng)數(shù)據(jù)庫
SQL> conn /as sysdba
SQL> alter database mount;
SQL> alter database open;
關(guān)閉數(shù)據(jù)庫
SQL> shutdown immediate;
本文出自:億恩科技【mszdt.com】
服務(wù)器租用/服務(wù)器托管中國五強(qiáng)!虛擬主機(jī)域名注冊頂級提供商!15年品質(zhì)保障!--億恩科技[ENKJ.COM]
|