在本文提供的示例中,源服務(wù)器配置有控制域和一個(gè)托管 Oracle 數(shù)據(jù)庫(kù)的來(lái)賓域(名為 ldg1)??刂朴蛎麨?/p>
目前創(chuàng)新互聯(lián)建站已為成百上千家的企業(yè)提供了網(wǎng)站建設(shè)、域名、虛擬空間、網(wǎng)站托管維護(hù)、企業(yè)網(wǎng)站設(shè)計(jì)、豐林網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長(zhǎng),共同發(fā)展。
primary,也是一個(gè) I/O 域。此外,控制域還用作服務(wù)域,為來(lái)賓域提供虛擬設(shè)備服務(wù)(虛擬磁盤和虛擬網(wǎng)絡(luò))。
作為服務(wù)域,控制域提供以下虛擬設(shè)備服務(wù):
一個(gè)虛擬磁盤服務(wù) (primary-vds0),將物理磁盤作為虛擬磁盤導(dǎo)出到來(lái)賓域。
一個(gè)虛擬控制臺(tái)集中器服務(wù) (primary-vcc0),提供對(duì)來(lái)賓域虛擬控制臺(tái)的訪問(wèn)。此服務(wù)使用端口范圍 5000–5100
來(lái)訪問(wèn)虛擬控制臺(tái)。
一個(gè)虛擬交換機(jī)服務(wù) (primary-vsw0),與主網(wǎng)絡(luò)接口 (nxge0)
關(guān)聯(lián)。
軟件安裝和配置
按照以下步驟配置您的環(huán)境以便進(jìn)行實(shí)時(shí)遷移。
安裝 Oracle Solaris 操作系統(tǒng)
新的 SPARC 服務(wù)器上預(yù)先安裝了 Oracle Solaris。對(duì)于這些系統(tǒng),應(yīng)確保安裝了相應(yīng)的 Oracle Solaris
版本,并驗(yàn)證打了所需的補(bǔ)丁。
要在 SPARC 系統(tǒng)上重新安裝 Oracle
Solaris,請(qǐng)參見(jiàn) Oracle
Solaris 10 文檔或 Oracle
Solaris 11 文檔。在本文的示例中,操作系統(tǒng)安裝在服務(wù)器的第一個(gè)內(nèi)部磁盤上。
安裝 Oracle Solaris 之后,可以配置并啟用系統(tǒng)以使用 Oracle VM Server for SPARC 2.1 軟件。
安裝 Oracle VM
Server for SPARC 軟件
新的 SPARC 服務(wù)器上也預(yù)先安裝了 Oracle VM Server for SPARC 軟件。對(duì)于這些系統(tǒng),應(yīng)確保安裝了相應(yīng)的 Oracle VM
Server for SPARC 版本,并驗(yàn)證打了所有需要的補(bǔ)丁。
如果在服務(wù)器上重新安裝了 Oracle
Solaris,您可能必須重新安裝 Oracle VM Server for SPARC 軟件。參見(jiàn) Oracle
VM 下載頁(yè)面。
以下示例顯示了在每臺(tái)物理服務(wù)器上執(zhí)行的操作。每臺(tái)服務(wù)器已經(jīng)安裝了 Oracle Solaris 和所需的補(bǔ)丁。
應(yīng)確保系統(tǒng)固件與您計(jì)劃安裝的 Oracle VM
Server for SPARC 版本匹配。參見(jiàn)文檔的 Oracle VM
Server for SPARC 2.1 版本說(shuō)明 中的“所需軟件和補(bǔ)丁”以及 Oracle VM Server for SPARC 2.1
管理指南 中的“升級(jí)系統(tǒng)固件”。
從 Oracle
VM 下載頁(yè)面下載 Oracle VM Server for SPARC 2.1 軟件。
解壓縮存檔文件。
安裝 SUNWldm.v
程序包。參見(jiàn) Oracle VM Server for SPARC 2.1 管理指南 中的“在新系統(tǒng)上安裝 Oracle VM Server
for SPARC 軟件”。
primary# pkgadd -d OVM_Server_SPARC-2_1/Product SUNWldm.v
配置存儲(chǔ)陣列
Sun Storage 2540-M2 存儲(chǔ)陣列連接到控制域,控制域?qū)蓚€(gè) LUN(LUN 0 和 LUN 1)作為虛擬磁盤導(dǎo)出到來(lái)賓域。
來(lái)賓域使用第一個(gè) LUN (LUN 0) 作為操作系統(tǒng)的系統(tǒng)磁盤,使用第二個(gè) LUN (LUN 1) 作為存儲(chǔ) Oracle 數(shù)據(jù)庫(kù)數(shù)據(jù)文件的磁盤。
配置控制域
安裝 Oracle VM Server for SPARC 軟件之后,重新配置當(dāng)前系統(tǒng)使其成為控制域。在每臺(tái)物理服務(wù)器上執(zhí)行以下操作:
創(chuàng)建一個(gè)虛擬控制臺(tái)集中器 (vcc)
服務(wù)以供虛擬網(wǎng)絡(luò)終端服務(wù)器后臺(tái)程序 (vntsd) 使用,并作為所有邏輯域控制臺(tái)的集中器。
primary# ldm add-vcc port-range=5000-5100 primary-vcc0 primary
創(chuàng)建虛擬磁盤服務(wù)器
(vds)。
primary# ldm add-vds primary-vds0 primary
創(chuàng)建一個(gè)虛擬交換機(jī)服務(wù) (vsw)
以便在邏輯域中的虛擬網(wǎng)絡(luò) (vnet) 設(shè)備之間實(shí)現(xiàn)聯(lián)網(wǎng)。
primary# ldm add-vsw net-dev=igb0 primary-vsw0 primary
使用 ldm
list-services 命令驗(yàn)證已經(jīng)創(chuàng)建了這些服務(wù),如清單 1 所示。
清單 1. 驗(yàn)證服務(wù)
primary# ldm list-services primary
VDS
NAME VOLUME OPTIONS DEVICE
primary-vds0
VCC
NAME PORT-RANGE
primary-vcc0 5000-5100
VSW
NAME MAC NET-DEV DEVICE MODE
primary-vsw0 02:04:4f:fb:9f:0d nxge0 switch@0 prog,promisc
VCC
NAME LDOM PORT-RANGE
primary-vcc0 primary 5000-5100
VSW
NAME LDOM MAC NET-DEV ID DEVICE LINKPROP DEFAULT-VLAN-ID PVID VID ...
primary-vsw0 primary 00:14:4f:f8:28:c2 igb0 0 switch@0 1 1 1500 on
VDS
NAME LDOM VOLUME OPTIONS MPGROUP DEVICE
primary-vds0 primary
Oracle VM Server for SPARC 使用 SSL
對(duì)遷移流量進(jìn)行加密,以保護(hù)敏感數(shù)據(jù)免受利用,并消除了對(duì)額外硬件和專用網(wǎng)絡(luò)的需求;
當(dāng)源計(jì)算機(jī)和目標(biāo)計(jì)算機(jī)上的主域具有分配的加密單元時(shí),遷移操作的速度會(huì)增加。速度增加的原因在于可以將 SSL 操作分流到加密單元。
注:SPARC T4 CPU
具有內(nèi)置的加密指令,因此您不需要為 CPU 分配這些指令。
確定控制域中是否有加密設(shè)備。
primary# ldm list -o crypto primary
為控制域分配加密資源。
primary# ldm set-crypto 1 primary
為控制域分配 CPU 和內(nèi)存。
您可以通過(guò)向源計(jì)算機(jī)上的主域中添加更多 CPU 來(lái)減少整體遷移時(shí)間。最好為每個(gè)主域至少分配 8 個(gè) CPU。例如,以下命令為控制域分配 8 個(gè) CPU 和
4 GB 內(nèi)存。
primary# ldm start-reconf primary
primary# ldm set-vcpu 8 primary
primary# ldm set-memory 4G primary
重新啟動(dòng)系統(tǒng)。
primary# init 6
重新啟動(dòng)系統(tǒng)之后,啟用 Oracle VM Server for SPARC 并為系統(tǒng)配置一個(gè)域:控制域
primary。在控制域中,您可以創(chuàng)建和配置其他域。
確保啟用 Logical Domains Manager
(ldmd) 和虛擬網(wǎng)絡(luò)終端服務(wù)器 (vntsd) 服務(wù)。
primary# svcadm enable ldmd
primary# svcadm enable vntsd
向服務(wù)處理器 (SP)
添加邏輯域計(jì)算機(jī)配置。例如,以下命令添加名為 initial 的配置。
primary# ldm add-config initial
驗(yàn)證該配置可以使用。
primary# ldm list-config
factory-default
initial [current]
配置來(lái)賓域
配置控制域之后,創(chuàng)建來(lái)賓域以用作 Oracle 數(shù)據(jù)庫(kù)節(jié)點(diǎn)。在作為源計(jì)算機(jī)的物理服務(wù)器上,僅創(chuàng)建一個(gè)來(lái)賓域。另一臺(tái)物理服務(wù)器最終將成為目標(biāo)計(jì)算機(jī)。
最初使用以下資源創(chuàng)建來(lái)賓域 ldg1:
8 GB 內(nèi)存。
24 個(gè) CPU。
一個(gè)虛擬網(wǎng)絡(luò)接口 (vnet0),它連接到虛擬交換機(jī) primary-vsw0。
一個(gè)虛擬磁盤,它在來(lái)賓域中顯示為 c0d0 并且是存儲(chǔ)陣列中的一個(gè) LUN。域 ldg1
使用存儲(chǔ)陣列的 LUN 0 (c2t6d0)。
另一個(gè)虛擬磁盤,它在來(lái)賓域中顯示為 c0d1 并且是存儲(chǔ)陣列中的一個(gè) LUN。域 ldg1
使用存儲(chǔ)陣列的 LUN 1 (c2t6d1)。此虛擬磁盤用于存儲(chǔ) Oracle 數(shù)據(jù)庫(kù)文件。
執(zhí)行以下步驟創(chuàng)建每個(gè)來(lái)賓域:
在源計(jì)算機(jī)上,從控制域創(chuàng)建
ldg1 來(lái)賓域。
注:如果您的服務(wù)器不是基于
SPARC T4 的系統(tǒng),則僅執(zhí)行 ldm set-crypto 命令。
primary# ldm create ldg1
primary# ldm set-vcpu 24 ldg1
primary# ldm set-memory 8G ldg1
primary# ldm set-crypto 3 ldg1
primary# ldm add-vnet vnet0 primary-vsw0 ldg1
primary# ldm add-vdsdev /dev/dsk/c2t6d0s2 vol1@primary-vds0
primary# ldm add-vdisk vol1 vol1@primary-vds0 ldg1
primary# ldm add-vdsdev /dev/dsk/c2t6d1s2 oradata@primary-vds0
primary# ldm add-vdisk oradata oradata@primary-vds0 ldg1
創(chuàng)建域之后,在源計(jì)算機(jī)上使用以下命令從控制域綁定并啟動(dòng)來(lái)賓域。
primary# ldm bind ldg1
primary# ldm start ldg1
確定域的控制臺(tái)端口。
primary# ldm ls ldg1
NAME STATE FLAGS CONS VCPU MEMORY UTIL UPTIME
ldg1 active -n---- 5000 24 8G 0.0% 1h 1m
使用 telnet 命令訪問(wèn)
ldg1 域的控制臺(tái)。
primary# telnet localhost 5000
啟動(dòng)來(lái)賓域之后,確保在來(lái)賓域中安裝了相應(yīng)的 Oracle Solaris 操作系統(tǒng)和補(bǔ)丁。您可以通過(guò)網(wǎng)絡(luò)、從 DVD 或使用 DVD ISO
映像來(lái)執(zhí)行安裝。參見(jiàn) Oracle VM Server for SPARC 2.1 管理指南。
注:LUN
通常在不同服務(wù)器上以不同名稱顯示??刂朴蛑械?LUN 名稱不需要相同。但是,兩個(gè)系統(tǒng)上的控制域必須使用相同的卷名(vol1 和
oradata)對(duì)相同的 LUN(LUN 0 和 LUN 1)進(jìn)行虛擬化。
清單 2 的示例顯示了如何為名為 ldg1 的域配置 8 個(gè) CPU、24 GB 內(nèi)存以及 Sun Storage
2540-M2 存儲(chǔ)陣列中的兩個(gè) LUN。
清單 2. 域配置示例 primary# ldm ls -l ldg1
NAME STATE FLAGS CONS VCPU MEMORY UTIL UPTIME
ldg1 active -n---- 5000 24 8G 0.0% 1h 1m
SOFTSTATE
Solaris running
MAC
00:14:4f:fb:96:89
HOSTID
0x84fb9689
CONTROL
failure-policy=ignore
DEPENDENCY
master=
VCPU
VID PID UTIL STRAND
0 16 0.2% 100%
1 17 0.0% 100%
2 18 0.5% 100%
3 19 0.0% 100%
4 20 0.0% 100%
5 21 0.0% 100%
6 22 0.1% 100%
7 23 0.0% 100%
8 24 0.1% 100%
9 25 0.0% 100%
10 26 0.0% 100%
11 27 0.0% 100%
12 28 0.0% 100%
13 29 0.0% 100%
14 30 0.0% 100%
15 31 0.0% 100%
16 32 0.0% 100%
17 33 0.0% 100%
18 34 0.0% 100%
19 35 0.0% 100%
20 36 0.0% 100%
21 37 0.0% 100%
22 38 0.0% 100%
23 39 0.1% 100%
MEMORY
RA PA SIZE
0x8000000 0x408000000 8G
VARIABLES
boot-device=vdisk1
keyboard-layout=US-English
NETWORK
NAME SERVICE ID DEVICE MAC MODE PVID VID MTU LINKPROP
vnet1 primary-vsw0@primary 0 network@0 00:14:4f:f9:c0:62 1 1500
DISK
NAME VOLUME TOUT ID DEVICE SERVER MPGROUP
vdisk1 vol1@primary-vds0 0 disk@0 primary
oradata oradata@primary-vds0 1 disk@1 primary
VCONS
NAME SERVICE PORT
ldg1 primary-vcc0@primary 5000
清單 3 的示例顯示了控制域的配置。使用 ldm list-services
命令驗(yàn)證已經(jīng)創(chuàng)建了這些服務(wù)。
清單 3. 控制域配置示例 primary# ldm ls-services primary
VCC
NAME LDOM PORT-RANGE
primary-vcc0 primary 5000-5100
VSW
NAME LDOM MAC NET-DEV ID DEVICE LINKPROP DEFAULT-VLAN-ID ...
primary-vsw0 primary 00:14:4f:f9:32:b0 nxgeg0 0 switch@0 1 1 ...
VDS
NAME LDOM VOLUME OPTIONS MPGROUP DEVICE
primary-vds0 primary vol1 /dev/dsk/c2t6d0s2
oradata /dev/dsk/c2t6d1s2
在來(lái)賓域中安裝 Oracle Solaris
確保在來(lái)賓域中安裝了相應(yīng)的 Oracle Solaris 版本,并驗(yàn)證打了所需的補(bǔ)丁。
在來(lái)賓域中安裝 Oracle Solaris 之后,可以配置并啟用系統(tǒng)使其使用 Oracle 數(shù)據(jù)庫(kù)。
安裝 Oracle Database
Oracle Database 軟件的安裝類似于標(biāo)準(zhǔn) Oracle Database 安裝。首先安裝 Oracle
Database,然后應(yīng)用最新補(bǔ)丁集。使用第二個(gè) LUN 創(chuàng)建 UFS 或 ZFS 文件系統(tǒng)用于存儲(chǔ) Oracle 數(shù)據(jù)庫(kù)數(shù)據(jù)文件。
有關(guān)針對(duì) Oracle 數(shù)據(jù)庫(kù)使用 ZFS
的更多信息,請(qǐng)參見(jiàn)針對(duì)
Oracle 數(shù)據(jù)庫(kù)配置 Oracle Solaris ZFS。
準(zhǔn)備目標(biāo)服務(wù)器
按如下方式準(zhǔn)備目標(biāo)服務(wù)器。
執(zhí)行以下各節(jié)中所述的步驟來(lái)準(zhǔn)備目標(biāo)計(jì)算機(jī):
安裝 Oracle VM
Server for SPARC 軟件
配置控制域
確保在目標(biāo)服務(wù)器上提供了供待遷移域使用的所有虛擬 I/O 服務(wù)。
確保目標(biāo)服務(wù)器有權(quán)訪問(wèn)同一存儲(chǔ)中的 LUN 0 和 LUN
1。
要將第一個(gè) LUN (LUN 0) 和第二個(gè) LUN (LUN 1) 添加到目標(biāo)計(jì)算機(jī),從目標(biāo)服務(wù)器的控制域執(zhí)行以下命令:
# ldm add-vdsdev /dev/dsk/c2t6d0s2 vol1@primary-vds0
# ldm add-vdsdev /dev/dsk/c2t6d1s2 oradata@primary-vds0
注:LUN
通常在不同服務(wù)器上以不同名稱顯示??刂朴蛑械?LUN 名稱不需要相同。但是,兩個(gè)系統(tǒng)上的控制域必須使用相同的卷名(vol1 和
oradata)對(duì)相同的 LUN(LUN 0 和 LUN 1)進(jìn)行虛擬化。
確保待遷移域中的每個(gè)虛擬網(wǎng)絡(luò)設(shè)備在目標(biāo)計(jì)算機(jī)上都有一個(gè)對(duì)應(yīng)的虛擬網(wǎng)絡(luò)交換機(jī):
# ldm add-vsw net-dev=nxge0 primary-vsw0 primary
遷移的話,直接導(dǎo)出一個(gè)庫(kù)的dmp文件,之后導(dǎo)入到另外一個(gè)庫(kù)里面就可以了(導(dǎo)出和導(dǎo)入數(shù)據(jù)庫(kù)版本必須一直,否則導(dǎo)入可能會(huì)報(bào)錯(cuò))。
遷移數(shù)據(jù)導(dǎo)出:
1 將數(shù)據(jù)庫(kù)TEST完全導(dǎo)出,用戶名system 密碼manager 導(dǎo)出到D:\daochu.dmp中
exp system/manager@TEST file=d:\daochu.dmp full=y
2 將數(shù)據(jù)庫(kù)中system用戶與sys用戶的表導(dǎo)出
exp system/manager@TEST file=d:\daochu.dmp owner=(system,sys)
3 將數(shù)據(jù)庫(kù)中的表table1 、table2導(dǎo)出
exp system/manager@TEST file=d:\daochu.dmp tables=(table1,table2)
4 將數(shù)據(jù)庫(kù)中的表table1中的字段filed1以"00"打頭的數(shù)據(jù)導(dǎo)出
簡(jiǎn)單的說(shuō)一下過(guò)程:
首先要?jiǎng)?chuàng)建遷移的用戶和表空間;
備份要遷移的數(shù)據(jù);
將要遷移的數(shù)據(jù)表空間remove到新建的表空間中即可;
如果你只需要用戶訪問(wèn)數(shù)據(jù),直接授權(quán)就行;(?)
如果要遷移表空間,還有很多事項(xiàng)要注意,網(wǎng)絡(luò)上有很多資料;
最后刪除之前的表空間和不要的用戶。
簡(jiǎn)單步驟:
1、正常關(guān)閉數(shù)據(jù)庫(kù);
2、遷移所有數(shù)據(jù)文件到新的盤;
3、啟動(dòng)實(shí)例到mount階段,修改數(shù)據(jù)文件的路徑;
4、啟動(dòng)實(shí)例到open階段,正常使用數(shù)據(jù)庫(kù)。
5、另外,如果想要遷移日志文件,比較好辦,在新盤新目錄下創(chuàng)建新的redo,刪除原來(lái)盤上的redo。
6、如果想要遷移控制文件,那么:
6.1、正常關(guān)閉數(shù)據(jù)庫(kù);
6.2、遷移控制文件到新盤新目錄;
6.3、啟動(dòng)實(shí)例到nomount階段;
6.4、修改實(shí)例參數(shù)control_files指向新的目錄;
6.4、alter database mount;
6.5、alter databse open;
如果要遷移數(shù)據(jù)庫(kù)軟件,那就另說(shuō)了,可以先安裝一套DB軟件到新盤新目錄,然后修改環(huán)境變量指向新的環(huán)境,重要的變量包括ORACLE_BASE、ORACLE_HOME、PATH等。
前陣做了下數(shù)據(jù)庫(kù)遷移,從Sql Server2005遷移到Oracle
10g,這里說(shuō)一下遷移的方法。
Sql
Server和Oracle區(qū)別比較大,包括語(yǔ)法,字段類型,數(shù)據(jù)庫(kù)機(jī)制,配置管理方法等等,區(qū)別是全方位的,做遷移需要注意很多問(wèn)題,在遷移過(guò)程中也會(huì)遇到問(wèn)題,需要細(xì)細(xì)處理之。這里說(shuō)一下數(shù)據(jù)庫(kù)結(jié)構(gòu)的遷移,和遷移過(guò)程中注意的一些問(wèn)題。(當(dāng)然具體的數(shù)據(jù)庫(kù)遷移過(guò)程中可能問(wèn)題是不一樣的,具體問(wèn)題具體分析了)
遷移的方法是從Sql Server已有數(shù)據(jù)庫(kù)中生成出Oracle的建庫(kù)腳本,然后在Oracle數(shù)據(jù)庫(kù)上執(zhí)行。用到的生成工具是Power
Designer。
1、打開PD(Power
Designer簡(jiǎn)稱,以下均使用PD),新建一個(gè)PDM(物理數(shù)據(jù)模型),DBMS選擇Microsoft SQL
Server2005,Model name起名叫做mssdb。
2、通過(guò)逆向工程將現(xiàn)有Sql
Server數(shù)據(jù)庫(kù)生成PDM
(1)選擇Database-Reverse
Engineer Database,配置數(shù)據(jù)源,選擇要遷移的數(shù)據(jù)庫(kù),輸入用戶名、密碼。
(2)選擇數(shù)據(jù)庫(kù),選擇用戶dbo下的所有表、視圖、存儲(chǔ)過(guò)程、方法、觸發(fā)器、序列等(由于Sql Server與oracle,數(shù)據(jù)庫(kù)概念上的區(qū)別,這里不需選擇用戶、角色)。
點(diǎn)擊OK,生成PDM。已經(jīng)建立過(guò)PDM的情況,這一步可以省略。
3、生成Oracle物理數(shù)據(jù)模型
選擇Tools-Generate Physical Data Model
(1)DBMS選擇Oracle
10g,輸入名稱:oradb。
(2)在Configure Model
Options配置中, Model Settings的TableView界面中,勾選Ignore
identifying owner。Oracle中用戶的概念與Sql Server不同,這里忽略owner。
(3)Selection標(biāo)簽,選擇需要生成的所有表、視圖、外鍵、存儲(chǔ)過(guò)程、方法、觸發(fā)器、序列等。
點(diǎn)擊確定,即生成了oracle 的PDM。
注意,在生成PDM的過(guò)程中可能不會(huì)一帆風(fēng)順,有可能會(huì)報(bào)錯(cuò)(比如提示對(duì)象長(zhǎng)度超限),這會(huì)導(dǎo)致生成失敗。這時(shí)需要根據(jù)具體錯(cuò)誤提示做相應(yīng)修改(可能需要多次調(diào)整,沒(méi)有辦法,誰(shuí)讓兩者差別這么大的呢)。
4、生成Oracle腳本
與Sql
Server不同的是,在Oracle里表名、字段名全部為大寫,若要單獨(dú)處理為小寫,需加上雙引號(hào)。而PD生成的腳本默認(rèn)是有雙引號(hào)的,這里需要修改默認(rèn)配置,去掉雙引號(hào)。
然后選擇oradb,然后選擇Database-Generate
Database,進(jìn)入數(shù)據(jù)庫(kù)生成界面
在Format標(biāo)簽下,去掉勾選Owner prefix,它將省掉建表語(yǔ)句前“dbo.”所帶來(lái)的麻煩;
在Selection標(biāo)簽下,選擇要生成腳本的各對(duì)象;
在Preview標(biāo)簽下,可以預(yù)覽預(yù)生成的腳本(表較多時(shí),切換會(huì)比較慢)。
點(diǎn)擊確定,即得到生成的腳本。
5、檢查與調(diào)整
腳本是PD自動(dòng)生成的,因?yàn)楸肀容^多,在oracle上直接去執(zhí)行難免會(huì)有錯(cuò)誤。所以在執(zhí)行之前需要檢查下腳本的正確性。這里提幾點(diǎn)需要注意的地方。
(1)Oracle要求表名、字段名等長(zhǎng)度最多是30位,而Sql Server沒(méi)有這個(gè)限制,所以可能會(huì)有在Sql
Server創(chuàng)建正常的表而在Oracle下會(huì)創(chuàng)建失敗。
(2)檢查一下主鍵、外鍵的名稱,它們有可能是隨機(jī)生成的名稱??筛鶕?jù)相應(yīng)規(guī)范進(jìn)行修改。
(3)檢查字段名是否用到了Oracle的關(guān)鍵字。比如Sql
Server命名“備注”字段可能會(huì)用“comment”、標(biāo)題用“title”,但comment、title在Oracle中是關(guān)鍵字,不可以做為字段名稱。
(4)存儲(chǔ)過(guò)程、方法是否符合Oracle語(yǔ)法。
(5)Sql
Server有自增字段,而Oracle沒(méi)有。要實(shí)現(xiàn)此功能,需要相應(yīng)創(chuàng)建序列、觸發(fā)器。
(6)Sql
Server中字段類型為text的情況,如果是存二進(jìn)制數(shù)據(jù)需要在Oracle中選用Blob字段類型。
(7)Sql
Server有外鍵的情況,主表記錄刪除,從表記錄也會(huì)跟著刪除;而Oracle默認(rèn)情況是當(dāng)從表有記錄時(shí),所對(duì)應(yīng)的主表記錄不允許刪除。所以這種情況下外鍵需要添加外鍵級(jí)聯(lián)刪除。
(8)生成的表、視圖等個(gè)數(shù)是否正確,缺失的情況可單獨(dú)生成腳本。
系統(tǒng)不一樣,出現(xiàn)問(wèn)題的點(diǎn)可能也不一樣,具體問(wèn)題具體分析。
6、建庫(kù)
在Oracle數(shù)據(jù)庫(kù)服務(wù)(當(dāng)然要先安裝好Oracle服務(wù)端、并建立數(shù)據(jù)庫(kù))orcl實(shí)例下,使用用戶sys登陸并創(chuàng)建用戶orauser,并將resource、connect角色賦給orauser(這里,orauser使用默認(rèn)表空間、默認(rèn)臨時(shí)表空間)。
用剛創(chuàng)建的用戶orauser登陸orcl數(shù)據(jù)庫(kù)服務(wù),執(zhí)行前面已經(jīng)生成的腳本,若干分鐘后腳本執(zhí)行完畢,觀察一下執(zhí)行過(guò)程中有無(wú)錯(cuò)誤產(chǎn)生,也可以記錄執(zhí)行的日志以便日后查看;檢查看表、視圖等個(gè)數(shù)與Sql
Server數(shù)據(jù)庫(kù)中是否一致。如果都正確,那么,數(shù)據(jù)庫(kù)結(jié)構(gòu)從Sql
Server到Oracle的遷移到此結(jié)束。當(dāng)然,遷移的是否正確還需要在之后的使用中檢查,發(fā)現(xiàn)錯(cuò)誤及時(shí)修改即可。
分享名稱:oracle如何遷移對(duì)象 Oracle遷移
分享地址:http://aaarwkj.com/article34/dooocpe.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供Google、App開發(fā)、手機(jī)網(wǎng)站建設(shè)、小程序開發(fā)、網(wǎng)站內(nèi)鏈、網(wǎng)站設(shè)計(jì)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)