mysql数据库的冷热备份_[转]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服务器的对应目录下。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值