當前位置:首頁 » 編程語言 » sql怎麼確保同步數據沒有問題
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

sql怎麼確保同步數據沒有問題

發布時間: 2023-01-23 09:59:12

資料庫不同的表同步,如何保證數據不會丟失

在保障Mysql高可用時, 數據零丟失是某些場景比較關心的指標, 一種常用的方案是用半同步插件並將超時時間調整的比較大. 這種用法可以保障一定場景內的數據零丟失, 不過會喪失一定運維性(需要實時監控半同步插件的狀況, 不能簡單地通過`show slave status`獲取), 也會喪失一定的架構健壯性(需要考慮備機故障時將高可用性降級, 維持業務連續性).

除了上面的特性喪失, 還有一個比較稀有的場景需要考慮, 就是網路的健壯性.

❷ SQl 2000資料庫同步問題

數據的同步中主要考慮的三部分,可以理解成三台主機。發布伺服器,分發伺服器和訂閱伺服器;可以從字面的意思理解,要實現的功能實際就是讓訂閱伺服器通過分發伺服器保持數據及時地和發布伺服器上的數據一致。整個執行過程是這樣一來的:
a.訂閱伺服器應該有個初始化,一般來說我們開始做這個同步任務的時候,發布伺服器已經有了相當的數據量了,而我們的訂閱伺服器應該是新建的服務。即使發布中沒有數據,也需要把他的資料庫結構初始化到訂閱伺服器上。
b.我採用的是事物復制,發布伺服器的數據發生變化後,相當於觸發了一個更新操作,而事物復制可以在設定的時間把數據更新的操作更新到訂閱伺服器中去。當然,這個操作需要經過分發伺服器。在我的測試中,我是把發布伺服器和分發伺服器設置為同一台主機,可以順利實現數據在案分鍾內同步。

>>在操作的起始,需要考慮訂閱伺服器是否有和發布伺服器相同結構的資料庫,如果有,需要做的就是使用代理把發布伺服器現有的數據初始化過去;如果沒有對應的相同結構的資料庫,就需要要把發布伺服器當前的資料庫結構和當前的數據都初始化到訂閱伺服器中。當然這里所說的操作都是在下面的實施步驟中實現,不需要單獨處理。
>>如果說對Windows系統有所要求的話,就應該保證這三個伺服器(發布,分發,訂閱)在同個域中,以同一個域管理員帳號身份運行,操作如下:
a.進入相應的伺服器,控制面板->服務->SQLSERVERAGENT,設置登錄,三台伺服器同樣設置。

b.操作前,也不允許這三台伺服器對應的別名使用呢稱,比如"LOCAL",這樣的別名要刪除重建,可以採用主機名,比如:server02.

下面開始執行資料庫同步的操作:
>>配置發布伺服器和分發伺服器:
a.選中對應伺服器的注冊名->工具->復制->配置發布、訂閱和分發,直接按照默認設置向下執行,直到完成。關閉。
b.再一次選中這個伺服器伺服器的注冊名->工具->復制->配置發布、訂閱和分發,可以看到這次界面和步驟a中的界面有所不同,我們只需要配置一下 發布伺服器,發布資料庫,訂閱伺服器。(我的發布資料庫採用的是事物性的)。點「確定」完成操作。<標記P>

>>創建發布,可以選中相應的注冊,用工具->復制->創建和管理發布或者在該注冊下面的 復制->發布內容 選中後,在右邊空白處,右鍵,新建發布,來創建你的發布。我選擇的是事物發布,按照默認設置,選擇你要發布的表或其他對象,其他地方不需要修改,直到完成操作。
>>修改發布屬性:選擇「狀態」->立即運行代理程序;代理程序屬性->設置你的調度,比如一分鍾一次。(調度->編輯->更改;通知->寫入windows應用程序事件日誌),"確定"完成操作。

>>創建訂閱:選擇發布伺服器對應的注冊,復制->發布內容->在這個內容上右鍵,強制新訂閱,->"下一步",選擇訂閱伺服器(在標記P那一步選擇的訂閱伺服器)->「下一步」->選擇你有的資料庫,或者新建一個資料庫
->"下一步"-> 修改你需要的調度->按照默認設置,直到完成。

到這里就可以完成了,修改發布伺服器資料庫中的內容,等一兩分鍾,數據就同步到訂閱伺服器中了。不過由於第一次執行需要快照,如果發布庫中有一定的內容,第一次執行可能需要幾分鍾時間。如果數據不能同步過去,大家是調度設置時間太短(比如1分鍾)使快照不能完成,所以後面的步驟無法執行,遇到這樣的情況的話,
選中你發布的內容,設置屬性,在「狀態」中「立即運行代理程序」,這樣的話,數據會馬上同步過去的。

❸ sqlserver 數據同步問題

可以做成非同步的,比如只做一些表裡的數據,做個鏈接伺服器,作業定時執行insert,update,delete

❹ SQL同步資料庫不成功,作業失敗,如何解決

出現的問題是文件中記錄的信息版本未知,(對於高版本的無法識別過老的2000版本),解決方法很簡單,在有2005或2008資料庫的電腦上,附加一下該2000的資料庫,相當於轉換一下數據格式,然後分離重新附加即可。

首先進入SQL2005,並在左側資料庫上點擊右鍵選擇「附加」→在彈出窗口點擊「添加按鈕」→並在路徑選擇框中,找到要附加的資料庫,點擊確定。

附加完畢之後,文件格式就已經轉換完畢了。這個時候將剛才附加的資料庫分離出來。依舊在2015的資料庫上點擊右鍵→在彈出右鍵菜單中,選擇任務→並再次選擇分離,在彈出窗口中直接點確定即可。

❺ 怎樣實現兩個異地SQL SERVER資料庫的實時同步

1.發布伺服器,訂閱伺服器都創建一個同名的windows用戶,並設置相同的密碼,做為發布快照文件夾的有效訪問用戶
--管理工具
--計算機管理
--用戶和組
--右鍵用戶
--新建用戶
--建立一個隸屬於administrator組的登陸windows的用戶(SynUser)
2.在發布伺服器上,新建一個共享目錄,做為發布的快照文件的存放目錄,操作:
我的電腦--D:\ 新建一個目錄,名為: PUB
--右鍵這個新建的目錄
--屬性--共享
--選擇"共享該文件夾"
--通過"許可權"按紐來設置具體的用戶許可權,保證第一步中創建的用戶(SynUser) 具有對該文件夾的所有許可權
--確定
3.設置SQL代理(SQLSERVERAGENT)服務的啟動用戶(發布/訂閱伺服器均做此設置)
開始--程序--管理工具--服務
--右鍵SQLSERVERAGENT
--屬性--登陸--選擇"此賬戶"
--輸入或者選擇第一步中創建的windows登錄用戶名(SynUser)
--"密碼"中輸入該用戶的密碼
4.設置SQL Server身份驗證模式,解決連接時的許可權問題(發布/訂閱伺服器均做此設置)
企業管理器
--右鍵SQL實例--屬性
--安全性--身份驗證
--選擇"SQL Server 和 Windows"
--確定
5.在發布伺服器和訂閱伺服器上互相注冊
企業管理器
--右鍵SQL Server組
--新建SQL Server注冊...
--下一步--可用的伺服器中,輸入你要注冊的遠程伺服器名 --添加
--下一步--連接使用,選擇第二個"SQL Server身份驗證"
--下一步--輸入用戶名和密碼(SynUser)
--下一步--選擇SQL Server組,也可以創建一個新組
--下一步--完成
6.對於只能用IP,不能用計算機名的,為其注冊伺服器別名(此步在實施中沒用到)
(在連接端配置,比如,在訂閱伺服器上配置的話,伺服器名稱中輸入的是發布伺服器的IP)
開始--程序--Microsoft SQL Server--客戶端網路實用工具
--別名--添加
--網路庫選擇"tcp/ip"--伺服器別名輸入SQL伺服器名
--連接參數--伺服器名稱中輸入SQL伺服器ip地址
--如果你修改了SQL的埠,取消選擇"動態決定埠",並輸入對應的埠號
二、 正式配置
1、配置發布伺服器
打開企業管理器,在發布伺服器(B、C、D)上執行以下步驟:
(1) 從[工具]下拉菜單的[復制]子菜單中選擇[配置發布、訂閱伺服器和分發]出現配置發布和分發向導
(2) [下一步] 選擇分發伺服器 可以選擇把發布伺服器自己作為分發伺服器或者其他sql的伺服器(選擇自己)
(3) [下一步] 設置快照文件夾
採用默認\\servername\Pub
(4) [下一步] 自定義配置
可以選擇:是,讓我設置分發資料庫屬性啟用發布伺服器或設置發布設置
否,使用下列默認設置(推薦)
(5) [下一步] 設置分發資料庫名稱和位置 採用默認值
(6) [下一步] 啟用發布伺服器 選擇作為發布的伺服器
(7) [下一步] 選擇需要發布的資料庫和發布類型
(8) [下一步] 選擇注冊訂閱伺服器
(9) [下一步] 完成配置
2、創建出版物
發布伺服器B、C、D上
(1)從[工具]菜單的[復制]子菜單中選擇[創建和管理發布]命令
(2)選擇要創建出版物的資料庫,然後單擊[創建發布]
(3)在[創建發布向導]的提示對話框中單擊[下一步]系統就會彈出一個對話框。對話框上的內容是復制的三個類型。我們現在選第一個也就是默認的快照發布(其他兩個大家可以去看看幫助)
(4)單擊[下一步]系統要求指定可以訂閱該發布的資料庫伺服器類型,
SQLSERVER允許在不同的資料庫如 orACLE或ACCESS之間進行數據復制。
但是在這里我們選擇運行"SQL SERVER 2000"的資料庫伺服器
(5)單擊[下一步]系統就彈出一個定義文章的對話框也就是選擇要出版的表
注意: 如果前面選擇了事務發布 則再這一步中只能選擇帶有主鍵的表
(6)選擇發布名稱和描述
(7)自定義發布屬性 向導提供的選擇:
是 我將自定義數據篩選,啟用匿名訂閱和或其他自定義屬性
否 根據指定方式創建發布 (建議採用自定義的方式)
(8)[下一步] 選擇篩選發布的方式
(9)[下一步] 可以選擇是否允許匿名訂閱
1)如果選擇署名訂閱,則需要在發布伺服器上添加訂閱伺服器
方法: [工具]->[復制]->[配置發布、訂閱伺服器和分發的屬性]->[訂閱伺服器] 中添加
否則在訂閱伺服器上請求訂閱時會出現的提示:改發布不允許匿名訂閱
如果仍然需要匿名訂閱則用以下解決辦法
[企業管理器]->[復制]->[發布內容]->[屬性]->[訂閱選項] 選擇允許匿名請求訂閱
2)如果選擇匿名訂閱,則配置訂閱伺服器時不會出現以上提示
(10)[下一步] 設置快照 代理程序調度
(11)[下一步] 完成配置
當完成出版物的創建後創建出版物的資料庫也就變成了一個共享資料庫。
你可以選擇同步方式,建議選擇事務型同步,這個比較常用。
零度科技原文鏈接:http://www.ldisp.com/a/server-manage/2010/544.shtml

❻ 怎麼避免mysql從庫同步 怎麼保證數據一致性

用 pt-table-checksum 時,會不會影響業務性能?

實驗


實驗開始前,給大家分享一個小經驗:任何性能評估,不要相信別人的評測結果,要在自己的環境上測試,並(大概)知曉原理。

我們先建一對主從:

之後工具獲取了一個數據塊的 checksum,這個數據塊不大,如果跟業務流量有沖突,會馬上出發 innodb 的鎖超時,立刻退讓。

以上是 pt-table-checksum 的一些設計,可以看到這幾處都是精心維護了業務流量不受影響。

工具還設計了其他的一些機制保障業務流量,比如參數 --max-load 和 --pause-file 等,還有精心設計的數據塊劃分方法,索引選擇方法等。大家根據自己的情況配合使用即可達到很好的效果。


總結

本期我們介紹了簡單分析 pt-table-checksum 是否會影響業務流量,坊間會流傳工具的各種參數建議或者不建議使用,算命的情況比較多,大家都可以用簡單的實驗來分析其中機制。

還是那個觀點,性能測試不能相信道聽途說,得通過實驗去分析。