[转]MySQL数据库的热备份
一、系统环境描述:
1、两台数据库服务器,A和B;
2、当前A正在使用,将作为主服务器,B为准备用来做备用数据库服务器;
3、要进行热备份的数据库中含有类型为MyISAM和InnoDB的数据表;
二、操作过程说明:
1、首先要保证A、B的初始数据是完全同步的。因此,需要将A中的数据完整的复制到B中;
由于多个服务器都在连接A,并实时的修改A中的数据,所以需要断开所有的会修改数据库数据的程序,或者采取锁表的方法(但这种操作可能会影响其他服务的正常运行)。然后使用mysqldump程序将A中的数据备份为脚本文件。
方法:打开命令行窗口,输入mysqldump -uusername -ppassword --opt databasename > sqlstoragepath,其中,username为mysql的用户名,password为mysql的密码,databasename为要进行热备份的数据库的名称,sqlstoragepath为备份脚本的存放位置(c:\backup.sql)。
2、在A中添加备份使用的授权账户;
方法:通过命令行的方式登录到mysql,登录成功后,会出现“mysql>”的符号。输入:grant replication slave on *.* to 'username'@'slavedbIP' identified by 'password';(分号不能省略)。其中username和password为备份服务器在进行热备份时使用的用户名和密码;slaveIP为备份服务器的IP地址,标志该帐号只能在该IP地址上使用。
3、停止A服务器的mysql服务;
4、打开A服务器mysql安装目录下data目录,删除除文件夹之外的所有日志文件。然后打开databasename目录,删除其中的所有文件;
5、打开A服务器mysql安装目录,修改my.ini文件,在[mysqld]段中加入以下配置信息,然后保存:
#主服务器的服务器ID
server-id=1
#开启主服务器的二进制日志功能
log-bin=binary_log
#要忽略的数据库,即不需要进行热备份的数据库
binlog-ignore-db=mysql,test
#要进行热备份的数据库
binlog-do-db=stv
6、打开B服务器,并使用mysqladmin程序创建一个名为databasename的空数据库;
方法:打开命令行窗口,输入mysqladmin create databasename
7、停止B服务器的mysql服务;
8、打开B服务器mysql安装目录下data目录,删除除文件夹之外的所有日志文件。然后打开databasename目录,删除其中的所有文件;
9、打开B服务器mysql安装目录,修改my.ini文件,在[mysqld]段中加入以下配置信息,然后保存:
#从服务器的服务器ID
server-id=2
#主服务器A的IP地址
master-host=10.20.1.21
#主服务器mysql使用的端口
master-port=3306
#备份帐号的用户名,即在步骤2中添加的授权帐号的用户名
master-user=username
#备份帐号的密码,即在步骤2中添加的授权帐号的密码
master-password=slavedb
#要进行热备份的数据库
replicate-do-db=stv
#当和主服务器断开连接时尝试连接的时间间隔
master-connect-retry=60
10、启动A服务器的mysql服务;
11、启动B服务器的mysql服务;
12、检查A服务器的状态;
方法:mysql>showprocesslist;
mysql>show master status;
13、检查B服务器的状态;
方法:mysql>show slave status\G;
显示列表中必须存在: Slave_IO_Running: Yes
Slave_SQL_Running: Yes
14、打开A服务器,使用mysql命令,将之前备份出来的数据脚本重新导入数据库中;
方法:打开命令行窗口,输入: mysql -uusername -ppassword databaseName < backup.sql
15、导入数据成功后,检查B服务器是否同步导入数据;
16、在A中进行数据的添加、修改、删除,检查B服务器是否有相应的变化;
17、恢复其他服务;
至此,MySQL数据库的热备份操作全部完成。
说明,如果要备份的数据库中的表类型全部为MyISAM,则可以直接拷贝A服务器的data目录下要备份的数据库目录到B服务器的对应目录下。
ps :原文摘自 http://mazd1002.blog.163.com/blog/static/66574965201141383621934
[转]MySQL数据库的热备份的更多相关文章
- MySQL数据库双机热备份
MySQL数据库双机热备份 1.mysql 数据库没有增量备份的机制 当数据量太大的时候备份是一个很大的问题.还好 mysql 数据库提供了一种主从备份的机制,其实就是把主数据库的所有的数据同时写到备 ...
- MySQL数据库的热备份和冷备份
冷备份(off, 慢, 时间点上恢复)冷备份发生在数据库已经正常关闭的情况下,当正常关闭时会提供给我们一个完整的数据库.冷备份是将关键性文件拷贝到另外位置的一种说法.对于备份数据库信息而言,冷备份是最 ...
- MySQL 数据库通过日志恢复
http://blog.csdn.net/hanxin1987216/article/details/5976856 要想从二进制日志恢复数据,你需要知道当前二进制日志文件的路径和文件名.一般可以从选 ...
- Mysql数据库的主从与主主
前言: 首先,我们得知道我们为什么要做数据库的主从与主主,而后,再讨论他们的优劣与特点:为什么要做主从呢?因为Mysql数据库没有增量备份的机制,当数据量太大的时候备份是个难以解决的问题.但是mysq ...
- Xtrabackup原理及使用innobackupex进行MySQL数据库备份恢复
Xtrabackup是由percona提供的mysql数据库备份工具,据官方介绍,这也是世界上惟一一款开源的能够对innodb和xtradb数据库进行热备的工具. Xtrabackup中主要包含两个工 ...
- Centos下mysql数据库备份与恢复的方法
一.mysqldump工具备份 mysqldump由于是mysql自带的备份工具,所以也是最常用的mysql数据库的备份工具.支持基于InnoDB的热备份.但由于是逻辑备份,所以速度不是很快,适合备份 ...
- Xtrabackup全量备份与恢复mysql数据库
一.Xtrabackup简单概述: Percona Xtrabackup是开源免费的MySQL数据库热备份软件,它能对InnoDB和XtraDB存储引擎的数据库非阻塞地备份(对于MyISAM的备份同 ...
- 学会4种备份MySQL数据库(基本备份方面没问题了)
前言 我们试着想一想, 在生产环境中什么最重要?如果我们服务器的硬件坏了可以维修或者换新, 软件问题可以修复或重新安装, 但是如果数据没了呢?这可能是最恐怖的事情了吧, 我感觉在生产环境中应该没有什么 ...
- 关于MySQL数据库的备份方案
这里简单总结MySQL的备份分为3种:分为冷备份,逻辑备份,热备份. 1.冷备份: 一般主要用于非核心业务,这类业务一般都是允许业务中断的,冷备份的特点就是数度快,恢复时也最为简单.通常直接复物理文件 ...
随机推荐
- 外卖的撕‘哔’大战 CSU 1559
CSU 1559 Time Limit:1000MS Memory Limit:131072 ...
- readn、write、readline
字节流套接字上的read和write函数所表现的行为不同于通常的文件IO 字节流套接字上调用read或write输入或输出的字节数可能比请求的数量少,然而这不是出错的状态 这个现象的原因在于内核中用于 ...
- 【java】基于Tomcat的WebSocket转帖 + 自己理解
网址:http://redstarofsleep.iteye.com/blog/1488639 原帖时间是2012-5-8,自己书写时间是2013年6月21日10:39:06 Java代码 packa ...
- Callback函数详解(我感觉,回掉函数的本质是函数指针,在业务做循环处理的时候,调用一下通知外部)
2010年的最后一天了,转载一篇自己认为还不错的文章与大家分享.希望对大家有所帮助. 一,回调函数 我们经常在C++设计时通过使用回调函数可以使有些应用(如定时器事件回调处理.用回调函数记录某操作进度 ...
- 使用 Spring Boot 快速构建 Spring 框架应用,PropertyPlaceholderConfigurer
Spring 框架对于很多 Java 开发人员来说都不陌生.自从 2002 年发布以来,Spring 框架已经成为企业应用开发领域非常流行的基础框架.有大量的企业应用基于 Spring 框架来开发.S ...
- 调试makefile—subst函数
操作系统:ubuntu10.04 Makefile里的subst用法是$(subst FROM,TO,TEXT),即将TEXT中的东西从FROM变为TO Makefile中的字符串处理函数格式: ...
- 引用 运行asp.net程序时候,编译器错误消息: CS0016: 未能写入输出文件“c:\WINDOWS\Microsoft.NET\Fra
引用 运行asp.net程序时候,编译器错误消息: CS0016: 未能写入输出文件“c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary A ...
- Visual Studio Code 与 Github 集成
使用Visual Studio Code进行Nodejs开发充满了便利,为了更好的进行开发工作,有必要使用Github进行代码管理. Visual Studio Code已经集成了GIT组件: htt ...
- SQL 截图
- Maven搭建环境(Linux& Windows)
Linux下安装Maven 1.前提条件: 1)下载并安装好JDK .在终端输入命令“java -version”,如果出现类似如下信息说明JDK安装成功. $ java -version java ...