一、場景 導出遠程數據庫的數據到本地,再將導出文件導入到本地oracle數據庫中sql
二、條件 兩個庫的字符集一致數據庫
三、使用工具或命令 expdp/impdp瀏覽器
步驟 服務器
本地機器數據庫用戶名:admin
遠程機器數據庫用戶名:db1
現將遠程用戶db1下的t,t1表導出到本地目錄D:\dump
步驟:
1.首先找個雞窩,讓母雞能把蛋下進窩裏。
在D盤下建一個文件夾取名爲dump (若是是liux系統 mkdir /home/oracle/dump)
2.其次把雞抓進窩裏,防止母雞把蛋下進公雞窩裏,專業點講就是建數據庫目錄。
C:\Users\admin>sqlplus / as sysdba
SQL*Plus: Release 11.2.0.1.0 Production on 星期二 7月 10 09:10:40 2012
Copyright (c) 1982, 2010, Oracle. All rights reserved.
鏈接到:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL> select * from dba_directories;
OWNER DIRECTORY_NAME DIRECTORY_PATH
------------------------------ ------------------------------ --------------------------------------------------------------------------------
SYS ORACLECLRDIR E:\Oracle11g\app\admin\product\11.2.0\dbhome_1\bin\clr
SYS XMLDIR E:\Oracle11g\app\admin\product\11.2.0\dbhome_1/rdbms/xml
SYS DATA_PUMP_DIR E:\Oracle11g\app\admin\product\11.2.0\dbhome_1/rdbms/log/
SYS ORACLE_OCM_CONFIG_DIR E:\Oracle11g\app\admin\product\11.2.0\dbhome_1/ccr/state
SQL> create directory mydir as 'd:\dump';
目錄已建立。
SQL> grant write,read on directory mydir to admin; ------受權給admin用戶,讓admin用戶在此目錄下有讀寫權限。
受權成功。
SQL> select * from dba_directories;
OWNER DIRECTORY_NAME DIRECTORY_PATH
------------------------------ ------------------------------ --------------------------------------------------------------------------------
SYS MYDIR d:\dump
SYS ORACLECLRDIR E:\Oracle11g\app\admin\product\11.2.0\dbhome_1\bin\clr
SYS XMLDIR E:\Oracle11g\app\admin\product\11.2.0\dbhome_1/rdbms/xml
SYS DATA_PUMP_DIR E:\Oracle11g\app\admin\product\11.2.0\dbhome_1/rdbms/log/
SYS ORACLE_OCM_CONFIG_DIR E:\Oracle11g\app\admin\product\11.2.0\dbhome_1/ccr/state
3.再次讓母雞進化,以便母雞有借腹生蛋的能力。專業點講就是建一個指向遠程數據庫的鏈路。
C:\Users\admin>sqlplus admin/admin -----以admin用戶登陸並建立指向db1的鏈路。
SQL*Plus: Release 11.2.0.1.0 Production on 星期二 7月 10 09:19:12 2012
Copyright (c) 1982, 2010, Oracle. All rights reserved.
鏈接到:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL> create database link admin_to_db1 connect to db1 identified by db1 using 'remote_11g';
數據庫連接已建立。
D
-
X
4.再再次讓母雞順利產崽。
C:\Users\admin>expdp admin/admin network_link=ADMIN_TO_DB1 directory=mydir dumpf
ile=db1.dmp logfile=db1.log include=table:\"in ('T','T1','T2','T3')\"
Export: Release 11.2.0.1.0 - Production on 星期二 7月 10 10:18:56 2012
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
鏈接到: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Produc
tion
With the Partitioning, OLAP, Data Mining and Real Application Testing options
啓動 "ADMIN"."SYS_EXPORT_SCHEMA_10": admin/******** network_link=ADMIN_TO_DB1 d
irectory=mydir dumpfile=db1.dmp logfile=db1.log include=table:"in ('T','T1','T2'
,'T3')"
正在使用 BLOCKS 方法進行估計...
處理對象類型 SCHEMA_EXPORT/TABLE/TABLE_DATA
使用 BLOCKS 方法的總估計: 248.0 MB
處理對象類型 SCHEMA_EXPORT/TABLE/TABLE
. . 導出了 "DB1"."T1" 82.92 KB 10000 行
. . 導出了 "DB1"."T" 10.37 KB 1 行
已成功加載/卸載了主表 "ADMIN"."SYS_EXPORT_SCHEMA_10"
******************************************************************************
ADMIN.SYS_EXPORT_SCHEMA_10 的轉儲文件集爲:
D:\DUMP\DB1.DMP
做業 "ADMIN"."SYS_EXPORT_SCHEMA_10" 已於 10:21:31 成功完成
5.最後檢查雞窩D:\DUMP裏有沒有蛋。
Oracle跨數據庫查詢(database link方式)
在Oracle本地數據庫端執行賦權dbuser賬號oracle
SQL> grant create database link to dbuser;
app
配置本地數據庫服務器的tnsnames.ora文件
$ vi $ORACLE_HOME/network/admin/tnsnames.oraide
增長鬚要遠程鏈接服務器的鏈接配置,如:工具
ORCL_REMOTE =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = oradb )(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)spa
登陸到本地數據庫,建立database link
執行以下查詢語句,其中ORCL_LINK爲database link名(可自定義),ORCL_REMOTE爲先前在tnsnames.ora中定義的鏈接名,
dbuser爲用戶名,password爲密碼xml
create database link ORCL_LINK connect to dbuser identified by password using 'ORCL_REMOTE';
問題 沒法識別的指定連接字符 直接將user_db_links 中的host改成相應的ora文件中的內容便可
查詢建立database link的2中方式:
1)、執行SQL語句。
select * from user_db_links; --用戶 DB Link
select * from dba_db_links; --dba DB Link
select * from v$dblink; --當前DB Link
2)、在PL/SQL中,在左邊瀏覽器中點擊database links就能夠看到數據庫鏈路了。
使用連接的數據庫
查詢、刪除和插入數據和操做本地的數據庫是同樣的,只不過表名須要寫成「表名@database link名」,如
select * from table_name@ORCL_LINK
其它:
刪除database link(本例中是ORCL_LINK)
SQL> Drop database link ORCL_LINK;
導入 過程
首先在導入庫中創建原庫的表空間和用戶,用戶權限和原有用戶保持一致便可
建立存放導出數據文件的路徑 /u01/data/....
建立directory並給用戶讀寫的權限
create or replace directory 名稱 as '路徑';
grant write , read on directory 名稱 to 用戶
將導出的文件放到新建的路徑中
impdp system/pass schemas=user dumpfile=db.dmp logfile=db.log