日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql双机热备

發布時間:2023/12/10 数据库 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql双机热备 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

MySQL雙機熱備

目錄:

1、說明

2、數據手工同步

3、修改主數據庫配置文件

4、修改從數據庫配置文件

5、主數據庫添加備份用戶

6、從數據庫設置為Slave

7、驗證

?

1、說明

? ? 1)數據庫版本要高于5.1

  2)從數據庫的版本要 >= 主數據庫服務器的版本

  3)數據庫操作所用工具為 :Navicat for MySQL

  4)主數據庫IP:192.168.1.105

    從數據庫IP:192.168.1.103

2、數據手工同步

? ? 目的:自動同步前,保證兩個數據庫的數據相同。

  1)主數據(192.168.1.105)庫導出要備份的數據,示意圖如下:

  

  

  2)從數據庫(192.168.1.103)導入主數據庫的備份數據,示意圖如下:

  

  

3、修改主數據庫配置文件

  1)找到配置文件(主機IP:192.168.1.105)

    5.6默認在數據文件夾中,名稱為my.ini(注意:不是在程序文件夾中,程序文件夾中的配置文件名為my-default.ini,修改后不起作用

D:\ProgramData\MySQL\MySQL Server 5.6\my.ini

??????? 5.5修改安裝文件中夾中的my.ini

????????? E:\MySQL\MySQL Server 5.5\my.ini

  2)修改配置文件,(最好備份一下原來的配置文件)

    左邊為原來的文件,右邊為修改后的文件

  [mysqld]?MySql5.5要配置在這個節點下)

server_id =?105?(設置問IP的最后一位即可)

log_bin=mysql-bin?(二進制日志文件名稱)

binlog-do-db =childrendb (要備份的數據庫名稱)

    log_bin_trust_function_creators=TRUE?(若涉及及同步函數或者存儲過程需要配置,否則主備會產生異常不能同步?

    示意圖如下:

    

  3)重啟服務器

    

4、修改從數據庫配置文件

  1)找到從數據庫的配置文件(主機IP:192.168.1.103)

  2)修改配置文件

    左邊為原來的文件,右邊為修改后的文件

    server_id = 103 (設置問IP的最后一位即可)

    示意圖如下:

    

  3)重啟服務器

5、主數據庫添加備份用戶

  1)選擇運行SQL文件窗口

  

  2)運行命令 

grantreplication slave on*.*to'kimmadbsyn'@'%' identified by'kimma2016';?

  作用:只賦予這個用戶 “主從復制” 權限

  示意圖如下:

  

  3)這個用戶用于從服務器同步數據。

6、從數據庫設置為Slave

  1)查詢主服務器(192.168.1.105)的日志名稱和pos:

    命令行:

show master status;

    示意圖如下:

    

  2)從數據庫服務器(192.168.1.103)打開運行命令界面,并輸入以下內容:

  命令行:

change master to

master_host='192.168.221.29',?
master_user='kimmadbsyn',?

master_password='kimma2016',?

master_log_file='mysql-log.000001',?

master_log_pos=331;

  說明:

  master_host:主服務器的IP地址?
  master_user:主服務器設置的備份用戶
  master_password:主服務器備份用戶密碼
  master_log_file:主服務器的日志名稱
  master_log_pos:主服務器的位置

  示意圖如下:

  

  3)開啟Slave

    輸入命令

start slave;

?

7、驗證

  1)查詢從服務器

  命令:

show slave status;

  

  2)添加一個表和數據后,驗證一下是否同步到從服務器。

?

?

配置參數說明

Server-id

ID值唯一的標識了復制群集中的主從服務器,因此它們必須各不相同。Master_id必須為12321之間的一個正整數值,slave_id值必須為22321之間的一個正整數值。

Log-bin

表示打開binlog,打開該選項才可以通過I/O寫到Slaverelay-log,也是可以進行replication的前提。

Binlog-do-db

表示需要記錄二進制日志的數據庫。如果有多個數據可以用逗號分隔,或者使用多個binlog-do-dg選項。

Binglog-ingore-db

表示不需要記錄二進制日志的數據庫,如果有多個數據庫可用逗號分隔,或者使用多binglog-ignore-db選項。

Replicate-do-db

表示需要同步的數據庫,如果有多個數據可用逗號分隔,或者使用多個replicate-do-db選項。

Replicate-ignore-db

表示不需要同步的數據庫,如果有多個數據庫可用逗號分隔,或者使用多個replicate-ignore-db選項。

Master-connect-retry

master-connect-retry=n表示從服務器與主服務器的連接沒有成功,則等待n秒(s)后再進行管理方式(默認設置是60s)。如果從服務器存在mater.info文件,它將忽略些選項。

Log-slave-updates

配置從庫上的更新操作是否寫入二進制文件,如果這臺從庫,還要做其他從庫的主庫,那么就需要打這個參數,以便從庫的從庫能夠進行日志同步。

Slave-skip-errors

在復制過程,由于各種原因導致binglo中的sql出錯,默認情況下,從庫會停止復制,要用戶介入。可以設置slave-skip-errors來定義錯誤號,如果復制過程中遇到的錯誤是定義的錯誤號,便可以路過。如果從庫是用來做備份,設置這個參數會存在數據不一致,不要使用。如果是分擔主庫的查詢壓力,可以考慮。

Sync_binlog=1 Or N

Sync_binlog的默認值是0,這種模式下,MySQL不會同步到磁盤中去。這樣的話,Mysql依賴操作系統來刷新二進制日志binary log,就像操作系統刷新其他文件的機制一樣。因此如果操作系統或機器(不僅僅是Mysql服務器)崩潰,有可能binlog中最后的語句丟失了。要想防止這種情況,可以使用sync_binlog全局變量,使binlog在每N次binlog寫入后與硬盤同步。當sync_binlog變量設置為1是最安全的,因為在crash崩潰的情況下,你的二進制日志binary log只有可能丟失最多一個語句或者一個事務。但是,這也是最慢的一種方式(除非磁盤有使用帶蓄電池后備電源的緩存cache,使得同步到磁盤的操作非常快)。

即使sync_binlog設置為1,出現崩潰時,也有可能表內容和binlog內容之間存在不一致性。如果使用InnoDB表,Mysql服務器處理COMMIT語句,它將整個事務寫入binlog并將事務提交到InnoDB中。如果在兩次操作之間出現崩潰,重啟時,事務被InnoDB回滾,但仍然存在binlog中。可以用-innodb-safe-binlog選項來增加InnoDB表內容和binlog之間的一致性。(注釋:在Mysql 5.1版本中不需要-innodb-safe-binlog;由于引入了XA事務支持,該選項作廢了),該選項可以提供更大程度的安全,使每個事務的binlog(sync_binlog=1)和(默認情況為真)InnoDB日志與硬盤同步,該選項的效果是崩潰后重啟時,在滾回事務后,Mysql服務器從binlog剪切回滾的InnoDB事務。這樣可以確保binlog反饋InnoDB表的確切數據等,并使從服務器保持與主服務器保持同步(不接收回滾的語句)。

Auto_increment_offsetAuto_increment_increment

Auto_increment_incrementauto_increment_offset用于主-主服務器(master-to-master)復制,并可以用來控制AUTO_INCREMENT列的操作。兩個變量均可以設置為全局或局部變量,并且假定每個值都可以為165,535之間的整數值。將其中一個變量設置為0會使該變量為1

這兩個變量影響AUTO_INCREMENT列的方式:auto_increment_increment控制列中的值的增量值,auto_increment_offset確定AUTO_INCREMENT列值的起點。

如果auto_increment_offset的值大于auto_increment_increment的值,則auto_increment_offset的值被忽略。例如:表內已有一些數據,就會用現在已有的最大自增值做為初始值。

?

?

總結

以上是生活随笔為你收集整理的mysql双机热备的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。