安裝完oracle 與 sql developer後,也知道監聽器設定後,我們也要知道如何作一些基礎的操作,

由於我們還沒有介紹到Enterprise Manager,而且在很多oracle環境並沒有Enterprise Manager,

所以我們要介紹一些SQL Plus的基本操作:像是使用SQL plus登入使用方法、如何啟動資料庫....等。

(雖然命令列功能強大,但要熟記指令與常常使用才不會忘記。有圖型化介面的時候還是比較方便啦....)

------------------------------------- 我是分隔線1 -------------------------------------

一、SQL plus使用與基本操作

在安裝完oracle後,我們能在所有程式找到ORACLE HOME的資料夾,選擇應用程式開發,選擇SQL PLUS,



輸入帳號跟密碼後,即可登入SQL PLUS,如下圖所示:



我們也能藉由命令輸入開啟相關功能,輸入指令sqlplus account/password@host/dbSid,

若需要DBA的權限,記得使用DBA的帳號與密碼,並且在指令後面加上as sysdba,如sqlplus account/password@host/dbSid as sysdba



account: 帳號

password: 密碼

host: 資料庫主機位置

dbSID: 資料庫 SID

第一個"/":帳號與密碼分隔

第二個"/":位置與SID分隔

"@":密碼與主機位置分隔


----------------------------------- 我是分隔線2-----------------------------------

二、資料庫啟動與說明

oracle 資料庫可分成四個狀態:shutdown, nomonut, monut與open,

查了一下資料,可以發現在每個階段能作的事情不盡相同。

也發現一些有關ORACLE架構與管理的檔案,後續幾篇會在整理出來提供大家參考。



nomonut:

1.查詢SPFILE.ora -> SPFILE.ora ->INIT.ora (儲存資料庫啟動時相關參數)

2.allcating the SGA

3.啟動背景作業

4.開啟alert.log,並且開始記錄



mount

1.在指定的參數檔案中,定義與開啟control file

2.從control file 中取得data file與redo log的狀態與名稱(並檢查是否存在)

在這個階段可以執行以下作業:

1.renaming data file

2.可以調整redo log 是否開啟achiveing mode相關選項

3.進行完逞的資料庫備份與還原作業



open:

顧名思義就是讓使用者可以連線到資料庫進行作業,包含開啟線上的data file 與redo log

若在data file 與online redo log不存在的時候開啟資料庫,oracle會告知錯誤訊息(若有必要,系統會進行環原)

shutdown:

分成四種模式:normal, transactional, immediate, abort 差別在于

normal:等待session斷線

transactional:等待transaction完成

immediate:不等待,所有未commit的transaction都會被roll back

abort:立即關閉,但在下次啟動前需要修復資料庫。

如下圖所示,啟動與關閉:





----------------------------------- 分隔線1 (問題處理) -----------------------------------

(附加 ora-01041: internal error. hostdef extension doesn't exist default listener problem 處理)

在撰寫這篇的時候,發生了一些有趣的事情,

在安裝完oracle後,似乎有建立一個預設的監聽器( default listener , port 1521 ),

在執行shutdown immediate後,發現無法再重新啟動,因為該監聽器好像也被 "關掉" ,導致情況很尷尬。

出現錯誤訊息 ora-01041: internal error. hostdef extension doesn't exist

如下圖:



故在前一篇先放如何設定監聽器的方法,啟動其他的監聽器,如:lsnrctl start 

在使用SQL plus連線的時候增加其他監聽器的PORT,如sqlplus account/pass@host:1522/dbSid as sysdba

在執行startup就可以成功啟動資料庫了!




--

目前為止,都還是自行找資料,自行摸索的階段,

未來知道更正確的觀念與用法之前,會再進行補充。
邊寫邊測試邊複習,一個簡單的指令測好久,才突然恍然大悟自己打錯....