mysql逻辑备份采用什么命令_mysql的逻辑备份

Mysql物理备份可以利用mysqldump工具来备份相应的数据库的文本数据,其命令相对也很简单。

C:Userspc>mysqldump

-help

Usage: mysqldump

[OPTIONS] database [tables]

OR mysqldump [OPTIONS] --databases [OPTIONS]

DB1 [DB2 DB3...]

OR mysqldump [OPTIONS] --all-databases

[OPTIONS]

For more options,

use mysqldump --help

例如备份xiaoyu的tab02表

C:Userspc>mysqldump

-u root -p xiaoyu tab02 >f:tab02.txt

Enter password:

******

备份xiaoyu的tab02和tab01的表

C:Userspc>mysqldump

-u root -p xiaoyu tab02 tab01 >f:tab02.txt

Enter password:

******

备份xiaoyu这个database

C:Userspc>mysqldump

-u root -p xiaoyu >f:tab02.txt

Enter password:

******

备份相应的条件的数据文本记录

C:Userspc>mysqldump

-u root -p xiaoyu t_qury01 --where='id=3' > f:test01.txt

Enter password:

******

Mysqldump还可以使用—no-data不导出建表语句,只导出文本文件数据;--no-create-info不导出rows,只导出建表的ddl语句, .

-master-data或者--master-data=2时mysqldump会将当前mysql使用的binlog日志的名称和位置记录到dump文件中,并且是以change_master语句的形式,--master-data=1将会把change-master以注释的形式存在,这些信息可以在实施slave在线搭建时有用。即使不搭建slave也可以在某些情况下利用binlog做进一步恢复。

当然这些dump文件都是ddl和dml的文本文件,可以扩平台迁移,同样mysql也提供了纯文本的文件备份,简而言之就是数据源。

C:Userspc>mysqldump

-u root -p -T f:app xiaoyu tab02 --fields_terminated_by=,

--fields_enclosed_by="

Enter password:

******

这样就会在f:app目录下生成一个tab02.sql的ddl文件和tab02.txt存文件文件,tab02.txt也就是数据源。

也可以先进入到mysql数据库中,用如下形式导出文本文件的数据源,不过疑惑的是该命令在linux环境下正常执行,在windows环境下居然抱权限不足,无法写入。

mysql> select *

into outfile '/tmp/test01.txt'

-> fields terminated by ',' enclosed by

'"'

-> from userinfo limit 10;

那么相对的逻辑备份的恢复就很简单了,ddl和dml的文本文件可以用如下方式:

Source path和myql –u root –p <

/tmp/test01.txt恢复即可。

这里顺便提一下对于mysql的逻辑备份和恢复的理解,由于逻辑备份时是一个一个表的备份,就有可能造成数据的不一致,有些应用可能影响不大但是对于关系比较严格的系统就不能忽略了,可以在备份开始时采取lock table(针对所有存储引擎)或者—single_transaction的形式来备份,前者lock table write只提供读取功能,后者是利用innodb等存储引擎的事务一致性来实现的。

数据源方式的逻辑恢复也相对简单,这里个人一般使用如下方式:

[root@Analyser ~]#

mysqlimport -u root -p cobra --fields_terminated_by=,

--fields_optionally_enclosed_by=" /tmp/userinfo.txt

注意再测试mysqlimport过程中,如果该表有索引信息,那么用mysqimport数据源很可能会出现

mysqlimport: Error:

1062, Duplicate entry '0' for key 'SYS_C009326', when using table: userinfo

此时是因为索引造成,采取的truncate表后然后倒入数据源正常。

虽然数据源文件占用空间小,但是还是推荐使用mysqldump的形式来进行逻辑备份,简单而且命令相对来说比较容易记忆。

[@more@]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值