Jquery中文網 www.2030036.live
Jquery中文網 >  數據庫  >  mysql  >  正文 MySQL實現實時備份的配置過程詳解

MySQL實現實時備份的配置過程詳解

發布時間:2017-12-12   編輯:www.2030036.live
jquery中文網為您提供MySQL實現實時備份的配置過程詳解等資源,歡迎您收藏本站,我們將為您提供最新的MySQL實現實時備份的配置過程詳解資源
MySQL實現實時備份沒有做過做過最多的就是定時備份了,我們今天一起來看看關于MySQL實現實時備份的配置過程了,希望例子能夠幫助到各位。

前面筆者在其他隨筆中有說過,公司數據庫選用的是免安裝版并且是在Windows上,等過段時間我會將數據庫遷移至Linux

因公司開發操作數據庫之多,如不及時備份,萬一操作失誤,恢復可就成難題了

此篇隨筆將介紹如何進行 MySQL 的實時備份

 

環境介紹

 

兩臺服務器進行主從同步復制(安裝可以通過google查詢相關資料或者看筆者的這篇免安裝版)

利用Windows腳本和Windows自帶的計劃任務,將主服務器進行實時備份(下面進行演示)

Maseter MySQL: 192.168.1.253

Slave    MySQL: 192.168.1.254

在主服務器上開啟二進制日志功能,設置唯一的服務器ID編號,這些設置需要重啟MySQL服務

在從服務器上設置唯一的服務器ID編號,這些設置需要重啟MySQL服務

在主服務器上為了不用從服務器創建可以讀取主服務器日志文件的用戶,或使用相同的統一用戶

在進行數據復制之前,需要記錄主服務器上二進制文件的位置的標記

在進行數據復制之前,保證從服務器和主服務器上的數據一致

回到頂部

 

主服務器的配置

在實際的環境中,可能在我們還沒有部署數據庫的同步前,數據庫中就已經存在大量的數據。所以,在操作數據庫的時候一定記住備份


mysqldump -u root -p --all-databases --lock-all-tables > G:/dbdump.sql
Enter password: ******

我們需要在主服務器上開啟二進制日志并設置服務器編號,服務器唯一編號是2的32次方減1之間的整數,根據自己的實際情況而設置

進行這些設置需要關閉MySQL數據庫并編輯my.ini或者my.cnf文件,然后在[mysqld]是指段添加相應的配置選項


C:\Users\Administrator>net stop mysql
MySQL 服務正在停止.
MySQL 服務已成功停止。 
[mysqld]
log-bin=mysql-bin
server-id=1 
C:\Users\Administrator>net start mysql
MySQL 服務正在啟動 .
MySQL 服務已經啟動成功。
為了使從服務器能夠同步復制,我們需要創建一個同步復制的用戶

執行數據復制時,所有的從服務器都需要使用用戶與密碼連接MySQL主服務器,所以在主服務器上必須存在至少一個用戶及相應的密碼提供從服務器來連接

但是這個用戶必須擁有"REPLICATION SLAVE" 權限,當然你可以給不同的從服務器創建不用的用戶與密碼,也可以使用統一的用戶與密碼

如果該用戶僅為數據庫復制所使用,則該用戶僅需要"REPLICATION SLAVE"權限即可

C:\Users\Administrator>mysql -u root -p
Enter password: ******
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.6.25 MySQL Community Server (GPL)
 
Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.
 
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
 
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> CREATE USER 'slave'@'%' IDENTIFIED BY 'slaveAdmin';
Query OK, 0 rows affected (0.02 sec)
 
mysql> GRANT REPLICATION SLAVE ON *.* TO 'slave'@'%';
Query OK, 0 rows affected (0.00 sec)
 
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)
 
mysql> exit
Bye
獲取主服務器二進制日志信息

 首先我們來了解一下二進制文件的基本信息,這些信息在對從服務器的設置需要用到,它包括服務器二進制文件名稱及當前日志記錄位置,這樣從服務器就可以知道哪里開始進行復制操作

當我們得到二進制文件名以及二進制當前記錄的位置時請牢記,在從服務器上會用到

從服務器的配置

 和主服務器一樣,需要配置my.ini或者my.cnf 文件,注意這里的從服務器ID編號


C:\Users\Administrator>net stop mysql
MySQL 服務正在停止.
MySQL 服務已成功停止。 
[mysqld]
server-id=2 
C:\Users\Administrator>net start mysql
MySQL 服務正在啟動 .
MySQL 服務已經啟動成功。


對于復制而言,MySQL從服務器二進制功能是不需要開啟的,當然也可以開啟從服務器上的二進制功能來實現數據備份與恢復

•在介紹里面我已經說到在進行數據復制之前,保證從服務器和主服務器上的數據一致,還記得我剛才將主服務器的MySQL進行備份嗎?! 可以將這備份還原到從服務器上面,這樣主從的數據就是一樣的了

 

mysql -u root -p < D:/dbdump.sql

 

Enter password: ******

 

•配置從服務器連接主服務器進行數據復制

 

1.其實數據復制的關鍵操作是配置從服務器去連接主服務器進行數據復制,我們需要告訴從服務器建立網絡連接所有必要的信息

2.使用 CHANGE MASTER TO 語句完成與主服務器的連接工作

 

   † MASTER_HOST 指定主服務器主機名或者Ip地址

 

   † MASTER_USER 為剛才在主服務器上創建的擁有復制權限的用戶

 

   † MASTER_PASSWORD 為改用戶的秘密

 

   †  MASTER_LOG_FILE 指定主服務器二進制日志文件名稱

 

   † MASTER_LOG_POS 指定主服務器二進制日志文件當前的位置

1.START LSAVE 開啟從服務器功能進行主從連接

2.SHOW SLAVE STATUS 查看從服務器狀態


mysql> CHANGE MASTER TO
    -> MASTER_HOST='192.168.1.253',
    -> MASTER_USER='slave',
    -> MASTER_PASSWORD='slaveAdmin',
    -> MASTER_LOG_FILE='mysql-bin.000004',
    -> MASTER_LOG_POS=9876212;
Query OK, 0 rows affected (0.00 sec) 
mysql> START SLAVE;
Query OK, 0 rows affected (0.00 sec)
mysql> SHOW SLAVE STATUS\G;
查看狀態時,下面兩個都要為 YES 說明才是正常運行狀態,如果IO為No 則檢查密碼或者從新寫入

查看狀態時,下面兩個都要為 YES 說明才是正常運行狀態,如果IO為No 則檢查密碼或者從新寫入

Slave_IO_Running:

Slave_SQL_Running:

現在當我們在主服務器上創建一個數據庫時,我們再到從服務器上查看,這時就可以看到已經把主服務器上新創建數據庫的同步過來了


mysql> create database vforbox;
Query OK, 1 row affected (0.00 sec)
 
mysql> show databases;
--------------------
| Database           |
--------------------
| information_schema |
| mysql              |
| performance_schema |
| test               |
| vforbox            |
--------------------
 
mysql> show databases;
--------------------
| Database           |
--------------------
| information_schema |
| mysql              |
| performance_schema |
| test               |
| vforbox            |
--------------------
Windows 定時備份數據庫腳本

上面介紹中已經提到用Windows腳本和Windows自帶的計劃任務,將主服務器進行實時備份

這里筆者獻上代碼,如有更好的腳本推薦請發至筆者的郵箱

新建一個 "mysql_auto_bak.bat"


@echo off
cls
color 3E
title

您可能感興趣的文章:
MySQL常用配置方法
centos5.4下mysql主從復制配置分享
MySQL實現實時備份的配置過程詳解
shell腳本備份mysql數據庫的實例解析
ubuntu下mysql配置
Mysql 備份與恢復實例教程
Linux cpio命令
mysqldump 導出發生Lost connection to MySQL server during query
Cobar基于MySQL的分布式數據庫服務中間件
自用linux備份腳本(網站文件+mysql)

[關閉]
888棋牌金花app 澳门三分彩是合法吗 股票指数基金 安徽福彩快三看走势图 广东11选5免费人工计划 秒速时时彩官方开奖 湖南体彩幸运赛车走势 手机彩票投注客户端 东莞配资 中国体育彩票中奖条件 10倍杠杆配资