MySQL 資料恢復方法(一)

2021-09-23 02:49:09 字數 2705 閱讀 3076

資料庫故障,需要恢復新例項

使用場景

主資料庫故障,無法恢復,且沒有容災及高可用。需要通過備份檔案進行恢復。

所需資源

資料庫備份檔案

備份點-故障點之間的binlog檔案

機器資源

操作說明

mysqldump備份檔案恢復

拷貝備份檔案到目標機器

登入新建的目標資料庫例項

/opt/alisql/bin/mysql -uroot -p

enter password:

welcome to the mysql monitor. commands end with ; or \g.

your mysql connection id is 18

server version: 5.6.32-log source distribution

oracle is a registered trademark of oracle corporation and/or its

affiliates. other names may be trademarks of their respective

owners.

type 'help;' or '\h' for help. type '\c' to clear the current input statement.

3. 使用source命令匯入備份檔案 $mysqldump.sql

1. ```

root@(none) 01:57:16>source mysqldump.sql;

xtrabackup備份檔案恢復(僅供全量備份參考)

拷貝備份檔案到目標機器

innobackupex prepare

3. innobackupex restore

1. ```

innobackupex --copy-back --defaults-file=$my.cnf --use-memory=2048m $backupdir (必須清空mysqldata目錄)

修改檔案許可權

-r mysql:mysql $mysqldata

5. 啟動新的資料庫例項

1. ```

cd $mysql_bin_dir; ./bin/mysqld_safe --defaults-file=$my.cnf &

資料誤操作(insert、delete、update)

使用場景

資料被錯誤變更,需要恢復記錄到正確狀態

所需資源

可以連線目標資料庫的機器

binlog日誌

binlog2sql工具

操作說明

環境準備

部署binlog2sql工具

除錯目標資料庫連線

明確最初誤操作開始的binlog檔名$first_binlog_file

使用binlog2sql工具生成rollback sql

binlog2sql/binlog2sql.py --flashback -h$db_host -p3306 -u$user -p'$pass' -d$database --start-file='$first_binlog_file' > /tmp/rollback.sql

4. 對rollback sql進行審核整理

5. 登入資料庫進行rollback操作

1. ```

root@(none) 01:57:16>source rollback.sql;

驗證資料

資料庫誤操作(drop table)

使用場景

資料整張表被誤刪除,需要恢復到正確狀態

所需資源

被誤刪除表的資料庫$dst_db

資料庫備份檔案(誤刪除之前)

備份點-誤操作之間的binlog檔案

可以連線目標資料庫的機器

恢復用機器資源$backup_host

binlog2sql工具

操作說明

在$backup_host上使用備份檔案恢復資料庫,參照第一部分《資料庫故障,需要恢復新例項》

在$dst_db資料庫上,使用binlog2sql工具生成誤刪除表有關的sql(備份點-誤刪除點之間的操作記錄)

binlog2sql/binlog2sql.py --flashback -h$db_host -p3306 -u$user -p'$pass' -d$database -t$誤刪除的表名 --start-file='$備份點所在的binlog檔案' > /tmp/execute.sql

3. 登入到$backup_host資料庫,進行恢復execute.sql資料操作

1. ```

root@(none) 01:57:16>source execute.sql;

在$backup_host上使用mysqldump備份被誤刪除的表

-h$backup_host -u $user -p $pass $table > $table.sql

5. 登入到$dst_db資料庫,將mysqldump出的檔案資料匯入到目標資料庫

1. ```

root@(none) 01:57:16>source $table.sql;

驗證資料

oracle誤刪資料恢復方法

誤刪資料恢復 刪除表資料有三種方式 delete drop 和truncate delete誤刪除的解決方法 原理 利用oracle 提供的閃回方法,如果在刪除資料後還沒做大量的操作 只要保證被刪除資料的塊沒被覆寫 就可以利用閃回方式直接找回刪除的資料 具體步驟為 例如 誤刪除了 100條資料 刪除...

mysql 各種恢復 mysql 恢復方案

備份資料 mysqldump db name tables mysqldump database db1 db2 db3.mysqldump all database mysqldump user root p xm backup xm.sql以上指令,將xm 庫備份到xm.sql 檔案中。輸入指令...

MySQL簡單備份和恢復方法

這裡寫一下整個資料庫的備份和匯入方法,具體的操作細節以及相關引數解析參見man mysqldump 1 備份 mysqldump database destination u user p 示例 mysqldump xuone home xu me.sql u root p 2 匯入 假設我們要將剛...