视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
[转]MySQL数据库的热备份_MySQL
2020-11-09 19:07:24 责编:小采
文档


bitsCN.com

一、系统环境描述:
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

bitsCN.com

下载本文
显示全文
专题