sqlplus連線的三種方式
sys使用者在cmd下以DBA身份登陸:
sqlplus /nolog
--執行sqlplus命令,進入sqlplus環境。其中/nolog是不登陸到資料庫伺服器的意思,如果沒有/nolog引數,sqlplus會提示你輸入使用者名稱和密碼
SQL〉connect / as sysdba
--以系統管理員(sysdba)身份連線資料庫,如果需要對資料庫進行管理操作,那麼需要以這種方式登陸資料庫,或者:
connect [email protected]_name as sysdba
--其中service_name是你配置的客戶tnsname服務名
SQL> startup --如果資料庫沒有啟動的話,經過上述步驟連線後,正常啟動資料
這裡介紹下幾種連線用到的命令形式
1.sqlplus / as sysdba 這是典型的作業系統認證,不需要listener程序
2.sqlplus sys/oracle 這種連線方式只能連線本機資料庫,同樣不需要listener程序
3.sqlplus sys/[email protected] 這種方式需要listener程序處於可用狀態。最普遍的通過網路連線。
以上連線方式使用sys使用者或者其他通過密碼檔案驗證的使用者都不需要資料庫處於可用狀態,作業系統認證也不需要資料庫可用,普通使用者因為是資料庫認證,所以資料庫必需處於open狀態。
平時排錯可能會用到的
1.lsnrctl status檢視伺服器端listener程序的狀態
2.tnsping 檢視客戶端sqlnet.ora和tnsname.ora檔案的配置正確與否,及對應的伺服器的listener程序的狀態。
3.SQL>show sga 檢視instance是否已經啟動
如果在sql*plus環境中使用shutdown命令關閉了資料庫,現在要啟動資料庫的話,必須先用不登陸到資料庫伺服器的方式進入sqlplus環境,再用startup命令啟動資料庫。因為資料庫沒有啟動的話,不能登陸資料庫,也無法驗證使用者名稱和密碼。
sqlplus命令格式如下:
用法: SQLPLUS [ [<option>] [<logon>] [<start>] ]
其中 <option> ::= -H | -V | [ [-M <o>] [-R <n>] [-S] ]
<登入> ::= <使用者名稱>[/<口令>][@<connect_string>] | / | /NOLOG
<啟動> : : = @<檔名>[.<ext>] [<引數> ...]
"-H" 顯示 SQL*Plus 的版本標幟和使用語法
"-V" 顯示 SQL*Plus 的版本標幟
"-M <o>" 使用 HTML 標誌選項 <o>
"-R <n>" uses restricted mode <n>
"-S" uses silent mode
1,sqlplus '/ as sysdba '
和
2,sqlplus /nolog
SQL> connect / as sysdba
1和2是一樣的意思。
SQLPlus 在連線時通常有三種方式
1. sqlplus / as sysdba
作業系統認證,不需要資料庫伺服器啟動listener,也不需要資料庫伺服器處於可用狀態。比如我們想要啟動資料庫就可以用這種方式進入
sqlplus,然後通過startup命令來啟動。
sqlplus / as sysdba 是作業系統使用者驗證登入方式,通過OS本地的IPC可以直接連線到例項,IPC由本地OS提供,允許各種程序在主機內進行通訊。所以不需要listener也可以連線到例項。
2. sqlplus username/password
連線本機資料庫,不需要資料庫伺服器的listener程序,但是由於需要使用者名稱密碼的認證,因此需要資料庫伺服器處於可用狀態才行。
3. sqlplus usernaem/[email protected]
通過網路連線,這是需要資料庫伺服器的listener處於監聽狀態。此時建立一個連線的大致步驟如下
a. 查詢sqlnet.ora,看看名稱的解析方式,預設是TNSNAME
b. 查詢tnsnames.ora檔案,從裡邊找orcl的記錄,並且找到資料庫伺服器的主機名或者IP,埠和service_name
c. 如果伺服器listener程序沒有問題的話,建立與listener程序的連線。
d. 根據不同的伺服器模式如專用伺服器模式或者共享伺服器模式,listener採取接下去的動作。預設是專用伺服器模式,沒有問題的話客戶端
就連線上了資料庫的server process。
e. 這時連線已經建立,可以操作資料庫了。