寫在最前面
oracle的多庫運(yùn)行與sqlserver有所不同,oracle會為創(chuàng)建的每個(gè)庫生成一個(gè)服務(wù),如果查看“任務(wù)管理器”,我們就會發(fā)現(xiàn)這個(gè)問題:

。
所以,如果庫很多,千萬別忘了去“服務(wù)”里,把主要的oracle服務(wù)切換為手動啟動。介于oracle服務(wù)對內(nèi)存的占用,最好別建太多庫。
考慮到以上問題,我們并沒有將原來的多庫結(jié)構(gòu)同步到oracle中使用,而是用了兩個(gè)主庫,其他的采用表空間的形式進(jìn)行。
基本配置及上文
1.sqlserver轉(zhuǎn)oracle(一) oracle創(chuàng)建用戶
2.sqlserver轉(zhuǎn)oracle(二) Navicate連接oracle
3.sqlserver轉(zhuǎn)oracle(三) 數(shù)據(jù)遷移及數(shù)據(jù)結(jié)構(gòu)處理
oracle新建數(shù)據(jù)庫
1.在oracle安裝目錄下,找到Database Configuration Assistant.
2."下一步">"創(chuàng)建數(shù)據(jù)庫">“下一步”>"一般用途或事務(wù)處理">"下一步">"輸入數(shù)據(jù)庫名及sid",除了配置密碼的那一項(xiàng),其他的都下一步。
新建庫基本就是順著流程指引去做,不在多言。但如果在oracle中進(jìn)行夸庫連接,就不能再像sqlserver中一樣直接"database.dbo.table"了。而是需要預(yù)先建好一個(gè)連接,它是一個(gè)公用的,像數(shù)據(jù)表一樣的東西。實(shí)際上一旦連接建立成功,在夸庫甚至跨服務(wù)器的連接上,oracle更加方便。下面,就來建這個(gè)連接。
database link建立夸庫連接
前提:你所使用的用戶名需要具有建立夸庫連接的權(quán)限。如果你的用戶名沒有這個(gè)權(quán)限,那么下面的幾步就會幫助你建立這種權(quán)限。
一、為用戶分配建立database link的權(quán)限
1.在命令提示符運(yùn)行如下命令,使用sys賬號登錄sqlplus。
sqlplus sys/密碼@SID as sysdba
把以上命令中的密碼和sid換成自己數(shù)據(jù)庫的信息,比如我的密碼是123,數(shù)據(jù)庫的sid是orcl,那么我要運(yùn)行的是:sqlplus sys/123@orcl as sysdba。
2.連接成功后,依次運(yùn)行如下命令:
grant create database link to username ; --為username賦予創(chuàng)建私有database link的權(quán)限
grant create public database link to username ;--為username賦予創(chuàng)建所有用戶可用的database link的權(quán)限
grant drop public database link to username; --為username賦予刪除database link的權(quán)限
上述命令中,username為你正常使用時(shí)的用戶名。
二、創(chuàng)建database link
用已經(jīng)有權(quán)限的用戶登錄plsql或者Navicate,如前文中提到的那樣。并運(yùn)行如下命令:
create public database link linkName connect to Tusername IDENTIFIED BY Tpassword using 'connecstr'。
解釋:
linkName--隨意取名,是這個(gè)連接的名字,夸庫的時(shí)候調(diào)用就用linkName。為了便于區(qū)分,我一般以_link結(jié)尾。
Tusername--要連接的數(shù)據(jù)庫的用戶名。
Tpassword--要連接的數(shù)據(jù)庫的密碼。
connecstr--.ora文件中的連接字符串,.ora文件一般位于“\product\11.2.0\dbhome_1\NETWORK\ADMIN”目錄下。
實(shí)例
例如我.ora文件中,要連接的目標(biāo)庫的字符串如下:
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST =127.0.0.1)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)
目標(biāo)庫的名字為:orcl;
可登錄目標(biāo)庫的用戶名密碼分別為: user1和123;
那么,我要建立的夸庫連接應(yīng)運(yùn)行如下命令:
create public database link orcl_link connect to user1 IDENTIFIED BY 123 using '(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)'
這其中,username 和 密碼是無需用單引號包裹的。
三、在查詢語句中調(diào)用
一旦連接建立,在查詢語句中的調(diào)用將變得非常簡單,直接在表后面@linkName就可以。
實(shí)例
如果上述的庫中有表test1,要通過上述建立的orcl_link去建立連接,我們可以使用如下命令:
select * from test1@orcl_link.
然而在實(shí)際使用中,有時(shí)這樣是會報(bào)錯的,比如錯誤信息:
ORA-22992: 無法使用從遠(yuǎn)程表選擇的 LOB 定位器。愿意及解決方案會在另一篇文章中闡述。