日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > 數據庫 > 數據庫應用 > 玩轉Oracle服務器連接

玩轉Oracle服務器連接

來源:程序員人生   發布時間:2014-12-07 10:04:58 閱讀次數:3052次

1 Oracle服務器的兩類連接方式

Oracle數據庫連接有多種方式,依照客戶端和服務器端是不是同機運行可分成兩大類,1是本地連接,2是通過網絡連接。

  • 本地連接。顧名思義,就是客戶端程序和服務器程序運行在同1臺機器上。安裝Oracle時,客戶端程序sqlplus自動伴隨安裝在了服務器機器上,所以這類方式總是可用。
  • 遠程連接。客戶端程序和服務器端程序運行于不同的機器上。

另外,Oracle在連接方面還有1個獨特的特點,那就是Oracle實例還沒有運行時,依然可以通過客戶端連接。其中的緣由在于,服務器端負責偵聽的其實不是Oracle實例本身,而是另外一個獨立的偵聽器程序tnslsnr。

2 本地連接

本地連接不需要偵聽器工作。本地連接可以連接到已運行的實例,也能夠連接到空實例(實例還沒有運行)。本地連接時,sqlplus首先根據$ORACLE_HOME找到oracle可履行文件,然后啟動1個專用服務器進程,并運行這個程序。然后根據$ORACLE_HOME和$ORACLE_SID這兩個環境變量來肯定要連接的實例,所以連接之前必須要設定號它們.

2.1 連接到已運行的實例

目前1個SID為orcl12c的實例正在運行,此時sqlplus以ORACLE安裝用戶oracle運行,此用戶屬于OSDBA組,所以oracle不需要驗證用戶名密碼。而 "as sysdba" 則會強迫以SYS用戶登錄。

[oracle@centos192 ~]$ env | grep ORACLE
ORACLE_SID=orcl12c
ORACLE_HOME=/opt/app/oracle/product/12.1.0/dbhome_1
[oracle@centos192 ~]$ sqlplus / as sysdba;

SQL*Plus: Release 11.2.0.3.0 Production on Fri Dec 5 01:55:33 2014

Copyright (c) 1982, 2011, Oracle.  All rights reserved.


Connected to:
Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options

SQL>

以sysdba身份連接時,ORACLE根本不理睬命令行上提供的用戶名和密碼,而是直接以SYS賬戶登錄。而此時又是oracle這個操作系統賬戶履行sqlplus,致使不需要驗證密碼,所以可以正常登錄。以下所示:

[oracle@centos192 ~]$ sqlplus randomusername/randompassword as sysdba;

SQL*Plus: Release 11.2.0.3.0 Production on Fri Dec 5 02:28:03 2014

Copyright (c) 1982, 2011, Oracle.  All rights reserved.


Connected to:
Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options

SQL>

如果使用了 as sysdba,而又不是oracle這個操作系統賬戶運行sqlplus,那末就必須提供正確的SYS賬戶密碼了,否則登錄不上。

[root@centos192 ~]# sqlplus sys/wrongpassword  as sysdba;

SQL*Plus: Release 11.2.0.3.0 Production on Fri Dec 5 03:49:36 2014

Copyright (c) 1982, 2011, Oracle.  All rights reserved.

ERROR:
ORA-01017: invalid username/password; logon denied


Enter user-name:

以下是不使用as sysdba的連接。使用system用戶連接。

[oracle@centos192 ~]$ sqlplus system/systempassword;

SQL*Plus: Release 11.2.0.3.0 Production on Fri Dec 5 02:22:48 2014

Copyright (c) 1982, 2011, Oracle.  All rights reserved.


Connected to:
Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options

SQL>

2.2 實例還沒有啟動時的連接

這類情況實際上是比較特殊的,不管是tnslsnr偵聽器還是instance都沒有啟動,也就是說目前oracle相干的軟件完全沒有運行。這樣建立服務器連接的任務就完全落在了sqlplus身上。其實實例是不是運行與sqlplus本地連接關系不大,sqlplus照樣還是首先啟動1個專用服務器進程,只是這個進程沒法與實例通訊(實例還沒有運行)。

[oracle@centos192 ~]$ sqlplus / as sysdba;

SQL*Plus: Release 11.2.0.3.0 Production on Fri Dec 5 03:59:24 2014

Copyright (c) 1982, 2011, Oracle.  All rights reserved.

Connected to an idle instance.

SQL>

如果此時不是以oracle用戶運行,那末就必須提供正確的用戶名和密碼了,問題是數據庫實例還沒有啟動,固然沒法本身驗證此用戶密碼。解決辦法就是服務器進程會根據密碼文件來驗證用戶。默許安裝后的密碼文件位于$ORACLE_HOME/dbs/目錄中,里只有SYS這1個用戶,所以只有SYS才能登陸。

[root@centos192 ~]# sqlplus sys/syspassword as sysdba;

SQL*Plus: Release 11.2.0.3.0 Production on Fri Dec 5 04:19:04 2014

Copyright (c) 1982, 2011, Oracle.  All rights reserved.

Connected to an idle instance.

SQL>

3 遠程連接

遠程連接與本地連接的最大區分就是,必須啟動tnslsnr這個偵聽器程序,而且此時的專用服務器進程也是有這個偵聽器負責產生了。再1個區分就是如何找到指定實例,本地連接肯定實例的根據是$ORACLE_SID,而遠程連接時則是靠偵聽器公布的服務名(tnslsnr內部負責服務名與實例SID的對應)。另外,由因而遠程連接,所以不存在操作系統安裝用戶免驗證了,所有登錄必須驗證用戶名和密碼。

下面給出幾個例子。

3.1 實例已啟動時

為了明顯起見,這次從1臺Windows機器上運行sqlplus.
C:>sqlplus system/systempassword@172.16.2.192/orcl12c.xy.com

SQL*Plus: Release 12.1.0.2.0 Production on 星期5 12月 5 13:51:39 2014

Copyright (c) 1982, 2014, Oracle.  All rights reserved.

上次成功登錄時間: 星期5 12月 05 2014 03:37:41 +08:00

連接到:
Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing opt
ions

SQL>

3.2 實例還沒有啟動時

實例還沒有啟動時,密碼驗證還是要通過密碼文件,這個與本地連接相同。

C:>sqlplus sys/syspassword@172.16.2.192/orcl12c.xy.com as sysdba;

SQL*Plus: Release 12.1.0.2.0 Production on 星期5 12月 5 13:57:16 2014

Copyright (c) 1982, 2014, Oracle.  All rights reserved.

ERROR:
ORA⑴2514: TNS: 監聽程序當前沒法辨認連接描寫符中要求的服務


請輸入用戶名:

這次登錄失敗了,緣由就是tnslsnr偵聽器并沒有公然orcl12c.xy.com這個服務。這是由于這個服務是實例啟動后自動向偵聽器動態注冊的,現在實例還沒有啟動,固然也就沒有注冊這個服務。解決辦法就是提早靜態注冊,具體做法是修改$ORACLE_HOME/network/admin/listener.ora這個文件,添加靜態服務項,以下:

# listener.ora Network Configuration File: /opt/app/oracle/product/12.1.0/dbhome_1/network/admin/listener.ora
# Generated by Oracle configuration tools.

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
  )

SID_LIST_LISTENER =
   (SID_LIST =
     (SID_DESC =
       (ORACLE_HOME = /opt/app/oracle/product/12.1.0/dbhome_1)
       (SID_NAME = orcl12c)
     )
    )

如此1來,偵聽器已啟動就會自動想外公布這個名為orcl12c的服務,并對應到orcl12c這個SID的實例上。通過lsnrctl stop; lsnrctl start;重新啟動tnslsnr以后,就會通過lsnrctl status看到這個服務了。以下圖:

[oracle@centos192 ~]$ lsnrctl status

LSNRCTL for Linux: Version 12.1.0.2.0 - Production on 05-DEC⑵014 04:47:25

Copyright (c) 1991, 2014, Oracle.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 12.1.0.2.0 - Production
Start Date                04-DEC⑵014 14:23:19
Uptime                    0 days 14 hr. 24 min. 6 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /opt/app/oracle/product/12.1.0/dbhome_1/network/admin/listener.ora
Listener Log File         /opt/app/oracle/diag/tnslsnr/centos192/listener/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
Services Summary...
Service "orcl12c" has 1 instance(s).
  Instance "orcl12c", status UNKNOWN, has 1 handler(s) for this service...
[oracle@centos192 ~]$

雖然SID為orcl12c的實例并沒有啟動,但是偵聽器已把它提供的服務對外發布了。此時就能夠通過遠程連接它了,雖然還是1個空實例。

C:>sqlplus sys/syspassword@172.16.2.192/orcl12c as sysdba;

SQL*Plus: Release 12.1.0.2.0 Production on 星期5 12月 5 14:07:53 2014

Copyright (c) 1982, 2014, Oracle.  All rights reserved.

已連接到空閑例程。

SQL>

4 總結

為清楚起見,總結本地連接和遠程連接的特點為以下表格。

連接方式誰負責產生專用服務器進程如何肯定要連接的實例如何驗證登錄用戶
本地連接sqlplus$ORACLE_HOME和$ORACLE_SID環境變量1 運行sqlplus的操作系統賬戶是不是是安裝oracle軟件具有者 2 密碼文件 3 數據庫本身
遠程連接tnslsnr偵聽進程客戶端提供的服務名1 密碼文件 2 數據庫本身

另外一個需要注意的就是 SYS 這個特殊賬戶和 as sysdba這個特殊身份。只要是 as sysdba身份,必須是SYS這個賬戶名,反過來這不成立,由于SYS還可以以其他身份登入系統。


登錄驗證流程圖:


生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 国产亚洲精品久久久久久 | 久久嫩草视频 | 精品久久中文字幕 | 欧美日韩在线电影 | 午夜精品导航 | 骨科h巨肉各种play | av大片在线观看 | 国产精品日韩欧美一区二区 | 一个色影院 | 久久看看| 福利亚洲 | 甜一伦一性一交 | 久热国产精品视频一区二区三区 | 高清日韩av | 美女黄a| 亚洲国产精品一区二区第一页 | 国产高清视频在线 | 国产成人一区 | 国产中文字幕网 | 91久久精品一区 | 国产精品久久久av久久久 | 日本老妇成熟 | 日韩欧美在线观看视频 | 久久国产系列 | 欧美日韩国产二区 | 国产a免费| 国产91亚洲精品一区二区三区 | 欧美成人一区二区 | 欧美成人午夜电影 | 亚洲欧洲在线观看 | 人妖被c到高潮欧美gay | 亚洲三区在线 | 国产成人福利 | 欧美精品在线一区二区 | 国产h在线观看 | 99视频在线免费观看 | 久久99视频精品 | 成人国产精品免费网站 | 亚洲国产精品一区二区第一页 | 99久久婷婷国产综合精品免费 | aaaa毛片 |