定時同步mysql資料庫的簡單介紹

本文目錄一覽:

如何實現Mysql資料庫每天自動備份定時備份

利用UCache災備雲平台,可作為一個工具,在window伺服器現有架構不變的情況下,針對Mysql資料庫每天自動備份定時備份。

(1)新建備份任務

UCACHE災備雲控制台登錄賬號後:點擊【伺服器定時數據保護】–【數據備份】點擊【新建】按鈕,然後選要保護的對象(您的生產伺服器節點),選中對應的客戶端,選擇【文件系統】然後點擊【 下一步 】

(2)設置備份策略

選擇要進行備份的文件

(3)永久增量備份與數據保留設置

選擇完要過濾的數據之後點擊下一步,可進行下一步備份的高級功能選擇,各個選項說明如下:

【永久增量備份】開啟了永久增量備份每一次增量備份都會進行一次時間點合成形成新的一個永久增量時間點等效於完備時間點。

【數據保留策略】開啟數據保留策略一共有三種保留策略分別為數據保留期限、保留副本數、按備份策略的備份周期設置副本保留策略默認選中數據保留期限一年。可以設置保留完全副本的個數最大可設置1024個副本按備份策略的備份周期設置副本保留策略最大可設置99999個副本。

【傳輸和存儲加密】開啟傳輸加密與存儲加密選項開啟此功能的任務的數據在傳輸和存儲上都經過加密處理。一共有兩種加密方式AES256加密演算法、SM4加密演算法。

【數據壓縮】默認不開啟開啟該選項後默認啟用快速壓縮可選擇啟用強力壓縮

【重複數據刪除】勾選該選項可以啟動源端重複數據刪除的功能該選項在建立任務後不能通過修改任務的方式更改此屬性。指紋庫需要提前創建才能成功開啟重刪功能

最後新建完成

目錄和文件內容,可以全選和分選,還可以利用UCACHE災備雲控制台的「文件過濾」「目錄過濾」「時間過濾」功能進行不必要的數據不進行備份策略添加。為了備份效率不建議兩個任務包含同一文件。

(4)設置郵件告警

備份執行完畢,會得到系統的執行反饋,也可以設定告警監控策略,進行郵件監控

MySQL 資料庫怎麼同步

MySQL數據同步主要有三種方式:

1.利用MySQL自身的資料庫同步功能

2.利用MySQL資料庫的特性(資料庫存在固頂目錄,並且以文件形式存儲),進行資料庫目錄同步以達到數據同步目的

3.利用專用的MySQL資料庫同步軟體

1.利用MySQL自身的資料庫同步功能(下面參考自網上的文章,寫的非常詳細了)

MySQL從3.23.15版本以後提供資料庫複製功能。利用該功能可以實現兩個資料庫同步,主從模式,互相備份模式的功能.

資料庫同步複製功能的設置都在mysql的設置文件中體現。mysql的配置文件(一般是my.cnf),在unix環境下在/etc/mysql/my.cnf或者在mysql用戶的home目錄下的my.cnf。

windows環境中,如果c:根目錄下有my.cnf文件則取該配置文件。當運行mysql的winmysqladmin.exe工具時候,該工具會把c:根目錄下的my.cnf命名為mycnf.bak。並在winnt目錄下創建my.ini。mysql伺服器啟動時候會讀該配置文件。所以可以把my.cnf中的內容拷貝到my.ini文件中,用my.ini文件作為mysql伺服器的配置文件。

設置方法:

設置範例環境:

操作系統:window2000professional

mysql:4.0.4-beta-max-nt-log

Aip:10.10.10.22

Bip:10.10.10.53

A:設置

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

GRANTFILEON*.*TObackup@’10.10.10.53’IDENTIFIEDBY『1234』

2.增加一個資料庫作為同步資料庫:

createdatabasebackup

B:設置

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

GRANTFILEON*.*TObackup@’10.10.10.22’IDENTIFIEDBY『1234』

2.增加一個資料庫作為同步資料庫:

createdatabasebackup

主從模式:A-B

A為master

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

server-id=1

log-bin

#設置需要記錄log可以設置log-bin=c:mysqlbakmysqllog設置日誌文件的目錄,

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

binlog-do-db=backup#指定需要日誌的資料庫

重起資料庫服務。

用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預設重試間隔60秒

replicate-do-db=backup告訴slave只做backup資料庫的更新

重起資料庫

用showslavestatus看同步配置情況。

注意:由於設置了slave的配置信息,mysql在資料庫目錄下生成master.info

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

雙機互備模式。

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

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

master-host=10.10.10.53

master-user=backup

master-password=1234

replicate-do-db=backup

master-connect-retry=10

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

log-bin=c:mysqllogmysqllog

binlog-do-db=backup

注意:當有錯誤產生時*.err日誌文件。同步的線程退出,當糾正錯誤後要讓同步機制進行工作,運行slavestart

重起AB機器,則可以實現雙向的熱備。

測試:

向B批量插入大數據量表AA(1872000)條

A資料庫每秒鐘可以更新2500條數據。

2.資料庫目錄同步,方法和文件同步一樣,設置好需要同步的兩個資料庫目錄就可以了!

缺點很明顯,數據同步只能單向進行,可以作為備份方案

3.用專用的MySQL同步軟體進行同步

這方面的軟體有SQLBalance和MyReplicator,優點是方便直觀,還有很多爭強功能!

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

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

4.關於MySQL論壇的數據同步

由於數據來源的不可控制(不好表達),論壇數據是實時的,而且還要考慮來自鏡像論壇的數據,如何實現鏡像論壇與母論壇數據同步呢?

用1中介紹的MySQL自帶的資料庫同步功能互相備份模式就可以實現的!

不過,具體的應用我沒有測試!穩定性不敢保證!

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

比如鏡像論壇數據同步:

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

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

MSSQL

MSSQL數據同步利用資料庫複製技術實現數據同步更新(來自網路,也是非常完美的教程)

複製的概念

複製是將一組數據從一個數據源拷貝到多個數據源的技術,是將一份數據發布到多個存儲站點上的有效方式。使用複製技術,用戶可以將一份數據發布到多台伺服器上,從而使不同的伺服器用戶都可以在許可權的許可的範圍內共享這份數據。複製技術可以確保分布在不同地點的數據自動同步更新,從而保證數據的一致性。

SQL複製的基本元素包括

出版伺服器、訂閱伺服器、分發伺服器、出版物、文章

SQL複製的工作原理

SQLSERVER主要採用出版物、訂閱的方式來處理複製。源數據所在的伺服器是出版伺服器,負責發表數據。出版伺服器把要發表的數據的所有改變情況的拷貝複製到分發伺服器,分發伺服器包含有一個分發資料庫,可接收數據的所有改變,並保存這些改變,再把這些改變分發給訂閱伺服器

SQLSERVER複製技術類型

SQLSERVER提供了三種複製技術,分別是:

1、快照複製(呆會我們就使用這個)

2、事務複製

3、合併複製

只要把上面這些概念弄清楚了那麼對複製也就有了一定的理解。接下來我們就一步一步來實現複製的步驟。

第一先來配置出版伺服器

(1)選中指定[伺服器]節點

(2)從[工具]下拉菜單的[複製]子菜單中選擇[發布、訂閱伺服器和分發]命令

(3)系統彈出一個對話框點[下一步]然後看著提示一直操作到完成。

(4)當完成了出版伺服器的設置以後系統會為該伺服器的樹形結構中添加一個複製監視器。同時也生成一個分發資料庫(distribution)

第二創建出版物

(1)選中指定的伺服器

(2)從[工具]菜單的[複製]子菜單中選擇[創建和管理髮布]命令。此時系統會彈出一個對話框

(3)選擇要創建出版物的資料庫,然後單擊[創建發布]

(4)在[創建發布嚮導]的提示對話框中單擊[下一步]系統就會彈出一個對話框。對話框上的內容是複製的三個類型。我們現在選第一個也就是默認的快照發布(其他兩個大家可以去看看幫助)

(5)單擊[下一步]系統要求指定可以訂閱該發布的資料庫伺服器類型,SQLSERVER允許在不同的資料庫如ORACLE或ACCESS之間進行數據複製。但是在這裡我們選擇運行”SQLSERVER2000″的資料庫伺服器

(6)單擊[下一步]系統就彈出一個定義文章的對話框也就是選擇要出版的表

(7)然後[下一步]直到操作完成。當完成出版物的創建後創建出版物的資料庫也就變成了一個共享資料庫。

第三設計訂閱

(1)選中指定的訂閱伺服器

(2)從[工具]下拉菜單中選擇[複製]子菜單的[請求訂閱]

(3)按照單擊[下一步]操作直到系統會提示檢查SQLSERVER代理服務的運行狀態,執行複製操作的前提條件是SQLSERVER代理服務必須已經啟動。

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

完成上面的步驟其實複製也就是成功了。但是如何來知道複製是否成功了呢?這裡可以通過這種方法來快速看是否成功。展開出版伺服器下面的複製——發布內容——右鍵發布內容——屬性——擊活——狀態然後點立即運行代理程序接著點代理程序屬性擊活調度把調度設置為每一天發生,每一分鐘,在0:00:00和23:59:59之間。接下來就是判斷複製是否成功了打開C:/ProgramFiles/MicrosoftSQLServer/MSSQL/REPLDATA/unc/XIAOWANGZI_database_database下面看是不是有一些以時間做為文件名的文件夾差不多一分中就產生一個。要是你還不信的話就打開你的資料庫看在訂閱的伺服器的指定訂閱資料庫下看是不是看到了你剛才所發布的表—

一個手工同步的方案

–定時同步伺服器上的數據

–例子:

–測試環境,SQLServer2000,遠程伺服器名:xz,用戶名為:sa,無密碼,測試資料庫:test

–伺服器上的表(查詢分析器連接到伺服器上創建)

createtable[user](idintprimarykey,numbervarchar(4),namevarchar(10))

go

–以下在區域網(本機操作)

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

ifexists(select*fromdbo.sysobjectswhereid=object_id(N'[user]’)andOBJECTPROPERTY(id,N’IsUserTable’)=1)

droptable[user]

GO

createtable[user](idintidentity(1,1),numbervarchar(4),namevarchar(10),statebit)

go

–創建觸發器,維護state欄位的值

createtriggert_stateon[user]

afterupdate

as

update[user]setstate=1

from[user]ajoininsertedbona.id=b.id

wherea.stateisnotnull

go

–為了方便同步處理,創建鏈接伺服器到要同步的伺服器

–這裡的遠程伺服器名為: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

–創建同步處理的存儲過程

ifexists(select*fromdbo.sysobjectswhereid=object_id(N'[dbo].[p_synchro]’)andOBJECTPROPERTY(id,N’IsProcedure’)=1)

dropprocedure[dbo].[p_synchro]

GO

createprocp_synchro

as

–setXACT_ABORTon

–啟動遠程伺服器的MSDTC服務

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

–啟動本機的MSDTC服務

–execmaster..xp_cmdshell’netstartmsdtc’,no_output

–進行分布事務處理,如果表用標識列做主鍵,用下面的方法

–BEGINDISTRIBUTEDTRANSACTION

–同步刪除的數據

deletefromsrv_lnk.test.dbo.[user]

whereidnotin(selectidfrom[user])

–同步新增的數據

insertintosrv_lnk.test.dbo.[user]

selectid,number,namefrom[user]wherestateisnull

–同步修改的數據

updatesrv_lnk.test.dbo.[user]set

number=b.number,name=b.name

fromsrv_lnk.test.dbo.[user]a

join[user]bona.id=b.id

whereb.state=1

–同步後更新本機的標誌

update[user]setstate=0whereisnull(state,1)=1

–COMMITTRAN

go

–創建作業,定時執行數據同步的存儲過程

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

EXECUTEmsdb.dbo.sp_delete_job@job_name=’數據處理’

execmsdb..sp_add_job@job_name=’數據處理’

–創建作業步驟

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

select@sql=’execp_synchro’–數據處理的命令

,@dbname=db_name()–執行數據處理的資料庫名

execmsdb..sp_add_jobstep@job_name=’數據處理’,

@step_name=’數據同步’,

@subsystem=’TSQL’,

@database_name=@dbname,

@command=@sql,

@retry_attempts=5,–重試次數

@retry_interval=5–重試間隔

–創建調度

EXECmsdb..sp_add_jobschedule@job_name=’數據處理’,

@name=’時間安排’,

@freq_type=4,–每天

@freq_interval=1,–每天執行一次

@active_start_time=00000–0點執行

go

如何對MySQL資料庫中的數據進行實時同步

如何對MySQL資料庫中的數據進行實時同步

實現兩個Mysql資料庫之間同步同步原理:

MySQL 為了實現replication 必須打開bin-log 項,也是打開二進位的MySQL 日誌記錄選項。MySQL 的bin log 二

進位日誌,可以記錄所有影響到資料庫表中存儲記錄內容的sql 操作,如insert / update / delete 操作,而不記錄

select 這樣的操作。因此,我們可以通過二進位日誌把某一時間段內丟失的數據可以恢復到資料庫中(如果二進位日

志中記錄的日誌項,包涵資料庫表中所有數據,那麼, 就可以恢複本地資料庫的全部數據了)。 而這個二進位日誌,

如果用作遠程資料庫恢復,那就是replication 了。這就是使用replication 而不用sync 的原因。這也是為什麼要設

置bin-log = 這個選項的原因。

請教mysql資料庫定時同步方案

方法一:

在 SQL Server 裡面, 創建一個 針對 MySQL 的資料庫鏈接。

  然後 在 SQL Server 裡面, 設定一個 資料庫作業。  定時向 MySQL資料庫鏈接 同步數據。

方法二:

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/227438.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-09 16:29
下一篇 2024-12-09 16:29

相關推薦

  • 如何修改mysql的埠號

    本文將介紹如何修改mysql的埠號,方便開發者根據實際需求配置對應埠號。 一、為什麼需要修改mysql埠號 默認情況下,mysql使用的埠號是3306。在某些情況下,我們需…

    編程 2025-04-29
  • Python 常用資料庫有哪些?

    在Python編程中,資料庫是不可或缺的一部分。隨著互聯網應用的不斷擴大,處理海量數據已成為一種趨勢。Python有許多成熟的資料庫管理系統,接下來我們將從多個方面介紹Python…

    編程 2025-04-29
  • Python簡單數學計算

    本文將從多個方面介紹Python的簡單數學計算,包括基礎運算符、函數、庫以及實際應用場景。 一、基礎運算符 Python提供了基礎的算術運算符,包括加(+)、減(-)、乘(*)、除…

    編程 2025-04-29
  • openeuler安裝資料庫方案

    本文將介紹在openeuler操作系統中安裝資料庫的方案,並提供代碼示例。 一、安裝MariaDB 下面介紹如何在openeuler中安裝MariaDB。 1、更新軟體源 sudo…

    編程 2025-04-29
  • Python滿天星代碼:讓編程變得更加簡單

    本文將從多個方面詳細闡述Python滿天星代碼,為大家介紹它的優點以及如何在編程中使用。無論是剛剛接觸編程還是資深程序員,都能從中獲得一定的收穫。 一、簡介 Python滿天星代碼…

    編程 2025-04-29
  • Python海龜代碼簡單畫圖

    本文將介紹如何使用Python的海龜庫進行簡單畫圖,並提供相關示例代碼。 一、基礎用法 使用Python的海龜庫,我們可以控制一個小海龜在窗口中移動,並利用它的「畫筆」在窗口中繪製…

    編程 2025-04-29
  • Python操作MySQL

    本文將從以下幾個方面對Python操作MySQL進行詳細闡述: 一、連接MySQL資料庫 在使用Python操作MySQL之前,我們需要先連接MySQL資料庫。在Python中,我…

    編程 2025-04-29
  • 資料庫第三範式會有刪除插入異常

    如果沒有正確設計資料庫,第三範式可能導致刪除和插入異常。以下是詳細解釋: 一、什麼是第三範式和範式理論? 範式理論是關係資料庫中的一個規範化過程。第三範式是範式理論中的一種常見形式…

    編程 2025-04-29
  • MySQL遞歸函數的用法

    本文將從多個方面對MySQL遞歸函數的用法做詳細的闡述,包括函數的定義、使用方法、示例及注意事項。 一、遞歸函數的定義 遞歸函數是指在函數內部調用自身的函數。MySQL提供了CRE…

    編程 2025-04-29
  • Python櫻花樹代碼簡單

    本文將對Python櫻花樹代碼進行詳細的闡述和講解,幫助讀者更好地理解該代碼的實現方法。 一、簡介 櫻花樹是一種圖形效果,它的實現方法比較簡單。Python中可以通過turtle這…

    編程 2025-04-28

發表回復

登錄後才能評論