数据库备份技术
逻辑备份是指只将数据库里面的逻辑数据打包走(逻辑数据是指数据库里有效的数据)。
逻辑备份的优缺点:
优点:备份出来的是纯数据,占用磁盘空间是很小的
缺点:因为备份出来的是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
如果能正常登陆就说明,数据库恢复完成。