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

歡迎訪問 生活随笔!

生活随笔

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

数据库

第五篇:Mysql的数据备份与恢复---------

發布時間:2025/4/16 数据库 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 第五篇:Mysql的数据备份与恢复--------- 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一 ,數據備份與恢復

步驟一:使用mysqldump進行邏輯備份

1)備份MySQL服務器上的所有庫

將所有的庫備份為mysql-all.sql文件:

  • [root@dbsvr1 ~]# mysqldump -u root -p --all-databases > /root/alldb.sql
  • Enter password:? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //驗證口令
  • [root@dbsvr1 mysql]# file /root/alldb.sql ????????//確認備份文件類型
  • 查看備份文件alldb.sql的部分內容:

    # grep -vE '^/|^-|^$' /root/alldb.sql ?| head -20

    2)只備份指定的某一個庫

    將userdb庫備份為userdb.sql文件:

  • [root@dbsvr1 ~]#?# mysqldump -u root -p jingcaiwang > jingcaiwang.sql
  • Enter password: ????????????????????????????????//驗證口令
  • 查看備份文件userdb.sql的部分內容:

    3)同時備份指定的多個庫

    同時備份mysql、userdb庫,保存為mysql+userdb.sql文件:

  • [root@dbsvr1 ~]# mysqldump -u root -p -B mysql userdb > mysql+test+userdb.sql
  • Enter password: ????????????????????????????????//驗證口令
  • 查看備份文件userdb.sql的部分內容:

  • [root@dbsvr1 ~]# grep '^CREATE DATA' /root/mysql+userdb.sql
  • ?

    ?

    步驟二:使用mysql命令從備份中恢復數據庫、表

    以恢復userdb庫為例,可參考下列操作。通常不建議直接覆蓋舊庫,而是采用建立新庫并導入邏輯備份的方式執行恢復,待新庫正常后即可廢棄或刪除舊庫。

    1)創建名為userdb2的新庫

    mysql> create database userdb2;

    ?

    2)導入備份文件,在新庫中重建表及數據

  • [root@dbsvr1 ~]# mysql -u root -p userdb2 < /root/userdb.sql
  • Enter password: ????????????????????????????????//驗證口令
  • eg:

    # mysql -uroot -p jingcaiwang < /root/jingcaiwang-v2.sql? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //使用備份數據導入

    3)確認新庫正常,啟用新庫

  • mysql> USE userdb2; ????????????????????????????//切換到新庫
  • mysql> show tables;
  • 4)廢棄或刪除舊庫

  • mysql> DROP DATABASE userdb;
  • -----------------------------------------------------------------------------------------------------------

    二 ,使用binlog日志

    步驟一:啟用binlog日志

    1)調整/etc/my.cnf配置,并重啟服務

  • [root@dbsvr1 ~]# vim /etc/my.cnf
  • [mysqld]
  • .. ..
  • log-bin-index=mysql-bin ????????????????????????????//啟用二進制日志,并指定前綴
  • server_id=1
  • binlog_format=STATEMENT
  • //在Mysql5.7中,binlog日志格式默認為ROW,但它不記錄sql語句上下文相關信息。需要將binlog日志格式修改為STATEMENT
  • .. ..
  • [root@dbsvr1 ~]# systemctl restart mysqld.service
  • 2)確認binlog日志文件

    新啟用binlog后,每次啟動MySQl服務都會新生成一份日志文件:

  • [root@dbsvr1 ~]# ls /var/lib/mysql/mysql-bin.*
  • /var/lib/mysql/mysql-bin.000001 /var/lib/mysql/mysql-bin.index
  • ?

    步驟二:利用binlog日志重做數據庫操作

    1)執行數據庫表添加操作

    創建db1·庫tb1表,表結構自定義:

  • mysql> CREATE DATABASE db1;
  • ?
  • mysql> USE db1;
  • Database changed
  • mysql> CREATE TABLE tb1(
  • -> id int(4) NOT NULL,name varchar(24)
  • -> );
  • 步驟三:通過binlog日志恢復表記錄

    binlog會記錄所有的數據庫、表更改操作,所以可在必要的時候重新執行以前做過的一部分數據操作,但對于啟用binlog之前已經存在的庫、表數據將不適用。

    根據上述“恢復被刪除的3條表記錄”的需求,應通過mysqlbinlog工具查看相關日志文件,找到刪除這些表記錄的時間點,只要恢復此前的SQL操作(主要是插入那3條記錄的操作)即可。

    1)查看mysql-bin.000002日志內容

    2) 執行指定Pos節點范圍內的sql命令恢復數據

    根據上述日志分析,只要恢復從2014.01.12 20:12:14到2014.01.12 20:13:50之間的操作即可??赏ㄟ^mysqlbinlog指定時間范圍輸出,結合管道交給msyql命令執行導入重做:

  • [root@dbsvr1 ~]# mysqlbinlog \
  • --start-datetime="2017-04-12 12:06:55" \
  • --stop-datetime="2017-04-12 12:07:23" \
  • /var/lib/mysql/mysql-bin.000002 | mysql -u root -p
  • Enter password: ???????????????????????????????? //驗證口令
  • ?

    《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

    總結

    以上是生活随笔為你收集整理的第五篇:Mysql的数据备份与恢复---------的全部內容,希望文章能夠幫你解決所遇到的問題。

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