MySQL备份的几种方式的讨论,重点关注在线热备

目前我能想到的MySQL备份方式有五种,可能还有另外一种: 1 .Mysqldump方式,加上具体参数名(单库、多库、触发器、存储过程、表结构、字符集、单事务等) 2 .MySQLhotcopy只能备份myisam数据表备份,而且速度还蛮快的。
因为是文件副本,表可能会瞬间被锁定。
MySQL的备份方法,目前我能想到的有五种,可能有1 .mysqldump方法,加上具体的参数名(单数据库、多数据库、触发器、存储过程、表结构、字符集、--single-transaction等)2 .mysqlhotcopy只能备份myisam数据表备份,速度相当快。
由于是文件副本,表可能会立即被锁定,任何数据操作,例如插入和更新,都会被暂停。
3 、LVM的快照功能对数据库分区进行备份。
该方法利用逻辑卷的镜像功能,对整个分区进行在线备份。
这种备份数据量大,备份性能低,因为每次备份都是整个镜像,无法用来备份数据。
桶备份4 、启用二进制同步日志功能、主从复制、从机备份功能。
5 、在线热备份,使用开源的Xtrabackup备份工具对innodb数据表进行在线备份,测试阶段。
以下是xtrabackup备份的测试示例。
[@root.localhost.nova~]#/usr/bin/innobackupex-1 .5 .1 –user=root–defaults-file=/home/mysql/my.cnf–socket=/home/mysql/mysql.sock–database=serverinfo–slave-info– Stream=tar/root/|gzip>/root/bak_mysql.tar.gzInnoDBBackupUtilityv1 .5 .1 -xtrabackup;Copyright2 003 ,2 009 InnobaseOy.AllRightsReserved.Thissoftwareispublishedundert 他GNUGENERALPUBLICENSE版本2 ,1 9 9 1 年6 月。
重要提示:请检查备份运行是否成功完成。
在成功备份运行结束时,没有备份打印“innobac” kupcompletedOK!".innobackupex:使用mysqlVer1 4 .1 2 Distrib5 .0.8 3 ,forpc-linux-gnu(i6 8 6 )usingreadline5 .1 innobackupex:使用mysqlserverversion5 .0.8 3 -community-login nobackupex:创建备份目录/root09 08 2 3 1 7 :3 7 :5 1 innobackupex:启动mysqlwithoptions:–unbuffered–user=root–socket=/home/mysql/mysql.sock09 08 2 3 1 7 :3 7 :5 1 i nnobackupex:连接到数据库与mysqlchildprocess(pid = 2 8 8 03 )09 08 2 3 1 7 :3 7 :5 5 innobackupex:连接到数据库服务器已关闭09 08 2 3 1 7 :3 7 :5 5 innobackupex:正在启动 ibbackupwithcommand:xtrabackup–defaults-file=/home/mysql/my.cnf–backup–suspend-at-end–log-stream–target-dir=./innobackupex:等待ibbackup(pid=2 8 8 09 )tosus pendinnobackupex:Suspendfile‘/home/mysql/xtrabackup_suspended’xtrabackup:suspend-at-endisenabled.xtrabackup:usesposix_fadvise().xtrabackup:cdto/home/mysqlxtr abackup:目标实例假设为以下.xtrabackup:innodb_data_home_dir=./xtrabackup:innodb_data_file_path=ibdata1 :1 0M:autoextendxtrabackup:innodb_log_g roup_home_dir=./xtrabackup:innodb_log_files_in_group=2 xtrabackup:innodb_log_file_size=4 1 9 4 3 04 xtrabackup:Streammode.>>logscannedupto(08 5 3 6 4 )09 08 2 3 1 7 :3 7 :5 7 inno backupex:在ibbackup已暂停后继续innobackupex:开始备份InnoDB表和索引innobackupex:来自原始InnoDB数据目录‘/home/mysql’innob ackupex:备份astarstream‘ibdata1 ’innobackupex:备份文件‘/home/mysql/serverinfo/simsys_djgameserver.ibd’innobackupex:备份文件‘/home/mysql/serveri nfo/simsys_djgameserverlog.ibd'innobackupex:备份文件'/home/mysql/serverinfo/simsys_repairhistory.ibd'innobackupex:备份文件'/home/mysql/serverinfo/ simsys_serverinfo.ibd'innobackupex:备份文件'/home/mysql/serverinfo/simsys_serverinfolog.ibd'innobackupex:备份文件'/home/mysql/serverinfo/simsys_tlg ameserver.ibd'innobackupex:备份文件'/home/mysql/serverinfo/simsys_tlgameserverlog.ibd'innobackupex:备份文件'/home/mysql/serverinfo/simsys_user.ibd'09 08 2 3 1 7 :3 7 :5 8 innobackupex:启动mysqlwithoptions:–unbuffered–user=root–socket=/home/mysql/mysql.sock09 08 2 3 1 7 :3 7 :5 8 innobackupex:Connectedtodatabasewithmysqlchildprocess(pid=2 8 8 3 4 )>>logscannedupto(08 5 3 6 4 )09 08 2 3 1 7 :3 8 :02 innobackupex:开始锁定所有表...>>logscanne dupto(08 5 3 6 4 )>>logscannedupto(08 8 3 1 4 )>>logscannedupto(08 8 4 1 5 )09 08 2 3 1 7 :3 8 :2 0innobackupex:Alltableslockedandflus hedtodisk09 08 2 3 1 7 :3 8 :2 0innobackupex:Startingtobackup.frm、.MRG、.MYD、.MYI、innobackupex:.TRG、.TRN和.optfilesini nnobackupex:子目录‘/home/mysql’innobackupex:备份文件‘/home/mysql/serverinfo/simsys_djgameserver。
frm'innobackupex:备份文件'/home/mysql/serverinfo/simsys_djgameserverlog.frm'innobackupex:备份文件'/home/mysql/serverinfo/simsys_repairhistory.frm'innobackupex:备份文件'/home/mysql/serverinfo/simsys_serveri nfo.frm'innobackupex:备份文件'/home/mysql/serverinfo/simsys_serverinfolog.frm'innobackupex:备份文件'/home/mysql/serverinfo/simsys_tlgameserver.frm'innobackupex:备份文件'/home/mysql/serverinfo/simsys_tlgames erverlog.frm'innobackupex:备份文件'/home/mysql/serverinfo/simsys_user.frm'innobackupex:备份文件'/home/mysql/serverinfo/db.opt'09 08 2 3 1 7 :3 8 :2 0innobackupex:Finishedbackingup.frm,.MRG,.MYD,.MYI,.TRG,.TRN,and.optfil esinnobackupex:恢复ibbackupxtrabackup:最新检查点(增量):‘0:8 8 4 1 5 ′>>logscannedupto(08 8 4 1 5 )xtrabackup:Transactionlogoflsn(08 5 3 6 4 )to(08 8 4 1 5 )被复制。
09 08 2 3 1 7 :3 8 :2 4 innobackupex:Alltablesunlocked09 08 2 3 1 7 :3 8 :2 4 innobackupex:连接到数据库服务器关闭innobackupex:备份在目录‘/root’中创建 innobackupex:MySQLbinlogposition:文件名”,positioninnobackupex:MySQLslavebinlogposition:masterhost”,文件名”,position09 08 2 3 1 7 :3 8 :2 4 innobackupex:innobackupcompletedOK!innobackupex:Youmustuse-i(–ignore-zeros)optionforextractionofthetarstream.[@root.localhost.nova~]#[@root.localhost.nova~]#ls-ltrtotal1 1 7 5 2 drwxr-xr-x2 oracleftp4 09 6 Apr2 01 5 :4 3 linux-r w-r–r–1 rootroot1 7 9 6 9 Apr2 01 5 :4 3 linux.tgz-rw-r–r–1 rootroot4 6 9 8 Jun5 1 6 :08 install.sh-rw-r–r–1 rootroot3 5 6 5 Jun1 8 1 1 :2 1 HP-set.sh-rw-r–r–1 rootroot9 8 6 7 6 Jul2 7 1 3 :3 3 install.log.syslog-rw-r–r–1 rootroot6 8 4 6 4 Jul2 7 1 3 :3 3 install.log-rw-r–r– 1 rootroot1 2 9 9 Jul2 7 1 3 :3 3 anaconda-ks.cfg-rw-rw—-1 mysqlmysql1 04 8 5 7 6 0Aug1 4 1 0:5 7 ibdata1 -rw-r–r–1 rootroot1 2 3 01 7 6 Aug2 3 1 7 :1 2 xtrabackup-0.7 -1 .rhel4 .x8 6 _6 4 .rpm-rw-r–r–1 rootroot4 4 9 9 8 Aug2 3 1 7 :3 8 bak_mysql.tar.gz[@root.localhost.nova~]# [@root.localhost.novatmp]#ls-lR.:total1 03 3 6 -rw-r–r–1 rootroot2 5 9 Aug2 3 1 7 :3 7 backup-my.cnf-rw-r–r–1 rootroot4 4 9 9 8 Au g2 3 1 7 :4 3 bak_mysql.tar.gz-rw-rw—-1 mysqlmysql1 04 8 5 7 6 0Aug2 3 1 7 :2 8 ibdata1 -rw-r–r–1 rootroot0Aug2 3 1 7 :3 7 mysql-stderr-rw -r–r–1 rootroot5 06 Aug2 3 1 7 :3 8 mysql-stdoutdrwxr-xr-x2 rootroot3 8 0Aug2 3 1 7 :4 3 serverinfo -rw-r–r–1 rootroot1 Aug2 3 1 7 :3 8 x trabackup_binlog_info-rw-r–r–1 rootroot6 0Aug2 3 1 7 :3 8 xtrabackup_checkpoints-rw-r–r–1 rootroot5 6 3 2 Aug2 3 1 7 :3 8 xtraback up_logfile-rw-r–r–1 rootroot5 3 Aug2 3 1 7 :3 8 xtrabackup_slave_info./serverinfo:total1 02 0-rw-rw—-1 mysqlmysql6 1 Aug1 2 1 9 :5 9 db.opt-rw-rw—-1 mysqlmysql3 4 6 2 6 Aug1 2 2 0:00simsys_djgameserver.frm-rw-rw—-1 mysqlmysql9 8 3 04 Aug1 2 2 0:00simsys_djg ameserver.ibd-rw-rw—-1 mysqlmysql8 7 6 0Aug1 2 2 0:00simsys_djgameserverlog.frm-rw-rw—-1 mysqlmysql9 8 3 04 Aug1 2 2 0:00sims ys_djgameserverlog.ibd-rw-rw—-1 mysqlmysql1 2 9 4 4 Aug1 2 2 0:00simsys_repairhistory.frm-rw-rw—-1 mysqlmysql9 8 3 04 Aug1 2 2 0 :00simsys_repairhistory.ibd-rw-rw—-1 mysqlmysql2 6 07 2 Aug1 2 2 0:00simsys_serverinfo.frm-rw-rw—-1 mysqlmysql9 8 3 04 Aug1 2 2 0:00simsys_serverinfo.ibd-rw-rw—-1 mysqlmysql8 7 6 0Aug1 2 2 0:00simsys_serverinfolog.frm-rw-rw—-1 mysqlmysql9 8 3 04 Aug 1 2 2 0:00simsys_serverinfolog.ibd-rw-rw—-1 mysqlmysql5 6 5 5 0Aug1 2 2 0:00simsys_tlgameserver.frm-rw-rw—-1 mysqlmysql9 8 3 04 Aug1 2 2 0:00simsys_tlgameserver.ibd-rw-rw—-1 mysqlmysql8 7 6 0Aug1 2 2 0:00simsys_tlgameserverlog.frm-rw-rw—-1 mysqlmysql9 8 3 04 Aug1 2 2 0:00simsys_tlgameserverlog.ibd-rw-rw—-1 mysqlmysql8 6 4 6 Aug1 2 2 0:00simsys_user.frm-rw-rw—-1 mysqlmysql9 8 3 0 4 Aug1 4 1 0:5 7 simsys_user.ibd的备份文件为:bak_mysql.tar.gz,解压方法: tarzxvfibak_mysql.tar.gz。
恢复时,复制文件,覆盖,然后使用mysqldump方法导入导出。
http://www.imdba.cn/2 009 /08 /3 1 /mysqlbakup-eg/

直播软件搭建中,MySQL 数据库定时备份的几种方式

在直播软件数据建设和运营过程中,保证数据安全非常重要。
有效的定时备份可以有效避免数据错误、数据库崩溃等风险。
本文将详细介绍一些在搭建直播软件中定期备份MySQL数据库的方法。
首先介绍一下如何使用mysqldump命令来备份数据。
mysqldump是MySQL提供的一个命令行工具,用于支持导出数据库内容。
通过命令行,可以直接导出数据库内容,保证数据安全。
接下来将解释常见的 mysqldump 操作的示例。
例如,如何使用mysqldump命令备份特定数据库、表或所有数据库并将备份文件保存到指定位置。
同时,备份文件经过压缩,保证传输和存储效率。
恢复 MySQL 备份内容有多种方法可用。
一种是在MySQL命令行中恢复,直接执行恢复命令。
另一种方法是在SHELL环境中完成恢复,例如使用mysql命令将备份文件导入数据库。
在Linux环境中,通常使用BASH脚本来自动化此过程,并使用crontab来自动生成日志。
在Linux下,编写BASH脚本来实现MySQL备份。
该脚本包括设置备份参数、执行mysqldump命令保存备份文件、确定要删除的文件和备份数量以及在文件超过限制大小时立即删除创建的文件等功能。
最终脚本配合crontab实现定时备份。
crontab是Linux中的一个定时执行工具,可以自动执行作业,无需人工干预。
通过 crontab 文件,用户可以定义要执行的命令及其时间。
创建cron脚本文件,如mysqlRollBack.cron,并设置执行时间和命令。
使用 crontab 命令添加、删除或列出计划任务。
检查计划任务是否创建成功,并确保备份脚本按计划运行。
定期执行计划任务脚本,保证数据安全。
通过crontab命令,定期执行编写的脚本来进行自动备份。
检查定时任务是否已创建,确保备份过程不中断。
本文介绍的MySQL数据库定时备份方法包括使用mysqldump命令、编写BASH脚本、使用crontab进行自动备份。
通过这些方法,保证了直播软件构建过程中的数据安全。
定期备份数据,避免数据丢失和数据库崩溃的风险。