公司目前有兩臺服務(wù)器,一臺計劃用于存儲歷史數(shù)據(jù)(History),一臺計劃用于日常(Daily),現(xiàn)在的需求是將日常的SQL server產(chǎn)生的歷史數(shù)據(jù)表,通過定期同步的方式存儲到存放歷史數(shù)據(jù)的服務(wù)器上(Daily——>History)這個順序一定要記清楚!
目錄
SQL server實現(xiàn)數(shù)據(jù)同步的方法
數(shù)據(jù)庫備份和還原:
數(shù)據(jù)庫復制:
Always On 可用性組:
跨數(shù)據(jù)庫查詢或跨服務(wù)器查詢:
ETL 工具和流程:
作業(yè)同步的實現(xiàn)(用History和Daily來區(qū)分服務(wù)器,看上文)
建立鏈接服務(wù)器
2.還有個重要的東西需要開一下!
3.最重要的地方來了,作業(yè)(Daily)
總結(jié)
免費?。。。。。。。。。。。。。。。。。。。?/a>
SQL server實現(xiàn)數(shù)據(jù)同步的方法
SQL server實現(xiàn)不同服務(wù)器間數(shù)據(jù)同步的方法有很多,他們各自有優(yōu)缺點,我在這簡單提介紹幾句,但是不做過多贅述。
數(shù)據(jù)庫備份和還原:
優(yōu)點:備份和還原是最簡單和直接的數(shù)據(jù)同步方法。通過備份源數(shù)據(jù)庫并在目標數(shù)據(jù)庫上還原備份,可以完全復制源數(shù)據(jù)庫的內(nèi)容。
缺點:此方法需要手動進行備份和還原操作,并且無法實現(xiàn)實時數(shù)據(jù)同步。還原操作會覆蓋目標數(shù)據(jù)庫中的所有數(shù)據(jù),可能導致數(shù)據(jù)丟失。
數(shù)據(jù)庫復制:
Always On 可用性組:
優(yōu)點:Always On 可用性組提供了高可用性和數(shù)據(jù)同步的解決方案。它使用數(shù)據(jù)庫鏡像、自動故障轉(zhuǎn)移和數(shù)據(jù)復制技術(shù),將數(shù)據(jù)實時復制到可用性組中的其他節(jié)點。
缺點:Always On 可用性組的配置和管理較為復雜,需要專業(yè)知識和正確的基礎(chǔ)設(shè)施支持。該方法對于小型部署可能有過剩的復雜性。
跨數(shù)據(jù)庫查詢或跨服務(wù)器查詢:
優(yōu)點:使用跨數(shù)據(jù)庫查詢或跨服務(wù)器查詢,可以在不同的數(shù)據(jù)庫或服務(wù)器之間執(zhí)行查詢,從而實現(xiàn)數(shù)據(jù)同步。這種方法對于小規(guī)模的數(shù)據(jù)同步和報表生成很有用。
缺點:該方法在性能和擴展性方面可能存在限制。數(shù)據(jù)查詢和傳輸可能會產(chǎn)生網(wǎng)絡(luò)開銷,并且在大規(guī)模數(shù)據(jù)同步時可能導致性能下降。
ETL 工具和流程:
優(yōu)點:使用 ETL(抽取、轉(zhuǎn)換和加載)工具,可以定義和執(zhí)行復雜的數(shù)據(jù)同步和轉(zhuǎn)換流程。這種方法適用于數(shù)據(jù)清洗、轉(zhuǎn)換和整合的需求。
缺點:ETL 工具的配置和開發(fā)需要一定的技術(shù)知識和時間投入。在數(shù)據(jù)量較大或數(shù)據(jù)模型較復雜時,可能需要額外的性能優(yōu)化和資源。
作業(yè)同步的實現(xiàn)(用History和Daily來區(qū)分服務(wù)器,看上文)
在本文我將會介紹鏈接服務(wù)器的建立、將SQL Server未將服務(wù)器 ***.***.**.*配置為用于 DATA ACCESS、出錯碼為7401的解決方案!上例子?。。?/span>
建立鏈接服務(wù)器
建立鏈接服務(wù)器共有兩種方法,使用SSMS管理工具進行建立和使用Sql語句建立,我先介紹最簡單的使用Sql語句建立:
在你的數(shù)據(jù)庫上右鍵,新建查詢

除了@server的內(nèi)容啥也不用改,@server內(nèi)容是History的IP地址或者SQL server實例名稱(如果不知道就去百度搜怎么獲取IP地址!)
1. /*配置鏈接服務(wù)器*/
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將服務(wù)器 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的內(nèi)容就行,將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代理基本上都是處于關(guān)著的狀態(tài),需要手動打開,然后找到第二個作業(yè),右鍵,新建作業(yè)

在第一步中,需要寫一個合適的名字(無任何規(guī)定,隨意起即可,我的推薦是Data Synchronization意思是數(shù)據(jù)同步)。第二步,點擊步驟

同樣的,點擊1新建,2設(shè)置合適的名字(這里我推薦Step1),最最最重要和最最最容易忘記的是這個數(shù)據(jù)庫的選擇,3選擇你要同步的數(shù)據(jù)庫,數(shù)據(jù)庫要求在Daily和History上都有相同的表結(jié)構(gòu)(何謂表結(jié)構(gòu),就是相同的字段、數(shù)據(jù)類型)
然后4,寫入語句(這里的語句就是SQL語句,十分的方便,select、insert同樣都可以用,我舉一個例子):
1. /*按照一定條件查找.6服務(wù)器下tb_productSaveParameterHistory表中的內(nèi)容然后插入到.1服務(wù)器中tb_productSaveParameterHistory中*/
2. insert into [192.168.1.1].[date].[dbo].[tb_productSaveParameterHistory]
3. select * from [date].[dbo].[tb_productSaveParameterHistory] where ST != '999'
這條SQL語句用于按照一定條件從服務(wù)器192.168.1.6
下的數(shù)據(jù)庫date
中的dbo.tb_productSaveParameterHistory
表中查找內(nèi)容,然后將符合條件的數(shù)據(jù)插入到服務(wù)器192.168.1.1
下的數(shù)據(jù)庫date
中的dbo.tb_productSaveParameterHistory
表中。(192.168.1.6是Daily,192.168.1.1是History
)。
如果一個步驟完不成可以添加兩個或多個步驟,具體方法如上圖所示。
然后再設(shè)置計劃,即上圖第三步,

按照1新建,2設(shè)置名字,3設(shè)置執(zhí)行頻率,4設(shè)置每天的頻率,(我推薦服務(wù)器是30秒),如果是測試的時候可以設(shè)置10秒,觀察變化情況,更好的掌握動態(tài)。
經(jīng)過以上操作,基本上是完成了,接下來就可以監(jiān)聽這個作業(yè)的運行情況,并且可以根據(jù)需要開關(guān)作業(yè)

Data Synchronization就是剛剛建立的作業(yè),右鍵就可以禁用、開啟、查看歷史事件,最有用的就是這個查看歷史事件了,可以根據(jù)出現(xiàn)的問題查看原因,可以看到錯誤代碼。下圖是例子!

總結(jié)
這個也是通過一上午才研究出來的方法,淘寶上有個商家賣我1000,幸好我沒有買,靠著聰明才智做出來了,差點被無良商家坑了,就是那個森大網(wǎng)絡(luò)科技那個商家,如果數(shù)據(jù)庫同步有問題可以在評論區(qū)向我提問或者發(fā)私信,看到即可解答!
下載鏈接(1條消息) 數(shù)據(jù)同步如圖所示,文章在主頁資源-CSDN文庫
免費下載鏈接?。。。。。。。。。。。。。。。。。。?!
該文章在 2023/9/15 15:42:45 編輯過