使用及管理Oracle 11g Express Edition,使用Oracle SQL Developer, Navicat Lite
資料庫裝好之後就是要來用,但是 Oracle 11g XE 所預設的管理介面看起來實在太過於陽春了,又或許應該說,我不會用這個管理介面來管理安裝好的資料庫,因為 Oracl XE 資料庫的安裝就如同 MS SQL Express 安裝一樣,安裝好只是把資料庫的 Instance 裝好而已,要一個 GUI 的管理工具就必須另外安裝,MS SQL Server Express 就有一個「MS SQL Server Management Studio Express」的GUI工具,而Oracle資料庫則是有個官方版的「Oracle SQL Developer」,另外也有個相當好用的第三方管理工具「Navicat Lite」,上面兩種在使用後的感覺是,Oracle SQL Developer 比較佔資源,而Navicat Lite則是比較輕巧些。
Oracle SQL Developer
這篇文章編寫時的最新版本為「3.0.04.34」http://www.oracle.com/technetwork/developer-tools/sql-developer/downloads/index.html
下載的時候需要注意一下你所需要的版本,可以依據你的作業系統版本來下載,不過有一點要注意,就是你執行程式的環境必須要有安裝JDK 6,在Oracle SQL Developer的下載裡就有提供不同的安裝內容:
32-bit Windows
64-bit Windows
我們就先下載「Oracle SQL Developer for 32-bit Windows (This zip file includes the JDK1.6.0_11)」這個版本,在已安裝Oracle 11g XE的VM中來使用,將壓縮檔案解縮到VM中,預設是解壓縮到「C:\」下,壓縮檔裡面就只有一個目錄「sqldeveloper」,解壓縮完成後進入到「sqldeveloper」目錄中,
直接執行「sqldeveloper.exe」,首先會看到準備執行中的視窗畫面,
接著就是進入到Oracle SQL Developer中,因為是第一次執行,所以會先詢問是否要將一些副檔名的檔案做關聯,日後在VM中只要點擊有關聯副檔名的檔案就會開啟Oracle SQL Developer,接著就是主畫面,當然一開始都還沒有建立任何的資料庫連線,所以都是空空的內容,
點選畫面中的綠色「+」圖示,新增一個資料庫連線,
出現新建資料庫連線的視窗後,在畫面中的欄位上去輸入連線資訊,
連線名稱:任意輸入一個便是連線的名稱
使用者名稱與密碼:這邊先輸入系統管理者帳號與密碼
主機名稱:預設是連線到本機的資料庫,所以使用localhost
連線埠:預設為1521
SID:預設為xe
輸入完畢之後,先點擊「測試」鈕以測試連線資訊是否正確,
測試正常之後就可以點擊「連線」就會把資料庫連線資訊儲存以及連線,
點開左側的「OracleXE_System」就會展開這個資料庫連線的內容,
點開表格後,就會展開一堆資料庫中已經預設建立的資料表格
這邊先說明一下,不要看這些表格不順眼就全部刪除,「千萬不要亂刪除!!!」因為OracleXE雖然只能建立一個資料庫,但是我們可以建立不同的Tablespace以及使用者,如此就可以在OracleXE上使用多組不同的資料來開發我們的應用程式。
建立Tablespace
一個Database是由多個Tablespace(表格空間)所構成的,而Table就是存在於Tablespace當中,因為OracleXE僅能是單一個Database運作而無法有多個資料庫做區別,所以為了可以讓不同的應用程式來使用,就必須搭配使用者帳號,而個別的使用者帳號再去指定使用不同的Tablespace,用這樣的方式來做到不同應用程式再同一個資料庫中去存取資料。
參考連結:TableSpace介紹
因為在Oracle SQL Developer中並沒有所謂建立Tablespace的功能,所以就必須使用SQL Script的方式來建立,
參考連結:CREATE TABLESPACE: Examples
參考連結:在 Oracle 中建立固定表格空間的 SQL script 範例
例如說,用以下的SQL Script來建立一個Tablespace「TestTablespace」,指定這個Tablespace的檔案存放位置,以及初始的檔案大小,
CREATE TABLESPACE TestTablespacedatafile 'C:\oraclexe\app\oracle\oradata\XE\TestTablespace.dbf' SIZE 20M;
執行:
建立Tablespace檔案
於建立使用者帳號時,於「預設表格空間」的下拉選單中可以看到剛才所建立的Tablespace
而建立Tablespace之後,似乎就無法修改Tablespace的名稱(關於這一點,我Google很久,似乎沒有正解),所以當建立好Tablespace後,如果需要移除的話,就使用以下的SQL Script來移除Tablespace,這樣會連帶將這個Tablespace的資料檔也一併移除。
Drop tablespace TESTTABLESPACEincluding contents and datafiles;
執行:
Tablespace「TESTTABLESPACE」的資料檔也已經移除了
當然,基本的建立 Tablespace 語法是要認識,上面所使用的建立 Tablespace 的 SQL Script 其實相當陽春,因為還可以使用 SQL Script 去設定 Tablespace datafile 的最大檔案大小、指定每次檔案大小增加的大小或是百分比、指定Temp Tablespace等,因為指令不是每個人都可以牢牢記住的,所以我還是會希望有一個GUI的工具可以去做建立Tablespace的動作,而 Oracle SQL Developer 沒有提供這一個功能,但是還是有別的GUI工具是有提供的。
Navicat Lite
這邊就像各位介紹另一個Oracle的管理工具,導覽貓「Navivcat」,
下載:http://www.navicat.com/cht/download/download.html
可以去官網註冊試用,會在官網的回信中給你下載Navicat Lite的連結網址。
Navica線上手冊:http://www.navicat.com/manual/online_manual/cht/win_manual/index.html
Navicat並不只限定連接Oracle資料庫而已,其實他也可以連結多種的資料庫,如:MySQL, PostgreSQL…etc,
Navicat 建立資料庫連接
如果你在Navicat 建立資料庫資訊做連線測試時有出現以下的訊息:
這表示要去設定一下Navicat的OCI以及Sqlplus的路徑,
工具 → 選項
其他 → OCI
指定安裝在VM的C槽的oraclexe目錄
「C:\oraclexe\app\oracle\product\11.2.0\server\bin」
OCI.DLL「C:\oraclexe\app\oracle\product\11.2.0\server\bin\oci.dll」
SQL*Plus「C:\oraclexe\app\oracle\product\11.2.0\server\bin\sqlplus.exe」
設定完成,按下「確定」後要記得重新啟動 Navicat Lite
重新設定連線資訊後做「連線測試」
展開連線的內容
關於Navicat對於Oracle資料庫的操作在之後都會慢慢介紹,或是自己去試試看,因為Navicat的功能操作上比較直覺也容易上手。
使用Navicat建立Tablespace
點擊Navicat上方功能列的「其他」,選擇「資料表空間」
顯示出目前資料庫有哪些已經建立的Tablespace
接下來就是直接點擊「新增資料表空間」
資料表空間類型:選擇「PERMANENT」
資料檔案:就是datafile,設定名稱、大小、單位
路徑:datafile置放的目錄路徑
自動延伸:當資料大小已經增加到原先設定容量時,是否會自動依據設定增加容量
下一個大小:當設定自動延伸後,每一次增加容量的大小
無上限:當此選項勾選時,下一個「最大大小」就無作用,無勾選此項時,「最大大小」才有作用
最大大小:datafile的最大容量
以下是我所要建立Tablespace「Northwind」的內容:
上方的最後一個頁籤「SQL預覽」,可以看到我們藉由這個「新增資料表空間」的設定所產生的SQL Script內容,
CREATE TABLESPACE "NewTableSpace"DATAFILE 'C:\ORACLEXE\APP\ORACLE\ORADATA\XE\Northwind' SIZE 100 MAUTOEXTEND ON NEXT 10 MMAXSIZE UNLIMITED ;
當設定完成並確定新增此Tablespace,就按下上方功能列的的「儲存」,按下後會跳出一個視窗讓我們輸入Tablespace的名稱,這邊一樣輸入與Datafile一樣的名稱「Northwind」
輸入完Tablespace名稱後再按下「確定」,就可以看到已經新增了Tablespace「Northwind」
建立使用者帳號
建立好新的Tablespace之後就接著來建立一個新的使用者帳號,這裡我們回到Oracle SQL Developer來操作這個功能,輸入新使用者的登入帳號與密碼,而且記得要將預設表格空間設定為「Northwind」而暫時表格空間就使用「TEMP」
再來是角色的設定,如果這邊不知道要設定哪些角色的話,就先授權三種角色,分別是
「CONNECT」「DBA」「RESOURCE」
CONNECT:授與使用者可以連線資料庫並執行基本的資料庫操作
RESOURCE:可以讓使用者去建立資料庫的物件,如TABLE. TRIGGER, PROCEDURE
DBA:可以讓使用者存取所有其他使用者的資料庫物件與管理資料庫
(DBA:DataBase Admnistrator access,此角色權限就如同SYSTEM與SYS一樣)
再來是「系統權限」,我這邊都是直接「全部授權」與「全為管理員」
再來是「配額」,這邊不做任何的設定
「SQL」,顯示剛才所設定內容的SQL Script
上面都設定完成後,就可以點擊右下方的「套用」鍵,在最後的「結果」頁籤當中就可以看到執行新建使用者的結果
執行完畢後,點選「關閉」鍵,再回到Oracle SQL Developer的「其他使用者」去看,就可以看到剛才所建立的新使用者「NORTHWIND_USER」
展開「NORTHWIND_USER」的項目,「表格」項目下還沒有任何的Table,因為Tablespace「Northwind」也是剛剛才新建立的,還沒有建立任何的Table,
使用新建立的使用者帳號新增一個資料庫連線
因為剛才的建立動作都是使用SYSTEM這個使用者帳號,所以為了確認剛才新建立的使用者是否可以連線,我們將現在的資料庫連線中斷,
用剛才建立的使用者「Northwind_user」來建立新的資料庫連線
Oracle SQL Developer 完成建立連線
Navicat Lite 建立連線
以上就是分別介紹兩個用來管理以及操作Oracle資料庫的GUI工具:Oracle SQL Developer, Navicat Lite
並且說明如何在Navicat Lite中去新建立一個Tablespace,也在Oracle SQL Developer中去新增加一個使用者帳號,而且這個新使用者帳號的預設Tablespace是設定新建立的Tablespace。
這兩套 Oracle 的 GUI 管理工具都很容易上手,一般的實務操作上,我使用 Navicat 的次數比較多,就如同一開始所說的,Navicat 開啟的速度與時間都比 Oracle SQL Developer 來得快,而且執行時所佔用的資源也比較少,操作上各有各的優點,所以我會建議兩套都使用 …
這一篇就說到這裡,下一篇就是再Tablespace「Northwind」中去建立Table以及新增資料。
以上
請問一下 建立TABLESPACE後
回覆刪除如要增加一筆資料 要用甚麼語法呢
有例子說明嗎
Hello, 文章最後有說到[建立Table以及新增資料]的部份是下一篇內容。
刪除ASP.NET MVC + Oracle 11g XE + Entity Framework. Part 3
http://kevintsengtw.blogspot.tw/2011/11/northwindoracle-ms-sql-servernorthwind.html