常見的資料庫同步,主要有下面幾種方法來實現。
1。對於少量的數據,採用SQL
Server
自帶的<<導入導出>>工具即可。
2。採用SQLServer自帶的資料庫同步功能,叫做《訂閱/分發》,可以實現一個資料庫,或者多個資料庫的同步。
3。如果對資料庫這塊不熟悉,也可以採用專業的資料庫同步工具,如
SyncNavigator
.
它可以實現較為復雜的資料庫同步。
你自己寫觸發器或者程序來實現基本上是不現實的。比如網路中斷的異常處理,等等,都需要考慮的非常詳細,沒有個一年半載是寫不出來的。
Ⅱ sql如何將兩個表裡的數據同步
可以通過sql觸發器來實現。
例下列觸發器代碼 :
createtriggertri_kszb_insert
onygpx_kszb--操作的表名
forinsert--給表插入一條數據的時候觸發
as
declare@kssjdatetime
declare@sqbhchar(40)
select@kssj=kssj,@sqbh=sqbhfrominserted--把插入的數據的保存到變數
insertintoygpx_kszb2values(@kssj,@sqbh)--同步插入到另一表
以上觸發器可以實現,在表ygpx_kszb中插入數據,同步插入到表ygpx_kszb2 。
觸發器還可以針對表的insert,delete, update 操作時安裝要求執行數據同步的操作,即可實現兩個表裡的數據同步。
Ⅲ SQL資料庫同步如何實現
oracle和mysql的同步可以用軟體來同步:ora2mysql
至於別的資料庫同步,應該可以找到類似的軟體
還可以自己寫個程序來同步的
Ⅳ SQL資料庫自帶的(發布,訂閱)數據同步問題
回答1:再次同步只會同步變化的數據。因此不必擔心數據量大的問題
回答2:可以測試一次發布/訂閱所需要的總體時間,建議同步時間比這個總時間略大
回答3:發布訂閱無法做到實時同步。如需實時同步,可嘗試做日誌傳送、鏡像,這兩種可以達到用戶感官上的實時同步
Ⅳ 如何實現兩個SQL資料庫的同步操作
sql同步使用dblink同步數據。
具體參考實例:
1、在win下創建linux的DBLINK
a.查看linux下的tnsnames.ora文件
[oracle@myrac1 admin]$ cat tnsnames.ora
# tnsnames.ora Network Configuration File: /s01/app/oracle/proct/11.2.0/dbhome_1/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.
HJJ =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = myrac1.oracle.com)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = hjj)
)
)
b.創建dblink
SQL> create database link win_lin_link connect to hjj identified by xxxx
2 using '(DESCRIPTION =
3 (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.171)(PORT = 1521))
4 (CONNECT_DATA =
5 (SERVER = DEDICATED)
6 (SERVICE_NAME = hjj)
7 )
8 )'
9 /
Database link created.
2.在win下創建trigger
SQL> create or replace trigger trig_win_emp
2 after insert on emp
3 for each row
4 begin
5 insert into emp@win_lin_link values(:new.empno,:new.empname,:new.empsalary);
6 end;
7 /
Trigger created.
3.測試
4.結果
win下插入數據
SQL> insert into emp values('E001','LYN',2300);
1 row created.
SQL>COMMIT;
Commit complete.
SQL> select *from emp;
EMPNO EMPNAME EMPSALARY
---------------------------------------- ---------------------------------------- ----------
E001 LYN 2300
SQL> select * from emp@win_lin_link;
EMPNO EMPNAME EMPSALARY
---------------------------------------- ---------------------------------------- ----------
E001 LYN 2300
linux下查看數據
SQL> select * from emp;
EMPNO EMPNAME EMPSALARY
-------------------- -------------------- ----------
E001 LYN 2300
Ⅵ 如何同步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中。
Ⅶ SQL SERVER跨資料庫數據同步
A、B兩個資料庫在同一個伺服器上?
可以用觸發器實現,如果A、B資料庫的數據都會變化的話,
那麼兩邊都要建立觸發器,
比如A庫a表上建立觸發器(增刪改都需要,只舉插入觸發器的例子)
select @欄位1=欄位1,@欄位2=欄位2,@主鍵=主鍵...
from inserted
if exists(select * from B.dbo.a where 主鍵=@主鍵)
begin
--如果有重復的數據怎麼處理?是報錯,還是不做任何處理直接return,在這里寫語句
end
insert into B.dbo.a(欄位1,欄位2....)
values(@欄位1,@欄位2....)
如果不在同一台伺服器上,用觸發器就不太保險,因為如果其中一台伺服器出了故障,對表的增刪改操作都會出問題,除非你能保證兩台伺服器都能運行正常,或者可以在很短的時間內排除故障。
Ⅷ sql如何將兩個表裡的數據同步
使用 merge into。
Ⅸ Sql資料庫同步怎麼做
哪個資料庫?Mysql還是Mssql? MSSQL數據同步利用資料庫復制技術實現數據同步更新(來自網路,也是非常完美的教程) 復制的概念 復制是將一組數據從一個數據源拷貝到多個數據源的技術,是將一份數據發布到多個存儲站點上的有效方式。使用復制技術,用戶可以將一份數據發布到多台伺服器上,從而使不同的伺服器用戶都可以在許可權的許可的范圍內共享這份數據。復制技術可以確保分布在不同地點的數據自動同步更新,從而保證數據的一致性。 SQL復制的基本元素包括 出版伺服器、訂閱伺服器、分發伺服器、出版物、文章 SQL復制的工作原理 SQLSERVER主要採用出版物、訂閱的方式來處理復制。源數據所在的伺服器是出版伺服器,負責發表數據。出版伺服器把要發表的數據的所有改變情況的拷貝復制到分發伺服器,分發伺服器包含有一個分發資料庫,可接收數據的所有改變,並保存這些改變,再把這些改變分發給訂閱伺服器 SQLSERVER復制技術類型 SQLSERVER提供了三種復制技術,分別是: 1、快照復制(呆會我們就使用這個) 2、事務復制 3、合並復制 只要把上面這些概念弄清楚了那麼對復制也就有了一定的理解。接下來我們就一步一步來實現復制的步驟。 第一先來配置出版伺服器 (1)選中指定[伺服器]節點 (2)從[工具]下拉菜單的[復制]子菜單中選擇[發布、訂閱伺服器和分發]命令 (3)系統彈出一個對話框點[下一步]然後看著提示一直操作到完成。 (4)當完成了出版伺服器的設置以後系統會為該伺服器的樹形結構中添加一個復制監視器。同時也生成一個分發資料庫(distribution) 第二創建出版物 (1)選中指定的伺服器 (2)從[工具]菜單的[復制]子菜單中選擇[創建和管理發布]命令。此時系統會彈出一個對話框 (3)選擇要創建出版物的資料庫,然後單擊[創建發布] (4)在[創建發布向導]的提示對話框中單擊[下一步]系統就會彈出一個對話框。對話框上的內容是復制的三個類型。我們現在選第一個也就是默認的快照發布(其他兩個大家可以去看看幫助) (5)單擊[下一步]系統要求指定可以訂閱該發布的資料庫伺服器類型,SQLSERVER允許在不同的資料庫如ORACLE或ACCESS之間進行數據復制。但是在這里我們選擇運行"SQLSERVER2000"的資料庫伺服器 (6)單擊[下一步]系統就彈出一個定義文章的對話框也就是選擇要出版的表 (7)然後[下一步]直到操作完成。當完成出版物的創建後創建出版物的資料庫也就變成了一個共享資料庫。 第三設計訂閱 (1)選中指定的訂閱伺服器 (2)從[工具]下拉菜單中選擇[復制]子菜單的[請求訂閱] (3)按照單擊[下一步]操作直到系統會提示檢查SQLSERVER代理服務的運行狀態,執行復制操作的前提條件是SQLSERVER代理服務必須已經啟動。 (4)單擊[完成]。完成訂閱操作。 完成上面的步驟其實復制也就是成功了。但是如何來知道復制是否成功了呢?這里可以通過這種方法來快速看是否成功。展開出版伺服器下面的復制——發布內容——右鍵發布內容——屬性——擊活——狀態然後點立即運行代理程序接著點代理程序屬性擊活調度把調度設置為每一天發生,每一分鍾,在0:00:00和23:59:59之間。接下來就是判斷復制是否成功了打開
採納哦
Ⅹ 如何實現SQL資料庫自動同步到U盤
可以實現的,最簡單的方式是使用批處理程序,藉助優盤的自動運行功能,即可實現,但是這樣缺乏靈活性,你可以寫個程序,監視系統的U盤是否插入,然後進行相關操作