您好,欢迎访问一九零五行业门户网

[转]MySQL数据库的热备份_MySQL

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
      15、导入数据成功后,检查b服务器是否同步导入数据;
      16、在a中进行数据的添加、修改、删除,检查b服务器是否有相应的变化;
      17、恢复其他服务;
至此,mysql数据库的热备份操作全部完成。
      说明,如果要备份的数据库中的表类型全部为myisam,则可以直接拷贝a服务器的data目录下要备份的数据库目录到b服务器的对应目录下。
ps :原文摘自 http://mazd1002.blog.163.com/blog/static/66574965201141383621934
bitscn.com
其它类似信息

推荐信息