啟用二進(jìn)制日志文件
vim /etc/my.cnf 配置文件位置及文件名根據(jù)實(shí)際情況確定
清理二進(jìn)制日志文件
show master logs; 查看二進(jìn)制日志文件列表
完全備份,并還原到最新?tīng)顟B(tài)(mysqldump)
前提條件:?jiǎn)⒂枚M(jìn)制日志,并單獨(dú)存放。在mysql數(shù)據(jù)丟失時(shí),可以還原最新備份到丟失時(shí)刻的數(shù)據(jù)
mysqldump -A --single-transaction --master-data=1 > /data/backup/all_mysql.sql
完全備份數(shù)據(jù)庫(kù)文件,并存放多份到安全的地方
mysql> insert TABLENAME(col_name,...)value(value,...)
3 數(shù)據(jù)庫(kù)文件丟失
service mysqld stop
5 查看完全備份時(shí)二進(jìn)制日志備份的最后位置,實(shí)驗(yàn)時(shí)備份的最后位置為:CHANGE MASTER TO MASTER_LOG_FILE=’mariadb.000001′, MASTER_LOG_POS=8944;
-- MySQL dump 10.16 Distrib 10.2.23-MariaDB, for Linux (x86_64) -- -- Host: localhost Database: -- ------------------------------------------------------ -- Server version 10.2.23-MariaDB-log /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; /*!40101 SET NAMES utf8 */; /*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */; /*!40103 SET TIME_ZONE='+00:00' */; /*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; /*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; /*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; /*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; -- -- Position to start replication or point-in-time recovery from -- -- CHANGE MASTER TO MASTER_LOG_FILE='mariadb.000001', MASTER_LOG_POS=8944; -- -- GTID to start replication from -- /data/backup/all_2019-05-06.sql . .
重啟mysql服務(wù):
service mysqld restart
登錄mysql :
mysql -uroot -p
臨時(shí)關(guān)閉二進(jìn)制日志,還原完全備份:
mysql> set sql_log_bin=off; mysql> soruce /data/backup/all_mysql.sql
6 還原沒(méi)有備份的新數(shù)據(jù)
mysqlbinlog --start-postion=8944 /data/bin/mariadb.000001 > /data/backup/inc.sql
在原終端中繼續(xù)還原
mysql> soruce /data/backup/inc.sql
到此已經(jīng)還原全部數(shù)據(jù)