[root@cai ~]# mysqldump -uroot -p123456 -T /tmp sqoop tb1 --fields-enclosed-by=\" --fields-terminated-by=,
(2)逻辑备份的恢复
[root@cai dumpback]# mysql -uroot -p123456 -D cai </tmp/dumpback/aa_cairui.sql
将aa底下的cairui表恢复到cai database下
②纯文本文件的恢复
使用mysqllimport工具恢复,此工具可以用于恢复生成txt和sql两文件,所以保证txt文件对应的数据库的表存在。
首先恢复表结构,语句如下: [root@cai tmp]# mysql -uroot -p123456 -D aa </tmp/tb1.sql 恢复数据,语句如下: [root@cai tmp]# mysqlimport -uroot -p123456 aa --fields-enclosed-by=\" --fields-terminated-by=, /tmp/tb1.txt
3.物理备份和恢复
物理备份比逻辑备份速度要快,分为以下两种:
a。冷备份:这种方式是最直接的备份方式,就是首先停掉数据库服务,然后cp数据文件,恢复时停止mysql,先进行操作系统级别恢复文件,然后重启mysql服务,使用mysqlbinlog工具恢复自备份以来的所有binlog。这种方式虽然简单,而且对所有引擎支持,但是有一个非常大的弊端就是需要关闭数据库服务。在当前的大多数信息系统都是不允许长期时间停机的。
b。热备份:对于不同的存储引擎方法也不同
4.各种备份与恢复方法的具体实现
(1)利用select into outfile实现数据备份与还原
①把需要备份的数据备份出来
mysql> select * from students; +------+------+------+ | id | name | age | +------+------+------+ | 1 | li | 36 | | 2 | wang | 26 | | 3 | cai | 12 | mysql> select * from students where age>30 into outfile '/tmp/students.txt';//将年龄大于30的同学的信息备份出来
发现students。txt是文本文件,不能直接导入数据库,需要使用load data infile恢复到mysql服务器端,删除年龄大于30的用户,模拟数据被破坏。
mysql> delete from students where age>30; mysql> load data infile '/tmp/students.txt' into table students;
(2)备份策略:完全备份+增量备份+二进制日志
①先给数据库做完全备份
[root@cai tmp]# mysqldump -uroot -p123456 --single-transaction --master-data=2 --databases hellodb >/backup/hellodb_'data+%F'.sql
②回到mysql服务器端更新数据
mysql> use hellodb; Database changed mysql> create table tb1(id int); Query OK, 0 rows affected (0.02 sec) mysql> insert into tb1 values(1),(2),(3); Query OK, 3 rows affected (0.02 sec) Records: 3 Duplicates: 0 Warnings: 0
③先查看完全备份文件里面记录的位置
[root@cai backup]# cat hellodb_data+%F.sql | less -- CHANGE MASTER TO MASTER_LOG_FILE='cai-bin.000001', MASTER_LOG_POS=107;(记录了二进制日志的位置)
④回到服务器端