一般网游java mysql数据库备份份都每各多少小时备份一次

欢迎访问蓝队云一站式平台!
关注蓝队云
您的位置:
linux实现mysql数据库每天自动备份定时备份
发布时间:&&&&&浏览量:236人
上一篇:下一篇:
最新发布的内容
大家感兴趣的内容
服务时间:9:00 - 24:00
选择对应客服在线沟通:
您可能遇到了下面的问题:
400专线7x24小时全时响应
技术在线支持
服务时间:全天24小时
选择对应技术在线沟通:
您可能遇到了下面的问题:
400专线7x24小时全时响应
网站ICP备案咨询
服务时间:9:00 - 17:30
选择对应客服在线沟通:
您可能遇到了下面的问题:
400专线7x24小时全时响应51CTO旗下网站
大数据如何为备份和恢复改变游戏规则?
在如今的分布式数据库中,想针对所有那些PB级的数据获得一份可靠的快照并非易事。这是IT界众所周知的事实:改变软件堆栈的一部分,你很有可能要改变另一个部分。如果举个明显的例子,只要看看大数据。
作者:布加迪编译来源:51CTO| 10:38
在如今的分布式数据库中,想针对所有那些PB级的数据获得一份可靠的快照并非易事。
这是IT界众所周知的事实:改变软件堆栈的一部分,你很有可能要改变另一个部分。如果举个明显的例子,只要看看大数据。
首先,大数据彻底改变了数据库领域,带来了一批新的&向外扩展型&技术。Hadoop、MongoDB和Cassandra之类的产品就体现了这一点:数据分布在多台商用服务器上,而不是被塞入到一台大型服务器上。当然,这么做的优点在于灵活性:若想容纳更多PB级的数据,你只需要添加另外一两台廉价的服务器,而不是&向上扩展&,支付大笔费用购买更庞大的服务器。
这一切很好,不过现在出现了一个新的棘手问题:备份和恢复。
知名调研机构Gartner的副总裁戴夫&拉塞尔(Dave
Russell)说:&传统的备份产品处理数量非常多的数据时面临挑战。架构具有的向外扩展性对传统的备份应用软件来说也难以处理。&
拉塞尔表示,如今的横向扩展型数据库确实包括可用性和恢复方面的一些功能,但是它们通常不如IT用户已经习惯的那些功能来得强大、可靠。
如果出现系统停运,这个问题就会导致大企业岌岌可危。不过与此同时,一类新的数据保护产品开始浮出水面。Datos
IO公司的RecoverX就是其中之一。
Datos IO的联合创始人兼首席执行官塔伦&塔库尔(Tarun
Thakur)说:&如果你有一个传统的数据库,比如甲骨文或MySQL,它又是向上扩展的,那么始终存在持久性日志(durable log)这个概念。&
在这类情况下,如果出现了问题,该日志的副本就成为了备份。
在如今下一代数据库盛行的世界(数据分布在多台小型机器上),这并不是那么简单。
塔库尔解释道:&根本没有持久性日志这个概念,因为没有主系统,每个节点都在处理各自的事务。不同的节点可能获得不同的权利,每一个节点对于操作有不同的视图。&
这一方面是由于为了适应通常所说的大数据的&三个V&:数量、速度和种类而做出的取舍。具体来说,为了提供可扩展性,同时适应以越来越快的速度向我们涌来的海量数据,如今的分布式数据库背离了传统关系数据库通常承诺的&ACID&标准。相反,它们采用了所谓的&BASE&原则。
这是一个重大区别。最密切相关的是,相比传统数据库承诺在整个过程中有很强的一致性(也就是ACID中的&C&),分布式数据库而是力争实现所谓的&最终一致性&。更新会迟早体现在数据库的所有节点中,不过存在时间滞后。
塔库尔说:&如果你需要可扩展性,就需要放弃一致性DD你必须得放弃其中一个。&
这样一来就很难为时间点恢复获得全局的一份可靠快照。451 Research的研究副总裁西蒙&鲁宾逊(Simon
Robinson)表示,不仅更难在任何一个给定的时间点跟踪哪些数据可能转移到了分布式数据库中的哪个地方,如果数据出现了损坏,常常被&整合&到更新颖分布式数据库中的弹性功能(比如复制)也无法保护你。
他说:&你刚刚复制了那个损坏的数据。&
本月早些时候,Datos
IO推出了RecoverX,借助功能特性(包括所谓的可扩展版本控制和语义重复数据删除),解决那些问题。该公司表示,其结果是,与集群一致的备份不仅节省空间,还能够以原生格式出现。
索维克&达斯(Souvik Das)就在不久前还是第一资本汽车金融公司(CapitalOne Auto
Finance)的首席技术官兼主管工程技术的执行副总裁,他对备份难题可是深有体会。
达斯表示,使用了多年的传统数据库后,第一资本早在几年前进行了一次&巨大的转变&,包括推出新的分布式技术,比如Cassandra。现在,他是面向医疗保健行业的初创公司Grand
Rounds主管工程技术的高级副总裁。
这就意味着为备份和恢复寻找一种新的策略。
他解释道:&大多数备份厂商和软件通常适应它们备份的系统的类型。&
他表示,如果使用老式备份产品的同时使用新式的分布式数据库,可能会带来麻烦。
达斯说:&不是该软件会因不知道如何备份新的数据存储系统而完全失效,就是它会以一种很不理想的方式运行。我们知道,那样的话,我们就要使用不同的备份解决方案。&
达斯表示,第一资本一直在评估Datos IO以及这个领域的另一家大厂商:Talena。
提供较传统备份产品的厂商也在针对大数据,逐步调整自己的技术。
451 Research的罗宾逊说:&老牌的备份厂商通常需要一些时间来支持新颖的技术。&
他补充说:&回到10年前,最初为VMware虚拟机轻松进行备份是件很难的事情。这就给了Veeam之类的厂商大好机会,得以从老牌厂商的眼皮子底下进入并抢夺虚拟机备份市场。&
【编辑推荐】
【责任编辑: TEL:(010)】
大家都在看猜你喜欢
头条头条头条头条头条
24H热文一周话题本月最赞
讲师:22人学习过
讲师:1人学习过
讲师:2人学习过
精选博文论坛热帖下载排行
本书由浅入深、循序渐进地介绍了目前流行的基于Eclipse的优秀框架。全书共分14章,内容涵盖了Eclipse基础、ANT资源构造、数据库应用开发、W...
订阅51CTO邮刊博客访问: 248141
博文数量: 59
博客积分: 2941
博客等级: 少校
技术积分: 975
注册时间:
IT168企业级官微
微信号:IT168qiye
系统架构师大会
微信号:SACC2013
分类: Mysql/postgreSQL
MYSQLINNODBMYISAM
mysqldumpBIN
||---------------------||---------------------||---------------------||---------------------||---------------------||
00:00:00&&&&&&&& && 01:00:00&&&&&&& 02:00:00&&& &&&&03:00:00&&&&&& 04:00:00 &&&
&&&&& &&&&binlog& ……
00:00:00mysqldump
mysqldump –h
-u root –p
--single-transaction --skip-triggers --flush-logs --delete-master-logs --master-data=1 --database
& > /root/temp/mysqlbak00.sql
--single-transaction 该选项从服务器转储数据之前发出一个BEGIN SQL语句。它只适用于事务表,例如InnoDB和BDB,因为然后它将在发出BEGIN而没有阻塞任何应用程序时转储一致的数据库状态。注意:此参数是与“--lock-tables”参数抵触的,二者只能选一。
--skip-triggers
--flush-logs BIN
--delete-master-logs BINBIN
--master-data=1 RELOAD1CHANGE MASTERSQL2CHANGE MASTERSQLvalue1
(2)bin-logbinlogbin
(3)CHANGE MASTERmysqldumpBINLOGchange master
(1)MYSQLDUMPBIN
(2)BINLOGRSYNCflush logsBIN
(2)relay-binrelay-bin.indexmaster.inforelay-log.info
(3)00:00:00mysqldumpBMYSQL
IOBINLOGAB1
1 00:00:00mysqldump
mysql “source /root/temp/mysqlbak00.sql”
2 mysqlbinlog binlog
mysqlbinlog –no-defaults /root/temp/BIN |mysql –uroot –p
ROOTRELOAD
(4)change master
binposmysqlha-bin.000019POS372
Mysqlbinlog –no-defaults /root/temp/mysqlha-bin.000019
Change master to master_host=’’,master_user=’’,master_password=’’,master_logfile=’mysqlha-bin.000019’,master_log_pos=372;
binlogbinlog3030
阅读(677) | 评论(0) | 转发(0) |
相关热门文章
给主人留下些什么吧!~~
请登录后评论。我们试着想一想, 在生产环境中什么最重要?如果我们服务器的硬件坏了可以维修或者换新, 软件问题可以修复或重新安装, 但是如果数据没了呢?这可能是最恐怖的事情了吧, 我感觉在生产环境中应该没有什么比数据跟更为重要. 那么我们该如何保证数据不丢失、或者丢失后可以快速恢复呢?只要看完这篇, 大家应该就能对MySQL中实现数据备份和恢复能有一定的了解。
为什么需要备份数据?
其实在前言中也大概说明了为什么要备份数据, 但是我们还是应该具体了解一下为什么要备份数据
在生产环境中我们数据库可能会遭遇各种各样的不测从而导致数据丢失, 大概分为以下几种.
误操作 (占比最大)
所以, 为了在数据丢失之后能够恢复数据, 我们就需要定期的备份数据, 备份数据的策略要根据不同的应用场景进行定制, 大致有几个参考数值, 我们可以根据这些数值从而定制符合特定环境中的数据备份策略
能够容忍丢失多少数据
恢复数据需要多长时间
需要恢复哪一些数据
数据的备份类型
数据的备份类型根据其自身的特性主要分为以下几组
完全备份指的是备份整个数据集( 即整个数据库 )、部分备份指的是备份部分数据集(例如: 只备份一个表)
而部分备份又分为以下两种
增量备份指的是备份自上一次备份以来(增量或完全)以来变化的数据; 特点: 节约空间、还原麻烦&差异备份指的是备份自上一次完全备份以来变化的数据&特点: 浪费空间、还原比增量备份简单
MySQL备份数据的方式
在MySQl中我们备份数据一般有几种方式
热备份指的是当数据库进行备份时,&数据库的读写操作均不是受影响&温备份指的是当数据库进行备份时,&数据库的读操作可以执行, 但是不能执行写操作&冷备份指的是当数据库进行备份时,&数据库不能进行读写操作, 即数据库要下线
MySQL中进行不同方式的备份还要考虑存储引擎是否支持
我们在考虑完数据在备份时, 数据库的运行状态之后还需要考虑对于MySQL数据库中数据的备份方式
物理备份一般就是通过tar,cp等命令直接打包复制数据库的数据文件达到备份的效果&逻辑备份一般就是通过特定工具从数据库中导出数据并另存备份(逻辑备份会丢失数据精度)
备份需要考虑的问题
定制备份策略前, 我们还需要考虑一些问题
我们要备份什么?
一般情况下, 我们需要备份的数据分为以下几种
二进制日志, InnoDB事务日志
代码(存储过程、存储函数、触发器、事件调度器)
服务器配置文件
这里我们列举出常用的几种备份工具&mysqldump&: 逻辑备份工具, 适用于所有的存储引擎, 支持温备、完全备份、部分备份、对于InnoDB存储引擎支持热备&cp, tar 等归档复制工具: 物理备份工具, 适用于所有的存储引擎, 冷备、完全备份、部分备份&lvm2 snapshot: 几乎热备, 借助文件系统管理工具进行备份&mysqlhotcopy: 名不副实的的一个工具, 几乎冷备, 仅支持MyISAM存储引擎&xtrabackup: 一款非常强大的InnoDB/XtraDB热备工具, 支持完全备份、增量备份, 由percona提供
设计合适的备份策略
针对不同的场景下, 我们应该制定不同的备份策略对数据库进行备份, 一般情况下, 备份策略一般为以下三种
直接cp,tar复制数据库文件
mysqldump+复制BIN LOGS
lvm2快照+复制BIN LOGS
xtrabackup
以上的几种解决方案分别针对于不同的场景
如果数据量较小, 可以使用第一种方式, 直接复制数据库文件
如果数据量还行, 可以使用第二种方式, 先使用mysqldump对数据库进行完全备份, 然后定期备份BINARY LOG达到增量备份的效果
如果数据量一般, 而又不过分影响业务运行, 可以使用第三种方式, 使用lvm2的快照对数据文件进行备份, 而后定期备份BINARY LOG达到增量备份的效果
如果数据量很大, 而又不过分影响业务运行, 可以使用第四种方式, 使用xtrabackup进行完全备份后, 定期使用xtrabackup进行增量备份或差异备份
使用cp进行备份
我们这里使用的是使用yum安装的mysql-5.1的版本, 使用的数据集为从网络上找到的一个员工数据库
查看数据库的信息
mysql& SHOW DATABASES; & &#查看当前的数据库, 我们的数据库为employees+
向数据库施加读锁
mysql& FLUSH TABLES WITH READ LOCK; & &#向所有表施加读锁Query OK, 0 rows affected (0.00 sec)
备份数据文件
[root@node1 ~]
模拟数据丢失并恢复
[root@node1 ~]# rm -rf /var/lib/mysql
使用mysqldump+复制BINARY LOG备份
我们这里使用的是使用yum安装的mysql-5.1的版本, 使用的数据集为从网络上找到的一个员工数据库
我们通过mysqldump进行一次完全备份, 再修改表中的数据, 然后再通过binary log进行恢复&二进制日志需要在mysql配置文件中添加 log_bin=on 开启
mysqldump命令介绍
mysqldump是一个客户端的逻辑备份工具, 可以生成一个重现创建原始数据库和表的SQL语句, 可以支持所有的存储引擎, 对于InnoDB支持热备
查看数据库的信息
mysql& SHOW DATABASES; & &#查看当前的数据库, 我们的数据库为employees+
使用mysqldump备份数据库
[root@node1 ~]# mysql -uroot -p -e 'SHOW MASTER STATUS' & #查看当前二进制文件的状态, 并记录下position的数字+------------------+----------+--------------+------------------+| File & & & & & & | Position | Binlog_Do_DB | Binlog_Ignore_DB |+------------------+----------+--------------+------------------+| mysql-bin.000003 | & & &106 | & & & & & & &| & & & & & & & & &|+------------------+----------+--------------+------------------+[root@node1 ~]# mysqldump --all-databases --lock-all-tables && backup.sql & #备份数据库到backup.sql文件中mysql& CREATE DATABASE TEST1; & #创建一个数据库Query OK, 1 row affected (0.00 sec)mysql& SHOW MASTER STATUS; & #记下现在的position+------------------+----------+--------------+------------------+| File & & & & & & | Position | Binlog_Do_DB | Binlog_Ignore_DB |+------------------+----------+--------------+------------------+| mysql-bin.000003 | & & &191 | & & & & & & &| & & & & & & & & &|+------------------+----------+--------------+------------------+1 row in set (0.00 sec)[root@node1 ~]# cp /var/lib/mysql/mysql-bin.000003 /root &#备份二进制文件[root@node1 ~]# service mysqld stop & #停止MySQL[root@node1 ~]# rm -rf /var/lib/mysql/* & #删除所有的数据文件[root@node1 ~]# service mysqld start & &#启动MySQL, 如果是编译安装的应该不能启动(需重新初始化), 如果rpm安装则会重新初始化数据库mysql& SHOW DATABASES; & #查看数据库, 数据丢失!+--------------------+| Database & & & & & |+--------------------+| information_schema || mysql & & & & & & &|| test & & & & & & & |+--------------------+3 rows in set (0.00 sec)mysql& SET sql_log_bin=OFF; & #暂时先将二进制日志关闭 &Query OK, 0 rows affected (0.00 sec)mysql& source backup.sql &#恢复数据,所需时间根据数据库时间大小而定mysql& SET sql_log_bin=ON; 开启二进制日志mysql& SHOW DATABASES; & #数据库恢复, 但是缺少TEST1+--------------------+| Database & & & & & |+--------------------+| information_schema || employees & & & & &|| mysql & & & & & & &|| test & & & & & & & |+--------------------+4 rows in set (0.00 sec)[root@node1 ~]# mysqlbinlog --start-position=106 --stop-position=191 mysql-bin.000003 | mysql employees #通过二进制日志增量恢复数据mysql& SHOW DATABASES; & &#现在TEST1出现了!+--------------------+| Database & & & & & |+--------------------+| information_schema || TEST1 & & & & & & &|| employees & & & & &|| mysql & & & & & & &|| test & & & & & & & |+--------------------+5 rows in set (0.00 sec)#完成
使用lvm2快照备份数据
做实验之前我们先回顾一下lvm2-snapshot的知识
LVM快照简单来说就是将所快照源分区一个时间点所有文件的元数据进行保存,如果源文件没有改变,那么访问快照卷的相应文件则直接指向源分区的源文件,如果源文件发生改变,则快照卷中与之对应的文件不会发生改变。快照卷主要用于辅助备份文件。 这里只简单介绍,
部署lvm环境
添加硬盘; 这里我们直接实现SCSI硬盘的热插拔, 首先在虚拟机中添加一块硬盘, 不重启[root@node1 ~]
查看数据库的信息
mysql& SHOW DATABASES; & &#查看当前的数据库, 我们的数据库为employees+
创建快照卷并备份
mysql& FLUSH TABLES WITH READ LOCK; & &
[root@node1 lvm_snap]# rm -rf /lvm_data
使用Xtrabackup备份
为了更好地演示, 我们这次使用mariadb-5.5的版本, 使用xtrabackup使用InnoDB能够发挥其最大功效, 并且InnoDB的每一张表必须使用单独的表空间, 我们需要在配置文件中添加&innodb_file_per_table = ON&来开启
下载安装xtrabackup
我们这里通过wget percona官方的rpm包进行安装[root@node1 ~]# wget https:
xtrabackup介绍
Xtrabackup是由percona提供的mysql数据库备份工具,据官方介绍,这也是世界上惟一一款开源的能够对innodb和xtradb数据库进行热备的工具。特点:
备份过程快速、可靠;
备份过程不会打断正在执行的事务;
能够基于压缩等功能节约磁盘空间和流量;
自动实现备份检验;
还原速度快;
摘自马哥的文档
xtrabackup实现完全备份
我们这里使用xtrabackup的前端配置工具innobackupex来实现对数据库的完全备份
使用innobackupex备份时, 会调用xtrabackup备份所有的InnoDB表, 复制所有关于表结构定义的相关文件(.frm)、以及MyISAM、MERGE、CSV和ARCHIVE表的相关文件, 同时还会备份触发器和数据库配置文件信息相关的文件, 这些文件会被保存至一个以时间命名的目录.
[root@node1 ~]
一般情况, 备份完成后, 数据不能用于恢复操作, 因为备份的数据中可能会包含尚未提交的事务或已经提交但尚未同步至数据文件中的事务。因此, 此时的数据文件仍不一致, 所以我们需要&准备&一个完全备份
[root@node1 ~]# innobackupex --apply-log /extrabackup/2016-04-27_07-30-48/ &#指定备份文件的目录#一般情况下下面三行结尾代表成功*****************InnoDB: Starting shutdown...InnoDB: S log sequence number 160427 07:40:11 completed OK![root@node1 ~]# cd /extrabackup/2016-04-27_07-30-48/[root@node1 2016-04-27_07-30-48]# ls -hl &#查看备份文件total 31M-rw-r----- 1 root root &386 Apr 27 07:30 backup-my.cnfdrwx------ 2 root root 4.0K Apr 27 07:30 employees-rw-r----- 1 root root &18M Apr 27 07:40 ibdata1-rw-r--r-- 1 root root 5.0M Apr 27 07:40 ib_logfile0-rw-r--r-- 1 root root 5.0M Apr 27 07:40 ib_logfile1drwx------ 2 root root 4.0K Apr 27 07:30 mysqldrwx------ 2 root root 4.0K Apr 27 07:30 performance_schemadrwx------ 2 root root 4.0K Apr 27 07:30 test-rw-r----- 1 root root & 27 Apr 27 07:30 xtrabackup_binlog_info-rw-r--r-- 1 root root & 29 Apr 27 07:40 xtrabackup_binlog_pos_innodb-rw-r----- 1 root root &117 Apr 27 07:40 xtrabackup_checkpoints-rw-r----- 1 root root &470 Apr 27 07:30 xtrabackup_info-rw-r----- 1 root root 2.0M Apr 27 07:40 xtrabackup_logfile
BASEDIR指的是完全备份所在的目录,此命令执行结束后,innobackupex命令会在/extrabackup目录中创建一个新的以时间命名的目录以存放所有的增量备份数据。另外,在执行过增量备份之后再一次进行增量备份时,其--incremental-basedir应该指向上一次的增量备份所在的目录。
需要注意的是,增量备份仅能应用于InnoDB或XtraDB表,对于MyISAM表而言,执行增量备份时其实进行的是完全备份。
整理增量备份
[root@node1 ~]# innobackupex --apply-log --redo-only /extrabackup/2016-04-27_07-30-48/[root@node1 ~]# innobackupex --apply-log --redo-only /extrabackup/2016-04-27_07-30-48/ --incremental-dir=/extrabackup/2016-04-27_07-57-22/
[root@node1 ~]# rm -rf /data/* & #删除数据[root@node1 ~]# innobackupex
备份方法备份速度恢复速度便捷性功能一般用于
一般、灵活性低
少量数据备份
一般、可无视存储引擎的差异
中小型数据量的备份
一般、支持几乎热备、速度快
中小型数据量的备份
xtrabackup
实现innodb热备、对存储引擎有要求
较大规模的备份
其实我们还可以通过Master-Slave Replication&进行备份。
转自:http://www.cnblogs.com/liangshaoye/p/5464794.html
阅读(...) 评论()

我要回帖

更多关于 mysql数据库备份方案 的文章

 

随机推荐