安裝完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<SID>.ora -> SPFILE.ora ->INIT<SID>.ora (儲存資料庫啟動時相關參數)
2.allcating the SGA
3.啟動背景作業
4.開啟alert<SID>.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 <lister name>,
在使用SQL plus連線的時候增加其他監聽器的PORT,如sqlplus account/pass@host:1522/dbSid as sysdba
在執行startup就可以成功啟動資料庫了!
--
目前為止,都還是自行找資料,自行摸索的階段,
未來知道更正確的觀念與用法之前,會再進行補充。
邊寫邊測試邊複習,一個簡單的指令測好久,才突然恍然大悟自己打錯....