數據備份與恢復

3.數據備份與恢復
問題
本案例要求熟悉MySQL的備份與恢復,完成以下任務操作:
1)使用mysqldump備份數據庫
2)使用mysql 恢復數據庫
步驟
實現此案例需要按照如下步驟進行。
步驟一:使用mysqldump進行邏輯備份
1)備份MySQL服務器上的所有庫
將所有的庫備份爲mysql-all.sql文件:
[root@dbsvr1 ~]# mysqldump -u root -p --all-databases > /root/alldb.sql
Enter password: //驗證口令
[root@dbsvr1 mysql]# file /root/alldb.sql //確認備份文件類型
/root/alldb.sql: UTF-8 Unicode English text, with very long lines
查看備份文件alldb.sql的部分內容:
[root@dbsvr1 ~]# grep -vE ‘/|-|^KaTeX parse error: Expected 'EOF', got '#' at position 1045: …[root@dbsvr1 ~]#̲ mysqldump -u r…’ /root/userdb.sql
DROP TABLE IF EXISTS userlist;
CREATE TABLE userlist (
sn int(4) NOT NULL AUTO_INCREMENT,
username varchar(24) NOT NULL,
password varchar(48) DEFAULT ‘x’,
uid int(5) NOT NULL,
gid int(5) NOT NULL,
fullname varchar(48) DEFAULT NULL,
homedir varchar(64) NOT NULL,
shell varchar(24) NOT NULL,
) ENGINE=InnoDB AUTO_INCREMENT=36 DEFAULT CHARSET=utf8;
LOCK TABLES userlist WRITE;
… …
3)同時備份指定的多個庫
同時備份mysql、test、userdb庫,保存爲mysql+test+userdb.sql文件:
[root@dbsvr1 ~]# mysqldump -u root -p -B mysql test userdb > mysql+test+userdb.sql
Enter password: //驗證口令
查看備份文件userdb.sql的部分內容:
[root@dbsvr1 ~]# grep ‘^CREATE DATA’ /root/mysql+test+userdb.sql
CREATE DATABASE /!32312 IF NOT EXISTS/ mysql /!40100 DEFAULT CHARACTER SET utf8 /;
CREATE DATABASE /
!32312 IF NOT EXISTS
/ test /!40100 DEFAULT CHARACTER SET utf8 /;
CREATE DATABASE /
!32312 IF NOT EXISTS
/ userdb /*!40100 DEFAULT CHARACTER SET utf8 */;
步驟二:使用mysql命令從備份中恢復數據庫、表
以恢復userdb庫爲例,可參考下列操作。通常不建議直接覆蓋舊庫,而是採用建立新庫並導入邏輯備份的方式執行恢復,待新庫正常後即可廢棄或刪除舊庫。
1)創建名爲userdb2的新庫
mysql> CREATE DATABASE userdb2;
Query OK, 1 row affected (0.00 sec)
2)導入備份文件,在新庫中重建表及數據
[root@dbsvr1 ~]# mysql -u root -p userdb2 < /root/userdb.sql
Enter password: //驗證口令
3)確認新庫正常,啓用新庫
mysql> USE userdb2; //切換到新庫
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> SELECT sn,username,uid,gid,homedir //查詢數據,確認可用
-> FROM userlist LIMIT 10;
±—±--------------±----±----±-----------------------+
| sn | username | uid | gid | homedir |
±—±--------------±----±----±-----------------------+
| 1 | abrt | 173 | 173 | /etc/abrt |
| 2 | adm | 3 | 4 | /var/adm |
| 3 | apache | 48 | 48 | /var/www |
| 4 | avahi-autoipd | 170 | 170 | /var/lib/avahi-autoipd |
| 5 | bin | 1 | 1 | /bin |
| 6 | daemon | 2 | 2 | /sbin |
| 7 | dbus | 81 | 81 | / |
| 8 | ftp | 14 | 50 | /var/ftp |
| 9 | games | 12 | 100 | /usr/games |
| 10 | gdm | 42 | 42 | /var/lib/gdm |
±—±--------------±----±----±-----------------------+
10 rows in set (0.00 sec)
4)廢棄或刪除舊庫
mysql> DROP DATABASE userdb;
Query OK, 2 rows affected (0.09 sec)

發佈了225 篇原創文章 · 獲贊 196 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章