公司目前有兩臺服務(wù)器,一臺計(jì)劃用于存儲歷史數(shù)據(jù)(History),一臺計(jì)劃用于日常(Daily),現(xiàn)在的需求是將日常的SQL server產(chǎn)生的歷史數(shù)據(jù)表,通過定期同步的方式存儲到存放歷史數(shù)據(jù)的服務(wù)器上(Daily——>History)這個順序一定要記清楚!
目錄
SQL server實(shí)現(xiàn)數(shù)據(jù)同步的方法
數(shù)據(jù)庫備份和還原:
數(shù)據(jù)庫復(fù)制:
Always On 可用性組:
跨數(shù)據(jù)庫查詢或跨服務(wù)器查詢:
ETL 工具和流程:
作業(yè)同步的實(shí)現(xiàn)(用History和Daily來區(qū)分服務(wù)器,看上文)
建立鏈接服務(wù)器
2.還有個重要的東西需要開一下!
3.最重要的地方來了,作業(yè)(Daily)
總結(jié)
免費(fèi)?。。。。。。。。。。。。。。。。。。。?/a>
SQL server實(shí)現(xiàn)數(shù)據(jù)同步的方法
SQL server實(shí)現(xiàn)不同服務(wù)器間數(shù)據(jù)同步的方法有很多,他們各自有優(yōu)缺點(diǎn),我在這簡單提介紹幾句,但是不做過多贅述。
數(shù)據(jù)庫備份和還原:
優(yōu)點(diǎn):備份和還原是最簡單和直接的數(shù)據(jù)同步方法。通過備份源數(shù)據(jù)庫并在目標(biāo)數(shù)據(jù)庫上還原備份,可以完全復(fù)制源數(shù)據(jù)庫的內(nèi)容。
缺點(diǎn):此方法需要手動進(jìn)行備份和還原操作,并且無法實(shí)現(xiàn)實(shí)時數(shù)據(jù)同步。還原操作會覆蓋目標(biāo)數(shù)據(jù)庫中的所有數(shù)據(jù),可能導(dǎo)致數(shù)據(jù)丟失。
數(shù)據(jù)庫復(fù)制:
優(yōu)點(diǎn):數(shù)據(jù)庫復(fù)制可以實(shí)現(xiàn)實(shí)時或定期的數(shù)據(jù)同步。它通過創(chuàng)建發(fā)布者和訂閱者之間的復(fù)制拓?fù)洌瑢⒏膹脑磾?shù)據(jù)庫傳播到目標(biāo)數(shù)據(jù)庫。
缺點(diǎn):配置和管理復(fù)制拓?fù)淇赡苄枰欢ǖ膹?fù)雜性和維護(hù)成本。復(fù)制過程中可能存在延遲,特別是在大規(guī)模數(shù)據(jù)同步或高負(fù)載環(huán)境下。
Always On 可用性組:
優(yōu)點(diǎn):Always On 可用性組提供了高可用性和數(shù)據(jù)同步的解決方案。它使用數(shù)據(jù)庫鏡像、自動故障轉(zhuǎn)移和數(shù)據(jù)復(fù)制技術(shù),將數(shù)據(jù)實(shí)時復(fù)制到可用性組中的其他節(jié)點(diǎn)。
缺點(diǎn):Always On 可用性組的配置和管理較為復(fù)雜,需要專業(yè)知識和正確的基礎(chǔ)設(shè)施支持。該方法對于小型部署可能有過剩的復(fù)雜性。
跨數(shù)據(jù)庫查詢或跨服務(wù)器查詢:
優(yōu)點(diǎn):使用跨數(shù)據(jù)庫查詢或跨服務(wù)器查詢,可以在不同的數(shù)據(jù)庫或服務(wù)器之間執(zhí)行查詢,從而實(shí)現(xiàn)數(shù)據(jù)同步。這種方法對于小規(guī)模的數(shù)據(jù)同步和報(bào)表生成很有用。
缺點(diǎn):該方法在性能和擴(kuò)展性方面可能存在限制。數(shù)據(jù)查詢和傳輸可能會產(chǎn)生網(wǎng)絡(luò)開銷,并且在大規(guī)模數(shù)據(jù)同步時可能導(dǎo)致性能下降。
ETL 工具和流程:
優(yōu)點(diǎn):使用 ETL(抽取、轉(zhuǎn)換和加載)工具,可以定義和執(zhí)行復(fù)雜的數(shù)據(jù)同步和轉(zhuǎn)換流程。這種方法適用于數(shù)據(jù)清洗、轉(zhuǎn)換和整合的需求。
缺點(diǎn):ETL 工具的配置和開發(fā)需要一定的技術(shù)知識和時間投入。在數(shù)據(jù)量較大或數(shù)據(jù)模型較復(fù)雜時,可能需要額外的性能優(yōu)化和資源。
作業(yè)同步的實(shí)現(xiàn)(用History和Daily來區(qū)分服務(wù)器,看上文)
在本文我將會介紹鏈接服務(wù)器的建立、將SQL Server未將服務(wù)器 ***.***.**.*配置為用于 DATA ACCESS、出錯碼為7401的解決方案!上例子!??!
建立鏈接服務(wù)器
建立鏈接服務(wù)器共有兩種方法,使用SSMS管理工具進(jìn)行建立和使用Sql語句建立,我先介紹最簡單的使用Sql語句建立:
在你的數(shù)據(jù)庫上右鍵,新建查詢
![](/files/attmgn/2023/9/admin20230915153720710_0.jpg)
除了@server的內(nèi)容啥也不用改,@server內(nèi)容是History的IP地址或者SQL server實(shí)例名稱(如果不知道就去百度搜怎么獲取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啥也不用改?。。。。。?/span>*/
建好之后可以使用下面的語句查詢一下:
select * from sys.servers
大概就是這個樣子的
![](/files/attmgn/2023/9/admin20230915153720956_1.jpg)
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)
![](/files/attmgn/2023/9/admin20230915153721227_2.jpg)
第一個箭頭的SQL server代理基本上都是處于關(guān)著的狀態(tài),需要手動打開,然后找到第二個作業(yè),右鍵,新建作業(yè)
![](/files/attmgn/2023/9/admin20230915153721435_3.jpg)
在第一步中,需要寫一個合適的名字(無任何規(guī)定,隨意起即可,我的推薦是Data Synchronization意思是數(shù)據(jù)同步)。第二步,點(diǎn)擊步驟
![](/files/attmgn/2023/9/admin20230915153721684_4.jpg)
同樣的,點(diǎn)擊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è)置計(jì)劃,即上圖第三步,
![](/files/attmgn/2023/9/admin20230915153721906_5.jpg)
按照1新建,2設(shè)置名字,3設(shè)置執(zhí)行頻率,4設(shè)置每天的頻率,(我推薦服務(wù)器是30秒),如果是測試的時候可以設(shè)置10秒,觀察變化情況,更好的掌握動態(tài)。
經(jīng)過以上操作,基本上是完成了,接下來就可以監(jiān)聽這個作業(yè)的運(yùn)行情況,并且可以根據(jù)需要開關(guān)作業(yè)
![](/files/attmgn/2023/9/admin20230915153722093_6.jpg)
Data Synchronization就是剛剛建立的作業(yè),右鍵就可以禁用、開啟、查看歷史事件,最有用的就是這個查看歷史事件了,可以根據(jù)出現(xiàn)的問題查看原因,可以看到錯誤代碼。下圖是例子!
![](/files/attmgn/2023/9/admin20230915153722300_7.jpg)
總結(jié)
這個也是通過一上午才研究出來的方法,淘寶上有個商家賣我1000,幸好我沒有買,靠著聰明才智做出來了,差點(diǎn)被無良商家坑了,就是那個森大網(wǎng)絡(luò)科技那個商家,如果數(shù)據(jù)庫同步有問題可以在評論區(qū)向我提問或者發(fā)私信,看到即可解答!
下載鏈接(1條消息) 數(shù)據(jù)同步如圖所示,文章在主頁資源-CSDN文庫
免費(fèi)下載鏈接?。。。。。。。。。。。。。。。。。。?!
該文章在 2023/9/15 15:42:45 編輯過