天天看點

SQLPLUS登入以及切換Oracle資料庫執行個體和使用者

最近剛接觸了Oracle資料庫,剛入門的時候,經常都是使用SQL Developer進行資料庫執行個體以及使用者的登入,很少使用SQLPLUS來對資料庫進行操作,但是資料庫伺服器通常是運作在Linux環境之下,通過sqlplus對資料庫進行管理,是以,對于sqlplus如何對資料庫進行管理與開發還是很重要的。

一開始我使用sqlplus登入Oracle資料庫的時候,碰到了許多問題,我想,這應該也是很多初學者經常會遇到的問題,接下來我就簡單介紹一下,如何通過sqlplus登入資料庫執行個體以及進行執行個體之間的切換還有使用者之間的切換。

首先,至少要確定以下幾個服務已經打開:

SQLPLUS登入以及切換Oracle資料庫執行個體和使用者

這張圖中已經顯示了我電腦中所有Oracle服務,其中,當我們要通過sqlplus來登入資料庫執行個體時,必須確定監聽服務已經打開,即上圖中的OracleOraDB12Home1TNSListner服務,否則,在登入時就會報Ora-12560的錯誤:

SQLPLUS登入以及切換Oracle資料庫執行個體和使用者

即如上圖所示,實際上,也可以通過指令行來啟動監聽服務,這就涉及到監聽配置檔案listner.ora的配置,這裡就不詳細介紹,感興趣的可以參考以下部落格:

1、https://www.cnblogs.com/qianyuliang/p/6520515.html;

2、https://blog.csdn.net/dragoo1/article/details/8528852;

與此同時還要打開你所想要連接配接的資料庫執行個體背景程序服務,即OracleSeviceSID_NAME,SID_NAME為資料庫執行個體名稱。

上述兩個服務必須打開,才能夠通過SQLPLUS連接配接到你想要連接配接的資料庫執行個體。

啟動SQLPLUS時,可以在sqlplus指令後直接指定使用者名和密碼,這時系統不會提示輸入使用者名和密碼,而是直接登入到資料庫伺服器,格式是:使用者名/密碼。例如:

sqlplus C##HOTEL/123456

連接配接成功的話會顯示已連接配接。

如果在一台計算機建立了多個資料庫執行個體,為了登入到正确的資料庫,在進入SQLPLUS之前,先要設定環境變量ORACLE_SID,将它的值設為你所想要登入的資料庫執行個體的SID,一般和資料庫執行個體同名,(值得注意的是,你想連接配接的資料庫執行個體背景伺服器服務必須打開,即OracleSeviceSID_NAME,如果不打開,那麼即邊設定了環境變量,連接配接的時候也會報錯Ora-12560)。

示例如下(我打開了OracleSeviceHSD和OracleSeviceSample兩個資料庫執行個體的背景服務程序,可以看到一開始登入時沒有指定資料庫,登入上的是HSD,修改了ORACLE_SID的值後,登入上了SAMPLE):

SQLPLUS登入以及切換Oracle資料庫執行個體和使用者

然後重新設定ORACLE_SID為SAMPLE後,再次以SYS使用者登入目前預設資料路執行個體,然後使用show parameter instance_name指令,發現登入的資料庫執行個體已經變成了SAMPLE:

SQLPLUS登入以及切換Oracle資料庫執行個體和使用者

在預設情況下,SQLPLUS和Oracle伺服器位于同一台計算機上,啟動SQLPLUS時,它将自動登入到本機的資料庫伺服器上。如果SQLPLUS和Oracle伺服器不在同一台計算機上,那麼在登入時還要指定所使用的網絡服務名。例如

sqlplus C##HOTEL/[email protected]

其中netsvr是已經定義的網絡服務名,這時SQLPLUS和Oracle将通過Oracle Net進行通信,無論采用哪種方式,登入成功後及那個出現SQLPLUS的提示符“SQL>”。

退出SQLPLUS時,在提示符之後輸入quit或exit指令就可以了,如果要在不退出SQLPLUS的情況下斷開與資料庫伺服器的連接配接,那麼輸入disconnect指令即可,若要重新連接配接,或者在已經連接配接了一個使用者的情況的下以另一個使用者的身份連接配接,則使用conn指令,使用格式如下:

conn username/password

如果是sys使用者,後面還要加上as sysdba或者as sysoper,如果是遠端登入,還要再使用者名和密碼之後輸入網絡服務名。

下面實我切換使用者的示例(可以看到一開始登入的使用者為C##HOTEL,切換的使用者為C##USER01):

SQLPLUS登入以及切換Oracle資料庫執行個體和使用者

如何擷取幫助資訊?

指令格式為SQL>help 你所想要查找的幫助指令

例如輸入help conn,下面就會顯示出conn指令的詳細資訊與使用方式:

SQLPLUS登入以及切換Oracle資料庫執行個體和使用者