1. 程式人生 > >MySQL數據庫-完全備份及恢復

MySQL數據庫-完全備份及恢復

mysql

MySQL數據庫-完全備份及恢復

數據庫備份的分類

物理角度:

冷備份;也稱脫機備份,特點:關掉數據庫再備份

熱備份:也稱聯機備份,特點:開啟數據庫再備份

溫備份:數據庫只有可讀權限的狀態下備份

邏輯角度:

對數據庫的對象的備份,例如數據表,及數據表中的一些sql語句等

備份策略角度:

完全備份:每次對數據進行整體的備份

差異備份:在第一次完整備份a數據後,以後的每次的備份是a+b,b就是針對於a數據發生變化的數據,稱之為‘差異數據’。缺點:b的數據內存會越來越大b+=b,導致數據恢復緩慢。恢復數據方法:只需恢復a和最後一次的b即可.(註意:這裏的差異備份只能用a與b)

增量備份:

對象:固定的a數據+b1+b2+...+bn.

每次備份b都是獨立的一次備份

恢復數據的方法:a+b1+b2+...+bn,缺點:若是b1次備份到bn次備份之間的任何一備份的數據出現問題,那麽都無法恢復數據。

mysql的數據庫,數據表的創建

[[email protected]~]# mysql -u root -p123456

Welcometo the MySQL monitor. Commands end with; or \g.

YourMySQL connection id is 2

Serverversion: 5.5.22-log Source distribution

Copyright(c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.

Oracleis 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.

mysql>

mysql> create database auth1;

QueryOK, 1 row affected (0.04 sec)

mysql>use auth1;

Databasechanged

mysql>create table user(name char(10) not null,ID int(30));

QueryOK, 0 rows affected (0.09 sec)

mysql>insert into user values(‘amber‘,‘123‘);

QueryOK, 1 row affected (0.01 sec)

mysql>select * from user;

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

|name | ID |

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

|amber | 123 |

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

1row in set (0.00 sec)

冷備份:

[[email protected]~]# service mysqld stop

Shuttingdown MySQL.... [確定]

[[email protected]~]# yum -y install xz

[[email protected]~]# tar Jcf mysql_all-$(date +%F).tar.xz /usr/local/mysql/data/

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

[[email protected]~]# mkdir bak

[[email protected]~]# mv /usr/local/mysql/data/* bak/

[[email protected]~]# tar xf mysql_all-2017-06-20.tar.xz

[[email protected]~]# cd usr/local/mysql/data/

[[email protected]]# mv * /usr/local/mysql/data/

[[email protected]]# /etc/init.d/mysqld start

StartingMySQL... [確定]

[[email protected]]# mysql -uroot -p123456

Welcometo the MySQL monitor. Commands end with; or \g.

YourMySQL connection id is 1

Serverversion: 5.5.22-log Source distribution

Copyright(c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.

Oracleis 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.

mysql>select * from auth.user;

ERROR1146 (42S02): Table ‘auth.user‘ doesn‘t exist

mysql>select * from auth1.user;

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

|name | ID |

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

|amber | 123 |

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

1row in set (0.01 sec)

單個庫完全備份

[[email protected]]# mkdir /backup

[[email protected]]# mysqldump -uroot -p auth1 >/backup/auth1-$(date +%Y%m%d).sql

對多個庫進行完全備份

[[email protected]]# mysqldump -uroot -p123456 --databases mysql auth1 >/backup/mysql+auth1-$(date +%Y%m%d).sql

對所有庫進行備份

[[email protected]]# mysqldump -uroot -p123456 --opt --all-databases >/backup/mysql_all-$(date +%Y%m%d).sql

對表進行完全備份

[[email protected]]# mysqldump -uroot -p123456 auth1 user>/backup/auth1_user-$(date +%Y%m%d).sql

[[email protected] data]# mysqldump -uroot -p123456 -d mysql user >/backup/desc_mysql_user.$(date +%y%m%d)

[[email protected] data]# egrep -Ev ‘^/|^--|^$‘ /backup/desc_mysql_user.170620 //

DROP TABLE IF EXISTS `user`;

CREATE TABLE `user` (

`Host` char(60) COLLATE utf8_bin NOT NULL DEFAULT ‘‘,

`User` char(16) COLLATE utf8_bin NOT NULL DEFAULT ‘‘,

`Password` char(41) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL DEFAULT ‘‘,

`Select_priv` enum(‘N‘,‘Y‘) CHARACTER SET utf8 NOT NULL DEFAULT ‘N‘,

`Insert_priv` enum(‘N‘,‘Y‘) CHARACTER SET utf8 NOT NULL DEFAULT ‘N‘,

`Update_priv` enum(‘N‘,‘Y‘) CHARACTER SET utf8 NOT NULL DEFAULT ‘N‘,

`Delete_priv` enum(‘N‘,‘Y‘) CHARACTER SET utf8 NOT NULL DEFAULT ‘N‘,

`Create_priv` enum(‘N‘,‘Y‘) CHARACTER SET utf8 NOT NULL DEFAULT ‘N‘,

`Drop_priv` enum(‘N‘,‘Y‘) CHARACTER SET utf8 NOT NULL DEFAULT ‘N‘,

`Reload_priv` enum(‘N‘,‘Y‘) CHARACTER SET utf8 NOT NULL DEFAULT ‘N‘,

`Shutdown_priv` enum(‘N‘,‘Y‘) CHARACTER SET utf8 NOT NULL DEFAULT ‘N‘,

`Process_priv` enum(‘N‘,‘Y‘) CHARACTER SET utf8 NOT NULL DEFAULT ‘N‘,

`File_priv` enum(‘N‘,‘Y‘) CHARACTER SET utf8 NOT NULL DEFAULT ‘N‘,

`Grant_priv` enum(‘N‘,‘Y‘) CHARACTER SET utf8 NOT NULL DEFAULT ‘N‘,

`References_priv` enum(‘N‘,‘Y‘) CHARACTER SET utf8 NOT NULL DEFAULT ‘N‘,

`Index_priv` enum(‘N‘,‘Y‘) CHARACTER SET utf8 NOT NULL DEFAULT ‘N‘,

`Alter_priv` enum(‘N‘,‘Y‘) CHARACTER SET utf8 NOT NULL DEFAULT ‘N‘,

`Show_db_priv` enum(‘N‘,‘Y‘) CHARACTER SET utf8 NOT NULL DEFAULT ‘N‘,

`Super_priv` enum(‘N‘,‘Y‘) CHARACTER SET utf8 NOT NULL DEFAULT ‘N‘,

`Create_tmp_table_priv` enum(‘N‘,‘Y‘) CHARACTER SET utf8 NOT NULL DEFAULT ‘N‘,

`Lock_tables_priv` enum(‘N‘,‘Y‘) CHARACTER SET utf8 NOT NULL DEFAULT ‘N‘,

`Execute_priv` enum(‘N‘,‘Y‘) CHARACTER SET utf8 NOT NULL DEFAULT ‘N‘,

`Repl_slave_priv` enum(‘N‘,‘Y‘) CHARACTER SET utf8 NOT NULL DEFAULT ‘N‘,

`Repl_client_priv` enum(‘N‘,‘Y‘) CHARACTER SET utf8 NOT NULL DEFAULT ‘N‘,

`Create_view_priv` enum(‘N‘,‘Y‘) CHARACTER SET utf8 NOT NULL DEFAULT ‘N‘,

`Show_view_priv` enum(‘N‘,‘Y‘) CHARACTER SET utf8 NOT NULL DEFAULT ‘N‘,

`Create_routine_priv` enum(‘N‘,‘Y‘) CHARACTER SET utf8 NOT NULL DEFAULT ‘N‘,

`Alter_routine_priv` enum(‘N‘,‘Y‘) CHARACTER SET utf8 NOT NULL DEFAULT ‘N‘,

`Create_user_priv` enum(‘N‘,‘Y‘) CHARACTER SET utf8 NOT NULL DEFAULT ‘N‘,

`Event_priv` enum(‘N‘,‘Y‘) CHARACTER SET utf8 NOT NULL DEFAULT ‘N‘,

`Trigger_priv` enum(‘N‘,‘Y‘) CHARACTER SET utf8 NOT NULL DEFAULT ‘N‘,

`Create_tablespace_priv` enum(‘N‘,‘Y‘) CHARACTER SET utf8 NOT NULL DEFAULT ‘N‘,

`ssl_type` enum(‘‘,‘ANY‘,‘X509‘,‘SPECIFIED‘) CHARACTER SET utf8 NOT NULL DEFAULT ‘‘,

`ssl_cipher` blob NOT NULL,

`x509_issuer` blob NOT NULL,

`x509_subject` blob NOT NULL,

`max_questions` int(11) unsigned NOT NULL DEFAULT ‘0‘,

`max_updates` int(11) unsigned NOT NULL DEFAULT ‘0‘,

`max_connections` int(11) unsigned NOT NULL DEFAULT ‘0‘,

`max_user_connections` int(11) unsigned NOT NULL DEFAULT ‘0‘,

`plugin` char(64) COLLATE utf8_bin DEFAULT ‘‘,

`authentication_string` text COLLATE utf8_bin,

PRIMARY KEY (`Host`,`User`)

) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT=‘Users and global privileges‘;

使用MySQLdump備份後,恢復數據

數據庫恢復

[[email protected] data]# mysql -uroot -p123456 -e "drop database auth1;"

[[email protected] data]# mysql -uroot -p123456 < /backup/mysql_all-20170620.sql


mysql> source /backup/mysql_all-20170620.sql

數據表恢復

[[email protected] data]# mysql -uroot -p123456 -e ‘drop table auth1.user;‘

[[email protected] data]# mysql -uroot -p123456 auth1 < /backup/auth1_user-20170620.sql


本文出自 “13138249” 博客,轉載請與作者聯系!

MySQL數據庫-完全備份及恢復