溫馨提示×

溫馨提示×

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

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

mysql如何備份與恢復數據

發布時間:2020-06-04 14:22:03 來源:網絡 閱讀:282 作者:三月 欄目:數據庫

下文我給大家簡單講講關于mysql如何備份與恢復數據,大家之前了解過相關類似主題內容嗎?感興趣的話就一起來看看這篇文章吧,相信看完mysql如何備份與恢復數據對大家多少有點幫助吧。

mysql物理備份與邏輯備份

mysql物理備份:
mysql物理備份指拷貝整個數據庫數據存放的目錄文件(默認在/data/db_data目錄中)
特點:
    簡單,速度快,但不適合memory存儲引擎(數據不保存到硬盤上),主要針對MyISAM存儲引擎,可通過scp,cp,tar等文件備份工具實現,或者mysql自帶的 mysqlhotcopy
缺點:
    對應innodb的存儲引擎需要mysql企業版的備份工具mysqlbackup
    
mysql邏輯備份:
通過獲取數據庫結構與內容來保存數據
優點:
    可以針對任何存儲引擎,在線備份,mysql自帶工具mysqldump
缺點:
    速度慢(獲取數據,并轉換成指定的格式),體積大,

mysql線上備份與線下備份

mysql線上備份
    不需要關閉mysql云服務器,適當的鎖表可以有效的保證備份的完整性
    
線下備份:
    需要關閉mysql云服務器,一般發生在從庫中,以防止,主庫的正常工作
    
遠程備份與本地備份
    遠程備份工具:mysqldump
    本地備份工具:mysqldump,mysqlhotcopy
    
完成備份與增量備份:
    完全備份:備份所有的數據庫
    增量備份: 一個時間點內數據庫發生變量的備份(依靠mysql binary log) 需要開啟--log-bin( 每次重啟時都會產生一個新的二進制文件,
    mysql客服端:flush logs(linux命令行 mysqladmin flush-logs)命令可以手動產生一個新的 )
    
    
備份策越:
    
    shell> mysqldump -uroot -p --all-databases > backup_date.sql  (會鎖表)
如果數據庫全是innodb引擎,可以加上--single-transaction,來保證事務也能備份,如果需要新產生一個binary log如下:
mysqldump -uroot -p --single-transaction --flush-logs --master-data=2 --all-databases > backup_date.sql
為了減小空間浪費可以刪除無用的binary log文件 通過如下:
mysqldump -uroot -p --single-transaction --flush-logs --master-data=2 --all-databases --delete-master-logs > backup_date.sql
當有主從的時候操作需要小心,可能從云服務器還沒更新過來

恢復通過執行以下語句:
mysql -uroot -p < backup_date.sql
或者binary log恢復
mysqlbinlog mysql-bin.000007 mysql-bin.000008 | mysql -uroot -p
mysqlbinlog 還可以設置起止時間以及位置,具體請參考Mysql手冊 或者 man mysqlbinlog

mysqldump使用說明
mysqldump [arguments] > file_name
備份所有的數據庫使用 --all-databases如
mysqldump --all-databases > dump.sql
指定數據庫
mysqldump --databases db1 db2 ...>dump.sql (如果不加--databases 文件中將不會產生 create databases 與use database 語句)

mysql> CREATE DATABASE IF NOT EXISTS db1;
mysql> USE db1;
mysql> source dump.sql

mysqldump 還有一種--tab的使用法,具體可參考手冊

如果你的存儲引擎是innodb可考慮一下參數
--events  (事件)
--routines (存儲過程與函數)
--triggers (觸發器,默認包括)
也可以指定跳過通過如下參數
 --skipevents, --skip-routines, or --skip-triggers
 
 mysqldump還可以將表結構與數據分開備份如下:
 --no-data 不備份數據(只備份表結構)
 --no-create-info 不備份表結構(只備份數據)
 shell> mysqldump --no-data test > dump-defs.sql
shell> mysqldump --no-create-info test > dump-data.sql

大家覺得mysql如何備份與恢復數據這篇文章怎么樣,是否有所收獲。如果想要了解更多相關,可以繼續關注我們的行業資訊板塊。 

向AI問一下細節

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

AI

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