EXP_IMP與dblink資料遷移案例比照
========================================================================================================
Exp/Imp資料遷移試驗
========================================================================================================
Exp/Imp資料遷移試驗
(1)試驗目的:將linux系統oracle伺服器上schema(moon)下面張兩表moon.demo01,moon.dem02透過Exp匯出到windows本地oracle伺服器,並能正常查詢到相關資料.介於時間關係,只限於資料物件表進行,不涉及index、trigger、procedure、package等.
(2)試驗流程:
---->>linux系統oracle伺服器上建立使用者moon(預設放在users表空間下),並在其下建立 兩張表moon.demo01,moon.demo02
---->>windows本地用Exp做匯出;
---->>windows本地用Exp做匯入(匯入到sun使用者下,其預設表空間是sun);
---->>驗證wondows本地資料合法性;
(3)試驗過程:
---->>linux系統oracle伺服器上建立使用者moon(預設放在users表空間下),並在其下建立 兩張表moon.demo01,moon.demo02
--建立表空間
CREATE TABLESPACE moon DATAFILE '/u01/app/oracle/oradata/moon.dbf' SIZE 200M
AUTOEXTEND ON NEXT 50M MAXSIZE UNLIMITED NOLOGGING ONLINE PERMANENT BLOCKSIZE 8192 EXTENT MANAGEMENT LOCAL
AUTOALLOCATE SEGMENT SPACE MANAGEMENT AUTO;
--建立使用者並授權
create user moon identified by moon default tablespace moon temporary tablespace temp;
grant connect,resource,dba to moon;
--moon使用者登入並建立測試表
create table demo01(id number);
create table demo02(ename varchar(30));
--批次插入資料
begin
for i in 1 .. 10 loop
insert into demo01 values(i);
end loop;
commit;
end;
/
begin
for i in 1 .. 10 loop
insert into demo02 values('hongli'||i);
end loop;
commit;
end;
/
--查詢驗證資料
select * from demo01;
SQL> select * from demo01;
ID
----------
1
2
3
4
5
6
7
8
9
10
10 rows selected
select * from demo02;
SQL> select * from demo02;
ENAME
------------------------------
hongli1
hongli2
hongli3
hongli4
hongli5
hongli6
hongli7
hongli8
hongli9
hongli10
10 rows selected
---->>windows本地用Exp做匯出;
exp moon/moon@bus tables=(DEMO01,DEMO02) file=E:\moon.dmp log=E:\moon.log;
--->>windows本地用Exp做匯入;
imp sun/sun fromuser=moon touser=sun tables=(DEMO01,DEMO02) file=E:\moon.dmp log=E:\imp.log;
---->>驗證wondows本地資料合法性;
(4)問題說明:
試驗過程遇到因為版本問題導致Exp報錯:EXP-00008: 遇到 ORACLE 錯誤 904
原因是linux系統是的oracle是10.2.0.1,windows本地oracle是:11.1.0.6.0.
-->>
由於Oracle的imp/exp元件的操作原則--向下相容,且有一些規則:
規則1:低版本的exp/imp可以連線到高版本(或同版本)的資料庫伺服器,但高版本的exp/imp不能連線到低版本的資料庫伺服器;
規則2:高版本exp出的dmp檔案,低版本無法imp(無法識別dmp檔案);低版本exp出的dmp檔案,高版本可以imp(向下相容);
規則3:從Oracle 低版本Export的資料可以Import到Oracle高版本中,但限於Oracle的相鄰版本,如從Oracle 10 到 Oracle 11.對於兩個不相鄰版本間進行轉換,如從Oracle 9 到 Oracle 11,則應先將資料輸入到中間版本-Oracle 10,再從中間資料庫轉入更高版本Oracle 11.
--->>綜上,如果用EXP/IMP做資料遷移,最好匯出端和匯入端oracle版本一致或差異不要太大,當然datapump有這種避免版本差異的配製.
========================================================================================================
Dblink資料遷移試驗
========================================================================================================
Dblink資料遷移試驗
(1)試驗目的:將linux系統oracle伺服器上schema(moon)下面張兩表moon.demo01,moon.dem02透過DBLINK匯入到windows本地oracle伺服器,並能正常查詢到相關資料.介於時間關係,只限於資料物件表進行,不涉及index、trigger、procedure、package等.
(2)試驗流程:
---->>linux系統oracle伺服器上建立使用者moon(預設放在users表空間下),並在其下建立 兩張表moon.demo01,moon.demo02
---->>windows本地用dblink匯入資料;
---->>驗證wondows本地資料合法性;
(4)試驗過程:
---->>linux系統oracle伺服器上建立使用者moon(預設放在users表空間下),並在其下建立 兩張表moon.demo01,moon.demo02
--建立表空間
CREATE TABLESPACE moon DATAFILE '/u01/app/oracle/oradata/moon.dbf' SIZE 200M
AUTOEXTEND ON NEXT 50M MAXSIZE UNLIMITED NOLOGGING ONLINE PERMANENT BLOCKSIZE 8192 EXTENT MANAGEMENT LOCAL
AUTOALLOCATE SEGMENT SPACE MANAGEMENT AUTO;
--建立使用者並授權
create user moon identified by moon default tablespace moon temporary tablespace temp;
grant connect,resource,dba to moon;
--moon使用者登入並建立測試表
create table demo01(id number);
create table demo02(ename varchar(30));
--批次插入資料
begin
for i in 1 .. 10 loop
insert into demo01 values(i);
end loop;
commit;
end;
/
begin
for i in 1 .. 10 loop
insert into demo02 values('hongli'||i);
end loop;
commit;
end;
/
--查詢驗證資料
select * from demo01;
SQL> select * from demo01;
ID
----------
1
2
3
4
5
6
7
8
9
10
10 rows selected
select * from demo02;
SQL> select * from demo02;
ENAME
------------------------------
hongli1
hongli2
hongli3
hongli4
hongli5
hongli6
hongli7
hongli8
hongli9
hongli10
10 rows selected
---->>windows本地建立db_link,然後透過dblink運用expdp匯入資料;
--建立dblink
create public database link bus_dblink connect to moon identified by moon using 'bus';
--透過dblink查詢
select * from moon.demo02@bus_dblink;
--透過dblink做資料匯入
impdp sun/sun network_link=bus_dblink tables=demo01,demo02 remap_schema=moon:sun remap_tablespace=moon:sun
---->>驗證wondows本地資料合法性;
(5)說明:datapump一般是資料量較大時的資料遷移,如果是小表或少數量的表資料匯入,可以運用dblink透過如下方式進行處理(提前需要建好表結構):
INSERT INTO demo01 SELECT FROM demo01@bus_dblink;
INSERT INTO demo01 SELECT FROM demo02@bus_dblink;
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29119536/viewspace-1139650/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle資料庫遷移之三:dblink+impdpOracle資料庫
- oracle 資料遷移案例 從 8.1.7.4到9.2.0.8Oracle
- 雲資料庫管理與資料遷移資料庫
- 遷移資料.
- 【遷移】使用rman遷移資料庫資料庫
- 【資料遷移】使用傳輸表空間遷移資料
- 案例分析:700G SQL Server資料庫遷移HGSQLServer資料庫
- 單機遷移資料到RAC完整案例
- Kafka資料遷移Kafka
- 資料庫遷移資料庫
- redis資料遷移Redis
- 轉資料遷移
- ORACLE 資料遷移Oracle
- DXWB 資料遷移
- 資料的遷移
- Harbor資料遷移
- mysql 備份與遷移 資料同步方法MySql
- Jenkins搭建與資料遷移實踐Jenkins
- Cacti資料備份與遷移 (轉載)
- 怎樣快速搞定laravel資料填充與資料遷移Laravel
- 【資料遷移】RMAN遷移資料庫到ASM(三)遷移onlinelog等到ASM資料庫ASM
- 遷移案例一: oracle 8i 檔案遷移Oracle
- 資料遷移(1)——通過資料泵表結構批量遷移
- mongodb資料庫備份與恢復(資料庫資料遷移)MongoDB資料庫
- MySQL資料庫遷移與MySQL資料庫批量恢復MySql資料庫
- 資料庫平滑遷移方案與實踐分享資料庫
- elasticdump資料遷移與內外網安裝AST
- Oracle資料庫資料遷移或匯出匯入(exp/imp,dblink)應該注意的點(總結)Oracle資料庫
- gitlab資料遷移Gitlab
- 資料庫遷移 :理解資料庫
- Mysql資料遷移方法MySql
- Fastdfs資料遷移方案AST
- 【Redis】 redis資料遷移Redis
- 【Hive】hive資料遷移Hive
- laravel資料庫遷移Laravel資料庫
- Odoo遷移資料庫Odoo資料庫
- exp,imp 遷移資料
- NAS資料遷移初探