sqlserver轉(zhuǎn)oracle(四)oracle新建數(shù)據(jù)庫及夸庫連接(database link)

寫在最前面

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


多個(gè)oracle服務(wù)并行

。
所以,如果庫很多,千萬別忘了去“服務(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 定位器。愿意及解決方案會在另一篇文章中闡述。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容