公司目前有兩臺服務器,一臺計劃用于存儲歷史數(shù)據(jù)(History),一臺計劃用于日常(Daily),現(xiàn)在的需求是將日常的SQL server產生的歷史數(shù)據(jù)表,通過定期同步的方式存儲到存放歷史數(shù)據(jù)的服務器上(Daily——>History)這個順序一定要記清楚!
目錄
SQL server實現(xiàn)數(shù)據(jù)同步的方法
數(shù)據(jù)庫備份和還原:
數(shù)據(jù)庫復制:
Always On 可用性組:
跨數(shù)據(jù)庫查詢或跨服務器查詢:
ETL 工具和流程:
作業(yè)同步的實現(xiàn)(用History和Daily來區(qū)分服務器,看上文)
建立鏈接服務器
2.還有個重要的東西需要開一下!
3.最重要的地方來了,作業(yè)(Daily)
總結
免費!!!!!!!!!!!!!!!!!!!!
SQL server實現(xiàn)數(shù)據(jù)同步的方法
SQL server實現(xiàn)不同服務器間數(shù)據(jù)同步的方法有很多,他們各自有優(yōu)缺點,我在這簡單提介紹幾句,但是不做過多贅述。
數(shù)據(jù)庫備份和還原:
優(yōu)點:備份和還原是最簡單和直接的數(shù)據(jù)同步方法。通過備份源數(shù)據(jù)庫并在目標數(shù)據(jù)庫上還原備份,可以完全復制源數(shù)據(jù)庫的內容。
缺點:此方法需要手動進行備份和還原操作,并且無法實現(xiàn)實時數(shù)據(jù)同步。還原操作會覆蓋目標數(shù)據(jù)庫中的所有數(shù)據(jù),可能導致數(shù)據(jù)丟失。
數(shù)據(jù)庫復制:
Always On 可用性組:
跨數(shù)據(jù)庫查詢或跨服務器查詢:
優(yōu)點:使用跨數(shù)據(jù)庫查詢或跨服務器查詢,可以在不同的數(shù)據(jù)庫或服務器之間執(zhí)行查詢,從而實現(xiàn)數(shù)據(jù)同步。這種方法對于小規(guī)模的數(shù)據(jù)同步和報表生成很有用。
缺點:該方法在性能和擴展性方面可能存在限制。數(shù)據(jù)查詢和傳輸可能會產生網(wǎng)絡開銷,并且在大規(guī)模數(shù)據(jù)同步時可能導致性能下降。
ETL 工具和流程:
作業(yè)同步的實現(xiàn)(用History和Daily來區(qū)分服務器,看上文)
在本文我將會介紹鏈接服務器的建立、將SQL Server未將服務器 ***.***.**.*配置為用于 DATA ACCESS、出錯碼為7401的解決方案!上例子!!!
建立鏈接服務器
建立鏈接服務器共有兩種方法,使用SSMS管理工具進行建立和使用Sql語句建立,我先介紹最簡單的使用Sql語句建立:
在你的數(shù)據(jù)庫上右鍵,新建查詢
除了@server的內容啥也不用改,@server內容是History的IP地址或者SQL server實例名稱(如果不知道就去百度搜怎么獲取IP地址!)
1. /*配置鏈接服務器*/
2. exec sp_addlinkedserver
3. @server = '192.168.1.1',
4. @srvproduct = 'SQLOLEDB',
5. @provider = 'SQLNCLI',
6. @datasrc = '192.168.1.1';
7. /*除了@server啥也不用改!!!!!!*/
建好之后可以使用下面的語句查詢一下:
select * from sys.servers
大概就是這個樣子的
2.還有個重要的東西需要開一下!
1. /*SQL Server將服務器 192.168.1.1 配置為用于 DATA ACCESS*/
2. USE MASTER;
3. exec sp_serveroption '192.168.1.1', 'data access', 'on';
4. /*同樣只需要改192.168.1.1的內容就行,將192.168.1.1替換為你的Histord IP地址*/
5.
6. /*一個是Daliy,一個是History*/
7. USE MASTER;
8. exec sp_serveroption '192.168.1.6', 'data access', 'on';
3.最重要的地方來了,作業(yè)(Daily)
第一個箭頭的SQL server代理基本上都是處于關著的狀態(tài),需要手動打開,然后找到第二個作業(yè),右鍵,新建作業(yè)
在第一步中,需要寫一個合適的名字(無任何規(guī)定,隨意起即可,我的推薦是Data Synchronization意思是數(shù)據(jù)同步)。第二步,點擊步驟
同樣的,點擊1新建,2設置合適的名字(這里我推薦Step1),最最最重要和最最最容易忘記的是這個數(shù)據(jù)庫的選擇,3選擇你要同步的數(shù)據(jù)庫,數(shù)據(jù)庫要求在Daily和History上都有相同的表結構(何謂表結構,就是相同的字段、數(shù)據(jù)類型)
然后4,寫入語句(這里的語句就是SQL語句,十分的方便,select、insert同樣都可以用,我舉一個例子):
1. /*按照一定條件查找.6服務器下tb_productSaveParameterHistory表中的內容然后插入到.1服務器中tb_productSaveParameterHistory中*/
2. insert into [192.168.1.1].[date].[dbo].[tb_productSaveParameterHistory]
3. select * from [date].[dbo].[tb_productSaveParameterHistory] where ST != '999'
這條SQL語句用于按照一定條件從服務器192.168.1.6
下的數(shù)據(jù)庫date
中的dbo.tb_productSaveParameterHistory
表中查找內容,然后將符合條件的數(shù)據(jù)插入到服務器192.168.1.1
下的數(shù)據(jù)庫date
中的dbo.tb_productSaveParameterHistory
表中。(192.168.1.6是Daily,192.168.1.1是History
)。
如果一個步驟完不成可以添加兩個或多個步驟,具體方法如上圖所示。
然后再設置計劃,即上圖第三步,
按照1新建,2設置名字,3設置執(zhí)行頻率,4設置每天的頻率,(我推薦服務器是30秒),如果是測試的時候可以設置10秒,觀察變化情況,更好的掌握動態(tài)。
經過以上操作,基本上是完成了,接下來就可以監(jiān)聽這個作業(yè)的運行情況,并且可以根據(jù)需要開關作業(yè)
Data Synchronization就是剛剛建立的作業(yè),右鍵就可以禁用、開啟、查看歷史事件,最有用的就是這個查看歷史事件了,可以根據(jù)出現(xiàn)的問題查看原因,可以看到錯誤代碼。下圖是例子!
總結
這個也是通過一上午才研究出來的方法,淘寶上有個商家賣我1000,幸好我沒有買,靠著聰明才智做出來了,差點被無良商家坑了,就是那個森大網(wǎng)絡科技那個商家,如果數(shù)據(jù)庫同步有問題可以在評論區(qū)向我提問或者發(fā)私信,看到即可解答!
下載鏈接(1條消息) 數(shù)據(jù)同步如圖所示,文章在主頁資源-CSDN文庫
免費下載鏈接!!!!!!!!!!!!!!!!!!!!
該文章在 2023/9/15 15:42:45 編輯過