服務器端
配置:oracle11g R2 x64
1.設置監聽
a.啓動欄 -> 開始 -> 程序 -> Oracle-OraDb11g_home1 -> 配置和移植工具 -> Net Manager
b.Oracle Net 配置 -> 本地 -> 監聽程序 -> LISTENER ,查看是否有本地地址在監聽,沒有則添加,主機:"localhost",端口:1521,協議:TCP/IP
2.關閉所有防火牆(包括Window防火牆)。若出現無監聽程序,就是防火牆問題了。
3.啓動TNS監聽服務:lsnrctl start (此程序LSNRCTL.exe位於oracle_path/product/11.2.0/dbhome_1/BIN目錄下
PS: 我的system用戶登陸不上,sys,scott 用戶倒是可以登錄的。我貌似明白了,DBA 是不讓遠程連接的?但是用sys用戶可以以DBA登錄呀。
客戶端(Windows)
1.下載Instant Client for Microsoft Windows (32bit) 並安裝,地址: instant client下載
2.將instant client的安裝目錄加入path環境變量中
3.創建tnsnames.ora配置文件,內容格式如下:
- # tnsnames.ora Network Configuration File: C:\e\orcldb\product\11.2.0\dbhome_1\NETWORK\ADMIN\tnsnames.ora
- # Generated by Oracle configuration tools.
- WSR =
- (DESCRIPTION =
- (ADDRESS_LIST =
- (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.112)(PORT = 1521))
- )
- (CONNECT_DATA =
- (SERVICE_NAME = orcl)
- )
- )
- ORACLR_CONNECTION_DATA =
- (DESCRIPTION =
- (ADDRESS_LIST =
- (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
- )
- (CONNECT_DATA =
- (SID = CLRExtProc)
- (PRESENTATION = RO)
- )
- )
- LISTENER_ORCL =
- (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
- ORCL =
- (DESCRIPTION =
- (ADDRESS_LIST =
- (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
- )
- (CONNECT_DATA =
- (SERVER = DEDICATED)
- (SERVICE_NAME = orcl)
- )
- )
比如此文件,我創建的TNS服務名爲WRS,Oracle服務器地址爲192.168.1.112,Oracle服務器監聽端口爲1521,連接的Oracle數據庫名爲orcl,可以按此格式進行替換。
4.添加TNS_ADMIN環境變量,指向創建的tnsnames.ora配置文件。
至此,配置已經完成,可以用pl/sql developer之類的工具連接遠程oracle數據庫,database即爲添加的tns服務名(這裏爲WSR)
如果要用odbc連接數據庫,還要添加odbc數據源,64位系統用C:\Windows\SysWOW64\odbcad32.exe,32位系統用C:\Windows\System32\odbcad32.exe
以下方法沒有成功呀。。。。。。。。
Oracle數據庫的遠程連接可以通過多種方式來實現,本文我們主要介紹四種遠程連接的方法和注意事項,並通過示例來說明,接下來我們就開始介紹。
第一種情況:
若oracle服務器裝在本機上,那就不多說了,連接只是用戶名和密碼的問題了。不過要注意環境變量%ORACLE_HOME%/network/admin/是否設置。
第二種情況:
本機未安裝oracle服務器,也未安裝oracle客戶端。但是安裝了pl sql development、toad sql development、sql navigator等管理數據庫的工具。在虛擬機或者另一臺電腦上安裝了oracle服務器,也就是虛擬機或者另一臺電腦此時作爲服務器。
這種情況下,本人以pl sql development遠程連接ORACLE服務端數據庫爲例:
1、在安裝oracle服務器的機器上搜索下列文件:
oci.dll
ocijdbc10.dll
ociw32.dll
orannzsbb10.dll
oraocci10.dll
oraociei10.dll
sqlnet.ora
tnsnames.ora
classes12.jar
ojdbc14.jar
把這些找到的文件複製放到一個文件夾,如 oraclient,將此文件夾複製到客戶端機器上。如放置路徑爲 D:oraclient。
2、配置tnsnames.ora,修改其中的數據庫連接串。
oracledata = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.58)(PORT = 1521)) (CONNECT_DATA = (SERVICE_NAME = oracledata) )
其中,oracledata是要連接的服務名;HOST = 192.168.0.58,是服務器IP地址;PORT = 1521是端口號。
3、添加第一個環境變量,名爲TNS_ADMIN,值爲tnsnames.ora文件所在路徑(如:D:oraclient,特別是重裝後或其它操作,忘了TNS_ADMIN變量,plsql登陸就會報無法解析指定的連接標識符),這是爲了能夠找到上面說的tnsnames.ora。這步是最重要的。
添加第二個環境變量(可有可無):“NLS_LANG = SIMPLIFIED CHINESE_CHINA.ZHS16GBK”,(AMERICAN_AMERICA.US7ASCII 是ASCII編碼類型,其它類型可自己到服務器看一下或網上查找一下)(本步驟暫時要做對,如果編碼不對,會產生亂碼)。
4、下載並安裝PL SQL Developer配置應用:
打開PL SQL Developer,登入界面點取消,進入後選擇菜單欄 tools->preferences->connection :
Oracle Home=D:oracleclient OCI library=D:oracleclientoci.dll
5、再次打開plsql則會在database中有oracledata 選項輸入用戶名密碼就可以登陸。
第三種情況:
本機未安裝ORACLE服務器,但是安裝了oracle客戶端,也安裝了pl sql development、toad sql development、sql navigator等管理數據庫的工具。在虛擬機或者另一臺電腦上安裝了oracle服務器,也就是虛擬機或者另一臺電腦此時作爲服務器。
這種情況下,本人以pl sql development遠程連接oracle服務端數據庫爲例:
1、打開oracle客戶端中的net manager,配置要遠程連接的數據庫名、IP地址等,如果net manager中沒有要遠程連接的數據庫名,則新建即可。
2、其他步驟與第二種情況中的2---5相同。
第四種情況:
本機未安裝oracle服務器,也未安裝pl sql development、toad sql development、sql navigator等管理數據庫的工具,但是安裝了oracle客戶端。在虛擬機或者另一臺電腦上安裝了ORACLE服務器,也就是虛擬機或者另一臺電腦此時作爲服務器。
這種情況下,本人以oracle客戶端中的sqlplus遠程連接oracle服務端數據庫爲例:
1、打開oracle客戶端中的net manager,配置要遠程連接的數據庫名、IP地址等,如果net manager中沒有要遠程連接的數據庫名,則新建即可。
2、同第二種情況中的步驟二。
3、同第二種情況中的步驟三。
4、打開sqlplus:
(1)如果用sys用戶登入,則用戶名:sys 密碼:xxxxxx 主機字符串:要連接的數據庫名 as sysdba,登入即可。
(2)如果用其他用戶登入,則用戶名:xxx 密碼:xxxxxx 主機字符串:要連接的數據庫名,登入即可。
注意事項:
1、服務器端和客戶端防火牆需要關閉;
2、我們經常會遇到***服務無法啓動,那麼需要打開Net Configuration Assistant修復,或者新建***服務。
3、數據庫密碼如果忘了怎麼辦?按照以下方法修改密碼即可:
開始-->運行-->cmd
輸入 :sqlplus /nolog 回車
輸入 :connect / as sysdba 回車
用戶解鎖 : alter user system account unlock 回車
修改密碼:alter user system identified by manager
4、怎樣判斷數據庫是運行在歸檔模式下還是運行在非歸檔模式下?
進入dbastudio,歷程--〉數據庫---〉歸檔查看。
5、另外,如果本機和別的機子均安裝了oracle服務器端,那麼本機如果要連接別的機子,就必須修改環境變量。