數據庫備份技術
邏輯備份是指只將數據庫裏面的邏輯數據打包走(邏輯數據是指數據庫裏有效的數據)。
邏輯備份的優缺點:
優點:備份出來的是純數據,佔用磁盤空間是很小的
缺點:因爲備份出來的是sql語句,所以時間較長
1.Sql語法備份
本身是一種數據導出的方法,同時可以用來輔助備份,它可以對一個表的其中一列或者某幾列做備份(導出)
語法:select xxx into outfile filename from table…
舉例:
具體情況下需要對到處的文件夾進行授權:
[root@Client opt]#mkdir /opt/backup
[root@Client opt]#chown mysql:mysql /opt/backup
如果我們需要導出user表:
mysql > select host,user,password into outfile ‘/opt/mysql_user.txt’ from mysql.user;
創建出的備份文件可在/opt 目錄下找到mysql_user.txt 文件
當我們需要恢復數據時:
mysql > load data local infile ‘/opt/backup/emp.txt into table emp;’
2.mysqldump 邏輯備份工具(導出爲sql語句)
①表級
備份數據:
mysqldump -uroot -p[數據庫密碼] 庫名 表名 > 備份文件路徑
例如:
[root@Client opt] mysqldump -uroot -p123456 test emp > /opt/backup/emp_bak.sql
恢復數據:
1.load data local infile 數據文件路徑 into table 表名
2.source 恢復文件路徑 (在進入數據庫的情況下 )
例如:
[root@Client opt] load data local infile ‘/opt/backup/emp_back.sql’ from emp;
mysql > source /opt/backup/emp_back.sql;
②數據庫級
mysql -uroot -p[密碼] –database 數據庫名 > 備份文件路徑
例如:
備份數據:
[root@Client opt] mysqldump -uroot -p123456 –database test > /opt/backup/test.sql;
恢復數據
[root@Client opt] mysqldump -uroot -p123456 < 備份路徑
source 用法相同
③全庫級
備份數據
mysqldump -uroot -p[密碼] –all-database > 備份文件路徑
例如
[root@Client opt]mysqldump -uroot -p[密碼] –all-database > /opt/backup/all.sql
恢復數據
(1)初始化數據庫
[root@Client opt]mysql_install_db –datadir =/opt/mysql/
(2)恢復全庫
[root@Client opt] vim /etc/my.cnf
加入一行
skip-grant-tables —-跳過登陸授權
mysql > source /opt/backup/all.sql
(3) 進行測試
去掉 skip-grant-tables 這一行
mysql -uroot -p123456
如果能正常登陸就說明,數據庫恢復完成。