資料備份與恢復

2022-03-09 21:48:42 字數 3387 閱讀 6270

一、mysqldump備份

mysqldump 備份資料會丟失掉從備份點開始的資料,所以需要結合mysqlbinlog的二進位制日誌增量備份恢復。

【常用的選項】

--all-databases :匯出全部資料庫。

--add-drop-table :每個資料表建立之前新增drop刪表語句,防止恢復時衝突。 (all-databases預設包含)

--add-locks :每個表匯出之前增加增加lock tables 之後unlock tables。這就防止在匯入資料時,其他使用者會對錶進行操作。(all-databases預設包含)

--databases:匯出多個資料庫,引數後的所有名字都被看作資料庫名。

全庫備份:

mysqldump -h localhost -uroot -p123456 --all-databases >/tmp/qk.sql

多庫備份:

mysqldump -h localhost -uroot -p123456 --databases databases1  databases2 >/tmp/dk.sql

單庫備份:

#也可以省略--databases 來備份單個庫,不過省略後導致的是備份檔案名中沒有 建表與use語句,所以在恢復時,必須制定乙個預設的資料庫名,即可以匯入任意資料庫。

mysqldump -h localhost -uroot -p123456 database >/tmp/dk.sql

備份庫中的多個表:

mysqldump  -h localhost -uroot -p123456 表名1 表名2 > /tmp/table.sql

2.)mysqldump恢復:

啟用*databases選項的恢復:

mysql -uroot -p123456  < /tmp/qk.sql
mysql>  source /tmp/qk.sql

普通的單庫備份:

mysql -uroot -p123456  database1 < /tmp/dk.sql
mysql>  use database1;source /tmp/dk.sql

二、percona xtrabackup/innobackupex 的備份與恢復

增量備份,工作原理如下:

1.首先完成乙個完全備份,並記錄下此時檢查點的lsn(log sequence number)。

2.在程序增量備份時,比較表空間中每個頁的lsn是否大於上次備份時的lsn,如果是,則備份該頁,同時記錄當前檢查點的lsn。

1.安裝xtrabackup

安裝依賴的包:yum

2.備份

建立備份目錄:mkdir       /opt/backups/full     /opt/backups/inc

2.1)進行資料庫全備:

innobackupex   --defaults-file=/etc/my.cnf   --user=root   --password=123456    --socket=/tmp/mysql.sock    /opt/backups/full

壓縮備份:

innobackupex   --defaults-file=/etc/my.cnf   --user=root   --password=123456    --socket=/tmp/mysql.sock   /opt/backups/full/  --stream=tar | gzip > /opt/backups/full/a.tar.gz

2.2)增量備份:(增量備份的前提是一定要有乙個全備)

插入資料,或更改之後,進行增量備份:

innobackupex --defaults-file=/etc/my.cnf  --user=root --password=123456 --socket=/tmp/mysql.sock --incremental /opt/backups/inc --incremental-basedir=/opt/backups/full/2017-10-11_16-02-21 --parallel=2

更改第二次,並執行增量備份:

innobackupex --defaults-file=/etc/my.cnf --user=root --password=123456 --socket=/tmp/mysql.sock --incremental /opt/backups/inc --incremental-basedir=/opt/backups/inc/2017-10-11_17-12-58 --parallel=2

每次更改後執行的增量備份都是基於上個時間點的增量備份,備份完成後後提示171012 11:00:03 completed ok!並且備份目錄中有相應檔案即可。

3.備份恢復:

3.1)模擬資料庫損壞,全備恢復:

3.2)增量備份恢復:

1.恢復完全備份

2.恢復增量備份到完全備份(開始恢復的增量備份要新增--redo-only引數,到最後一次增量備份要去掉--redo-only)

3.對整體的完全備份進行恢復,回滾未提交的資料

準備全備:

將增量1恢復至全備

將增量2恢復至全備

注意:回滾操作不僅僅是用作於增量備份,當在全備時資料庫有首席執行官事務等操作,會造成備份資料的短缺,此時也需要進行回滾操作,否則會因為資料的短缺造成主從的中斷。

進行全備恢復:

innobackupex   --defaults-file=/etc/my.cnf   --copy-back   --rsync   /opt/backups/full/2017-10-11_16-02-21/

資料備份與恢復

一.備份與匯出的區別 1.資料匯出用於把資料從乙個系統遷移到另乙個系統 2.資料備份用於儲存乙個資料庫例項的全部資訊 二.備份方式 1.聯機冷備份 2.聯機熱備份 備份時需要注意auto.cnf檔案,如果跨主機應用應該區別auto.cnf 三.整體表碎片檔案 alter table test1 en...

資料備份與恢復

mysqldump u p db name table name,filename.sql cmd 命令 可以選擇要備份哪些表 如果不指定代表 全部備份 示例 單庫備份 mysqldump uroot p123 db1 db1.sql mysqldump uroot p123 db1 table1 ...

MySQL資料備份與恢復

mysql命令列匯出資料庫 mysql命令列匯出資料庫 1,進入mysql目錄下的bin資料夾 cd mysql中到bin資料夾的目錄 如我輸入的命令列 cd c program files mysql mysql server 4.1 bin 或者直接將windows的環境變數path中新增該目錄...