mysql自動備份與還原

 

1、修改配置文件:#vim /etc/my.cnf

      在[mysqld]的最後面加上

       log-bin=binlog    ------------------------------------------------------------->打開binblog功能

       log-bin-index=binlog.index------------------------------------------------>規定索引文件

       sync_binlog=0----------------------------------------------------------------->數據先寫到內存再寫到文件

       重啓mysql服務:#service mysqld restart

2、截取/etc/passwd文件中的用戶名,UID,GID,家目錄到文件/tmp/mydata

       cat /etc/passwd | awk -F: ‘{print $1,$3,$4,$6}’>/tmp/mydata

3、將文件/tmp/mydata導入數據庫

        #mysql  -u  root  -h localhost  -p   --------------->回車進入數據庫,默認沒有密碼

        mysql>create database  mybinlog;------------------------>創建數據庫mybinlog

        mysql>create table mybinlog.a  (name char(10),uid int,gid int,homedir char(10));------------>創建表

        mysql>load data infile '/tmp/mydata' into table mybinlog.a;---------------------------->向表內加載數據

4、添加計劃任務,週日全備份,週一到週六增量備份,每天通過flush執行binlog

        #crontab -e

      * 0 * * 7 /usr/bin/mysqldump mybinlog > /tmp/binlog.bak

      * 0 * * 1-6/1  /usr/bin/mysql  -e  'flush logs'

5、恢復週三之前備份,根據查看at進行時間點恢復
  1)刪除所有數據
     2)然後恢復第一週的數據,再恢復週一的數據,一次恢復到週三的數據
      mysqlbinlog <binlog文件位置>
      mysqlbinglog --start-position <開始的at號> --stop-position <結束的at號> <binlog文件位置>

如何用shell腳本實現呢?

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章