mysql日志备份word范文模板 17页.docx
- 文档编号:27739333
- 上传时间:2023-07-04
- 格式:DOCX
- 页数:18
- 大小:24.04KB
mysql日志备份word范文模板 17页.docx
《mysql日志备份word范文模板 17页.docx》由会员分享,可在线阅读,更多相关《mysql日志备份word范文模板 17页.docx(18页珍藏版)》请在冰豆网上搜索。
mysql日志备份word范文模板17页
本文部分内容来自网络整理,本司不为其真实性负责,如有异议或侵权请及时联系,本司将立即删除!
==本文为word格式,下载后可方便编辑和修改!
==
mysql日志备份
篇一:
MySQL完全备份、增量备份与恢复
MySQL完全备份、增量备份与恢复
适用版本]MySQL4.x-6.x
[配置]
执行增量备份的前提条件是MySQL打开log-bin日志开关,例如在my.ini或f中加入
log-bin=C:
/ProgramFiles/MySQL/MySQLServer6.0/Data/mysql-bin
“log-bin=”后的字符串为日志记载目录,一般建议放在不同于mysql数据目录的磁盘上。
[完全备份]
假定星期日下午1点执行完全备份,适用于MyISAM存储引擎。
mysqldump--lock-all-tables--flush-logs--master-data=2-uroot-ptest>backup_sunday_1_PM.sql
对于InnoDB将--lock-all-tables替换为--single-transaction
--flush-logs为结束当前日志,生成新日志文件
--master-data=2选项将会在输出SQL中记录下完全备份后新日志文件的名称,用于日后恢复时参考,例如输出的备份SQL文件中含有:
--CHANGEMASTERTOMASTER_LOG_FILE='mysql-bin.000002',MASTER_LOG_POS=106;
其他说明:
如果mysqldump加上--delete-master-logs则清除以前的日志,以释放空间。
但是如果服务器配置为镜像的复制主服务器,用mysqldump--delete-master-logs删掉MySQL二进制日志很危险,因为从服务器可能还没有完全处理该二进制日志的内容。
在这种情况下,使用PURGEMASTERLOGS更为安全。
[增量备份]
每日定时使用mysqladminflush-logs来创建新日志,并结束前一日志写入过程。
并把前一日志备份,例如上例中开始保存数据目录下的日志文件mysql-bin.000002,...
[从备份中恢复]
*恢复完全备份
mysql-uroot-p *恢复增量备份 mysqlbinlogmysql-bin.000002...|mysql-uroot-p 注意此次恢复过程亦会写入日志文件,如果数据量很大,建议先关闭日志功能。 篇二: MySQL的备份和还原 MySQL的备份和还原 MySQL的备份和还原需要确保开启二进制日志的功能,在配置中加上--log-bin即可。 (以下策略只针对MyISAM引擎,InnoDB引擎暂不考虑) 1、MySQL的备份策略 (1)物理备份: 就是对数据库的物理对象所做的备份。 在后台关闭论坛之后直接拷贝MySQL数据进行备份,在备份之前,执行flushtables和flushlogs,也就是把内存中的数据都刷新到磁盘中并且生成新的二进制日志,最后开启论坛。 具体操作如下: a.只针对单台MySQL服务器 1)在后台关闭论坛; 2)执行flushtables和flushlogs; 3)cp或tar直接备份MySQL数据目录下的数据; 4)在后台开启论坛。 b.针对做有主从MySQL的服务器,在从服务器上做备份 1)slavestop关闭从服务器的进程; 2)执行flushtables和flushlogs; 3)cp或tar直接备份MySQL数据目录下的数据; 4)slavestart开启从服务器的进程。 (2)逻辑备份: 主要是通过mysqldump来进行备份。 在后台关闭论坛,执行flushtables和flushlogs,然后通过使用mysqldump来备份数据。 具体操作如下: a.只针对单台MySQL 1)在后台关闭论坛; 2)执行flushtables和flushlogs; 3)mysqldump-uroot-ppassword--opt--default-character-set=gbk--db_name> $dumpFile; 4)在后台开启论坛。 b.针对做有主从MySQL的服务器,在从服务器上做备份 1)slavestop关闭从服务器的进程; 2)执行flushtables和flushlogs; 3)mysqldump-uroot-ppassword--opt--default-character-set=gbk--db_name> $dumpFile; 4)slavestart开启从服务器的进程。 2、MySQL的还原策略 (1)针对物理备份的还原 通过物理备份的数据还原相对简单,直接拷贝回原来的数据库目录下即可。 (2)针对逻辑备份的还原 用mysqldump备份出来的文件是一个可以直接倒入的SQL脚本,直接用mysql客户端导入就可以了。 mysql–uroot–pdb_name 然后在此基础上,进行增量还原,即通过完整备份时间点之后的二进制日志按照时间或者位置进行恢复。 你可以使用mysqlbinlog工具来恢复从指定的时间点开始(例如,从你最后一次备份)直到现在或另一个指定的时间点的数据。 1)指定恢复时间 可以在mysqlbinlog语句中通过--start-datetime和--stop-datetime选项指定DATETIME格式的起止时间。 举例说明,假设在今天上午10: 00(今天是201X年4月20日),执行SQL语句来删除一个大表。 要想恢复表和数据,你可以恢复前晚上的备份,通过以下的步骤 首先进行完整恢复 mysql–uroot–pdb_name 其次基于时间点的增量恢复 mysqlbinlog--stop-datetime="201X-04-209: 59: 59"/var/log/mysql/bin.123456|mysql–uroot–p 然后跳过出错的时间点,继续进行恢复 mysqlbinlog--start-datetime="201X-04-2010: 01: 00"/var/log/mysql/bin.123456|mysql–uroot-p 2)指定恢复位置 通过使用mysqlbinlog的选项--start-position和--stop-position来指定日志位置,操作步骤同基于时间点的恢复。 3、具体备份脚本实例 (1)物理备份实例 只针对单台MySQL服务器 首先在后台关闭论坛,接着执行以下脚本,执行完脚本在后台开启论坛。 #! /bin/bash #备份phpwind数据目录下的数据,同时删除5天以前备份的数据 #备份数据存放目录为/data/mysql #数据库的数据目录为/home/mysql/var mysql_string='/home/mysql/bin/mysql-uroot–ppassword' oldbak=/data/mysql/phpwindbak-$(date'+%Y%m%d'-d'-5day').tar.gz unlink$oldbak file=phpwindbak-$(date+%Y%m%d).tar.gz $mysql_string-e'flushlogs'; $mysql_string-e'flushtables'; sleep3s cd/data/mysql tarzcf$file/home/mysql/var/phpwind 针对做有主从MySQL的服务器,在从服务器上做备份 #! /bin/bash #备份phpwind数据目录下的数据,同时删除5天以前备份的数据 #备份数据存放目录为/data/mysql #数据库的数据目录为/home/mysql/var mysql_string='/home/mysql/bin/mysql-uroot–ppassword' oldbak=/data/mysql/phpwindbak-$(date'+%Y%m%d'-d'-5day').tar.gz unlink$oldbak file=phpwindbak-$(date+%Y%m%d).tar.gz $mysql_string-e'slavestop'; $mysql_string-e'flushlogs'; $mysql_string-e'flushtables'; sleep3s cd/data/mysql tarzcf$file/home/mysql/var/phpwind sleep3s $mysql_string-e'slavestart'; (2)逻辑备份实例 只针对单台MySQL服务器 首先在后台关闭论坛,接着执行以下脚本,执行完脚本在后台开启论坛。 #! /bin/bash #备份文件存放在/data/mysql #数据库的数据目录为/home/mysql/var mysql_string='/home/mysql/bin/mysql-uroot–ppassword' DATE=`date-I` dumpFile=mysql_$DATE.sql $mysql_string-e'flushlogs'; $mysql_string-e'flushtables'; cd/data/mysql mysqldump-uroot-ppassword--opt--default-character-set=gbk--db_name>$dumpFilefind/data/mysql-name"mysql_*.sql"-typef-mtime+5-execrm-rf{}\;>/dev/null2>&1 针对做有主从MySQL的服务器,在从服务器上做备份 #! /bin/bash #备份文件存放在/data/mysql #数据库的数据目录为/home/mysql/var mysql_string='/home/mysql/bin/mysql-uroot–ppassword' DATE=`date-I` dumpFile=mysql_$DATE.sql $mysql_string-e'slavestop'; $mysql_string-e'flushlogs'; $mysql_string-e'flushtables'; cd/data/mysql mysqldump-uroot-ppassword--o pt--default-character-set=gbk--db_name>$dumpFilefind/data/mysql-name"mysql_*.sql"-typef-mtime+5-execrm-rf{}\;>/dev/null2>&1$mysql_string-e'slavestart'; 篇三: MySQL备份方法总结 总结下几种常用的MySQL备份方法: 一、直接拷贝数据库文件 a、首先把内存中的数据都刷新到磁盘中,同时锁定数据表,以保证拷贝过程中不会有新的数据写入 mysql>FLUSHTABLESWITHREADLOCK; b、使用tar或cp等命令备份数据库文件,这里使用tar tarzcvf/backup/mysql_$(date"+%Y%m%d").tar.gz/var/lib/mysql c、备份完后解锁数据表 mysql>unlocktables; 这种方法备份出来的数据恢复也很简单,直接拷贝回原来的数据库目录下即可。 需要注意,对于Innodb引擎的表来说,还需要备份其日志文件,即ib_logfile*文件。 因为当Innodb表损坏时,就可以依靠这些日志文件来恢复。 二、使用mysqlhotcopy备份 mysqlhotcopy是一个PERL程序,使用LOCKTABLES、FLUSHTABLES和cp或scp来快速备份数据库。 它是备份数据库或单个表的最快的途径,但它只能运行在数据库文件(包括数据表定义文件、数据文件、索引文件)所在的机器上。 mysqlhotcopy只能用于备份MyISAM。 例: 把数据库test备份到/backup目录下: /usr/local/mysql/bin/mysqlhotcopy-uroot-pxxxtest/backup mysqlhotcopy在执行前将会锁定数据库,执行完毕后将自动释放锁定 还原: mysqlhotcopy备份出来的是整个数据库目录,还原时直接拷贝覆盖就行了,注意权限问题cp-rf/backup/test/var/lib/mysql/ 注意,想要使用mysqlhotcopy,必须要有SELECT、RELOAD(要执行FLUSHTABLES)权限,并且还必须要能够有读取datadir/db_name目录的权限。 三、使用mysqldump备份 mysqldump是SQL级别的备份机制,它将数据表导成SQL脚本文件,可以方便的在不同的mysql版本间进行恢复或升级,这也是最常用的备份方法。 下面介绍下mysqldump的参数: –compatible=name 它告诉mysqldump,导出的数据将和哪种数据库或哪个旧版本的MySQL服务器相兼容。 值可以为ansi、mysql323、mysql40、postgresql、oracle、mssql、db2、maxdb、no_key_options、no_tables_options、no_field_options等,要使用几个值,用逗号将它们隔开。 当然了,它并不保证能完全兼容,而是尽量兼容。 –complete-insert,-c 导出的数据采用包含字段名的完整INSERT方式,也就是把所有的值都写在一行。 这么做能提高插入效率,但是可能会受到max_allowed_packet参数的影响而导致插入失败。 因此,需要谨慎使用该参数,至少我不推荐。 –default-character-set=charset 指定导出数据时采用何种字符集,如果数据表不是采用默认的latin1字符集的话,那么导出时必须指定该选项,否则再次导入数据后将产生乱码问题。 –disable-keys 告诉mysqldump在INSERT语句的开头和结尾增加/*! 40000ALTERTABLEtableDISABLEKEYS*/;和/*! 40000ALTERTABLEtableENABLEKEYS*/;语句,这能大大提高插入语句的速度,因为它是在插入完所有数据后才重建索引的。 该选项只适合MyISAM表。 –extended-insert=true|false 默认情况下,mysqldump开启–complete-insert模式,因此不想用它的的话,就使用本选项,设定它的值为false即可。 –hex-blob 使用十六进制格式导出二进制字符串字段。 如果有二进制数据就必须使用本选项。 影响到的字段类型有BINARY、VARBINARY、BLOB。 –lock-all-tables,-x 在开始导出之前,提交请求锁定所有数据库中的所有表,以保证数据的一致性。 这是一个全局读锁,并且自动关闭–single-transaction和–lock-tables选项。 –lock-tables 它和–lock-all-tables类似,不过是锁定当前导出的数据表,而不是一下子锁定全部库下的表。 本选项只适用于MyISAM表,如果是Innodb表可以用–single-transaction选项。 –no-create-info,-t 只导出数据,而不添加CREATETABLE语句。 –no-data,-d 不导出任何数据,只导出数据库表结构。 –opt 这只是一个快捷选项,等同于同时添加–add-drop-tables–add-locking–create-option–disable-keys–extended-insert–lock-tables–quick–set-charset选项。 本选项能让mysqldump很快的导出数据,并且导出的数据能很快导回。 该选项默认开启,但可以用–skip-opt禁用。 注意,如果运行mysqldump没有指定–quick或–opt选项,则会将整个结果集放在内存中。 如果导出大数据库的话可能会出现问题。 –quick,-q 该选项在导出大表时很有用,它强制mysqldump从服务器查询取得记录直接输出而不是取得所有记录后将它们缓存到内存中。 –routines,-R 导出存储过程以及自定义函数。 –single-transaction 该选项在导出数据之前提交一个BEGINSQL语句,BEGIN不会阻塞任何应用程序且能保证导出时数据库的一致性状态。 它只适用于事务表,例如InnoDB和BDB。 本选项和–lock-tables选项是互斥的,因为LOCKTABLES会使任何挂起的事务隐含提交。 要想导出大表的话,应结合使用–quick选项。 –triggers 同时导出触发器。 该选项默认启用,用–skip-triggers禁用它。 例: mysqldump常用的备份命令: /usr/local/mysql/bin/mysqldump-uroot-pxxx--opttest>/backup/test.sql还原: /usr/local/mysql/bin/mysqldump-uroot-pxxxtest 四、使用MySQL主从复制机制(replication)(实现数据库实时备份)推荐 MySQL的复制是指将主数据库的DDL(CREATE、ALTER、DROP等)和DML(UPDATE、INSERT、DELETE)操作通过二进制日志bin-log传到从服务器上,然后在从服务器上对这些日志做重新执行的操作,从而使得从服务器和主服务器保持数据的同步。 MySQL的主从复制至少是需要两个MySQL的服务,当然MySQL的服务是可以分布在不同的服务器上,也可以在一台服务器上启动多个服务。 下面通过一个实例来配置主从复制。 环境: master: 192.168.1.101 slave: 192.168.1.102 实验内容: 将master上的数据库test同步到slave (1)首先确保主从服务器上的Mysql版本相同 (2)在master上,设置一个从数据库的账户slave001,使用REPLICATIONSLAVE赋予权限,如: mysql>GRANTREPLICATIONSLAVEON*.*TO'slave001'@'192.168.1.102'IDENTIFIEDBY'123456'; (3)修改master数据库的配置文件f,开启BINLOG,并设置server-id的值,修改之后必须重启Mysql服务 [mysqld] server-id=1#服务器id log-bin=mysql-binlog#打开二进制日志,最好设置到不同的磁盘已减少磁盘ioexpire_logs_day=10#设置二进制日志保存日期 max_binlog_size=500M#设置每个binlog文件的大小 (4)之后可以得到主服务器当前二进制日志名和偏移量,这个操作的目的是为了在从数据库启动后,从这个点开始进行数据的恢复 mysql>showmasterstatus\G; ***************************1.row*************************** File: mysql-bin.000003 Position: 243 Binlog_Do_DB: Binlog_Ignore_DB: 1rowinset(0.00sec) (5)好了,现在可以停止主数据的的更新操作,并生成主数据库的备份,这里通过mysqldump导出数据库。 注意在导出数据之前先对主数据库进行READLOCK,以保证数据的一致性 mysql>flushtableswithreadlock; 接着使用mysqldump备份 mysqldump-h127.0.0.1-p3306-uroot-ptest>/root/test1.sql 最好在主数据库备份完毕,恢复写操作 mysql>unlocktables; (6)将刚才主数据备份的test.sql复制到从数据库,进行导入 mysql>usetest; mysql>source/root/test1.sql (7)接着修改从数据库的f log_bin=mysql-bin server_id=2#mysql复制可能出现主服务器上可以运行的语句,从服务器不能够运行,所以我们在f加一句slave-skip-errors=all意思是忽略所有的sql语句错误! relay_log=mysql-relay-bin#该文件用于存放Slave端的I/O线程从Master端读取的二进制文件信息 slave数据库授权: mysql>changemasterto mysql>master_host='192.168.1.101', mysql>master_user='slave001', mysql>master_password='123456', 篇四: MYSQL四种备份方法总结 MYSQL四种备份方法总结 Mysql数据库备份主要有4种方法: 1、mysqldump 2、直接拷贝(cp、tar,gzip,cpio) 3、mysqlhotcopy 4、同步复制 mysqldump生成能够移植到其它机器的文本文件,缺省地,文件内容包含创建正在倾倒的表的CREATE语句和包含表中行数据的INSERT语句。 也就是说,mysqldump产生的输出可在以后用作mysql的输入来重建数据库。 mysqldump比直接拷贝要慢些。 使用直接拷贝,如果正在备份的表正被读写就容易导致表损坏,而且不建议对isam表使用直接拷贝的方法来备份,因为ISAM表只能在相似的硬件结构的机器上拷贝。 1、mysqldump备份: 使用方法: mysqldump[OPTIONS]database[tables] 输出文件的开头看起来象这样: #MySQLDump6.0 # #Host: localhostDatabase: samp_db #-----
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- mysql日志备份word范文模板 17页 mysql 日志 备份 word 范文 模板 17
![提示](https://static.bdocx.com/images/bang_tan.gif)