一、数据备份与恢复
数据备份的方式
物理备份:拷贝存放库和表文件的目录(使用cp、tar等命令备份)
逻辑备份:备份生成库、表、插入记录时的sql语句(使用mysqldump或第三方软件)
数据备份时候的策略
完整备份:备份数据库服务器上的所有库,所有表。mysqldump
差异备份:备份自从完整备份之后生成的新数据、
增量备份:备份自从上一次备份后生成的新数据。
注:在生产环境中通常使用备份策略组合
完整备份+差异备份
完整备份+增量备份
使用mysqldump完整备份
注:mysqldump是由MySQL-client提供的
格式:
mysqldump -h(服务器ip) -u(用户名)-p(密码) 数据库名 > /备份目录/xxx.sql
mysqldump -h(服务器ip) -u(用户名)-p(密码) 数据库名 > xxx.sql
如果实在本机操作可以使用:mysqldump数据库名 > xxx.sql
数据库名的表示方式
数据库名:表示备份这个库里的所有表
示例:mysqldump-hlocalhost -uroot -p userdb > /bakdb/userdb.sql
数据库名 表名:直备份数据库中的某个表
示例:mysqldump-hlocalhost -uroot -p userdb user_tab > /bakdb/userdb.user_tab.sql
--all-databases:备份服务器上的所有库上的所有表
示例:mysqldump-hlocalhost -uroot -p --all-databases > /bakdb/mysql.sql
-B 数据库名1 数据库2 数据库名N:对某几个库做完整备份
mysqldump-hlocalhost -uroot -p123456 -B userdb studb > twodb.sql
注:
备份文件名不能重名,如果重名了,会覆盖之前的备份;
-p后面可以直接根密码,或者只写-p,在之后输入密码;
数据恢复的语法格式
mysql -h(数据库ip) -u(用户名)-p(密码) [数据库名] < 备份文件名
mysql -hlocalhost-uroot -p123456 userdb < userdb.sql
注:当备份的时候备份的是多个数据库时,备份的数据含有建库和切换库的语句,恢复的时候不需要指定数据库名;
mysql -hlocalhost-uroot -p123456 < twodb.sql
完整备份的缺陷:
用完整备份恢复数据只能恢复到完整备份时候的数据,新生成的数据无法恢复;