導航:首頁 > 編程大全 > sql2005資料庫同步

sql2005資料庫同步

發布時間:2025-05-30 07:42:48

㈠ sql資料庫的數據能不能實時同步

實現兩個Mysql資料庫之間同步同步原理:
MySQL 為了實現replication 必須打開bin-log 項,也是打開二進制的MySQL 日誌記錄選項。MySQL 的bin log 二
進制日誌,可以記錄所有影響到資料庫表中存儲記錄內容的sql 操作,如insert / update / delete 操作,而不記錄
select 這樣的操作。因此,我們可以通過二進制日誌把某一時間段內丟失的數據可以恢復到資料庫中(如果二進制日
志中記錄的日誌項,包涵資料庫表中所有數據,那麼, 就可以恢復本地資料庫的全部數據了)。 而這個二進制日誌,
如果用作遠程資料庫恢復,那就是replication 了。這就是使用replication 而不用sync 的原因。這也是為什麼要設
置bin-log = 這個選項的原因。
在同步過程中,最重要的同步參照物,就是同步使用那一個二進制日誌文件,從那一條記錄開始同步。下面就介紹
下怎樣實現兩個Mysql資料庫之間的主從同步。
一、 概述
MySQL從3.23.15版本以後提供資料庫復制(replication)功能,利用該功能可以實現兩個資料庫同步、主從模式、
互相備份模式的功能。本文檔主要闡述了如何在linux系統中利用mysql的replication進行雙機熱備的配置。
二、 環境
操作系統:Linux 2.6.23.1-42.fc8 # SMP(不安裝XEN)
Mysql版本:5.0.45-4.fc8
設備環境:PC(或者虛擬機)兩台
三、 配置
資料庫同步復制功能的設置都在MySQL的配置文件中體現,MySQL的配置文件(一般是my.cnf):在本環境下
為/etc/my.cnf。
3.1 設置環境:
IP的設置:
A主機 IP:10.10.0.119
Mask:255.255.0.0
B主機 IP:10.10.8.112
Mask:255.255.0.0
在IP設置完成以後,需要確定兩主機的防火牆確實已經關閉。可以使用命令service iptables status查看防火牆狀態
。如果防火牆狀態為仍在運行。使用service iptables stop來停用防火牆。如果想啟動關閉防火牆,可以使用setup命
令來禁用或定製。
最終以兩台主機可以相互ping通為佳。
3.2 配置A主(master) B從(slave)模式
3.2.1 配置A 為master
1、增加一個用戶同步使用的帳號:
GRANT FILE ON *.* TO 『backup』@'10.10.8.112' IDENTIFIED BY 『1234』;
GRANTREPLICATION SLAVE ON *.* TO 『backup』@'10.10.8.112' IDENTIFIED BY 『1234』;
賦予10.10.8.112也就是Slave機器有File許可權,只賦予Slave機器有File許可權還不行,還要給它REPLICATION SLAVE的權
限才可以。
2、增加一個資料庫作為同步資料庫:
create databbse test;
3、創建一個表結構:
create table mytest (username varchar(20),password varchar(20));
4、修改配置文件:
修改A的/etc/my.cnf文件,在my.cnf配置項中加入下面配置:
server-id = 1 #Server標識
log-bin
binlog-do-db=test #指定需要日誌的資料庫

5、重起資料庫服務:
service mysqld restart
查看server-id:
show variable like 『server_id』;
實例:
mysql> show variables like 'server_id';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| server_id | 1 |
+---------------+-------+
1 row in set (0.00 sec)

6、用show master status/G命令看日誌情況。
正常為:
mysql> show master status/G
*************************** 1. row ***************************
File: mysqld-bin.000002
positiion: 198
Binlog_Do_DB: test,test
Binlog_Ignore_DB:
1 row in set (0.08 sec)
3.2.2 配置B 為slave
1、增加一個資料庫作為同步資料庫:
create databbse test;
2、創建一個表結構:
create table mytest (username varchar(20),password varchar(20));
3、修改配置文件:
修改B的/etc/my.cnf文件,在my.cnf配置項中加入下面配置:
server-id=2
master-host=10.10. 0.119
master-user=backup #同步用戶帳號
master-password=1234
master-port=3306
master-connect-retry=60 #預設重試間隔60秒
replicate-do-db=test #告訴slave只做backup資料庫的更新

5、重起資料庫服務:
service mysqld restart
查看server-id:
show variables like 『server_id』;
實例:
mysql> show variables like 'server_id';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| server_id | 2 |
+---------------+-------+
1 row in set (0.00 sec)

6、用show slave status/G命令看日誌情況。
正常為:
mysql> show slave status/G
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 10.10.0.119
Master_User: backup
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysqld-bin.000001
Read_Master_Log_Pos: 98
Relay_Log_File: mysqld-relay-bin.000003
Relay_Log_Pos: 236
Relay_Master_Log_File: mysqld-bin.000001
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB: test,test
Replicate_Ignore_DB:
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno: 0
Last_Error:
Skip_Counter: 0
Exec_Master_Log_Pos: 98
Relay_Log_Space: 236
Until_Condition: None
Until_Log_File:
Until_Log_Pos: 0
Master_SSL_Allowed: No
Master_SSL_CA_File:
Master_SSL_CA_Path:
Master_SSL_Cert:
Master_SSL_Cipher:
Master_SSL_Key:
Seconds_Behind_Master: 0
1 row in set (0.01 sec)
3.2.3 驗證配置
分別使用insert, delete , update在A主機進行增刪改查資料庫;查看B主機的資料庫是否與A主機一致;若一致,則配
置成功。
3.3雙機互備模式
如果在A主機加入slave設置,在B主機加入master設置,則可以做B->A的同步。
1、在A主機的配置文件中 mysqld配置項加入以下設置:
master-host=10.10.8.112
master-user=backup
master-password=1234
replicate-do-db=test
master-connect-retry=10

2、在B的配置文件中 mysqld配置項加入以下設置:
log-bin
binlog-do-db=test

注意:當有錯誤產生時,*.err日誌文件同步的線程退出,當糾正錯誤後,要讓同步機制進行工作,運行slave
start。

重起A、B機器,則可以實現雙向的熱備份。
總之,成功完成以上配置後,在主伺服器A的test庫里添加數據或刪除數據,在從伺服器B的test庫里馬上也能
看到相應的變更。兩台伺服器的同步操作可以說是瞬間完成的。

㈡ SQL資料庫自帶的(發布,訂閱)數據同步問題

回答1:再次同步只會同步變化的數據。因此不必擔心數據量大的問題

回答2:可以測試一次發布/訂閱所需要的總體時間,建議同步時間比這個總時間略大

回答3:發布訂閱無法做到實時同步。如需實時同步,可嘗試做日誌傳送、鏡像,這兩種可以達到用戶感官上的實時同步

㈢ 如何定時同步oracle表到sql server

1、兩台不同伺服器;
2、從oracle10g定時同步(每天凌晨2:00)到sqlserver2005;
3、處於安全性考慮,客服方不提供sqlserver2005的賬戶密碼,只需我們提供數據集;
4、雙方程序語言都為java
在這些前提下我提出了幾套方案,僅供參考:
a:如果oracle能在客戶伺服器上訪問,由oracle方提供介面給客戶伺服器實現,返回給客戶伺服器所需同步數據,並由客戶伺服器操作數據存儲到sqlserver2005中,介面代碼描述:遠程建立jdbc連接oracle(臨時帳戶),查詢oracle方提供的視圖,並訪問客戶所需數據集,打成jar包,由客戶方調用介面實現方法獲得數據。
b:如果oracle方不能被客戶伺服器訪問,則將需同步數據置入xml中,並由客服伺服器方訪問其xml(http or socket),並有oracle方提供解析機制,返回數據集。
c:通過開源資料庫同步軟體實現不同(google結果:symmetricds、opendbdiff(針對sqlserver))
前面三種方案均可實現從oracle同步到sqlserver2005,不過如果數據量較大時可能導致中途數據丟失或者同步速度較慢等情況,於是制定如下方案:
建立同步表,將客戶方所需數據表中欄位放入到同步表中,如:
用戶表:wid,userid,password
用戶同步表:wid,userid,password,no,operationtype,operationdate
可以看到同步表中多了三個欄位:no,operationtype,operationdate
no為序號,由oracle序列生成,operationtype為操作類型,0為新增,1為修改,2為刪除,operationdate為操作日期,取當前完整時間(年月日分秒)
建立用戶表觸發器,如果用戶表有操作則將客戶方所需用戶表欄位放入同步表中,如果新增將operationtype的值插入0,以此類推
在客服伺服器方,oracle方提供介面查詢同步表得到結果集,並和客服商議如何操作這些數據
這樣就可以實現哪些數據修改過就同步哪些數據,減免了雙方伺服器的壓力

㈣ sql server2005l資料庫中用存儲過程如何做到表與表之間欄位的同步更新

我在一樓的基礎上做點補充,思路屬於一樓。
CREATE
TRIGGER
A_Update
ON
A
FOR
UPDATE
AS
IF
UPDATE(E)
BEGIN
UPDATE
B
SET
F=I.E
FROM
B,Deleted
D,Inserted
I
WHERE
B.E=D.E
END

㈤ 如何設置多台電腦共享同一個資料庫。

SQL2005本來就是網路資料庫,允許多用戶訪問,只需要知道資料庫伺服器ip地址、資料庫名稱、回用戶名、答用戶密碼即可訪問這個資料庫了;
另外如果資料庫伺服器埠號不是默認的1433,則必須先注冊下訪問埠號,用odbc連接SQL2005伺服器,並填寫相應的埠號即會注冊,一般是通過用vb修改注冊表來完成的,因為普通用戶並不會設置odbc連接SQL2005。

閱讀全文

與sql2005資料庫同步相關的資料

熱點內容
servlet資料庫連接 瀏覽:795
重慶java培訓機構排名 瀏覽:515
刪除uc文件中的視頻文件 瀏覽:858
美圖軟體文件夾分組名稱 瀏覽:766
在手機上如何把文件裡面的移出來 瀏覽:884
如何用電腦編程看vip電視劇 瀏覽:646
win7漫遊配置文件 瀏覽:340
如何取消xp共享密碼 瀏覽:844
sms網格如何保存為dat文件 瀏覽:406
arcgisjs圖層順序 瀏覽:587
怎麼查找電腦里的視頻文件在哪裡設置 瀏覽:343
word文檔表格字體下沉 瀏覽:92
wn10如何查看陰藏文件 瀏覽:891
男性護理app 瀏覽:612
編程掉頭發嚴重怎麼辦 瀏覽:903
蘋果下載必須輕點繼續 瀏覽:473
word2007關閉郵件 瀏覽:320
看以前的港劇哪個app好用 瀏覽:947
能看見共享的文件夾但不能訪問 瀏覽:60
建文件下什麼軟體 瀏覽:781

友情鏈接