MySQL的备份和恢复(2)

导出sqoop库的tb1(  错误处理方法)

[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;(记录了二进制日志的位置)

④回到服务器端

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/d1b6898921422285222b9d85170fba70.html