通過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)遷移資料庫流程資料庫
- Oracle資料庫的邏輯備份工具-expdp資料泵Oracle資料庫
- Oracle資料泵匯出匯入(expdp/impdp)Oracle
- 使用impdp,expdp資料泵進入海量資料遷移
- java通過url呼叫遠端介面返回json資料JavaJSON
- 【資料泵】EXPDP匯出表結構(真實案例)
- Oracle DBLink跨資料庫訪問SQL server資料同步 踩坑實錄Oracle資料庫SQLServer
- Oracle使用資料泵expdp,impdp進行資料匯出匯入Oracle
- 資料泵datapump(expdp/impdp)的parfile用法,避免跳脫字元字元
- 【Datapump】Oracle資料泵遷移資料命令參考(expdp/impdp說明)Oracle
- 資料遷移(1)——通過資料泵表結構批量遷移
- Java程式呼叫expdp資料泵實現自動邏輯備份Oracle資料庫的方案設計JavaOracle資料庫
- 資料庫升級之-資料泵資料庫
- oracle資料庫的impdp,expdpOracle資料庫
- 遠端連線mysql資料庫MySql資料庫
- SQL Server資料庫遠端更新目標表資料的儲存過程SQLServer資料庫儲存過程
- 配置達夢資料庫同構DBLINK資料庫
- 資料庫遠端連線失敗資料庫
- ORACLE 配置連線遠端資料庫Oracle資料庫
- oracle dblink用法總結和expdp和impdp利用dblink倒入匯出到本地Oracle
- Oracle資料庫(資料泵)遷移方案(上)Oracle資料庫
- Oracle資料庫(資料泵)遷移方案(下)Oracle資料庫
- 配置ORACLE資料庫到達夢資料庫的異構DBLINKOracle資料庫
- Linux下執行資料泵expdp和impdp命令,字元轉義案例兩則Linux字元
- 2.3 通過DBCA建立資料庫資料庫
- 通過duplicat恢復資料庫資料庫
- 如何通過DBLINK取remote DB的DDLREM
- 如何通過CRM進行遠端支援?
- 【DB筆試面試164】在Oracle中,如何徹底停止expdp資料泵程式?筆試面試Oracle
- Mysql資料庫是如何通過索引定位資料MySql資料庫索引
- Intellij IDEA 通過資料庫生成 POJOIntelliJIdea資料庫POJO
- 通過tomcat的ManagerServlet遠端部署專案TomcatServlet
- rtop – 通過SSH監控遠端主機
- 【12c】12c RMAN新特性之通過網路遠端恢復資料庫(RESTORE/Recover from Service)資料庫REST
- 用SQLyog或Navicat遠端連線資料庫SQL資料庫
- PHP 遠端使用 PDO 連線 access 資料庫PHP資料庫
- PL/SQL Developer連線遠端Oracle資料庫SQLDeveloperOracle資料庫