日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

數據庫備份類型:

· 冷備份:在數據庫關閉狀態下進行備份操作

· 熱備份:在數據庫處于運行狀態時進行備份操作

· 溫備份:數據庫鎖定表格(不可寫入但可讀取)的狀態下進行備份操作

數據庫完全備份操作

1. 物理冷備份與恢復 使用tar命令

1)備份數據庫

[root@localhost /]# systemctl stop MySQLd

[root@localhost /]# mkdir /backup

[root@localhost /]# tar zcf /backup/mysql_all-$(date +%F).tar.gz /usr/local/mysql/data/

tar: 從成員名中刪除開頭的"/"

· /usr/local/mysql/data/:mysql的數據庫文件夾

[root@localhost /]# ls -l /backup/

總用量 724

-rw-r--r--. 1 root root 741318 8月 10 08:29 mysql_all-2020-08-10.tar.gz

MySQL的備份與恢復

 

2) 恢復數據庫

執行以下操作將數據庫文件夾移除到bak目錄,模擬丟失文件故障

[root@localhost /]# mkdir /bak

[root@localhost /]# mv /usr/local/mysql/data/ /bak/

執行以下操作從備份文件恢復數據

[root@localhost /]# mkdir /restore

[root@localhost /]# tar zxf /backup/mysql_all-2020-08-10.tar.gz -C /restore/

[root@localhost /]# mv /restore/usr/local/mysql/data/ /usr/local/mysql/

[root@localhost /]# systemctl start mysqld

[root@localhost /]# netstat -anput |grep 3306

tcp6 0 0 :::3306 :::* LISTEN 3970/mysqld

MySQL的備份與恢復

 

2. mysqldump備份與恢復

通過此命令可以將指定的庫,表或全部的庫導出為SQL腳本,便于該命令在不同版本的MySQL服務器上使用。例如,當需要升級mysql服務器時,可以先使用mysqldump命令將原有庫信息導出,然后直接在升級后的MySQL服務器導入即可。

[root@localhost /]# mysqladmin -u root -p password '123456'

1) 備份數據庫

格式一:將mysql庫中的user表導出為mysql-user.sql

[root@localhost /]# mysqldump -u root -p mysql user > mysql-user.sql

Enter password: 輸入密碼

MySQL的備份與恢復

 

格式二:將整個test庫導出為test.sql尾巴文件,所有操作均以root用戶身份驗證

[root@localhost /]# mysqldump -u root -p --databases test > test.sql

Enter password:

MySQL的備份與恢復

 

格式三:備份導出整個MySQL服務器中的庫。使用—opt優化執行速度

[root@localhost /]# mysqldump -u root -p --opt --all-databases > all-data.sql

Enter password:

MySQL的備份與恢復

 


MySQL的備份與恢復

 

2) 查看備份文件

[root@localhost /]# grep -v "^–" 備份完成的名稱

3) 恢復數據庫

使用sqldump命令導出的SQL備份腳本,在恢復時通過mysql命令對其進行導入操作。

格式:mysql 【選項】【庫名】【表名】< /備份路徑/備份文件名

模擬故障:刪除上述三個備份的原文件,使用dump導入恢復。

mysql> drop table user;

Query OK, 0 rows affected (0.00 sec)

[root@localhost /]# mysql -u root -p mysql < /mysql-user.sql

Enter password:

備份的文件

數據庫

MySQL的備份與恢復

 

查詢是否恢復

mysql> show tables;

+---------------------------+

| Tables_in_mysql |

+---------------------------+ |

………

| user |

+---------------------------+

28 rows in set (0.00 sec)

模擬故障:刪除test數據庫,再導入恢復。

mysql> drop database test;

Query OK, 0 rows affected (0.01 sec)

MySQL的備份與恢復

 

導入備份數據恢復

MySQL的備份與恢復

 

3. MySQL的增量備份與恢復(重點)

增量備份沒有重要數據,備份量不大,時間短;但恢復及其麻煩,需要上次完全備份+之后所有的增量備份才能恢復,需要對所有增量備份進行逐個反推恢復。Mysql沒有提供直接的增量備份辦法,可以通過mysql提供的二進制日志間接實現增量備份。

Mysql的增量備份需要開啟二進制功能。

[root@localhost /]# vim /etc/my.cnf

log-bin=/usr/local/mysql/mysql-bin 添加

[root@localhost /]# systemctl restart mysqld

[root@localhost /]# ls -l /usr/local/mysql/mysql-bin.*

-rw-rw----. 1 mysql mysql 120 8月 10 09:43 /usr/local/mysql/mysql-bin.000001

-rw-rw----. 1 mysql mysql 34 8月 10 09:43 /usr/local/mysql/mysql-bin.index

MySQL企業備份案例

1、 一般恢復

1) 添加數據庫、表、錄入信息

mysql> create database local;

mysql> use local;

Database changed

mysql> create table test(id int);

Query OK, 0 rows affected (0.00 sec)

mysql> insert into test values(1);

Query OK, 1 row affected (0.00 sec)

mysql> insert into test values(2);

Query OK, 1 row affected (0.01 sec)

2) 先進行一次完全備份

[root@localhost ~]# mkdir /mysql_back

[root@localhost ~]# mysqldump -uroot -p local test >/mysql_back/local_test-$(date +%F).sql

Enter password:

[root@localhost ~]# ls /mysql_back/

local_test-2020-08-10.sql

[root@localhost ~]# mysqladmin -uroot -p flush-logs 生產新的二進制文件

Enter password:

[root@localhost ~]# ls -l /usr/local/mysql/mysql-bin.*

-rw-rw----. 1 mysql mysql 894 8月 10 10:03 /usr/local/mysql/mysql-bin.000001

-rw-rw----. 1 mysql mysql 120 8月 10 10:03 /usr/local/mysql/mysql-bin.000002

-rw-rw----. 1 mysql mysql 68 8月 10 10:03 /usr/local/mysql/mysql-bin.index

3) 繼續錄入新的數據并進行增量備份

mysql> insert into test values(3);

Query OK, 1 row affected (0.01 sec)

mysql> insert into test values(4);

Query OK, 1 row affected (0.00 sec)

[root@localhost ~]# mysqladmin -uroot -p flush-logs

Enter password:

[root@localhost ~]# ls -l /usr/local/mysql/mysql-bin.*

-rw-rw----. 1 mysql mysql 894 8月 10 10:03 /usr/local/mysql/mysql-bin.000001

-rw-rw----. 1 mysql mysql 595 8月 10 10:06 /usr/local/mysql/mysql-bin.000002

-rw-rw----. 1 mysql mysql 120 8月 10 10:06 /usr/local/mysql/mysql-bin.000003

-rw-rw----. 1 mysql mysql 102 8月 10 10:06 /usr/local/mysql/mysql-bin.index

[root@localhost ~]# cp /usr/local/mysql/mysql-bin.000002 /mysql_back/

如此00003就保留插入2個數據的操作。

4) 模擬誤操作刪除test表

[root@localhost ~]# mysql -uroot -p -e 'drop table local.test;' 刪除

Enter password:

[root@localhost ~]# mysql -uroot -p -e 'select * from local.test;' 查詢

Enter password:

ERROR 1146 (42S02) at line 1: Table 'local.test' doesn't exist

5) 恢復操作

在執行恢復操作時,需要先恢復完全備份,然后恢復增量備份。

[root@localhost mysql_back]# mysql -uroot -p local </mysql_back/local_test-2020-08-10.sql

Enter password:

[root@localhost mysql_back]# mysql -uroot -p -e ' select * from local.test;'

Enter password:

+------+

| id |

+------+

| 1 |

| 2 |

+------+ 注意:缺少3.4數據使用增量備份恢復

MySQL的備份與恢復

 

[root@localhost mysql_back]# mysqlbinlog --no-defaults /mysql_back/mysql-bin.000002 | mysql -u root -p

Enter password:

[root@localhost mysql_back]# mysql -uroot -p -e ' select * from local.test;'

Enter password:

+------+

| id |

+------+

| 1 |

| 2 |

| 3 |

| 4 |

+------+

MySQL的備份與恢復

 

2、 給予位置恢復

由于前面做過備份操作,接下來直接進行模擬故障與數據恢復的操作。

+------+

[root@localhost mysql_back]# mysql -uroot -p -e 'drop table local.test;'

Enter password: //模擬誤操作刪除test表

[root@localhost mysql_back]# mysql -uroot -p -e 'select * from local.test;'

Enter password: //查看test表是否存在

ERROR 1146 (42S02) at line 1: Table 'local.test' doesn't exist

[root@localhost mysql_back]# mysql -uroot -p local </mysql_back/local_test-2020-08-10.sql

Enter password: //恢復完全備份

想要實現基于位置或時間點恢復數據,必須先通過查看二進制日志文件確定恢復的位置或時間點。

MySQL的備份與恢復

 

[root@localhost /]# mysqlbinlog --no-defaults --stop-position='548' /mysql_back/mysql-bin.000002 | mysql -uroot -p

Enter password:

[root@localhost /]# mysql -uroot -p -e ' select * from local.test;'

Enter password:

+------+

| id |

+------+

| 1 |

| 2 |

| 3 |

| 3 |

| 4 |

+------+

3、 基于時間點恢復 只恢復10:05:19的數據,即不恢復4的信息

MySQL的備份與恢復

 

mysql> drop tables test; 刪除test表

Query OK, 0 rows affected (0.00 sec)

[root@localhost ~]# mysqlbinlog --no-defaults --stop-datetime='2020-8-10 10:05:21' /mysql_back/mysql-bin.000002 | mysql -uroot -p

Enter password:

MySQL的備份與恢復

 

執行以上操作就是恢復在10:05:21之前的所有數據。

4、 制定企業備份策略的思路

MySQL的備份與恢復

 

分享到:
標簽:備份 恢復 MySQL
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定