Oracle11g For Win7安裝過程的痛苦總結

入行以來,最害怕之一就是Oracle了。。前段時間在Linux上靜默安裝它,現在又在Windows下安裝它,而且過程也是充滿艱辛。。整個人就是被折磨過無數遍瀕臨崩潰狀態,我覺得能成功安裝它是一個講究幸運的事情,好了,下面開始記錄一些東西。或許以後還是可以參考一下!

 

==============================以上是抱怨的分割線==================================

 

1、先從完全卸載Oracle說起

之所以先講它是因爲我重複了10+遍了有。。完全卸載oracle才能再次嘗試安裝時有成功的可能。

1)計算機->管理->服務和應用程序->服務: 停止所有Oracle有關的服務;

2)開始->程序 裏查找Universal Installer裏卸載除dbhome_1(也許還有dbhome_2/dbhome_3)之外所有的組件;

3)找到dbhome_1所在的目錄,刪除;

4)註冊表刪除

刪除HKEY_LOCAL_MACHINE/SOFTWARE/ORACLE目錄。

刪除HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services中所有以oracle或OraWeb爲開頭的鍵。

刪除HKEY_LOCAL_MACHINE/SYSETM/CurrentControlSet/Services/Eventlog/application中所有以oracle開頭的鍵。

刪除HKEY_LOCAL_MACHINE/SYSTEM/ControlSet001/Services中所有以oracle或OraWeb爲開頭的鍵。

刪除HKEY_LOCAL_MACHINE/SYSETM/ControlSet001/Services/Eventlog/application中所有以oracle開頭的鍵。

刪除HKEY_LOCAL_MACHINE/SYSTEM/ControlSet002/Services中所有以oracle或OraWeb爲開頭的鍵。

刪除HKEY_LOCAL_MACHINE/SYSETM/ControlSet002/Services/Eventlog/application中所有以oracle開頭的鍵。

刪除HKEY_CLASSES_ROOT目錄下所有以Ora、Oracle、Orcl或EnumOra爲前綴的鍵。

刪除HKEY_CURRENT_USER/SOFTWARE/Microsoft/windows/CurrentVersion/Explorer/MenuOrder/Start Menu/Programs中所有以oracle 開頭的鍵。

刪除HKDY_LOCAL_MACHINE/SOFTWARE/ODBC/ODBCINST.INI中除Microsoft ODBC for Oracle註冊表鍵以外的所有含有Oracle的鍵。

5)刪除所有與Oracle相關的目錄

c:\Program file\Oracle目錄、 ORACLE_HOME目錄、c:\Documents and Settings\系統用戶名、C:\Users\xxxx\Oracle(xxxx爲用戶名)、C:\Windows\System32\config\systemprofile\Oracle

6)開始->程序裏所有的與oracle相關的快捷啓動方式

 

確保以上全部刪除,重啓電腦即可。

 

2、安裝Oracle

2.1 安裝Oracle Database

1)首先需要注意的是,解壓包如下:



 請同時選中這2個壓縮包再解壓,如果你只選擇一個解壓後再把另一個解壓到同目錄,會很容易出現目錄的錯亂。

2)解壓後的setup.exe請最好「以管理員身份」運行,經驗之談,不然會被各種權限的問題給搞死。。

3)步驟2的安裝選項最好是「僅安裝數據庫軟件」,這樣可以把Oracle Database配置工作與安裝過程解耦。這樣做是因爲在Oracle Database配置工作時很容易出錯,如果你忽略或中止,整個安裝過程沒有成功完成就會退出,下次你再安裝又會創建一個dbhome,造成紊亂;

4)步驟3選擇「單實例數據庫安裝」,步驟6的安裝目錄可以自己指定,但基目錄後面的目錄結構最好不要修改。字符什麼的最好用默認的即可~

5)安裝完成Oracle數據庫產品後,我們就開始着手數據庫實例的安裝與配置工作。

 

2.2 數據庫實例安裝與配置

6)開始->程序->Oracle->配置和移植工具:選擇Database Configuration Assistant(最好以管理員身份運行,否則安裝過程可能會提示:insufficient privilege權限不足)開始實例安裝工作。

7)安裝過程到Oracle Database Configuration Assistant時可能會出現如下錯:



 

解決辦法:開始->程序->Oracle->配置和移植工具:選擇Net Manager->本地->概要文件->Oracle安全特性->所選方法中去掉NTS

等待安裝過程完成即可。安裝後的「口令管理」千萬別忘了,解鎖被鎖的所有用戶併爲sys和system用戶設置你自己的密碼~

(PS:安裝成功真的要靠運氣……)

 

3、使用PL/SQL Developer

好了,如果足夠幸運成功安裝Oracle,那麼我接下來使用PL/SQL developer(以下簡稱PL/SQL)又是一頓折騰。

PL/SQL的使用要特別注意位數(bite)的概念,如果你的PL/SQL是32位的話,是無法加載64位的oci.dll的。

要注意以下概念:

“如果我plsql是32位的,說明它無法支持64位的oci.dll所以我就需要“曲線救國”,手動再安裝一個32位的客戶端供32位的plsql連接(32位的instant_client或win32_11gR2_client.zip),這時候我本地就相當於安裝了2個oracle客戶端,一個32位一個64位”

——你在安裝oracle的時候客戶端也一併安裝的,但由於我安裝的是64位的,如果PL/SQL不是64位的就麻煩了。。正確安裝位數對應的PL/SQL很重要!!!

 

正確安裝好位數對應的PL/SQL後,不要登錄,先配置:



 

這樣,你在tnsnames.ora裏面配置的數據庫別名就可以直接被使用了。如:

E:\app\xxxxxx\product\11.2.0\dbhome_1\NETWORK\ADMIN\tnsnames.ora:

 

#ORCL爲數據庫別名
ORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)
    )
  )

 這樣,你在登錄PL/SQL時,Database那一項就會有你已經配置好的數據庫別名選項,而無需你自己輸入IP和端口之類的參數了。

 

 

4、創建表空間和用戶

創建表空間是需要最高權限的,一般是sys用戶,我們先在dos裏面登入:



 注意。sqlplus可能碰上中文亂碼問題,別忘了設置環境變量:



 或者用PL/SQL登錄,只不過Connect as選擇SYSDBA罷了。

 

1)表空間和用戶、表的關係:

一個表只能屬於一個表空間。一個用戶可以擁有多個表空間。 一個表空間可以有多個表。

一般情況下,一個用戶對應一個表空間。

表空間分爲:臨時表空間和永久表空間。我們可以命名不同的永久表空間,把功能相似的表放在同一個表空間下。表空間相當於一個“盛放表的容器”。

所以有這種語法:create(select) table 用戶名.表名……

2)創建表空間、用戶的步驟如下:

/*創建臨時表空間 ,可以不做*/

create temporary tablespace 臨時表空間名(如:soacloud_temp)

tempfile 'E:\oracle\oradata\XE\臨時表空間名.dbf'

size 50m

autoextend on

next 50m maxsize 20480m

extent management local;

 

/*創建數據表空間(dbf文件由你自己指定,無需事先創建,運行該語句後會自動生成) */

create tablespace 表空間名 logging

datafile 'F:\app\oracle\oradata\orcl\pdborcl3\表空間名.dbf'

size 300m

autoextend on

next 100m maxsize 20480m

extent management local;

 

/*創建用戶並指定表空間 */

create user 用戶名  identified by 密碼

default tablespace 表空間名

temporary tablespace 臨時表空間名;

 

 

/*第4步:給用戶授予權限 */

grant connect,resource,dba to 用戶名; (dab權限慎給)

 

3)sys用戶和system用戶

system是數據庫內置的一個普通管理員,你手工創建的任何用戶在被授予dba角色後都跟這個用戶差不多。

 

sys用數據庫的超級用戶,數據庫內很多重要的東西(數據字典表、內置包、靜態數據字典視圖等)都屬於這個用戶,sys用戶必須以sysdba身份登錄。

查看所有的用戶:select username from dba_users; 

 

5、service_name和sid

service_name:是這個數據庫對外宣稱的名字,外面的人要想連接我這個數據庫,你就在客戶端的連接串裏寫上service_name;

sid:一個數據庫可以有多個實例(如RAC),SID是用來標識這個數據庫內部每個實例的名字

 

windows環境查看oracle的sid和services_name

1)查看sid:  

方法一:打開註冊表(win+R輸入regedit)->HKEY_LOCAL_MACHINE->SOFTWARE->ORACLE->KEY_OraDb11g_home1->ORACLE_SID

方法二:sys用戶登錄,運行sql語句select instance_name from v$instance;

2)查看某數據庫的service_name:

方法一:E:\app\用戶名\product\11.2.0\dbhome_1\NETWORK\tnsnames.ora裏面的指定數據庫的SERVICE_NAME對應的內容

方法二:sys用戶登錄,運行sql語句

show parameter service_names

所以一個數據庫對應一個service_name,多個數據庫實例。

一般情況下,一個數據庫對應一個實例。windows下可以通過DBCA(Database Configuration Assistant工具)來創建一個instance實例。

 

jdbc的url用service_name和sid連接的不同方式

jdbc:oracle:thin:@<host>:<port>:<SID>

jdbc:oracle:thin:@//<host>:<port>/<service_name> 

  • 17430620-739e-3d74-95ec-b5102ac95d3c-thumb.png
  • 大小: 6.1 KB
  • 8039ea94-9143-3ce1-8bd4-7e0a9b55a206-thumb.png
  • 大小: 5.2 KB
  • 0062518d-d869-3e4a-9ebf-4d8a0a61d287-thumb.png
  • 大小: 67.4 KB
  • 4171ad55-8512-340c-add5-0d0c1c9a8e2e-thumb.png
  • 大小: 3.3 KB
  • 4bcde130-3410-3b75-8380-2e9ec36930cf-thumb.png
  • 大小: 16 KB
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章