通過dblink,資料泵expdp遠端跨版本導庫
通過dblink,資料泵expdp遠端跨版本導庫
背景環境
希望匯出伺服器上的庫到本地,並繞過兩個資料量很大的表,所以考慮使用資料泵的exclude引數。
遠端伺服器:
Oracle服務端版本12c:12.1.0.1
本地:
Oracle服務11g:11.2.0.1
Oracle客戶端版本11g:11.2.0.1
連線伺服器(使用dblink)
這裡我本地有一個服務端,所以我是通過plsql連線本地庫之後,使用dblink連線遠端庫再的,與直接連遠端庫類似:
- 授權並建立dblink;
檢視是否有許可權:select * from user_sys_privs where privilege like upper('%DATABASE LINK%') AND USERNAME='使用者名稱';
授予許可權:grant create public database link to 使用者名稱;
,記得使用上句檢視。
建立dblink:create public database link 連線名 connect to 遠端服務的使用者名稱 identified by 密碼(數字要雙引號) USING '遠端TNS連線';
例如:
create public database link TESTLINK connect to USERNAME identified by PASSWORD USING '(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.102)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
))';
- 使用低版本連線高版本客戶端出錯:ORA-28040、ORA-01017
針對ORA-28040:
在資料庫伺服器上的$ORACLE_HOME/network/admin/sqlnet.ora檔案中
增加兩行(支援低版本客戶端的連線認證方式),不需要重啟監聽:
SQLNET.ALLOWED_LOGON_VERSION_SERVER=8
SQLNET.ALLOWED_LOGON_VERSION_CLIENT=8
針對ORA-01017:
支援低版本認證後需要重置密碼,使用如下命令在sql中刷一下密碼即可,不需要修改密碼
alert user xxx identified by xxxxxx;
至此,使用低版本客戶端連線高版本伺服器已經成功,我使用的dblink,也沒用問題。
查詢時,需要在表名後跟上dblink名
SELECT * FROM v$version@TESTLINK;
資料泵expdp匯出
在系統中建立資料夾,並在本地客戶端執行以下語句,確保該地址真實存在;
create directory expdp_dir as ‘f:\data’;
select * from dba_directory;
cmd命令列中執行:
expdp 本地使用者名稱/密碼@本地庫 schemas=需匯出使用者1 dumpfile=匯出的檔名.dmp directory=expdp_dir exclude=table:\"in('除了表1','除了表2')\" logfile=匯出記錄日誌檔名.log version=即將impdp匯入的資料庫版本號 network_link=testlink(dblink名)
expdp遭遇ORA-39006、ORA-39065、ORA-01422、ORA-39097錯誤
根據網上經驗,在遠端伺服器上執行,可解決(我實驗沒用效果,暫時沒時間琢磨了,還是使用exp/imp來做了,後面有空再研究把):
sqlplus / as sysdba
SQL>@$ORACLE_HOME/rdbms/admin/catmeta.sql
SQL>@$ORACLE_HOME/rdbms/admin/catmet2.sql
SQL>@$ORACLE_HOME/rdbms/admin/utlrp.sql
附上我查的資料中覺得有所幫助的幾篇,供大家參考
客戶端登入Oracle 12.2伺服器報ORA-01017的解惑
ORACLE 12C連線時報ORA28040和ORA01017的錯誤
ORA-28040 資料庫相容性解決方案 沒有匹配的驗證協議
ORACLE dblink的簡單使用
使用expdp(非本地)遠端匯出資料
expdp遭遇ORA-39006、ORA-39065、ORA-01403、ORA-39097錯誤
[Oracle] expdp ORA-39006, ORA-39065 的解決辦法
致謝
- 感謝各位前輩不吝賜教,寫下博文分享;
- 感謝大家耐心閱讀。
相關文章
- Oracle expdp資料泵遠端匯出Oracle
- 通過EXPDP/IMPDP匯出匯入遠端資料倒本地
- 通過dblink獲取遠端DDL語句
- 資料泵的跨版本問題
- expdp遠端匯出資料
- 資料泵在本地匯出資料到遠端資料庫中資料庫
- 使用資料泵(expdp、impdp)遷移資料庫流程資料庫
- 資料泵(expdp,impdp)高版本匯入低版本操作例項
- 資料庫泵(expdp/impdp)匯入匯出流程資料庫
- 【DBLINK】不可使用 DBLINK在遠端資料庫上執行DDL類SQL資料庫SQL
- 通過SQL*Plus遠端啟動Oracle資料庫例項SQLOracle資料庫
- 資料泵基礎(impdp/expdp)
- EXPDP資料泵使用方法
- Oracle資料庫的邏輯備份工具-expdp資料泵Oracle資料庫
- ORACLE expdp匯出遠端庫指定使用者資料到本地資料庫Oracle資料庫
- oracle資料泵備份(Expdp命令)Oracle
- expdp/impdp 使用version引數跨版本資料遷移
- 使用資料泵工具expdp工具匯出資料
- 跨版本資料庫恢復資料庫
- expdp impdp Data Pump(資料泵)使用解析
- EXPDP 和 IMPDP 資料泵的使用_1
- EXPDP 和 IMPDP 資料泵的使用_2
- 資料泵 EXPDP 匯出工具的使用
- SQL Server通過dblink訪問Oracle資料SQLServerOracle
- java通過url呼叫遠端介面返回json資料JavaJSON
- Oracle資料泵匯出匯入(expdp/impdp)Oracle
- 按計劃瞭解資料泵expdp/impdp
- 使用impdp,expdp資料泵進入海量資料遷移
- expdp透過db_link遠端匯出
- 遠端資料庫恢復資料庫
- Git遠端庫版本回滾Git
- Oracle使用資料泵 (expdp/impdp)實施遷移Oracle
- 10g 資料泵(Data Dump) -- EXPDP & IMPDP [zt]
- DB2訪問遠端資料庫通訊錯誤DB2資料庫
- Oracle DBLink跨資料庫訪問SQL server資料同步 踩坑實錄Oracle資料庫SQLServer
- 遠端連線mysql資料庫MySql資料庫
- DUPLICATE遠端複製資料庫資料庫
- IMPDP匯入遠端資料庫資料庫