⑴ sql怎麼自動與ORACLE數據的更新數據同步
SQL怎麼自動與ORACLE數據的更新數據同步
在源庫創建到目標庫的dblink
create database link branch --輸入所要創建dblink的名稱,自定義
connect to dbuser identified by 「password」 --設置連接遠程資料庫的用戶名和密碼
using '192.168.196.76/branch'; --指定目標資料庫的連接方式,可用tns名稱
在創建dblink時,要注意,有時候可能會報用戶名和密碼錯誤,但實際上我們所輸入的賬戶信息是正確的,此時就注意將密碼的大小寫按伺服器上所設置的輸入,並在賬號密碼前號加上雙引號(伺服器版本不同造成的)。
⑵ 如何將sql中的數據定時導入oracle中
如果oracle能在客戶伺服器上訪問,由oracle方提供介面給客戶伺服器實現,返回給客戶伺服器所需同步數據,並由客戶伺服器操作數據存儲到sqlserver2005中,介面代碼描述:
遠程建立jdbc連接oracle(臨時帳戶),查詢oracle方提供的視圖,並訪問客戶所需數據集,打成jar包,由客戶方調用介面實現方法獲得數據。
⑶ 如何實現sqlserver中的部分表的數據定時同步到oracle
可以寫個客戶端同時連接2個db定時同步,這是最簡單的直觀的
因為數據量不多,所以不必考慮性能問題。
1
在sqlserver中建立linkedserver,
以便可以從sqlserver中直接訪問oracle。
2
在sqlserver中建立dts/ssis數據傳輸任務,並進行定數調度。
⑷ Oracle中如何定時執行一條SQL語句
通過網上查詢,找到一種方案,就是先在oracle裡面對要定時的sql寫成存儲過程,再用DBMS_scheler對存儲過程進行定時執行。
在資料庫中新建了一個表MY_JOB_TEST
在資料庫中新建了一個表MY_JOB_TEST
在資料庫中新建了一個表MY_JOB_TEST
在PLSQL中,執行下面語句模擬存儲過程的調用,執行後要點提交才有反應
[sql] view plain
BEGIN
INSERTINTOMY_JOB_TEST(NUM)VALUES(1);
END;
GrantCreateJobTo指定用戶名
SQL>CREATEORREPLACEPROCEDURE
JOB_TEST
BEGIN
INSERTINTOMY_JOB_TEST(NUM)VALUES(1);
END;
- (此處要執行存儲過程不能用exec JB_TEST,這種執行方式只能在命令行中使用)
SQL>BEGIN
DBMS_SCHEDULER.CREATE_JOB(
job_name=>'SCHEDULER_TEST',
job_type=>'STORED_PROCEDURE',
job_action=>'JOB_TEST',
start_date=>sysdate,
repeat_interval=>'FREQ=MINUTELY;INTERVAL=1');
END;
- 但是這樣子定時任務並不會執行。
SQL>SELECT*FROMUSER_SCHEDULER_JOBS;
- 此時我們可以看到enable的狀態是false的,因此我們需要去啟動定時任務
SQL>BEGIN
DBMS_SCHEDULER.ENABLE('SCHEDULER_TEST');
然後下面建立一個存儲過程JOB_TEST
(注意,這里用戶需要CREATE JOB許可權,可以用超級管理員用戶執行下面語句給指定用戶賦予該許可權)
[sql] view plain
[sql] view plain
使用DBMS_SCHEDULER進行定時,這里為每分鍾執行一次
[sql] view plain
我們可以用下面的命令查看一下scheler的狀態
[plain] view plain
[plain] view plain
dbms_scheler.enable('j_test'); --啟用jobs
dbms_scheler.disable('j_test'); --禁用jobs
dbms_scheler.run_job('j_test'); --執行jobs
dbms_scheler.stop_job('j_test'); --停止jobs
dbms_scheler.drop_job('j_test'); --刪除jobs
然後再查詢job的enable裝態,發現為true了。
然後查看MY_JOB_TEST表,發現每分鍾會往裡面添加記錄。
當需要修改定時任務或者調度的其他屬性時,可以用下面的
dbms_scheler.set_attribute('調度名','調度屬性','調度值');
至此,定時任務完成。
⑸ oracle跨實例定時同步表數據(物化視圖還是表同步)實現
既然有dblink了你可以直接查詢遠程了。
還要同步到本地做什麼。
select * from table@dblink;
⑹ 兩個一樣的oracle 資料庫怎麼實現數據定期同步
兩個一樣的oracle ,定期同步,說白了就是主備用資料庫數據同步的問題;
如果資料庫A和資料庫B是建立在兩台獨立的資料庫伺服器上,那麼採用dblink方式是一種可行的方式,
第一種方式:前提是資料庫A和資料庫B本地網是24小時互通的同時對數據同步實時性有比較高的要求,那麼可以建立DBLINK,在兩個庫都建觸發器,不管當前在哪個庫發生數據更新的時候實時同步數據到目標資料庫;
第二種方式:如果數據同步的實時性要求不高,則可以通過定製存儲過程的方式(給兩個庫的數據表加時間戳或者更新標志,)定時同步數據;
第三種方式:通過給兩個資料庫的數據表加更新標志欄位,以第一種方式為主以滿足實時性的要求,以第二種方式為輔彌補可能存在的觸發器執行更新未成功的情況。
以上的方案都是從數據層面所做的處理,對於數據實時同步還是會存在一定的風險,那麼雙機熱備應該說是最好的選擇了。
⑺ Oracle與SQL Server如何實現表數據同步
有時由於項目開發的需要,必須將SQLServer2005中的某些表同步到Oracle資料庫中,由其他其他系統來讀取這些數據。不同資料庫類型之間的數據同步我們可以使用鏈接伺服器和SQLAgent來實現。假設我們這邊(SQLServer2005)有一個合同管理系統,其中有表contract 和contract_project是需要同步到一個MIS系統中的(Oracle9i)那麼,我們可以按照以下幾步實現資料庫的同步。
1.在Oracle中建立對應的contract 和 contract_project表,需要同步哪些欄位我們就建那些欄位到Oracle表中。
這里需要注意的是Oracle的數據類型和SQLServer的數據類型是不一樣的,那麼他們之間是什麼樣的關系拉?我們可以在SQLServer下運行:
SELECT *
FROM msdb.dbo.MSdatatype_mappings
SELECT *
FROM msdb.dbo.sysdatatypemappings
來查看SQLServer和其他資料庫系統的數據類型對應關系。第一個SQL語句是看SQL轉Oracle的類型對應,而第二個表則更詳細得顯示了各個資料庫系統的類型對應。根據第一個表和我們的SQLServer中的欄位類型我們就可以建立好Oracle表了。
SQLServer和Oracle的對應
2.建立鏈接伺服器。我們將Oracle系統作為SQLServer的鏈接伺服器加入到SQLServer中。
具體做法參見我以前的文章http://www.cnblogs.com/studyzy/archive/2006/12/08/690307.html
3.使用SQL語句通過鏈接伺服器將SQLServer數據寫入Oracle中。
比如我們建立了鏈接伺服器MIS,而Oracle中在MIS用戶下面建立了表contract_project,那麼我們的SQL語句就是:
DELETE FROM MIS..MIS.CONTRACT_PROJECT
--清空Oracle表中的數據
INSERT into MIS..MIS.CONTRACT_PROJECT--將SQLServer中的數據寫到Oracle中
SELECT contract_id,project_code,actual_money
FROM contract_project
如果報告成功,那麼我們的數據就已經寫入到Oracle中了。用
SELECT *
FROM MIS..MIS.CONTRACT_PROJECT
查看Oracle資料庫中是否已經有數據了。
4.建立SQLAgent,將以上同步SQL語句作為執行語句,每天定時同步兩次。
這樣我們的同步就完成了。
這里需要注意的是MIS..MIS.CONTRACT_PROJECT 這里必須要大寫,如果是小寫的話會造成同步失敗。
⑻ Oracle 和 SQL 兩個資料庫,實時同步數據,可以怎麼做
用ESB工具吧,金蝶中間件、IBM都有這種,可以進行數據同步的操作。
當然,他們是收費的。金蝶中間件的便宜點,IBM的貴點,同樣,性能上有些區別,不過區別不是很大。
不想花錢,就修改你的應用系統唄。
⑼ 如何把sql server一張表的數據實時同步到Oracle資料庫
如何把sql
server一張表的數據實時同步到oracle資料庫
1.
sqlserver伺服器上面安裝oracle客戶端,配置服務命名(假設為
test)
2.
在sqlserver伺服器上面建立鏈接伺服器,腳本如下
sql
code?
sql
code--
adding
linked
server:
exec
sp_addlinkedserver
@server
=
'test'
,
@srvproct
=
'oracle',
@provider
=
'msra',
@datasrc
=
'test'