好文档 - 专业文书写作范文服务资料分享网站

Linux运维工程师工作手册

天下 分享 时间: 加入收藏 我要投稿 点赞

[root@oldboy~]#egrep-v\DROPTABLEIFEXISTS`test`; CREATETABLE`test`(

`id`int(4)NOTNULLAUTO_INCREMENT, `name`char(20)NOTNULL, PRIMARYKEY(`id`)

)ENGINE=MyISAMAUTO_INCREMENT=12DEFAULTCHARSET=gbk; LOCKTABLES`test`WRITE;

INSERTINTO`test`VALUES(1,'zhaoyue'),(2,'jesse'),(4,'elain'),(5,'wodi'),(6,'yingsui'),(7,'zhangyang'),(8,'zaixiangpan'),(9,''),(10,'老男孩'),(11,'我'); UNLOCKTABLES; DROPTABLEIFEXISTS`ett`; CREATETABLE`ett`( `id`int(11)DEFAULTNULL

)ENGINE=MyISAMDEFAULTCHARSET=gbk; LOCKTABLES`ett`WRITE; UNLOCKTABLES;

备份数据库结构(不包含数据)

mysqldump-uroot-d-p'oldboy'oldboyoldboy> -d只备份表结构

[root@oldboy~]#mysqldump-uroot-p'oldboy123'-doldboy>/tmp/ [root@oldboy~]#egrep-v\DROPTABLEIFEXISTS`ett`; CREATETABLE`ett`( `id`int(11)DEFAULTNULL

)ENGINE=MyISAMDEFAULTCHARSET=gbk; DROPTABLEIFEXISTS`test`; CREATETABLE`test`(

`id`int(4)NOTNULLAUTO_INCREMENT, `name`char(20)NOTNULL, PRIMARYKEY(`id`)

)ENGINE=MyISAMAUTO_INCREMENT=12DEFAULTCHARSET=gbk;

更多用法可以执行mysqldump–help查询。有关mysql和mysqldump同学们要详细总结。

5恢复数据库 source命令恢复

进入mysql数据库控制台,mysql-uroot-p mysql>use数据库

然后使用source命令,后面参数为脚本文件(如这里用到的.sql) mysql>source#这个文件是系统路径。 [root@oldboybak]#mysql-uroot-p'oldboy123'

WelcometotheMySQLmonitor.Commandsendwith;or\\g. ...skip...

Type'help;'or'\\h'forhelp.Type'\\c'toclearthecurrentinputstatement.

mysql>useoldboy Databasechanged mysql>showtables; +------------------+ |Tables_in_oldboy| +------------------+ |ett| |test|

+------------------+ 2rowsinsetsec)

mysql>droptablestest; QueryOK,0rowsaffectedsec)

mysql>systemls.

mysql>source./<==还是用第一版没加字符集的备份,就是备份后查看乱码的备份。 QueryOK,0rowsaffectedsec) ...skip...

QueryOK,0rowsaffectedsec) Q...skip...

QueryOK,0rowsaffectedsec)

mysql>select*fromtest; +----+-------------+ |id|name| +----+-------------+ |1|zhaoyue| |2|jesse| |4|elain| |5|wodi| |6|yingsui| |7|zhangyang| |8|zaixiangpan| |9|| |10||<==乱码 |11||

+----+-------------+ 10rowsinsetsec)

mysql>setnamesgbk; QueryOK,0rowsaffectedsec)

mysql>select*fromtest; +----+-------------+ |id|name| +----+-------------+ |1|zhaoyue| |2|jesse| |4|elain| |5|wodi| |6|yingsui| |7|zhangyang| |8|zaixiangpan|

|9||

|10|老男孩|<==仍然是正常的,就是说备份不加字符集导出,将来恢复不会影响恢复的数据,但是备份后查看文件会乱码。 |11|我| +----+-------------+ 10rowsinsetsec) mysql命令恢复(标准) mysql-uoldboy-p'oldboy'oldboy<

mysql>systemmysql-uroot-p'oldboy123'oldboy<<==导入 的是备份时加字符集的版本。 mysql>select*fromtest; +----+-------------+ |id|name| +----+-------------+ |1|zhaoyue| |2|jesse| |4|elain| |5|wodi| |6|yingsui| |7|zhangyang| |8|zaixiangpan| |9||

|10|老男孩|<==因为上文source导入时已经setnamesgbk了,所以此处不是乱码。 |11|我| +----+-------------+ 10rowsinsetsec) 引擎备份

由于MyISAM引擎为表级锁,因此,在备份时需要防止在备份期间数据写入而导致不一致,所以,在备份时使用--lock-all-tables加上读锁

mysqldump-A-F-B--lock-all-tables|gzip>/data/backup/$(date+%F).

特别提示:有关MyISAM和InnoDB引擎的差别和在工作中如何选择,在前面的文章已经详细讲解过了,这里就不在讲了。 引擎备份

InnoDB引擎为行锁,因此,备份时可以不对数据库加锁的操作,可以加选项--single-transaction进行备份:

mysqldump-A-F-B--single-transaction|gzip>/data/backup/$(date+%F). 特别注意:

1)--single-transaction仅适用于InnoDB引擎。

生产环境mysqldump备份命令

mysqldump–uroot–p–S/data/3306/–default-character-set=gbk–single-transaction–F–Boldboy|gzip>/server/backup/mysql_$(date+%F). :注

-F:刷新bin-log参数,数据库备份完以后,会刷新bin-log

增量备份: 更新bin-log:

mysqladmin–uroot–p–S/data/3306/flush-logs 如生成文件

把生成的最新文件,CP到/var/backup/ 把二进制的日志生成sql语句: mysqlbinlog>

如果有多个库,我们应该用-d来指定恢复单个库

mysqlbinlog–doldboy>(当然对于库也要分库备,否则恢复还是麻烦) 还原数据:先还原全备,再还原增备 先还原全备:mysql–uroot–p<

还原增备:mysql–uroot–p<(恢复增备的时候,需要把误操作的语句删掉后,再还原,否则,还原后,还是会和误操作后一样)

基于时间点的增量恢复

Linux运维工程师工作手册

[root@oldboy~]#egrep-v\DROPTABLEIFEXISTS`test`;CREATETABLE`test`(`id`int(4)NOTNULLAUTO_INCREMENT,`name`char(20)NOTNULL,PRIMARYKEY(`id`))ENGINE=MyISAMAUTO_INCREMENT=12DEFAULTCHARS
推荐度:
点击下载文档文档为doc格式
06o495lbfm6o2vt5lzj67d82u9zjlx00ieq
领取福利

微信扫码领取福利

微信扫码分享