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