一、mysqldump備份操作測試:
1.準備對其進行備份操作的數據庫:
mysql> showtables;
+------------------+
|Tables_in_test |
+------------------+
| a |
| sales |
| t |
| t1 |
| t2 |
| t_hash |
| t_linear_hash |
| u |
| usercash |
| usercash_err_log |
+------------------+
10 rows in set (0.00sec)
2.先備份:
[root@Nginx ~]#mysqldump -u root -p test > /data/mysql/test.bk.sql
Enter password:
3.刪除數據庫:
mysql> showdatabases;
+--------------------+
| Database |
+--------------------+
| information_schema|
| mysql |
| performance_schema|
| test |
|wordpress_nginx |
+--------------------+
5 rows in set (0.00sec)
mysql> dropdatabase test;
Query OK, 10 rowsaffected (1.12 sec)
mysql> showdatabases;
+--------------------+
| Database |
+--------------------+
| information_schema|
| mysql |
| performance_schema|
|wordpress_nginx |
+--------------------+
4 rows in set (0.00sec)
4.恢復數據庫:
[root@Nginx ~]#mysql -u root -p test < /data/mysql/test.bk.sql
Enter password:
ERROR 1049 (42000):Unknown database 'test'
刪除了數據庫之後想直接恢復會提示不存在該數據庫
那麼,我在恢復之前,先創建一個空的數據庫
mysql> createdatabase test;
Query OK, 1 rowaffected (0.07 sec)
mysql> showdatabases;
+--------------------+
| Database |
+--------------------+
| information_schema|
| mysql |
| performance_schema|
| test |
|wordpress_nginx |
+--------------------+
5 rows in set (0.03sec)
mysql> use test;
Database changed
mysql> showtables;
Empty set(0.00 sec)
可以觀察到,這是空的,那麼我們再來進行恢復數據庫。
[root@Nginx ~]#mysql -u root -p test < /data/mysql/test.bk.sql
Enter password:
再來觀察test數據庫:
mysql> use test;
Database changed
mysql> showtables;
Empty set (0.00 sec)
mysql> showtables;
+------------------+
|Tables_in_test |
+------------------+
| a |
| sales |
| t |
| t1 |
| t2 |
| t_hash |
| t_linear_hash |
| u |
| usercash |
| usercash_err_log |
+------------------+
10 rows in set (0.00sec)
mysql> select *from t
-> ;
+------+------+
| a | b |
+------+------+
| 1 | 2 |
+------+------+
1 row in set (0.02sec)
可以看到,已經恢復到原來的樣子了。
二、冷備
冷備是指,停掉服務,只需要備份mysql數據庫的frm文件、共享表空間文件、獨立表空間文件(*ibd)、重做日誌文件。一般會對整個文件夾或目錄進行備份,即打包和壓縮。
關閉服務:
[root@Nginx mysql]#service mysqld stop
Shutting downMySQL.. SUCCESS!
對數據庫目錄進行備份打包,並對備份目錄進行授權:
[root@Nginxmysql]# mkdir /databk
[root@Nginx databk]#chown mysql.mysql /databk/ -R
[root@Nginx databk]#tar -cvPzf mysql.tar.gz /data/mysql/
恢復數據庫:
[root@Nginx databk]#tar -xvPf mysql2.tar.gz
最後重新啓動服務,並檢查數據是否有丟失即可。