MySQL的备份与还原,非常规备份,全量备份,增量备份
一、测试数据库的创建
1:官方百万级别的测试数据库:
官方测试数据库github网址:https:github。comdatacharmertestdb
下载到目录,解压即可,运行命令:mysqlurootpemployees。sqlmysqlurootpemployeespartitioned。sql
2:自己创建简单测试数据库:
快速随机生成测试语言的网站:https:generatedata。com
选择sql和想生成的字段,点击生成Generate!生成即可。
在MySQL输入生成的语句即可。1:创建数据库createdatabasetestDatabase;2:使用数据库usetestDatabase;3:创建表CREATETABLEmyTable(idmediumint(8)unsignedNOTNULLautoincrement,namevarchar(255)defaultNULL,phonevarchar(100)defaultNULL,countryvarchar(100)defaultNULL,numberrangemediumintdefaultNULL,PRIMARYKEY(id))AUTOINCREMENT1;3:表种插入数据INSERTINTOmyTable(name,phone,country,numberrange)VALUES(WadeSykes,19173423132,Turkey,3),(BarrettBoyer,12643040665,Germany,9),(AlanaKaufman,(213)2544997,India,0),(EmmanuelLopez,(543)4930137,Germany,9),(TimonBauer,12694482772,Pakistan,6);
3:测试备份还原时用到的命令
删库跑路测试(先备份好)dropdatabasetestDatabase;
还原后查询库的表数据是否完整。selectfromtestDatabase。myTableidnamephonecountrynumberrange1WadeSykes19173423132Turkey32BarrettBoyer12643040665Germany93AlanaKaufman(213)2544997India04EmmanuelLopez(543)4930137Germany95TimonBauer12694482772Pakistan6二、非常规备份方式
采用复制整个数据存放目录
1:查看数据库数据存放位置
有两种方法:
1):在数据库中用命令showvariableslikedatadir;查看mysqlshowvariableslikedatadir;VariablenameValuedatadirvarlibmysql1rowinsetTime:0。031s
2):在配置文件中查看,配置了datadir目录的可查看。没有配置的默认为varlibmysql位置
Linux中查看配置文件centoscatetcmy。cnfubunutcatetcmysqlmy。cnf
2:复制目录或者目录下某个数据库名cpfrvarlibmysqlbackup
3:还原时直接复制文件夹到数据库目录即可cpfrbackupvarlibmysql
三、常规备份方式基本命令mysqldump
mysqldump又可叫做全量备份。
参数databases同B,单独一个库,也可省略。
1、备份命令mysqldump格式
格式:mysqldumph主机名P端口u用户名p密码database数据库名文件名。sql
备份testDatabase数据库sudomysqldumpurootpdatabasestestDatabasetestdatabase。bak。sql
2、备份MySQL数据库为带删除表的格式
备份MySQL数据库为带删除表的格式,能够让该备份覆盖已有数据库而不需要手动删除原有数据库。sudomysqldumpadddroptableurootpdatabasestestDatabasetestdatabase。sql
3、直接将MySQL数据库压缩备份
备份并压缩sudomysqldumpurootpdatabasestestDatabasegziptestdatabase。sql。gz
4、备份MySQL数据库某个(些)表
备份testDatabase中的myTable表,不需要用参数databases或者BsudomysqldumpurootptestDatabasemyTablemyTable。sql
5、同时备份多个MySQL数据库
同时备份testDatabase和employees两个库sudomysqldumpurootdatabasestestDatabaseemployeesbackup。sql
6、备份服务器上所有数据库
参数alldatabases同Asudomysqldumpalldatabasesallbackupfile。sql
7、还原MySQL数据库的命令
1)不指定数据名还原,默认生成原数据库名称,还原所有数据库。sudomysqlurootpallbackupfile。sql
2)指定数据名还原,还原指定单个数据库,需在数据库种预先创建一个testDatabase名称。sudomysqlurootptestDatabaseallbackupfile。sql
3)还原压缩的MySQL数据库gunziptestDatabase。sql。gzmysqlurootptestDatabaseubuntu加sudosudogunziptestDatabase。sql。gzsudomysqlurootptestDatabase
4)进入数据库用source导入进入MySQL后,先创建database:CREATEDATABASEtestDatabase;选择数据库USEtestDatabase;导入sql文件SOURCEhomeubuntutestDatabase。sql;四、增量备份mysqladmin,以及还原
增量备份是针对于数据库的binlog日志进行备份的,增量备份是在全量的基础上进行操作的。增量备份主要是靠mysql记录的binlog日志。
1:查看是否开启binlog日志
进入mysql输入命令可查看。showvariableslikelogbin;
显示如下为开启状态,日志文件在varlibmysql以binlog。00001的格式保存。mysqlshowvariableslikelogbin;VariablenameValuelogbinONlogbinbasenamevarlibmysqlbinloglogbinindexvarlibmysqlbinlog。indexlogbintrustfunctioncreatorsOFFlogbinusev1roweventsOFFsqllogbinON6rowsinsetTime:0。012smysqlroot(none):testDatabase
如未开启,需要在配置文件种配置〔mysqld〕binlogsetting,开启增量备份的关键logbinvarlibmysqlbinlog
2:查看目前使用的binlog日志文件
进入mysql查看命令。showmasterstatus;
显示如下,目前使用的是binlog。000022文件,所有操作都记录在此文件。mysqlshowmasterstatus;FilePositionBinlogDoDBBinlogIgnoreDBExecutedGtidSetbinlog。0000221561rowinsetTime:0。007s
查看当前testDatabase的表myTable数据如下,mysqlselectfromtestDatabase。myTableidnamephonecountrynumberrange1WadeSykes19173423132Turkey32BarrettBoyer12643040665Germany93AlanaKaufman(213)2544997India04EmmanuelLopez(543)4930137Germany95TimonBauer12694482772Pakistan67ABC19173423123KHMER66rowsinsetTime:0。008s
3:刷新日志,使用新的日志文件(备份)
在命令端执行命令mysqladminurootpflushlogs
日志文件从binlog。000022变为binlog。000023mysqlshowmasterstatus;FilePositionBinlogDoDBBinlogIgnoreDBExecutedGtidSetbinlog。0000238411rowinsetTime:0。007s
这时相当与已经备份成功,备份文件即为上次的binlog。000022日志文件。
4:删除数量,从日志还原数据
1)删除ABC行deletefrommyTablewherenameABC;
查询以及没有ABC行列。mysqlselectfromtestDatabase。myTableidnamephonecountrynumberrange1WadeSykes19173423132Turkey32BarrettBoyer12643040665Germany93AlanaKaufman(213)2544997India04EmmanuelLopez(543)4930137Germany95TimonBauer12694482772Pakistan65rowsinsetTime:0。008s
2)恢复数据ABC行
退出mysql,在命令端用mysqlbinlog命令恢复到binlog。000022日志状态。sudomysqlbinlogvarlibmysqlbinlog。000022sudomysqlurootptestDatabase;
进入数据库再次查看数据,ABC已经恢复。mysqlselectfromtestDatabase。myTableidnamephonecountrynumberrange1WadeSykes19173423132Turkey32BarrettBoyer12643040665Germany93AlanaKaufman(213)2544997India04EmmanuelLopez(543)4930137Germany95TimonBauer12694482772Pakistan67ABC19173423123KHMER66rowsinsetTime:0。008s
增量备份完成。
7月旅行,强烈推荐这5个地方一定要去一眨眼2022年过去一半了,7月份马上就要到了了,快趁着暑假来临,去外面潇洒一圈吧!下面小编为大家总结了5个适合7月旅行的地方,赶快收藏起来准备出发吧四川峨眉山……
你的善良,要带点锋芒常言道人之初,性本善,善良是一个人的本性,每个人的心都有善的一面。但如何表现善良也是一门学问,有些人为了保护自己,装出高冷不近人情,但把善心给了该给的人,而有些人不懂得保护自己……
威金斯养生枸杞保温杯安德鲁威金斯,加拿大人,2014年NBA选秀大会上以第一轮第1顺位被克利夫兰骑士队选中。可惜新秀赛季还没有为骑士队打一场比赛,他就被交易到了明尼苏达森林狼。因为当时的联盟第一人……
油价调整消息今天10月22日,调价后全国92号汽油柴油零售价国内的油价每十个工作日都要进行一次调整,截止今天类似这样的油价调整在今年已经进行了19次,整体来看,每升的汽柴油价格比年初时涨了1。041。1元,同时第20次油价调整到今天也已……
人到五十岁,如果出现这四种迹象,往往是苦的开始文飞鱼五十岁的人生,真的很难。每天起来就要埋头苦干,就要想着如何努力赚到更多的钱,这样才能支撑得了生活,维持得了生活。五十岁后,感觉身体都不是自己的,为了家庭……
为啥要拼了命的往大城市挤?前些年,岳父大人从老家县城来我家小住。我们家当时住在九楼,因为是在4A景区旁边,房前没有高楼,视野很开阔。有一天,我们坐在阳台上聊天。看着眼前密密麻麻的建筑,景区门口熙熙攘攘的……
脖子痛僵咔咔响,是得了颈椎病吗?该咋办?Q:养生君,我30岁,常常脖子和后背痛,有时候还会咔咔响;没有拍片检查,理疗医生说是颈椎病,可是我手不麻头不晕,也会是颈椎问题吗?不同程度、不同类型的颈椎病,表现完全不同……
不加糖,好喝到能开奶茶店的配方!丝滑细腻,尝过1次就爱上今天这个方子,有一半都是办公室的小姐姐贡献的。以前她是真不爱吃牛油果的人,直到喝上了这个奶昔,一下子就找到了牛油果的正确打开方式!想要把牛油果做得好吃,肯定少不了配……
齐安科技入围中国网络安全细分赛道发展与技术创新趋势洞察报告苟日新,日日新,又日新,中国迎来网络安全产业变革的关键期,嘶吼安全产业研究院此次推出《日日新,又日新中国网络安全细分赛道发展与技术创新趋势洞察报告》。五大网络安全细分赛道……
英雄传说黎之轨迹2人物情报俊男靓女饱眼福《英雄传说:黎之轨迹2》公布了角色介绍和截图,一起看看吧!ReneKincaid中央情报局综合分析部分析师。一位才华横溢的精英官僚,在部门内的派系纷争中大展拳脚,游……
宋慧乔比你想的坏多了,在自己国家骂名远扬,不是没有道理有道是:韩娱女神宋慧乔,国内人人都喜欢,然而她在本国中,风评却是两极化。到底为何,请诸位看官细听分说一、从2000年的《蓝色生死恋》,……
近期儿童哮喘多发急性发作怎么办?春天是过敏的高发季节,也是哮喘的高发期。据世界卫生组织的最新数据,目前全世界约有2。35亿人罹患哮喘,我国哮喘受累人数超过3000万,儿童患病率超过3。儿童哮喘发病率呈增加趋势……