日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
數(shù)據(jù)庫同步到服務(wù)器,實現(xiàn)數(shù)據(jù)共享和備份(數(shù)據(jù)庫同步到服務(wù)器)

隨著數(shù)據(jù)量不斷增大和業(yè)務(wù)的不斷發(fā)展,數(shù)據(jù)庫同步到服務(wù)器的需求也越來越迫切。數(shù)據(jù)庫同步可以使公司的各項業(yè)務(wù)更加穩(wěn)定和流暢,同時也有助于數(shù)據(jù)的共享和備份。本文將深入探討數(shù)據(jù)庫同步到服務(wù)器的實現(xiàn)及其優(yōu)勢。

創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價比伊通網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式伊通網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋伊通地區(qū)。費用合理售后完善,十年實體公司更值得信賴。

一、數(shù)據(jù)庫同步的實現(xiàn)方式

1.基于工具的同步方式

這種方式需要使用專門的數(shù)據(jù)庫同步工具,例如:Apache Sqoop、Oracle Data Integrator等。這些工具會自動將源數(shù)據(jù)庫的數(shù)據(jù)復(fù)制到目標(biāo)數(shù)據(jù)庫中,從而實現(xiàn)了數(shù)據(jù)同步。在這種方式下,用戶只需要選擇需要同步的數(shù)據(jù)庫表格以及同步的時間間隔即可實現(xiàn)數(shù)據(jù)庫同步。

2.基于代碼的同步方式

這種方式需要程序員自己編寫代碼實現(xiàn)數(shù)據(jù)庫同步。用戶需要在程序中設(shè)置源數(shù)據(jù)庫和目標(biāo)數(shù)據(jù)庫的連接信息,并編寫數(shù)據(jù)同步的邏輯。這種方式需要編寫的代碼較多,比較復(fù)雜,但同時也更靈活。

二、數(shù)據(jù)庫同步的優(yōu)勢

1.數(shù)據(jù)共享

數(shù)據(jù)庫同步可使得多個業(yè)務(wù)線之間的數(shù)據(jù)共享變得更加容易。不同業(yè)務(wù)線所需的數(shù)據(jù)可能存在于不同的數(shù)據(jù)庫中,而數(shù)據(jù)庫同步則可以使得這些數(shù)據(jù)自動同步到目標(biāo)數(shù)據(jù)庫中,從而讓各個業(yè)務(wù)線都能夠訪問到需要的數(shù)據(jù),提高了業(yè)務(wù)協(xié)同的效率。

2.數(shù)據(jù)備份

數(shù)據(jù)庫同步可以使得目標(biāo)數(shù)據(jù)庫中始終存在最新版本的源數(shù)據(jù)庫信息,從而做到數(shù)據(jù)備份的效果。假如源數(shù)據(jù)庫出現(xiàn)了故障,備份數(shù)據(jù)可以作為恢復(fù)數(shù)據(jù)的一個重要參考,避免業(yè)務(wù)中斷帶來的損失。

3.數(shù)據(jù)安全

數(shù)據(jù)庫同步可以將源數(shù)據(jù)庫復(fù)制到目標(biāo)數(shù)據(jù)庫中,從而減少了源數(shù)據(jù)庫被攻擊的風(fēng)險。即使源數(shù)據(jù)庫被攻擊,也可以通過目標(biāo)數(shù)據(jù)庫中的備份數(shù)據(jù)恢復(fù)數(shù)據(jù),避免了數(shù)據(jù)的丟失。

4.節(jié)約成本

在公司組織中,不同的業(yè)務(wù)系統(tǒng)可能需要訪問同一批數(shù)據(jù),但是如果這些業(yè)務(wù)系統(tǒng)都各自維護(hù)一份數(shù)據(jù),那么必然會造成數(shù)據(jù)冗余,增加存儲成本。而數(shù)據(jù)庫同步可以通過復(fù)制源數(shù)據(jù)庫中的數(shù)據(jù),從而減少了數(shù)據(jù)冗余的情況,避免了不必要的存儲成本。

三、數(shù)據(jù)庫同步注意事項

1.數(shù)據(jù)同步的頻率不宜過于頻繁,否則會浪費服務(wù)器資源。應(yīng)該根據(jù)實際情況,合理地設(shè)置同步頻率。

2.在進(jìn)行數(shù)據(jù)庫同步時,應(yīng)該注意數(shù)據(jù)的安全性,在正式同步之前進(jìn)行備份,避免數(shù)據(jù)丟失。

3.在同步的過程中,應(yīng)該注意數(shù)據(jù)庫的一致性,避免數(shù)據(jù)出現(xiàn)錯誤。當(dāng)數(shù)據(jù)庫同步出現(xiàn)問題時,應(yīng)該及時排查并解決問題。

四、結(jié)語

數(shù)據(jù)是企業(yè)的重要資產(chǎn),數(shù)據(jù)庫同步可以為企業(yè)在數(shù)據(jù)共享、備份和安全方面帶來顯著的優(yōu)勢。在進(jìn)行數(shù)據(jù)庫同步時,應(yīng)該選擇合適的同步方式,注意同步過程中的安全性和一致性,并合理設(shè)置同步頻率,以確保數(shù)據(jù)同步的效果更佳。

相關(guān)問題拓展閱讀:

  • sql數(shù)據(jù)庫怎么做到服務(wù)器數(shù)據(jù)與本地同步
  • 如何把本地數(shù)據(jù)庫導(dǎo)入到服務(wù)器數(shù)據(jù)庫中?

sql數(shù)據(jù)庫怎么做到服務(wù)器數(shù)據(jù)與本地同步

MySQL數(shù)據(jù)同步主要有三種方式:

  1.利用MySQL自身的數(shù)據(jù)庫同步功能

  2.利用MySQL數(shù)據(jù)庫的特性(數(shù)據(jù)庫存在固頂目錄,并且以文件形式存儲),進(jìn)行數(shù)據(jù)庫目錄同步以達(dá)到數(shù)據(jù)同步目的

  3.利用專用的MySQL數(shù)據(jù)庫同步軟件

  1.利用MySQL自身的數(shù)據(jù)庫同步功能:

  MySQL從3.23.15版本以后提供數(shù)據(jù)庫復(fù)制功能。利用該功能可以實現(xiàn)兩個數(shù)據(jù)庫同步,主從模式,互相備份模式的功能.

  數(shù)據(jù)庫同步復(fù)制功能的設(shè)置都在mysql的設(shè)置文件中體現(xiàn)。mysql的配置文件(一般是my.cnf),在unix環(huán)境下在/etc/mysql/my.cnf或者在mysql用戶的home目錄下的my.cnf。

  windows環(huán)境中,如果c:根目錄下有my.cnf文件則取該配置文件。當(dāng)運(yùn)行mysql的winmysqladmin.exe工具時候,該工具會把c:根目錄下的my.cnf命名為mycnf.bak。并在winnt目錄下創(chuàng)建my.ini。mysql服務(wù)器啟動時候會讀該配置文件。所以可以把my.cnf中的內(nèi)容拷貝到my.ini文件中,用my.ini文件作為mysql服務(wù)器的配置文件。

  設(shè)置方法:

  設(shè)置范例環(huán)境:

  操作系統(tǒng):window2023professional

  mysql:4.0.4-beta-max-nt-log

  Aip:10.10.10.22

  Bip:10.10.10.53

  A:設(shè)置

  1.增加一個用戶最為同步的用戶帳號:

  GRANTFILEON*.*TObackup@’10.10.10.53’IDENTIFIEDBY‘1234’

  2.增加一個數(shù)據(jù)庫作為同步數(shù)據(jù)庫:

  createdatabasebackup

  B:設(shè)置

  1.增加一個用戶最為同步的用戶帳號:

  GRANTFILEON*.*TObackup@’10.10.10.22’IDENTIFIEDBY‘1234’

  2.增加一個數(shù)據(jù)庫作為同步數(shù)據(jù)庫:

  createdatabasebackup

  主從模式:A->B

  A為master

  修改Amysql的my.ini文件。在mysqld配置項中加入下面配置:

  server-id=1

  log-bin

  #設(shè)置需要記錄log可以設(shè)置log-bin=c:mysqlbakmysqllog設(shè)置日志文件的目錄,

  #其中mysqllog是日志文件的名稱,mysql將建立不同擴(kuò)展名,文件名為mysqllog的幾個日志文件。

  binlog-do-db=backup#指定需要日志的數(shù)據(jù)庫

  重起數(shù)據(jù)庫服務(wù)。

  用showmasterstatus命令看日志情況。

  B為slave

  修改Bmysql的my.ini文件。在mysqld配置項中加入下面配置:

  server-id=2

  master-host=10.10.10.22

  master-user=backup#同步用戶帳號

  master-password=1234

  master-port=3306

  master-connect-retry=60預(yù)設(shè)重試間隔60秒

  replicate-do-db=backup告訴slave只做backup數(shù)據(jù)庫的更新

  重起數(shù)據(jù)庫

  用showslavestatus看同步配置情況。

  注意:由于設(shè)置了slave的配置信息,mysql在數(shù)據(jù)庫目錄下生成master.info

  所以如有要修改相關(guān)slave的配置要先刪除該文件。否則修改的配置不能生效。

  雙機(jī)互備模式。

  如果在A加入slave設(shè)置,在B加入master設(shè)置,則可以做B->A的同步。

  在A的配置文件中mysqld配置項加入以下設(shè)置:

  master-host=10.10.10.53

  master-user=backup

  master-password=1234

  replicate-do-db=backup

  master-connect-retry=10

  在B的配置文件中mysqld配置項加入以下設(shè)置:

  log-bin=c:mysqllogmysqllog

  binlog-do-db=backup

  注意:當(dāng)有錯誤產(chǎn)生時*.err日志文件。同步的線程退出,當(dāng)糾正錯誤后要讓同步機(jī)制進(jìn)行工作,運(yùn)行slavestart

  重起AB機(jī)器,則可以實現(xiàn)雙向的熱備。

  測試:

  向B批量插入大數(shù)據(jù)量表AA()條

  A數(shù)據(jù)庫每秒鐘可以更新2500條數(shù)據(jù)。

  2.數(shù)據(jù)庫目錄同步:

  方法和文件同步一樣,設(shè)置好需要同步的兩個數(shù)據(jù)庫目錄就可以了!

  缺點很明顯,數(shù)據(jù)同步只能單向進(jìn)行,可以作為備份方案

  3.用專用的MySQL同步軟件進(jìn)行同步 :

  這方面的軟件有SQLBalance和MyReplicator,優(yōu)點是方便直觀,還有很多爭強(qiáng)功能!

  缺點和2一樣,只能單項同步!

  當(dāng)然也可以修改鏡像網(wǎng)站的程序為提交數(shù)據(jù)到母數(shù)據(jù)庫,讀取則在當(dāng)前鏡像下的數(shù)據(jù),不過,修改起來麻煩!普通用戶修改也非常難!呵呵,大家了解一下就可以!給大家一個思路!有能力的朋友可以試試阿!

  4.關(guān)于MySQL論壇的數(shù)據(jù)同步

  由于數(shù)據(jù)來源的不可控制(不好表達(dá)),論壇數(shù)據(jù)是實時的,而且還要考慮來自鏡像論壇的數(shù)據(jù),如何實現(xiàn)鏡像論壇與母論壇數(shù)據(jù)同步呢?

  用1中介紹的MySQL自帶的數(shù)據(jù)庫同步功能互相備份模式就可以實現(xiàn)的!

  不過,具體的應(yīng)用我沒有測試!穩(wěn)定性不敢保證!

  有能力的朋友推薦用下面這種思路來同步,相對來說減少點效率,但能減少發(fā)生的錯誤!

比如鏡像論壇數(shù)據(jù)同步:

  1.母論壇和鏡像論壇的數(shù)據(jù)全寫在母論壇數(shù)據(jù)庫里,主從模式,讀取只在本地讀取,這個需要修改程序!

  2.每次寫數(shù)據(jù),都同時提交到兩個數(shù)據(jù)庫中,安全,但是效率很差,也得修改程序!

  MSSQL

  MSSQL數(shù)據(jù)同步利用數(shù)據(jù)庫復(fù)制技術(shù)實現(xiàn)數(shù)據(jù)同步更新(來自網(wǎng)絡(luò),也是非常完美的教程)

  復(fù)制的概念 :

  復(fù)制是將一組數(shù)據(jù)從一個數(shù)據(jù)源拷貝到多個數(shù)據(jù)源的技術(shù),是將一份數(shù)據(jù)發(fā)布到多個存儲站點上的有效方式。使用復(fù)制技術(shù),用戶可以將一份數(shù)據(jù)發(fā)布到多臺服務(wù)器上,從而使不同的服務(wù)器用戶都可以在權(quán)限的許可的范圍內(nèi)共享這份數(shù)據(jù)。復(fù)制技術(shù)可以確保分布在不同地點的數(shù)據(jù)自動同步更新,從而保證數(shù)據(jù)的一致性。

  SQL復(fù)制的基本元素包括

  出版服務(wù)器、訂閱服務(wù)器、分發(fā)服務(wù)器、出版物、文章

  SQL復(fù)制的工作原理

  SQLSERVER主要采用出版物、訂閱的方式來處理復(fù)制。源數(shù)據(jù)所在的服務(wù)器是出版服務(wù)器,負(fù)責(zé)發(fā)表數(shù)據(jù)。出版服務(wù)器把要發(fā)表的數(shù)據(jù)的所有改變情況的拷貝復(fù)制到分發(fā)服務(wù)器,分發(fā)服務(wù)器包含有一個分發(fā)數(shù)據(jù)庫,可接收數(shù)據(jù)的所有改變,并保存這些改變,再把這些改變分發(fā)給訂閱服務(wù)器

  SQLSERVER復(fù)制技術(shù)類型

  SQLSERVER提供了三種復(fù)制技術(shù),分別是:

  1、快照復(fù)制(呆會我們就使用這個)

  2、事務(wù)復(fù)制

  3、合并復(fù)制

  只要把上面這些概念弄清楚了那么對復(fù)制也就有了一定的理解。接下來我們就一步一步來實現(xiàn)復(fù)制的步驟。

  之一先來配置出版服務(wù)器

  (1)選中指定節(jié)點

  (2)從下拉菜單的子菜單中選擇命令

  (3)系統(tǒng)彈出一個對話框點然后看著提示一直操作到完成。

  (4)當(dāng)完成了出版服務(wù)器的設(shè)置以后系統(tǒng)會為該服務(wù)器的樹形結(jié)構(gòu)中添加一個復(fù)制監(jiān)視器。同時也生成一個分發(fā)數(shù)據(jù)庫(distribution)

  第二創(chuàng)建出版物

  (1)選中指定的服務(wù)器

  (2)從菜單的子菜單中選擇命令。此時系統(tǒng)會彈出一個對話框

  (3)選擇要創(chuàng)建出版物的數(shù)據(jù)庫,然后單擊

  (4)在的提示對話框中單擊系統(tǒng)就會彈出一個對話框。對話框上的內(nèi)容是復(fù)制的三個類型。我們現(xiàn)在選之一個也就是默認(rèn)的快照發(fā)布(其他兩個大家可以去看看幫助)

  (5)單擊系統(tǒng)要求指定可以訂閱該發(fā)布的數(shù)據(jù)庫服務(wù)器類型,SQLSERVER允許在不同的數(shù)據(jù)庫如ORACLE或ACCESS之間進(jìn)行數(shù)據(jù)復(fù)制。但是在這里我們選擇運(yùn)行”SQLSERVER2023″的數(shù)據(jù)庫服務(wù)器

  (6)單擊系統(tǒng)就彈出一個定義文章的對話框也就是選擇要出版的表

  (7)然后直到操作完成。當(dāng)完成出版物的創(chuàng)建后創(chuàng)建出版物的數(shù)據(jù)庫也就變成了一個共享數(shù)據(jù)庫。

  第三設(shè)計訂閱

  (1)選中指定的訂閱服務(wù)器

  (2)從下拉菜單中選擇子菜單的

  (3)按照單擊操作直到系統(tǒng)會提示檢查SQLSERVER代理服務(wù)的運(yùn)行狀態(tài),執(zhí)行復(fù)制操作的前提條件是SQLSERVER代理服務(wù)必須已經(jīng)啟動。

  (4)單擊。完成訂閱操作。

  完成上面的步驟其實復(fù)制也就是成功了。但是如何來知道復(fù)制是否成功了呢?這里可以通過這種方法來快速看是否成功。展開出版服務(wù)器下面的復(fù)制——發(fā)布內(nèi)容——右鍵發(fā)布內(nèi)容——屬性——擊活——狀態(tài)然后點立即運(yùn)行代理程序接著點代理程序?qū)傩該艋钫{(diào)度把調(diào)度設(shè)置為每一天發(fā)生,每一分鐘,在0:00:00和23:59:59之間。接下來就是判斷復(fù)制是否成功了打開  C:/ProgramFiles/MicrosoftSQLServer/MSSQL/REPLDATA/unc/XIAOWANGZI_database_database下面看是不是有一些以時間做為文件名的文件夾差不多一分中就產(chǎn)生一個。要是你還不信的話就打開你的數(shù)據(jù)庫看在訂閱的服務(wù)器的指定訂閱數(shù)據(jù)庫下看是不是看到了你剛才所發(fā)布的表—

  一個手工同步的方案

  –定時同步服務(wù)器上的數(shù)據(jù)

  –例子:

  –測試環(huán)境,SQLServer2023,遠(yuǎn)程服務(wù)器名:xz,用戶名為:sa,無密碼,測試數(shù)據(jù)庫:test

  –服務(wù)器上的表(查詢分析器連接到服務(wù)器上創(chuàng)建)

  createtable(idintprimarykey,numbervarchar(4),namevarchar(10))

  –以下在局域網(wǎng)(本機(jī)操作)

  –本機(jī)的表,state說明:null表示新增記錄,1表示修改過的記錄,0表示無變化的記錄

  ifexists(select*fromdbo.sysobjectswhereid=object_id(N”)andOBJECTPROPERTY(id,N’IsUserTable’)=1)

  droptable

  GO

  createtable  

  (idintidentity(1,1),numbervarchar(4),namevarchar(10),statebit)

  go

  –創(chuàng)建觸發(fā)器,維護(hù)state字段的值

  createtriggert_stateon

  afterupdate

  as

  updatesetstate=1

  fromajoininsertedbona.id=b.id

  wherea.stateisnotnull

  go

  –為了方便同步處理,創(chuàng)建鏈接服務(wù)器到要同步的服務(wù)器

  –這里的遠(yuǎn)程服務(wù)器名為:xz,用戶名為:sa,無密碼

  ifexists(select1frommaster..sysserverswheresrvname=’srv_lnk’)

  execsp_dropserver’srv_lnk’,’droplogins’

  go

  execsp_addlinkedserver’srv_lnk’,”,’SQLOLEDB’,’xz’

  execsp_addlinkedsrvlogin’srv_lnk’,’false’,null,’sa’

  go

  –創(chuàng)建同步處理的存儲過程

  ifexists(select*fromdbo.sysobjectswhereid=object_id(N’.  

  

‘)andOBJECTPROPERTY(id,N’IsProcedure’)=1)

  dropprocedure.

  GO

  createprocp_synchro

  as

  –setXACT_ABORTon

  –啟動遠(yuǎn)程服務(wù)器的MSDTC服務(wù)

  execmaster..xp_cmdshell’isql/S”xz”/U”sa”/P””/q”execmaster..xp_cmdshell”netstartmsdtc”,no_output”‘,no_output

  –啟動本機(jī)的MSDTC服務(wù)

  –execmaster..xp_cmdshell’netstartmsdtc’,no_output

  –進(jìn)行分布事務(wù)處理,如果表用標(biāo)識列做主鍵,用下面的方法

  –BEGINDISTRIBUTEDTRANSACTION

  –同步刪除的數(shù)據(jù)

  deletefromsrv_lnk.test.dbo.

  whereidnotin(selectidfrom)

  –同步新增的數(shù)據(jù)

  insertintosrv_lnk.test.dbo.

  selectid,number,namefromwherestateisnull

  –同步修改的數(shù)據(jù)

  updatesrv_lnk.test.dbo.set

  number=b.number,name=b.name

  fromsrv_lnk.test.dbo.a

  joinbona.id=b.id

  whereb.state=1

  –同步后更新本機(jī)的標(biāo)志

  updatesetstate=0whereisnull(state,1)=1

  –COMMITTRAN

  go

  –創(chuàng)建作業(yè),定時執(zhí)行數(shù)據(jù)同步的存儲過程

  ifexists(SELECT1frommsdb..sysjobswherename=’數(shù)據(jù)處理’)

  EXECUTEmsdb.dbo.sp_delete_job@job_name=’數(shù)據(jù)處理’

  execmsdb..sp_add_job@job_name=’數(shù)據(jù)處理’

  –創(chuàng)建作業(yè)步驟

  declare@sqlvarchar(800),@dbnamevarchar(250)

  select@sql=’execp_synchro’–數(shù)據(jù)處理的命令

  @dbname=db_name()–執(zhí)行數(shù)據(jù)處理的數(shù)據(jù)庫名

  execmsdb..sp_add_jobstep@job_name=’數(shù)據(jù)處理’,

  @step_name=’數(shù)據(jù)同步’,

  @subsystem=’TSQL’,

  @database_name=@dbname,

  @command=@sql,

  @retry_attempts=5,–重試次數(shù)

  @retry_interval=5–重試間隔

  –創(chuàng)建調(diào)度

  EXECmsdb..sp_add_jobschedule@job_name=’數(shù)據(jù)處理’,

  @name=’時間安排’,

  @freq_type=4,–每天

  @freq_interval=1,–每天執(zhí)行一次

  @active_start_time=點執(zhí)行

  MySQL數(shù)據(jù)同步主要有三種方式:

  1.利用MySQL自身的數(shù)據(jù)庫同步功能

  2.利用MySQL數(shù)據(jù)庫的特性(數(shù)據(jù)庫存在固頂目錄,并且中鉛以文件形式存儲),進(jìn)行數(shù)據(jù)庫目錄同步以達(dá)到數(shù)據(jù)同步目的

  3.利用專用的MySQL數(shù)據(jù)庫同步軟件

  1.利用MySQL自身的數(shù)據(jù)庫同步功能:

  MySQL從3.23.15版本以后提供數(shù)據(jù)毀帶庫復(fù)制功能。利用該功能可以實現(xiàn)兩個數(shù)據(jù)庫同步,主從模式,互相備份模式的功能.

  數(shù)據(jù)庫同步復(fù)制功能的設(shè)置都在mysql的設(shè)置文件中體現(xiàn)。mysql的配置文件(一般是my.cnf),在unix環(huán)境下在/etc/mysql/my.cnf或者在mysql用戶的home目錄下的my.cnf。

  windows環(huán)境中,如果c:根目錄下有my.cnf文件則取該配置文件。當(dāng)運(yùn)行mysql的winmysqladmin.exe工具時候,該工具會把c:根目錄下的my.cnf命名為mycnf.bak。并在winnt目錄下創(chuàng)建my.ini。mysql服務(wù)器啟動時候會讀該配置文件。所以可以把my.cnf中的內(nèi)容拷貝到my.ini文件中,用my.ini文件作為mysql服務(wù)器的配置文件賣余好。

  設(shè)置方法:

  設(shè)置范例環(huán)境:

  操作系統(tǒng):window2023professional

  mysql:4.0.4-beta-max-nt-log

  Aip:10.10.10.22

  Bip:10.10.10.53

  A:設(shè)置

  1.增加一個用戶最為同步的用戶帳號:

  GRANTFILEON*.*TObackup@’10.10.10.53’IDENTIFIEDBY‘1234’

  2.增加一個數(shù)據(jù)庫作為同步數(shù)據(jù)庫:

  createdatabasebackup

  B:設(shè)置

  1.增加一個用戶最為同步的用戶帳號:

  GRANTFILEON*.*TObackup@’10.10.10.22’IDENTIFIEDBY‘1234’

  2.增加一個數(shù)據(jù)庫作為同步數(shù)據(jù)庫:

  createdatabasebackup

  主從模式:A->B

  A為master

  修改Amysql的my.ini文件。在mysqld配置項中加入下面配置:

  server-id=1

  log-bin

  #設(shè)置需要記錄log可以設(shè)置log-bin=c:mysqlbakmysqllog設(shè)置日志文件的目錄,

  #其中mysqllog是日志文件的名稱,mysql將建立不同擴(kuò)展名,文件名為mysqllog的幾個日志文件。

  binlog-do-db=backup#指定需要日志的數(shù)據(jù)庫

  重起數(shù)據(jù)庫服務(wù)。

  用showmasterstatus命令看日志情況。

  B為slave

  修改Bmysql的my.ini文件。在mysqld配置項中加入下面配置:

  server-id=2

  master-host=10.10.10.22

  master-user=backup#同步用戶帳號

  master-password=1234

  master-port=3306

  master-connect-retry=60預(yù)設(shè)重試間隔60秒

  replicate-do-db=backup告訴slave只做backup數(shù)據(jù)庫的更新

  重起數(shù)據(jù)庫

  用showslavestatus看同步配置情況。

  注意:由于設(shè)置了slave的配置信息,mysql在數(shù)據(jù)庫目錄下生成master.info

  所以如有要修改相關(guān)slave的配置要先刪除該文件。否則修改的配置不能生效。

  雙機(jī)互備模式。

  如果在A加入slave設(shè)置,在B加入master設(shè)置,則可以做B->A的同步。

  在A的配置文件中mysqld配置項加入以下設(shè)置:

  master-host=10.10.10.53

  master-user=backup

  master-password=1234

  replicate-do-db=backup

  master-connect-retry=10

  在B的配置文件中mysqld配置項加入以下設(shè)置:

  log-bin=c:mysqllogmysqllog

  binlog-do-db=backup

  注意:當(dāng)有錯誤產(chǎn)生時*.err日志文件。同步的線程退出,當(dāng)糾正錯誤后要讓同步機(jī)制進(jìn)行工作,運(yùn)行slavestart

  重起AB機(jī)器,則可以實現(xiàn)雙向的熱備。

  測試:

  向B批量插入大數(shù)據(jù)量表AA()條

  A數(shù)據(jù)庫每秒鐘可以更新2500條數(shù)據(jù)。

  2.數(shù)據(jù)庫目錄同步:

  方法和文件同步一樣,設(shè)置好需要同步的兩個數(shù)據(jù)庫目錄就可以了!

  缺點很明顯,數(shù)據(jù)同步只能單向進(jìn)行,可以作為備份方案

  3.用專用的MySQL同步軟件進(jìn)行同步 :

  這方面的軟件有SQLBalance和MyReplicator,優(yōu)點是方便直觀,還有很多爭強(qiáng)功能!

  缺點和2一樣,只能單項同步!

  當(dāng)然也可以修改鏡像網(wǎng)站的程序為提交數(shù)據(jù)到母數(shù)據(jù)庫,讀取則在當(dāng)前鏡像下的數(shù)據(jù),不過,修改起來麻煩!普通用戶修改也非常難!呵呵,大家了解一下就可以!給大家一個思路!有能力的朋友可以試試阿!

  4.關(guān)于MySQL論壇的數(shù)據(jù)同步

  由于數(shù)據(jù)來源的不可控制(不好表達(dá)),論壇數(shù)據(jù)是實時的,而且還要考慮來自鏡像論壇的數(shù)據(jù),如何實現(xiàn)鏡像論壇與母論壇數(shù)據(jù)同步呢?

  用1中介紹的MySQL自帶的數(shù)據(jù)庫同步功能互相備份模式就可以實現(xiàn)的!

  不過,具體的應(yīng)用我沒有測試!穩(wěn)定性不敢保證!

  有能力的朋友推薦用下面這種思路來同步,相對來說減少點效率,但能減少發(fā)生的錯誤!

比如鏡像論壇數(shù)據(jù)同步:

  1.母論壇和鏡像論壇的數(shù)據(jù)全寫在母論壇數(shù)據(jù)庫里,主從模式,讀取只在本地讀取,這個需要修改程序!

  2.每次寫數(shù)據(jù),都同時提交到兩個數(shù)據(jù)庫中,安全,但是效率很差,也得修改程序!

  MSSQL

  MSSQL數(shù)據(jù)同步利用數(shù)據(jù)庫復(fù)制技術(shù)實現(xiàn)數(shù)據(jù)同步更新(來自網(wǎng)絡(luò),也是非常完美的教程)

  復(fù)制的概念 :

  復(fù)制是將一組數(shù)據(jù)從一個數(shù)據(jù)源拷貝到多個數(shù)據(jù)源的技術(shù),是將一份數(shù)據(jù)發(fā)布到多個存儲站點上的有效方式。使用復(fù)制技術(shù),用戶可以將一份數(shù)據(jù)發(fā)布到多臺服務(wù)器上,從而使不同的服務(wù)器用戶都可以在權(quán)限的許可的范圍內(nèi)共享這份數(shù)據(jù)。復(fù)制技術(shù)可以確保分布在不同地點的數(shù)據(jù)自動同步更新,從而保證數(shù)據(jù)的一致性。

  SQL復(fù)制的基本元素包括

  出版服務(wù)器、訂閱服務(wù)器、分發(fā)服務(wù)器、出版物、文章

  SQL復(fù)制的工作原理

  SQLSERVER主要采用出版物、訂閱的方式來處理復(fù)制。源數(shù)據(jù)所在的服務(wù)器是出版服務(wù)器,負(fù)責(zé)發(fā)表數(shù)據(jù)。出版服務(wù)器把要發(fā)表的數(shù)據(jù)的所有改變情況的拷貝復(fù)制到分發(fā)服務(wù)器,分發(fā)服務(wù)器包含有一個分發(fā)數(shù)據(jù)庫,可接收數(shù)據(jù)的所有改變,并保存這些改變,再把這些改變分發(fā)給訂閱服務(wù)器

  SQLSERVER復(fù)制技術(shù)類型

  SQLSERVER提供了三種復(fù)制技術(shù),分別是:

  1、快照復(fù)制(呆會我們就使用這個)

  2、事務(wù)復(fù)制

  3、合并復(fù)制

  只要把上面這些概念弄清楚了那么對復(fù)制也就有了一定的理解。接下來我們就一步一步來實現(xiàn)復(fù)制的步驟。

  之一先來配置出版服務(wù)器

  (1)選中指定節(jié)點

  (2)從下拉菜單的子菜單中選擇命令

  (3)系統(tǒng)彈出一個對話框點然后看著提示一直操作到完成。

  (4)當(dāng)完成了出版服務(wù)器的設(shè)置以后系統(tǒng)會為該服務(wù)器的樹形結(jié)構(gòu)中添加一個復(fù)制監(jiān)視器。同時也生成一個分發(fā)數(shù)據(jù)庫(distribution)

  第二創(chuàng)建出版物

  (1)選中指定的服務(wù)器

  (2)從菜單的子菜單中選擇命令。此時系統(tǒng)會彈出一個對話框

  (3)選擇要創(chuàng)建出版物的數(shù)據(jù)庫,然后單擊

  (4)在的提示對話框中單擊系統(tǒng)就會彈出一個對話框。對話框上的內(nèi)容是復(fù)制的三個類型。我們現(xiàn)在選之一個也就是默認(rèn)的快照發(fā)布(其他兩個大家可以去看看幫助)

  (5)單擊系統(tǒng)要求指定可以訂閱該發(fā)布的數(shù)據(jù)庫服務(wù)器類型,SQLSERVER允許在不同的數(shù)據(jù)庫如ORACLE或ACCESS之間進(jìn)行數(shù)據(jù)復(fù)制。但是在這里我們選擇運(yùn)行”SQLSERVER2023″的數(shù)據(jù)庫服務(wù)器

  (6)單擊系統(tǒng)就彈出一個定義文章的對話框也就是選擇要出版的表

  (7)然后直到操作完成。當(dāng)完成出版物的創(chuàng)建后創(chuàng)建出版物的數(shù)據(jù)庫也就變成了一個共享數(shù)據(jù)庫。

  第三設(shè)計訂閱

  (1)選中指定的訂閱服務(wù)器

  (2)從下拉菜單中選擇子菜單的

  (3)按照單擊操作直到系統(tǒng)會提示檢查SQLSERVER代理服務(wù)的運(yùn)行狀態(tài),執(zhí)行復(fù)制操作的前提條件是SQLSERVER代理服務(wù)必須已經(jīng)啟動。

  (4)單擊。完成訂閱操作。

  完成上面的步驟其實復(fù)制也就是成功了。但是如何來知道復(fù)制是否成功了呢?這里可以通過這種方法來快速看是否成功。展開出版服務(wù)器下面的復(fù)制——發(fā)布內(nèi)容——右鍵發(fā)布內(nèi)容——屬性——擊活——狀態(tài)然后點立即運(yùn)行代理程序接著點代理程序?qū)傩該艋钫{(diào)度把調(diào)度設(shè)置為每一天發(fā)生,每一分鐘,在0:00:00和23:59:59之間。接下來就是判斷復(fù)制是否成功了打開  C:/ProgramFiles/MicrosoftSQLServer/MSSQL/REPLDATA/unc/XIAOWANGZI_database_database下面看是不是有一些以時間做為文件名的文件夾差不多一分中就產(chǎn)生一個。要是你還不信的話就打開你的數(shù)據(jù)庫看在訂閱的服務(wù)器的指定訂閱數(shù)據(jù)庫下看是不是看到了你剛才所發(fā)布的表—

  一個手工同步的方案

  –定時同步服務(wù)器上的數(shù)據(jù)

  –例子:

  –測試環(huán)境,SQLServer2023,遠(yuǎn)程服務(wù)器名:xz,用戶名為:sa,無密碼,測試數(shù)據(jù)庫:test

  –服務(wù)器上的表(查詢分析器連接到服務(wù)器上創(chuàng)建)

  createtable(idintprimarykey,numbervarchar(4),namevarchar(10))

  –以下在局域網(wǎng)(本機(jī)操作)

  –本機(jī)的表,state說明:null表示新增記錄,1表示修改過的記錄,0表示無變化的記錄

  ifexists(select*fromdbo.sysobjectswhereid=object_id(N”)andOBJECTPROPERTY(id,N’IsUserTable’)=1)

  droptable

  GO

  createtable  

  (idintidentity(1,1),numbervarchar(4),namevarchar(10),statebit)

  go

  –創(chuàng)建觸發(fā)器,維護(hù)state字段的值

  createtriggert_stateon

  afterupdate

  as

  updatesetstate=1

  fromajoininsertedbona.id=b.id

  wherea.stateisnotnull

  go

  –為了方便同步處理,創(chuàng)建鏈接服務(wù)器到要同步的服務(wù)器

  –這里的遠(yuǎn)程服務(wù)器名為:xz,用戶名為:sa,無密碼

  ifexists(select1frommaster..sysserverswheresrvname=’srv_lnk’)

  execsp_dropserver’srv_lnk’,’droplogins’

  go

  execsp_addlinkedserver’srv_lnk’,”,’SQLOLEDB’,’xz’

  execsp_addlinkedsrvlogin’srv_lnk’,’false’,null,’sa’

  go

  –創(chuàng)建同步處理的存儲過程

  ifexists(select*fromdbo.sysobjectswhereid=object_id(N’.  

  

‘)andOBJECTPROPERTY(id,N’IsProcedure’)=1)

  dropprocedure.

  GO

  createprocp_synchro

  as

  –setXACT_ABORTon

  –啟動遠(yuǎn)程服務(wù)器的MSDTC服務(wù)

  execmaster..xp_cmdshell’isql/S”xz”/U”sa”/P””/q”execmaster..xp_cmdshell”netstartmsdtc”,no_output”‘,no_output

  –啟動本機(jī)的MSDTC服務(wù)

  –execmaster..xp_cmdshell’netstartmsdtc’,no_output

  –進(jìn)行分布事務(wù)處理,如果表用標(biāo)識列做主鍵,用下面的方法

  –BEGINDISTRIBUTEDTRANSACTION

  –同步刪除的數(shù)據(jù)

  deletefromsrv_lnk.test.dbo.

  whereidnotin(selectidfrom)

  –同步新增的數(shù)據(jù)

  insertintosrv_lnk.test.dbo.

  selectid,number,namefromwherestateisnull

  –同步修改的數(shù)據(jù)

  updatesrv_lnk.test.dbo.set

  number=b.number,name=b.name

  fromsrv_lnk.test.dbo.a

  joinbona.id=b.id

  whereb.state=1

  –同步后更新本機(jī)的標(biāo)志

  updatesetstate=0whereisnull(state,1)=1

  –COMMITTRAN

  go

  –創(chuàng)建作業(yè),定時執(zhí)行數(shù)據(jù)同步的存儲過程

  ifexists(SELECT1frommsdb..sysjobswherename=’數(shù)據(jù)處理’)

  EXECUTEmsdb.dbo.sp_delete_job@job_name=’數(shù)據(jù)處理’

  execmsdb..sp_add_job@job_name=’數(shù)據(jù)處理’

  –創(chuàng)建作業(yè)步驟

  declare@sqlvarchar(800),@dbnamevarchar(250)

  select@sql=’execp_synchro’–數(shù)據(jù)處理的命令

  @dbname=db_name()–執(zhí)行數(shù)據(jù)處理的數(shù)據(jù)庫名

  execmsdb..sp_add_jobstep@job_name=’數(shù)據(jù)處理’,

  @step_name=’數(shù)據(jù)同步’,

  @subsystem=’TSQL’,

  @database_name=@dbname,

  @command=@sql,

  @retry_attempts=5,–重試次數(shù)

  @retry_interval=5–重試間隔

  –創(chuàng)建調(diào)度

  EXECmsdb..sp_add_jobschedule@job_name=’數(shù)據(jù)處理’,

  @name=’時間安排’,

  @freq_type=4,–每天

  @freq_interval=1,–每天執(zhí)行一次

  @active_start_time=點執(zhí)行

本地數(shù)據(jù)庫遠(yuǎn)程連接服務(wù)器數(shù)據(jù)庫,這個應(yīng)該就可以了,如果怕斷網(wǎng),做個服務(wù)器的定時備份,然后就可以了!

如何把本地數(shù)據(jù)庫導(dǎo)入到服務(wù)器數(shù)據(jù)庫中?

你本地的數(shù)據(jù)庫是在運(yùn)行的吧,這個就最方便的。\x0d\x0a你直接在本地輪迅打開 SQL Server Management Studio (mssql客戶端)同時連接本地及遠(yuǎn)程數(shù)據(jù)庫。\x0d\x0a選擇本地要同步的數(shù)據(jù)庫,任務(wù)–導(dǎo)出數(shù)據(jù)老桐此。。。然后直接就導(dǎo)入了遠(yuǎn)程的數(shù)侍迅據(jù)庫了。\x0d\x0a當(dāng)然也可以生成sql腳本,然后再執(zhí)行都 行。

關(guān)于數(shù)據(jù)庫 同步到服務(wù)器的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。

創(chuàng)新互聯(lián)服務(wù)器托管擁有成都T3+級標(biāo)準(zhǔn)機(jī)房資源,具備完善的安防設(shè)施、三線及BGP網(wǎng)絡(luò)接入帶寬達(dá)10T,機(jī)柜接入千兆交換機(jī),能夠有效保證服務(wù)器托管業(yè)務(wù)安全、可靠、穩(wěn)定、高效運(yùn)行;創(chuàng)新互聯(lián)專注于成都服務(wù)器托管租用十余年,得到成都等地區(qū)行業(yè)客戶的一致認(rèn)可。


分享標(biāo)題:數(shù)據(jù)庫同步到服務(wù)器,實現(xiàn)數(shù)據(jù)共享和備份(數(shù)據(jù)庫同步到服務(wù)器)
轉(zhuǎn)載源于:http://www.dlmjj.cn/article/dpessod.html