1. 程式人生 > >oracle使用之--dblink+定時job實現資料遷移更新

oracle使用之--dblink+定時job實現資料遷移更新

提供如下解決方案,實現不同網段資料庫之間資料的同步更新:

1.在目的資料庫上,建立dblink

create public database link link名字 connect to 源資料庫使用者名稱 identified by "密碼"
   using '(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = ip)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME =服務名)
)
)';
如果建立dblink不成功:
檢視該使用者是否具有許可權?
若無許可權則使用管理員賬戶賦權:
 grant create public database link to 當前使用者;

2.檢視dblink

select owner,object_name from dba_objects where object_type='DATABASE LINK';(上述語句執行需具有管理員使用者許可權)
select * from test;
select * from [email protected];
刪除dblink:

drop public database link dblinkname;

3.建立儲存過程

CREATE OR REPLACE
PROCEDURE test_name AS
BEGIN
  delete from test;
  insert into test
  select * from 
[email protected]
; commit; EXCEPTION WHEN OTHERS THEN DBMS_OUTPUT.PUT_LINE ('Exception happened,data was rollback'); ROLLBACK; END;
刪除儲存過程:
如果該儲存過程存在則刪除
drop procedure if exists test_name;
檢視儲存過程(名字都變為大寫):
SELECT text
    FROM user_source
   WHERE NAME = 'TEST_NAME'

ORDER BY line;

5.建立定時任務

declare      
  job_id number;
begin
  dbms_job.submit( 
      job_id, 
      'test;',  --儲存過程名字
      sysdate,  --下次執行時間
      'TRUNC(sysdate) + 1 +2 / (24)'  --執行頻率
    );  
  dbms_output.put_line(job_id); 
end;
job的執行頻率設定
1.例如:每天的凌晨2點執行 
Interval => TRUNC(sysdate) + 1 +2 / (24) 
刪除定時任務操作:
begin  
dbms_job.remove(21);  --job id

end; 

6.檢視定時任務
SELECT * FROM USER_JOBS;

7.開啟定時任務

BEGIN    
    DBMS_JOB.RUN(38); --job id
END;
若定時任務自動執行失敗:
sql命令列輸入:show parameter job_queue_processes
檢視 value 是否為0?
若為0 執行:
alter system set job_queue_processes=10 scope=both;

至此,遷移流程結束,當然資料同步的實現方案很多,以實際情況採取最優,有問題也可一起討論解決

相關推薦

oracle使用--dblink+定時job實現資料遷移更新

提供如下解決方案,實現不同網段資料庫之間資料的同步更新:1.在目的資料庫上,建立dblinkcreate public database link link名字 connect to 源資料庫使用者名稱 identified by "密碼"    using '(DESCRI

ORACLE】RMAN實現資料遷移

******************************************************** ** 部落格出自blog.csdn.net/clark_xu 徐長亮專欄 ******

看得見的資料結構Android版表的陣列實現(資料結構篇)

零、前言: 一講到裝東西的容器,你可能習慣於使用ArrayList和陣列,你有想過ArrayList和陣列的區別嗎? Java的類起名字都不是隨便亂起的,一般前面是輔助,後面是實質:ArrayList = Array + List Array就是陣列,List便是表結構,ArrayList即陣列實現的

資料分析用Power Query實現資料轉換和清洗(功能操作篇)

一個案例快速瞭解Power Query 憑藉 Power Query,可以搜尋資料來源,建立連線,然後按照可滿足你需求的方式調整資料(例如刪除列、更改資料型別或合併表格)以建立報表。 例:將門店一&門店二兩個工作簿的資料整合到一張工作表,並統計出各銷售代表每個月的業

輕鬆上雲系列二:其他雲資料遷移至阿里雲

本文件圍繞如何將您其他雲廠商上的資料遷移到阿里雲,提供了多個場景的實踐方案。 文件合集 AWS 資料遷移至阿里雲 Amazon S3資料遷移到OSS 從AWS RDS遷移MySQL到阿里雲RDS AWS S3遷移到OSS(線上遷移服務) Azure資料遷移至阿里

Vuev-model指令實現資料雙向繫結

v-bind指令只能實現資料的單向繫結,從M繫結到V,無法實現雙向繫結。 使用v-model指令,可以實現表單元素和Model中資料的雙向繫結,並且v-model指令只能運用在表單元素中。 <

Oracle 11g使用Pivot函式實現資料聚合行轉列

經常使用資料庫,我們有很大的精力應付在處理各種各樣的資料型別,處理各種型別的報表。需要對資料進行行列轉換,Oracle 11G 提供了pivot函式,方便我們對資料進行行列轉換。 表設計如下: create table tongji( id number primary

Oracle不同表空間之間的資料遷移

--將資料庫為testdb,使用者名稱為testuser中預設(users)表空間裡的資料遷移至表空間(newtablespace) --1.用system使用者登陸testdb資料庫,建立directory(testdir)並將讀、寫許可權授予testuser使用者

Oracledblink 跨庫導資料

轉自:http://www.iteye.com/topic/1112985 一般都會用imp exp 備份和匯入資料庫  但是有些時候 需要比較靈活的從兩個資料庫之間取資料 我這裡用到的是oralc的dblink方式。 首先監聽器tnsnames.ora這個檔案能連線

利用資料庫複製技術 實現資料同步更新[摘]

相關連結: 複製的概念 Microsoft? SQL Server? 2000 的複製是在資料庫之間對資料和資料庫物件進行復制和分發並進行同步以確保其一致性的一組技術。 使用複製可以將資料分發到不同位置,通過區域網、使用撥號連線、通過 Internet 分發給遠端或移動使用

利用資料庫複製技術 實現資料同步更新(轉)

複製的概念複製是將一組資料從一個數據源拷貝到多個數據源的技術,是將一份資料釋出到多個儲存站點上的有效方式。使用複製技術,使用者可以將一份資料釋出到多臺伺服器上,從而使不同的伺服器使用者都可以在許可權的許可的範圍內共享這份資料。複製技術可以確保分佈在不同地點的資料自動同步更新,

利用SQL2005資料庫複製技術 實現資料同步更新

一個手工同步的方案 --定時同步伺服器上的資料 --例子: --測試環境,SQL Server2000,遠端伺服器名:xz,使用者名稱為:sa,無密碼,測試資料庫:test --伺服器上的表(查詢分析器連線到伺服器上建立) create table [user](id int primary key,numb

ECharts3 實現資料動態更新3+時間座標,資料累積

程式碼修改自ECharts3文件非同步資料載入和更新中的資料的動態更新部分,原示例固定顯示若干資料,簡單進行了修改,資料累積加上時間座標。 是否累積資料的關鍵在於shift(),去掉shift()之後即累積資料。 其實ECharts3之後更新資料挺簡單的,越

Oracle_2:oracle 資料 查詢,遷移dblink的建立

一、測試條件、環境 1、測試條件: 1號伺服器(目標資料庫) SID:orcl 1 使用者名稱:user1 密碼:pwd1 IP地址:192.168.4.1 3號伺服器(源資料庫) SID:orcl3

Oraclejob 常用定時時間

sunday months class ast 星期 sysdate int 執行 UNC 1 每天午夜12點 ‘‘TRUNC(SYSDATE + 1)‘‘ 2 每天早上8點30分 ‘‘TRUNC(SYSDATE +

Elastic-Job原始碼解析(二)定時核心實現quartz

Elastic-Job是一個分散式定時任務框架,其內部的定時主要是利用quartz來實現,而Elastic-Job核心是對quartz進行了封裝,並提供了分散式任務的功能。具體是怎麼實現呢? 怎麼實現分散式呢? 主要是通過Zookeeper通訊,獲取任務伺服器ip地址,並通

oracleoracle使用utl_file和sqlloard實現A表資料遷移至B表資料(欄位數和順序不一樣)

oracle使用utl_file和sqlloard實現A表資料遷移至B表資料(欄位數和順序不一樣) 資料庫版本:11.2.0.4;系統版本:CentOS Linux 6.8 使用utl_file方式從A表匯出部分欄位至文字,再使用sqlload方式載入進B表; 表test欄位: 

使用sqluldr2和ETL Server實現Oracle到Greenplum的資料遷移

目錄 1.安裝sqluldr2 1.1 sqluldr2簡介 1.2sqluldr2安裝 2.將Oracle中的表匯出成.CSV檔案 2.1編寫匯出的執行語句 2.2執行上述的語句 3.在Greenplum中建立上述表,並將.CSV檔案匯入 3.1建立CUSTOMER

Oracle實現US7ASCII到ZHS16GBK資料遷移正常顯示中文

一、需求如下: 資料庫A:US7ASCII字符集 資料庫B:ZHS16GBK字符集 實現資料庫A中資料遷移到資料庫B中 二、解決方案如下: 1、在資料庫A中建立試圖: -- 只列出兩個欄位作為測試,其中nsrmc為中文,需要進行處理。 create or r

轉載優化編輯_navicat實現資料庫遷移oracle到mysql

簡介: Navicat Premium 非常強大,可以連線大部分主流關係型資料庫,如oracle、mysql、sqlserver、sqlite等,操作方便、介面簡潔。但它還有一個更強大的功能,可以跨庫批量遷移資料表,有這種需求的朋友可以通過這個工具輕鬆實現。 我目前通過n