溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

應該如何備份及還原mysql數據

發布時間:2020-05-18 11:28:34 來源:網絡 閱讀:235 作者:三月 欄目:數據庫

下面一起來了解下應該如何備份及還原mysql數據,相信大家看完肯定會受益匪淺,文字在精不在多,希望應該如何備份及還原mysql數據這篇短內容是你想要的。

備份的不同分類:

                熱備份、溫備份和冷備份

                        熱備份:讀、寫不受影響;

                        溫備份:僅可以執行讀操作;

                        冷備份:離線備份;讀、寫操作均中止;

                物理備份和邏輯備份

                        物理備份:復制數據文件;原始數據在操作系統上呈什么樣,備份出來也是什么樣,適用

                                          于比較大型、重要、出現故障時要快速恢復的場景

                        邏輯備份:備份sql語句,恢復的時候執行一遍備份的sql語句,較為靈活,但恢復速度較

                                          慢,適用于小型、便于在其他云服務器上進行恢復的場景                       

                完全備份、增量備份和差異備份;

                        完全備份:備份全部數據;

                        增量備份:僅備份上次完全備份或增量備份以后變化的數據;

                        差異備份:僅備份上次完全備份以來變化的數據;

備份工具:

    1、通過復制對象相關文件的方式創建備份

        一般適用于myisam引擎表,只要將.frm、.MYD、.MYI這些文件復制保存就相當于進行了備份

        步驟:

    mysql>FLUSH TABLES tb_name WITH READ LOCK    #備份前對表進行只讀鎖定
    [root@localhost /]cp /the/path/to/data /the/path/to/backup
    mysql>UNLOCK TABLES         #釋放鎖

        這種備份方法不適用于Innodb表,當innodb_file_per_table設置為1時,復制表對象的相關文件.ibd不能達到備份的目的,因為表結構、所屬數據庫等信息仍存在于Innodb的系統表空間中。

    2、使用sql語句進行備份

mysql>SELECT * INTO OUTFILE '/path/to/somefile.txt' FROM tb_name [WHERE clause];

    3、使用mysqldump進行邏輯備份

        備份單個數據庫/表

mysqldump -uUSERNAME -p PASSWORD db_name [tb_name]> /path/to/backup/db_name.sql

        備份多個數據庫

mysqldump -uUSERNAME -p PASSWORD --databases db1 db2 > /path/to/backup/db1_db2.sql

        使用--tab輸出txt文件和sql文件,將數據和建表語句分開

mysqldump -uUSERNAME -p PASSWORD --tab=/path/to/backup db_name [tb_name]    #將數據庫的全部對象或特定的表導出到backup目錄下

    例1:備份數據庫jiaowu下的tutors表

應該如何備份及還原mysql數據

    查看/tmp/test2目錄

應該如何備份及還原mysql數據

    例2:備份整個數據庫

應該如何備份及還原mysql數據

    然后查看/tmp/test目錄

應該如何備份及還原mysql數據

    可以發現,數據庫中的每張表都生成兩個同名文件,.txt存儲表中的實際數據,.sql存儲的是sql語句(建表語句)

    查看一下tutors.txt這個文件

應該如何備份及還原mysql數據

可以看到,每條記錄輸出到一行上,列值之間用tab符隔開,如果希望自己能自定義輸出的格式,可以使用下面的選項

--fields-terminated-by=','

列值之間用逗號隔開

--fields-enclosed-by='"'列值使用雙引號引起來
--lines-terminated-by=‘\'指定\為行結束符,默認為換行符

應該如何備份及還原mysql數據

應該如何備份及還原mysql數據

可以看到,導出的tutors.txt列值之間以逗號分開,并使用雙引號引住,這樣可以方便以后數據導入回數據庫中

注意要點:

    當mysqldump沒有使用--tab時,其導出的sql文件中既有操作語句又有建表語句;當使用--tab時,其中txt文件保存數據,sql文件僅有建表語句。

數據庫的還原

  1、mysqldump沒使用--tab選項    

mysql>use db_name
mysql>source /path/to/backup/tb.sql     #這樣即可導入

   2、mysqldump使用--tab選項    

    1、使用.sql文件將表創建好

    mysql -uUSERNAME -p PASSWORD db_name < /path/to/backup/tb.sql

應該如何備份及還原mysql數據

    2、在數據庫中通過LOAD DATA INFILE語句來導入.txt文件到表中

mysql>LOAD DATA INFILE '/path/to/tb.txt' INTO TABLE tb_name [參數]

應該如何備份及還原mysql數據

創建冷備份

    1、查看正在使用的二進制日志

mysql>show master status;

應該如何備份及還原mysql數據

    2、進行二進制日志滾動

mysql>flush logs

   應該如何備份及還原mysql數據

 3、關閉mysql,備份數據目錄,開啟mysql即可

創建增量備份

    1、進行二進制日志滾動

    2、使用mysqlbinlog進行備份

mysqlbinlog /path/to/binlog/mysql-bin.0000xx > /path/to/backup/0000xx.sql

    (恢復時可以直接source或mysql命令(上面還原時有講到))

    說白了增量備份就是使用mysqlbinlog將上次備份后新生成的二進制日志備份到指定目錄


看完應該如何備份及還原mysql數據這篇文章后,很多讀者朋友肯定會想要了解更多的相關內容,如需獲取更多的行業信息,可以關注我們的行業資訊欄目。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女