Percona XtraBackup 备份mysql

Percona XtraBackup 备份mysql
Percona XtraBackup 备份mysql

Percona XtraBackup 备份mysql

一、XtraBackup是一个开源的mysql备份工具

主要特点是:

1、操作innodb时候可以不锁表备份,不影响线上的业务读写的情况下备份(操作myisam表的时候要进行全局读

锁)。

2、节省空间,在空间不足的机器上做备份,可以只做少量的全备份,采用增量备份节省大量空间。

3、可靠,按数据页记录备份,开始的时间后会记录LSN(日志序列号,标识了日志记录在日志文件中的位置,该

编号不断递增,是ibdata的序列号,非binlog的时间戳),在备份时间较长的时候,备份中数据库可能被写入的情况下,可以根据LSN号靠redo和undo来恢复到备份开始或者结束时候的状态,从而保持一致性,把当次备份当做一个原子操作看待。

4、速度快,使用sqldump的方式恢复数据,耗时长,造成的负载高,xtrabackup使用文件复制的方式,内部为数

据页复制的方式来完成备份,相比导出sql语句的方式快了很多,几分钟内就复制完10G的数据。

5、容错性好,如果指定备份已经存在,则停止,不覆盖。

二、安装XtraBackup

https://www.360docs.net/doc/9310667473.html,/software/percona-xtrabackup/downloads

wget

https://www.360docs.net/doc/9310667473.html,/redir/downloads/XtraBackup/LATEST/RPM/rhel6/x86_64/percona-xtrabackup-2.0.4-484.rh el6.x86_64.rpm

rpm -ivh --nodeps percona-xtrabackup-2.0.4-484.rhel6.x86_64.rpm

使用rpm包安装后的文件

/usr/bin/innobackupex

/usr/bin/innobackupex-1.5.1

/usr/bin/xbstream

/usr/bin/xtrabackup

/usr/bin/xtrabackup_51

/usr/bin/xtrabackup_55

/usr/share/doc/percona-xtrabackup-2.0.4

/usr/share/doc/percona-xtrabackup-2.0.4/COPYING

xtrabackup是一个c程序,不锁表备份,只能备份innodb和xtraDB。

innobackupex是一个perl脚本,innobackupex包装了xtrabackup,可以备份innodb,也可以备份myisam格式数据库,而且可以在备份myisam和innodb混合的数据库时保持备份的一致性,根据备份的起始时间点向上或向下回滚日志,但在备份myisam格式库的时候会进行全局读锁。

三、开始备份

1、全备份模板

①、备份命令

在备份时,要在https://www.360docs.net/doc/9310667473.html,f中直接写明datadir,脚本会用到,否则报错。

innobackupex \

--user=${username} \ #数据库用户名

--password=${password} \ #数据库密码,若没有密码不写此项,否则要敲一个回车

--port=${port} \ #端口

--socket=${datadir}/mysql.sock \ #socket文件

--defaults-file=${datadir}/https://www.360docs.net/doc/9310667473.html,f \ #数据库配置文件

--slave-info \ #备份slave库的master ip、relay log 日志点等信息

--no-timestamp \ #不自动指定备份文件名,默认按当前时间生成备份文件名

${project}-full-${YESTERDAY} #备份文件名,默认为备份文件夹。

②、全备份后除了每个库的目录外还会生成一些附加文件。

xtrabackup_checkpoints 记录了当前备份属性(全备还是增量)和LSN号

内容:

backup_type = full-prepared

from_lsn = 0:0

to_lsn = 3:703459317

last_lsn = 3:703459317

xtrabackup_slave_info 和--slave-info有关,记录了当前从库读取主库binlog日志线程读到的位置。

内容:

CHANGE MASTER TO MASTER_LOG_FILE='realname-bin.000006', MASTER_LOG_POS=659118051

2、恢复全备份的一致性

因为该工具在数据库备份的全过程是不锁表的,所以在备份的途中会被插入一些数据,所以如果只做全备份的话没有问题,但如果根据这个备份做增量备份就会出现不一致的问题,比如:在备份开始后尾部插入了一些数据,这些数据会被第一个全备份包括进去,同时也会被第二个增量备份包括进去,因为增量备份是根据全备份的起始LSN来查找增量的,全备份的起始LSN和结束LSN中间有一个比较长的过程。

故在做完全备的时候,目录本身可能是不一致的,需要将其对齐。

innobackupex --defaults-file=${datadir}/https://www.360docs.net/doc/9310667473.html,f --apply-log ${backupdir}/${project}-full-${YESTERDAY}

全备份的同时记录差异的日志名字是xtrabackup_logfile,此日志记录了全备份开始到全备份结束时候中途数据库做的变更,apply后变为ib_logfile0 文件并且开始回滚到每个表中,最后会生成原始的ib_logfile0 ib_logfile1。

3、差异备份模板

差异备份和增量备份使用同一个命令,区别是差异备份总是根据上一个全备的LSN来开始,而增量备份总是根据上一个任何备份的LSN来开始。

innobackupex \

--user=${username} \

--password=${password} \

--port=${port} \

--socket=${datadir}/mysql.sock \

--defaults-file=${datadir}/https://www.360docs.net/doc/9310667473.html,f \

--slave-info \

--incremental \ #增量备份选项

--incremental-basedir=${lastfull} \ #指定根据那个全备份来生成差异备份,默认自动使用备份文件夹中上一个时间最近的,故默认是增量备份,如果指定使用上周一的全备份,则策略改为差异备份了。

--no-timestamp \

${project}-diff-${YESTERDAY}

4、全备份恢复

1、停止mysql进程

2、删除mysql data dir里面除了https://www.360docs.net/doc/9310667473.html,f和https://www.360docs.net/doc/9310667473.html, 外的所有文件,保持data文件夹为空,否则报错。

3、innobackupex --copy-back --defaults-file=/home/mysqldb/realname/data/https://www.360docs.net/doc/9310667473.html,f

realname_slave-full-2013-01-18

4、重新赋权限给恢复好的目录和文件chown -R mysql.mysql /home/mysqldb/realname/data/

5、根据xtrabackup_slave_info 里面的MASTER_LOG_FILE 和MASTER_LOG_POS 重写https://www.360docs.net/doc/9310667473.html,

6、启动mysql进程

7、slave start

5、增量备份附加到所属的全备份中

增量备份需要逐一增加到所属的全备份中再进行恢复

差异备份只需要恢复一次即可

增量和差异备份恢复到所属的全备份中时,必须写全路径,否则报错,这是一个2.0目前版本的bug

附加是注意是增量还是差异,两种不同。

innobackupex /home/mysqldb/realname/backup/home/mysqldb/realname/backup/realname_slave-full-2013-01-18/ --incremental-dir=/home/mysqldb/realname/backup/home/mysqldb/realname/backup/realname_slave-diff-2013-01 -19/ --apply-log

六、一些用到的innobackupex选项

--apply-log 对齐全备份数据库的一致性,增量备份结束后不需要对齐一致性,它和--incremental-dir配合使用,将增量和差异备份融入全备份中的同时会根据xtrabackup_logfile做对齐。该选项必须指定--defaults-file=[https://www.360docs.net/doc/9310667473.html,F],mysql的配置文件,会读取配置中关于innodb ibdata和log的大小部分。

--compress 压缩备份后文件,目前只支持tar

--compress-threads 多线程压缩,速度快一点

--copy-back 全备份回滚选项

--defaults-file=[https://www.360docs.net/doc/9310667473.html,F] 默认数据库的配置文件

--ibbackup=IBBACKUP-BINARY 指定该工具的位置,在没有配置PATH的时候有用

--incremental 增量和差异备份选项

--incremental-basedir=DIRECTORY 配合上面--incremental 选项使用指定该增量是从那个备份的基础上增出的。

--incremental-lsn 手动指定从那个LSN增出备份

--incremental-dir=DIRECTORY 配合--no-timestamp 使用,自己指定目录名字,默认是生成到所属目录下面的当前时间戳文件夹里。

--no-timestamp 同上

--parallel=NUMBER-OF-THREADS 并行多线程备份,经测试似乎效率不明显。

--slave-info 如果该库是一个从库,那么记录从库的master log 信息

--user --password --port --socket 一些登陆用到的选项

MySQL数据库备份与恢复

MySQL数据库备份与恢复方法 常有新手问我该怎么备份数据库,下面介绍3种备份数据库的方法: MySQL中的每一个数据库和数据表分别对应文件系统中的目录和其下的文件。 在Linux下数据库文件的存放目录一般为/var/lib/mysql。在Windows下这个目录视MySQL 的安装路径而定,DiaHosting的技术员一般为客户安装在D:serversoftmysql下。 如,有一个名为bbs的数据库,那么bbs的数据库文件会存放在/var/lib/mysql/bbs(linux)或者D:serversoftmysqlbbs(Windows)下。 备份文件前,需要将MySQL服务停止,然后将数据库目录拷贝即可。 恢复数据数据库时,需要先创建好一个数据库(不一定同名),然后将备份出来的文件(注意,不是目录)复制到对应的MySQL数据库目录中。 使用这一方法备份和恢复数据库时,需要新旧的MySQL版本一致,否则可能会出现错误。备份数据库: mysqldump –user=root –password=root密码–lock-all-tables 数据库名> 备份文件.sql 恢复数据库: mysql -u root –password=root密码数据库名< 备份文件.sql (3)使用Web程序 在这里我们推荐使用“帝国备份王”对MySQL进行备份。 主要优点: 1,跨平台。Windows与Linux下各种WEB环境均可以运行。 2,智能识别编码,解决备份时的乱码问题。 3,不同的MySQL版本间都可以进行备份和恢复操作。 4,采用分组备份,即使是超过1G的数据库也可以正常备份。 登录“帝国备份王”

MySQL完全备份、增量备份与恢复

MySQL完全备份、增量备份与恢复 适用版本] MySQL 4.x - 6.x [ 配置] 执行增量备份的前提条件是MySQL打开log-bin日志开关,例如在my.ini或https://www.360docs.net/doc/9310667473.html,f中 加入 log-bin=C:/Program Files/MySQL/MySQL Server 6.0/Data/mysql-bin “log-bin=”后的字符串为日志记载目录,一般建议放在不同于mysql数据目录的磁盘上。 [ 完全备份] 假定星期日下午1点执行完全备份,适用于MyISAM存储引擎。 mysqldump --lock-all-tables --flush-logs --master-data=2 -u root -p test > backup_sunday_1_PM.sql 对于InnoDB 将--lock-all-tables替换为--single-transaction --flush-logs 为结束当前日志,生成新日志文件 --master-data=2 选项将会在输出SQL中记录下完全备份后新日志文件的名称, 用于日后恢复时参考,例如输出的备份SQL文件中含有: -- CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000002', MASTER_LOG_POS=106; 其他说明: 如果mysqldump加上--delete-master-logs 则清除以前的日志,以释放空间。但是如果服务器配置为镜像的复制主服务器,用mysqldump --delete-master-logs删掉MySQL二进制日志很危险,因为从服务器可能还没有完全处理该二进制日志的内容。在这种情况下,使用PURGE MASTER LOGS更为安全。 [ 增量备份] 每日定时使用mysqladmin flush-logs来创建新日志,并结束前一日志写入过程。并 把前一日志备份,例如上例中开始保存数据目录下的日志文件mysql-bin.000002 , ... [ 从备份中恢复] * 恢复完全备份 mysql -u root -p < backup_sunday_1_PM.sql * 恢复增量备份 mysqlbinlog mysql-bin.000002 ... | mysql -u root -p 注意此次恢复过程亦会写入日志文件,如果数据量很大,建议先关闭日志功能。

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] 输出文件的开头看起来象这样: # MySQL Dump 6.0 # # Host: localhost Database: samp_db #--------------------------------------- # Server version 3.23.2-alpha-log # # Table structure for table 'absence' # CREATE TABLE absence( student_id int(10) unsigned DEFAULT '0' NOT NULL, date date DEFAULT '0000-00-00' NOT NULL, PRIMARY KEY (student_id,date) ); # # Dumping data for table 'absence' # INSERT INTO absence VALUES (3,'1999-09-03'); INSERT INTO absence VALUES (5,'1999-09-03'); INSERT INTO absence VALUES (10,'1999-09-08'); ...... 文件剩下的部分有更多的INSERT和CREATE TABLE语句组成。例: %mysqldump samp_db >/opt/mysqldatabak/samp_db.2006-5-15 %mysqldump samp_db | gzip >/usr/archives/mysql/samp_db.1999-10-02.gz #产生压缩备份 %mysqldump samp_db student score event absence >grapbook.sql #备份数据库的某些表 %mysqladmin -h https://www.360docs.net/doc/9310667473.html, create samp_db %mysqldump samp_db | mysql -h https://www.360docs.net/doc/9310667473.html, samp_db #直接恢复到另一个服务器上使用--add-drop-table选项告诉服务器将DROP TABLE IF EXISTS语句写入备份文件,这样当我们以后用来恢复数据库时,如果表已经存在,你

数据库备份与恢复

Oracle数据库备份与恢复的三种方法 2009-11-04 16:00 Oracle数据库有三种标准的备份方法,它们分别是导出/导入(EXP/IMP)、热备份和冷备份。导出备件是一种逻辑备份,冷备份和热备份是物理备份。 一、导出/导入(Export/Import) 利用Export可将数据从数据库中提取出来,利用Import则可将提取出来的数据送回到Oracle数据库中去。 1、简单导出数据(Export)和导入数据(Import) Oracle支持三种方式类型的输出: (1)、表方式(T方式),将指定表的数据导出。 (2)、用户方式(U方式),将指定用户的所有对象及数据导出。 (3)、全库方式(Full方式),瘵数据库中的所有对象导出。 数据导入(Import)的过程是数据导出(Export)的逆过程,分别将数据文件导入数据库和将数据库数据导出到数据文件。 2、增量导出/导入 增量导出是一种常用的数据备份方法,它只能对整个数据库来实施,并且必须作为SYSTEM来导出。在进行此种导出时,系统不要求回答任何问题。导出文件名缺省为export.dmp,如果不希望自己的输出文件定名为export.dmp,必须在命令行中指出要用的文件名。 增量导出包括三种类型: (1)、“完全”增量导出(Complete) 即备份三个数据库,比如: (2)、“增量型”增量导出 备份上一次备份后改变的数据,比如:

(3)、“累积型”增量导出 累计型导出方式是导出自上次“完全”导出之后数据库中变化了的信息。比如: 数据库管理员可以排定一个备份日程表,用数据导出的三个不同方式合理高效的完成。 比如数据库的被封任务可以做如下安排: 星期一:完全备份(A) 星期二:增量导出(B) 星期三:增量导出(C) 星期四:增量导出(D) 星期五:累计导出(E) 星期六:增量导出(F) 星期日:增量导出(G) 如果在星期日,数据库遭到意外破坏,数据库管理员可按一下步骤来回复数据库: 第一步:用命令CREATE DATABASE重新生成数据库结构; 第二步:创建一个足够大的附加回滚。 第三步:完全增量导入A: 第四步:累计增量导入E: 第五步:最近增量导入F:

mysql备份与恢复方案

服务器备份方案 一、MYSQL数据库备份与恢复: 数据库本地备份:当数据量少的时候可以在每天凌晨1点-3点进行完全备份,随着数据库的增大,可以2两小时(按照需求设置时间)做增量备份与完全备份相结合的备份方式以确保数据的安全。 数据库完全备份脚本: 1.确定我们备份文件存放的目录这里我把所有备份文件放到/home/mysqlback 2.确定需要备份的数据库,这里我们用备份d_test这个数据库来说明。 dbuser="root" #定义数据库用户名 dbpasswd="123456" #定义数据库密码 dbname="d_test" #定义需要备份的数据库 date1=`date +%Y%m%d` #读取当前日期 date2 = `date +%Y%m%d%H%M%S` #读取当前的日期时间Y年m月d日H小时M分钟S秒 date3 = `date -d -5day +"%Y%m%d"` #读取当天日期之5天前的日期 back = /home/mysqlback/$date1 #备份文件存放目录 #判断是不是有文件存放目录如果没有则新建。 if [ ! -d $back ] then mkdir -p $back fi #使用mysqldump命令来备份指定的数据库并且压缩成gz包。 mysqldump -u$dbuser -p$dbpasswd $dbname | gzip > $back/$dbname$date2.sql.gz #删除指定5天前备份的过期文件以便节省磁盘空间 cd /home/mysqlback rm -rf $date3 异地备份 首先准备一台异地的服务器,并且搭建好vsftp(vsftp具体搭建详细步骤请参考VSFTP搭建文档) 异地备份到vsftp服务器上脚本如下:

MySQL备份与恢复(PDF版)

下面文章摘录的主题:mysql日志文件,使用mysqld加相应选项来启用某种日志。Mysql 完全备份及恢复:mysqldump对MyISAM或InnoDB完全备份,mysqlhotcopy对MyISAM完全备份。增量备份:使用二进制日志增量备份,使用mysqlbinlog命令恢复二进制日志。 SQL语法备份及恢复。拷贝数据文件备份(对Innodb还需拷贝日志文件)。MyISAM表的检查与修复(另见《MySql存储引擎》)。Innodb表的碎片整理和模糊检查点。 MySQL备份和恢复 作/译者:叶金荣 本文讨论MySQL的备份和恢复机制,以及如何维护数据表,包括最主要的两种表类型:MyISAM和Innodb,文中设计的MySQL版本为 5.0.22。 目前MySQL支持的免费备份工具有:mysqldump、mysqlhotcopy,还可以用SQL语法进行备份:BACKUP TABLE或者SELECT INTO OUTFILE,又或者备份二进制日志(binlog),还可以是直接拷贝数据文件和相关的配置文件。MyISAM表是保存成文件的形式,因此相对比较容易备份,上面提到的几种方法都可以使用。Innodb所有的表都保存在同一个数据文件ibdata1中(也可能是多个文件,或者是独立的表空间文件),相对来说比较不好备份,免费的方案可以是拷贝数据文件、备份binlog,或者用mysqldump。 1、mysqldump 1.1备份 mysqldump是采用SQL级别的备份机制,它将数据表导成SQL脚本文件,在不同的MySQL版本之间升级时相对比较合适,这也是最常用的备份方法。 现在来讲一下mysqldump的一些主要参数: 1.--compatible=name 它告诉mysqldump,导出的数据将和哪种数据库或哪个旧版本的MySQL服务器相兼容。值可以为ansi、mysql323、mysql40、postgresql、oracle、mssql、db2、maxdb、no_key_options、no_tables_options、no_field_options等,要使用几个值,用逗号将它们隔开。当然了,它并不保证能完全兼容,而是尽量兼容。 2.--complete-insert,-c 导出的数据采用包含字段名的完整INSERT方式,也就是把所有的值都写在一行。这么做能提高插入效率,但是可能会受到max_allowed_packet参数的影响而导致插入失败。因此,需要谨慎使用该参数,至少我不推荐。 3.--default-character-set=charset 指定导出数据时采用何种字符集,如果数据表不是采用默认的latin1字符集的话,那么导出时必须指定该选项,否则再次导入数据后将产生乱码问题。 4.--disable-keys 告诉mysqldump在INSERT语句的开头和结尾增加/*!40000ALTER TABLE table DISABLE KEYS*/;和/*!40000ALTER TABLE table ENABLE KEYS*/;语句,这能大大提高插入语句的速度,因为它是在插入完所有数据后才重建索引的。该选项只适合MyISAM表。 5.--extended-insert=true|false 默认情况下,mysqldump开启--complete-insert模式,因此不想用它的的话,就使用本选项,设定它的值为false即可。 6.--hex-blob

数据库备份和还原操作方法

数据库备份和还原 在收费系统运行一段时间后,如发生系统不正常要重装WINDOWS操作系统或更换电脑时,须按照下面“数据库备份”方法将原系统的数据文件备份,并将备份文件妥善保存(避免随系统重装而丢失数据),在重装系统或更换电脑后,按照软件的安装方法顺序安装SQL2000数据库和消费/水控管理软件,然后按照下面“数据还原”方法进行数据库还原,完成后系统中的数据即与原数据完全[相同。 数据库备份: 以ICSF为例,打开ICSF软件,选择菜单栏下的系统维护,然后选择数据备份。(系统维护——数据备份)如图(1-1): 1-1 数据备份完成后,可以在基本资料——系统参数里(1-2),在弹出的对话框上的备份路径二(手动备份)里可以找到数据备份的路径(1-3)。如图:

1-2 1-3 提示: 1、上述方法为手动备份,本系统在使用后正常腿出系统时也会自动进行 数据备份,如已经无法正常开启原电脑(无法进行手动备份)则可将 原电脑硬盘连接到其他电脑中,找到“备份路径一”所指向的路径, 找到备份文件夹,将其中修改日期最近的备份文件拷贝出来用于数据 还原。 2、在安装收费/水控系统时建议不要将安装目录选在C盘,避免因格式 化的操作是备份数据丢失,如果已经将软件安装在C盘,则建议将备 份文件路径指定为其他盘。 数据还原 数据还原,首先要找到备份的数据文件。如上所述,备份文件存放在E:\软件\ICSF5.74\Mdbbak上,根据路径找到Mdbbak文件夹并打开。 打开Mdbbak文件夹后,里面有类似这样的(1-4)BAK文件。 找寻最新的BAK文件,并把它与软件安装包(光盘)中IC挂接数据库.exe软件拷贝到电脑任意一个目录(文件夹)中,然后将备份文件重命名(光标放在备份文件 上点鼠标右键,选择重命名),改为ICSF.db。如图:(1-5)

AnyBackup MySQL定时备份与恢复最佳实践手册

.

目录 第 1 章 . 概述 (1) 1.1.目标读者 (1) 1.2.本文档适用范围 (1) 1.3.MySQL 定时备份功能模块简介 (1) 第 2 章. MySQL 基础知识简介 (1) 2.1.MySQL 简介 (1) 2.2.MySQL 引擎介绍 (1) 2.3.关键技术原理 (1) 2.3.1.MySQL 数据库定时备份原理分析 (1) 2.3.2.MySQL 数据库恢复原理分析 (2) 第 3 章. MySQL 定时备份最佳实践 (3) 3.1.MySQL 定时备份最佳实践 (3) 3.1.1.部署注意事项 (3) 3.1.2.定时备份最佳操作 (3) 3.2.MySQL 恢复最佳实践 (13) 3.2.1.部署注意事项 (13) 3.2.2.定时备份的恢复最佳操作 (14) 3.3.FAQ (16)

第1章. 概述 本文档是爱数备仹容灾家族MySQL 一体化容灾最佳实践文档,主要描述了如何正确地使用爱数备仹容灾家族产品成员迚行 MySQL 定时备仹恢复的方法,包括部署前后的注意事项和典型部署方案。 1.1.目标读者 本技术文档面向爱数备仹容灾家族产品成员的用户和相关技术人员,主要介绍 MySQL 数据库定时备仹不恢复的基础知识,以及如何正确使用爱数备仹容灾家族产品成员部署MySQL 数据库定时备仹方案。 旨在通过此文档帮劣用户和技术人员快速掊插MySQL 数据库定时备仹模块的使用方法。 1.3.MySQL 定时备份功能模块简介

恢复位置原位置 恢复粒度整个实例、单个数据库异机恢复支持

第2章. MySQL 基础知识简介 2.1.MySQL 简介 MySQL 是一个小型关系型数据库管理系统,开发者为瑞典MySQL AB 公司。目前MySQL 被广泛地应用在 Internet 上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL 作为网站数据库。 2.2.MySQL 引擎介绍 MyISAM:MySQL 的默讣数据库,最为常用。拥有较高的揑入,查询速度,但不支持事务。 InnoDB:事务型数据库的首选引擎,支持 ACID 事务,支持行级锁定。 BDB:源自 Berkeley D B,事务型数据库的另一种选择,支持 COMMIT 和 ROLLBACK 等其他事务特性 Memory :所有数据置于内存的存储引擎,拥有极高的揑入,更新和查询敁率。但是会占用和数据量成正比的内存空间。幵丏其内容会在 Mysql 重新启劢时丢失。 Merge:将一定数量的 MyISAM 表联合而成一个整体,在超大规模数据存储时徆有用。 Archive:非常适合存储大量的独立的、作为历叱记弽的数据。它们不经常被读取。Archive 拥有高敁的揑入速度,但其对查询的支持相对较差。 Federated:将不同的 MySQL 服务器联合起来,逡辑上组成一个完整的数据库。非常适合分布式应用 Cluster/NDB :高冗余的存储引擎,用多台数据机器联合提供服务以提高整体性能和安全性。适合数据量大,安全和性能要求高的应用。 CSV:逡辑上由逗号分割数据的存储引擎。 BlackHole:黑洞引擎,写入的仸何数据都会消失,一般用于记弽 binlog 做复制的中继。 2.3.关键技术原理 2.3.1.MySQL 数据库定时备份原理分析 本版本,MySQL 数据库定时备仹采用的是脚本+文件备仹方式。爱数备仹软件系统首先根据用户的选择获取数据源,然后根据数据库类型生成相应的备仹脚本。接着,备仹系统调用备仹脚本,该脚本可以让数据库自带的备仹工具迚行备仹,幵将备仹集放到临时路径。随后备仹系统将生产的备仹集备仹到介质服务器,最后删除备仹脚本和临时路径的备仹内容。 ?支持的备仹类型:完全备仹 ?备仹命令调用: 1.备份整个实例 mysqldump -u root -p https://www.360docs.net/doc/9310667473.html, --all-database > “E:\homebakpath\allDatab ases\localhost_allDatabases_2012121210352.full”

mysql数据库备份与恢复

my sql数据库备份与恢复 windows下实现mysql数据库定时备份功能一、进入mysql的bin目录 二、导出: [mysql bin path]>mysqldump--opt-d-u root-p dbn> backup-file.sql Enter password:****** 三、导入: [mysql bin path]>mysql-u root-p dbn<backup-file.sql Enter password:****** 四、收尾工作:清理sql文件,导出时会在bin目录下生成backup-file.sql 文件,在导入工作完成后就没用了,可以删了,当然留着也可以。

我自己的用的备份语句: d: cd\mysql\mysql5.1.30\bin mysqldump--opt-uroot-p123456 bbs_sikaozhoubao_com>E:\backup\bbs_sikaozhoubao_com\%date:~ 0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%%time:~6,2%.sq l 更多的说明: 导出要用到MySQL的mysqldump工具,基本用法是: shell>mysqldump[OPTIONS]database[tables] 如果你不给定任何表,整个数据库将被导出。 通过执行mysqldump--help,你能得到你mysqldump的版本支持

的选项表。 注意,mysqldump没有--quick或--opt选项,mysqldump将在导出结果前装载整个结果集到内存中,如果你正在导出一个大的数据库,这将可能是一个问题。 mysqldump支持下列选项: --add-locks 在每个表导出之前增加LOCK TABLES并且之后UNLOCK TABLE。(为了使得更快地插入到MySQL)。 --add-drop-table 在每个create语句之前增加一个drop table。

MySQL数据库定时备份与恢复使用手册v1.0

致远(OA)备份产品MySQL数据库定时备份与恢复 使用手册

目录 1、MySQL备份恢复概述及功能介绍 (3) 1.1 概述 (3) 1.2 功能介绍 (3) 2、MySQL相关介绍 (4) 2.1 MySQL系统数据库及其作用 (4) 2.2 数据库备份类型 (4) 2.3 数据库恢复模式 (5) 3、MySQL数据库备份指导 (5) 3.1 建立备份任务与定时计划 (6) 3.2 执行策略 (10) 3.3 编辑策略 (11) 3.4 删除策略 (13) 3.5 备份策略 (13) 4、MySQL数据库恢复 (14) 5、常见问题汇总 (16) 6、附件 (17) 6.1 修改mysql配置文件下缓冲池大小 (17)

1、MySQL备份恢复概述及功能介绍1.1 概述 可实现对MySQL数据库的热备份和恢复。 支持MySQL数据库的完全备份。 提供完全备份循环策略,细化数据库备份计划。 自定义备份保留个数,节省了备份空间。 提供时间点恢复,精确恢复到备份的时间点。 1.2 功能介绍

2、MySQL相关介绍 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle 公司。Mysql是最流行的关系型数据库管理系统,在WEB应用方面MySQL是最好的RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一。MySQL 是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MySQL所使用的SQL语言是用于访问数据库的最常用标准化语言。MySQL软件采用了双授权政策(本词条“授权政策”),它分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择MySQL作为网站数据库。由于其社区版的性能卓越,搭配PHP 和Apache可组成良好的开发环境。 2.1 MySQL系统数据库及其作用 2.2 数据库备份类型

数据库常用备份命令

备份MySQL数据库的命令 mysqldump -hhostname -uusername -ppassword databasename > backupfile.sql 备份MySQL数据库为带删除表的格式 备份MySQL数据库为带删除表的格式,能够让该备份覆盖已有数据库而不需要手动删除原有数据库。 mysqldump -–add-drop-table -uusername -ppassword databasename > backupfile.sql 直接将MySQL数据库压缩备份 mysqldump -hhostname -uusername -ppassword databasename | gzip > backupfile.sql.gz 备份MySQL数据库某个(些)表 mysqldump -hhostname -uusername -ppassword databasename specific_table1 specific_table2 > backupfile.sql 同时备份多个MySQL数据库 mysqldump -hhostname -uusername -ppassword –databases databasename1 databasename2 databasename3 > multibackupfile.sql 仅仅备份数据库结构 mysqldump –no-data –databases databasename1 databasename2 databasename3 > structurebackupfile.sql 备份服务器上所有数据库 mysqldump –all-databases > allbackupfile.sql 还原MySQL数据库的命令 mysql -hhostname -uusername -ppassword databasename < backupfile.sql 还原压缩的MySQL数据库 gunzip < backupfile.sql.gz | mysql -uusername -ppassword databasename 将数据库转移到新服务器

SQL数据库备份与恢复操作流程

1.数据库备份 1)打开“开始”——“程序”——Microsoft SQL Server——企业管理器,进入之后,将页面左边的“控制台根目录”下的“+”一个一个都点开,一直到点开“数据库”前的“+”。可以看到第一个数据库应该是CORPSCAN,在这个数据库上面点右键,选择“所有任务”中的“备份数据库”,如下图所示: 2)在弹出的选择框中点“添加”按钮:

3)弹出如下的窗口: 且必须给这个备份文件起一个文件名(一般我们都以日期做为备份文件名),如

下图所示: 上述备份文件就是放在D:\ 这个目录下,文件名为20051120。然后点“确定”。4)可以看到“备份到”那里有个路径和文件名了,其它什么都不用动,然后点“确定”就可以了,如下图所示: 备份文件成功后会有提示信息,可以到备份的目录下找到备份的文件。

2.数据库还原 和数据库的备份操作类似。具体流程如下: 1)打开“开始”——“程序”——Microsoft SQL Server——企业管理器,进入之后,将页面左边的“控制台根目录”下的“+”一个一个都点开,一直到点开“数据库”前的“+”。可以看到第一个数据库应该是CORPSCAN,在这个数据库上面点右键,选择“所有任务”中的“还原数据库”,如下图所示: 2)在弹出的页面上,在“还原”那里选择“从设备”,然后点一下“选择设备”,如图所示:

3)在弹出的页面上点一下“添加”按钮,就出现“选择还原目的”的对话框,在“文件名”后面有个浏览按钮,在那里选择要还原的文件(就是之前备份的数据库文件),然后点“确定”,再确定,再确定,就可以了,还原成功之后会有提示的:

MySQL自动备份

当数据库服务器建立好以后,我们首先要做的不是考虑要在这个支持数据库的服务器运行哪些受MySQL提携的程序,而是当数据库遭到破坏后,怎样安然恢复到最后一次正常的状态,使得数据的损失达到最小。 或者说,仅仅是数据库服务器的建立,只能说明它能做些什么,并不代表它能稳定的做些什么。灾难恢复的效率及全面性,也是系统的稳定性的一个准因素,尤其对于一个服务器系统。 这一节,介绍数据库自动备份以及数据库被破坏后的恢复的方法。在这里,我们使用mysqlhotcopy,并且定义一段Shell脚本来实现数据库的自动备份,并且,让整个数据自动备份与数据恢复过程都基于Shell。 建立数据库备份所需条件 [1] 建立自动备份脚本 在这里,为了使数据库备份和恢复的符合我们的实际要求,用一段符合要求的Shell脚本来实现整个备份过程的自动化。 [root@CentOS ~]# vi mysql-backup.sh ← 建立数据库自动备份脚本, 如下: #!/bin/bash PATH=/usr/local/sbin:/usr/bin:/bin # The Directory of Backup BACKDIR=/backup/mysql # The Password of MySQL ROOTPASS=******** 此处请将星号替换成MySQL的root密码 # Remake the Directory of Backup rm -rf $BACKDIR mkdir -p $BACKDIR # Get the Name of Database DBLIST=`ls -p /var/lib/mysql | grep / | tr -d /` # Backup with Database for dbname in $DBLIST do mysqlhotcopy $dbname -u root -p $ROOTPASS $BACKDIR | logger -t mysqlhotcopy

ORACLE数据库备份与恢复详解

ORACLE数据库备份与恢复详解 Oracle的备份与恢复有三种标准的模式,大致分为两大类,备份恢复(物理上的)以及导入导出(逻辑上的),而备份恢复又可以根据数据库的工作模式分为非归档模式(Nonarchivelog-style)和归档模式(Archivelog-style),通常,我们把非归档模式称为冷备份,而相应的把归档模式称为热备份,他们的关系如下所示 三种方式各有优点,我们做个比较(这个是用Fireworks画的,有点糙):

$A: 现在先来介绍一下逻辑备份方式的方法,利用Export可将数据从数据库中提取出来,利用Import则可将提取出来的数据送回到Oracle数据库中去。理论基础:Oracle 提供的Export和Import具有三种不同的操作方式(就是备份的数据输出(入)类型): 1,表方式(T) 可以将指定的表导出备份; 2,全库方式(Full) 将数据库中的所有对象导出; 3,用户方式(U) 可以将指定的用户相应的所有数据对象导出; *在导入导出备份方式中,提供了很强大的一种方法,就是增量导出/导入,但是它必须作为System来完成增量的导入导出,而且只能是对整个数据库进行实施。增量导出又可以分为三种类别: 1,完全增量导出(完全备份)(Complete Export) 这种方式将把整个数据库文件导出备份;exp system/manager inctype=complete file=20041125.dmp(为了方便检索和事后的查询,通常我们将备份文件以日期或者其他有明确含义的字符命名) 2,增量型增量导出(增量备份)(Incremental Export) 这种方式将只会备份上一次备份后改变的结果;exp system/manager inctype=incremental file=20041125.dmp 3,累积型增量导出(差异备份)(Cumulate Export) 这种方式的话,是导出自上次完全增量导出后数据库变化的信息。exp system/manager inctype=cumulative file=20041125.dmp 通常情况下,DBA们所要做的,就是按照企业指定或者是自己习惯的标准(如果是自己指定的标准,建议写好计划说明),一般,我们采用普遍认可的下面的方式进行每天的增量备份: Mon:完全备份(A) Tue:增量导出(B) Wed:增量导出(C) Thu:增量导出(D)

MySQL备份与恢复

MySQL的备份与恢复 一、MySQL的备份: MySQL通过在全量备份基础上保证完整的二进制日志文件来达到增量备份的目的。因此MySQL实现增量备份主要有以下几个步骤: 1.开启二进制日志(bin-log): mysql默认没有启二进制日志。首先我们需要在my.ini中修改参数: 在[mysqld]下添加: log-bin=log-bin 这是设置开启二进制日志的参数,日志名为log-bin.index和log-bin.000001等。默认路径为:MySQL安装目录\data。 expire_logs_day=7 这是设置二进制日志过期时间的参数。目前二进制日志在flush log时自动删除7天之前的日志。 然后重启MySQL服务。可以在E:\MySQL Server5.5\data目录下看到“log-bin.数字编号”的文件,如log-bin.000001。以后每次flush log时都会从当前时间开始生成新的log-bin,文件名中的数字编号依次递增。 2.MySQL的自动全量备份: 这里使用mysqldump备份数据库。mysqldump是MySQL用于转存储数据库的实用程序。它主要产生一个SQL脚本,其中包含从头重新创建数据库所必需的命令,在不同的MySQL版本之间升级时相对比较合适,这也是最常用的备份方法。 这里编写了一个批处理程序,通过任务计划定时运行来完成自动备份功能。代码如下: MySQLBackup.bat: @echo off title "数据库备份程序" set MYSQLPATH=E:\"MySQL Server5.5" set DT=%date:~0,4%-%date:~5,2%-%date:~8,2% //获得当前日期 if %time:~0,2% leq 9 (set hour=0%time:~1,1%) else (set hour=%time:~0,2%) //小时数前自动添0 set TM=%hour%-%time:~3,2%-%time:~6,2% //获得当前时间 set USERNAME=root set PASSWORD=google //数据库用户名和密码 @echo on

oracle数据库备份与恢复的三种方法(1)

Oracle数据库有三种标准的备份方法,它们分别是导出/导入(EXP/IMP)、热备份和冷备份。导出备件是一种逻辑备份,冷备份和热备份是物理备份。 一、导出/导入(Export/Import) 利用Export可将数据从数据库中提取出来,利用Import则可将提取出来的数据送回到Oracle数据库中去。 1、简单导出数据(Export)和导入数据(Import) Oracle支持三种方式类型的输出: (1)、表方式(T方式),将指定表的数据导出。 (2)、用户方式(U方式),将指定用户的所有对象及数据导出。 (3)、全库方式(Full方式),瘵数据库中的所有对象导出。 数据导入(Import)的过程是数据导出(Export)的逆过程,分别将数据文件导入数据库和将数据库数据导出到数据文件。 2、增量导出/导入 增量导出是一种常用的数据备份方法,它只能对整个数据库来实施,并且必须作为SYSTEM来导出。在进行此种导出时,系统不要求回答任何问题。导出文件名缺省为export.dmp,如果不希望自己的输出文件定名为export.dmp,必须在命令行中指出要用的文件名。 增量导出包括三种类型: (1)、“完全”增量导出(Complete) 即备份三个数据库,比如: (2)、“增量型”增量导出 备份上一次备份后改变的数据,比如: (3)、“累积型”增量导出 累计型导出方式是导出自上次“完全”导出之后数据库中变化了的信息。比如: 数据库管理员可以排定一个备份日程表,用数据导出的三个不同方式合理高效的完成。 比如数据库的被封任务可以做如下安排: 星期一:完全备份(A)

星期二:增量导出(B) 星期三:增量导出(C) 星期四:增量导出(D) 星期五:累计导出(E) 星期六:增量导出(F) 星期日:增量导出(G) 如果在星期日,数据库遭到意外破坏,数据库管理员可按一下步骤来回复数据库: 第一步:用命令CREATE DATABASE重新生成数据库结构; 第二步:创建一个足够大的附加回滚。 第三步:完全增量导入A: 第四步:累计增量导入E: 第五步:最近增量导入F: 二、冷备份 冷备份发生在数据库已经正常关闭的情况下,当正常关闭时会提供给我们一个完整的数据库。冷备份时将关键性文件拷贝到另外的位置的一种说法。对于备份Oracle信息而言,冷备份时最快和最安全的方法。冷备份的优点是: 1、是非常快速的备份方法(只需拷文件) 2、容易归档(简单拷贝即可) 3、容易恢复到某个时间点上(只需将文件再拷贝回去) 4、能与归档方法相结合,做数据库“最佳状态”的恢复。 5、低度维护,高度安全。 但冷备份也有如下不足: 1、单独使用时,只能提供到“某一时间点上”的恢复。 2、再实施备份的全过程中,数据库必须要作备份而不能作其他工作。也就是说,在冷备份过程中,数据库必须是关闭状态。

MySQL数据库备份与还原脚本说明.

1.完整备份 1.1 备份方法 MySQL数据库备 份脚本说明 ****网络科技(上海)有限公司 采用免费工具MySQLhotcopy,直接拷贝数据库文件(*.FRM,*..MYD, *.MYI)。在进行拷贝文件时, 会锁定需要进行备份的数据库,加上读锁。然后执行flush tables把缓存在内存里的修改写入硬盘上的数据库文件,最后把备份的数据库文件复制下来。此过程,可能会造成玩家数据丢失,但是会比使用mysqldump等备份方法速度快,锁定表时间少,从而能最大限度地降低数据丢失的情况。 1.2 脚本说明 完整脚本备份文件名称:fullybackup.sh ,存放目录: /back 需要先创建一个目录back用来存放备份文件,也可以进行修改为其他目录,则需要对脚本中的backdir 值修改;所属组:root;拥有者:root 。脚本参数:backdir ----------------备份文件存放的路径(第一次运行该脚本时会自动创建)server -----------------为数据库服务器名称; dbname----------------为数据库名称;password ---------------为admin帐号登陆数据库的密码; mysqlbak.log ---------备份脚本自己的日志,记录脚本运行与结束时间信息;admin---------------------为数据库服务器帐号,若需要使用其他帐号的请修改: /usr/local/mysql/bin/mysqlhotcopy $dbname --flushlog -u admin -p $rootpass $backdir | logger -t mysqlhotcopy 把–u admin中的admin改为具有读取数据库文件的数据库服务器帐号,即可! 1.3 备份文件存放结构 以备份服务器ccxydata_test 中的数据库eugene为例: /back/mysql/ccxydata_test-07-07-01.tgz,而目录eugene之下才是备份过来的文件:*.frm、*.MYD、 *.MYI,以及db.opt。 若备份文件一直存放在数据库服务器的话,脚本会自动检测存放的备份文件,根据设置的删除时间,删 1.4 其他说明 除存放的备份文件。目前是设置删除30天之前的备份文件,也可以执行修改,只需要修改: for d in `find . -type d -mtime +30 -maxdepth 1` 把 30 改为您所要设置的数字即可。 没有提供数据库备份文件压缩传送功能,可以使用ftp命令把备份文件定期传送到指定的服务器上,建议Linux安装完后,系统需要再安装Perl-DBD-mysql组件(Linux安装时,会自动安装Perl5.8组件,但是这Linux自带的perl-DBD-

数据库《数据备份与还原》实验报告

x x大学计算机与信息技术学院 实验报告 姓名学号专业班级 课程名称数据库系统概论实验日期成绩指导教师批改日期实验名称数据备份与还原 实验内容[目的和意义] ?理解数据库的备份策略 ?掌握如何创建和执行备份 ?理解数据库的还原策略 ?掌握还原数据库的方法 [实验内容] 使用SQLServer2005对象资源管理器完成以下操作:. ?创建备份设备 ?备份数据库 ?还原数据库 [实现步骤] 1.使用SQL Server 管理平台创建备份设备 (1)在SQL Server 管理平台中,选择需要创建备份设备的服务器,打开“服务器对象”的文件夹,在“备份设备”图标上单击鼠标右键,从弹出的快捷菜单中选择“新建备份设备”命令。如图6-1。 (2)打开“备份设备”对话框,在“设备名称”文本框中输入设备名称,该名 称是设备的逻辑名称,另外还要选择备份设备的类型。如图6-2。

2.使用SQL Server管理平台进行备份 (1)在SQL Server管理平台中,打开数据库文件,在要进行备份的数据库图标上单击鼠标右键,在弹出的快捷菜单中选择“任务”-“备份”命令。如图6-3。 (2)打开“备份数据库”对话框,在该对话框中又两个选项页,即“常规”与“选项” 在常规选项页的上部分,可以选择备份的数据库的名称,恢复模式,备份类型,中间可以设置备份集的名称,说明以及备份集的过期时间,下部分可以设置备份的目标。默认值是磁盘,单击“添加”按钮,在打开的“选择备份目标”对话框中,可选中“文件名”单选按钮来指定文件名和路径,也可以选中“备份设备”单选按钮,从组合框中选择备份设备。同样可以设置“选项”选项页的内容。如图6-4、6-5。

相关文档
最新文档