MySQL备份与AB复制

Mysql备份与AB复制复制有两种方式:同步复制(msylq-cluster) 异步复制(mysql-m/s主从备份又称作双机热备)一、Mysql完全备份(

Mysql备份与AB复制
复制有两种方式:同步复制(msylq-cluster) 异步复制(mysql-m/s主从备份又称作双机热备)

一、Mysql完全备份(纯复制方式和mysqldump工具)
1、纯复制方式:(必须得停掉mysql服务)
/etc/init.d/mysqld stop
tar -zcvf mysql_backup.tgz /var/lib/mysql/
/etc/init.d/mysqld start
恢复方式:tar包解压覆盖原路径文件,缺点是不同版本数据不兼容
2、mysqldump工具:
mysqldump -uroot -p test > /srv/test.sql (备份test数据库)
mysqldump -uroot -p –all-databases > /srv/alldata.sql (备份所有的数据库)
恢复方式:mysql -uroot -p test mysql -uroot -p

二、增量备份(使用时间来恢复和使用位置号来恢复)
mysql的增量备份使用的方法的是用过mysql的二进制日志来实现的,二进制日志中保存了对mysql的所有操作sql语句;mysql的二进制日志功能默认是关闭的,我们需要自己手动打开;
打开方式: vim /etc/my.cnf 添加
log-bin=noah 默认为log-bin=binlog;
重新启动服务后就会在/var/lib/mysql 中发现binlog 二进制文件;
二进制的日志文件我们需要使用命令mysqlbinlog 来查看;

1、使用时间来恢复:
例如:mysqlbinlog –start-date=”2012-02-29 9:46:04″ –stop-date=”2012-02-29 13:47:24″ /var/lib/mysql/binlog.000004 |mysql -uroot -pwestos (帐号root密码westos,对start和stop时间段的sql语句交给mysql执行,就能恢复这段时间的数据)
2、使用位置号来恢复:
例如:mysqlbinlog –start-position=”106″ –stop-position=”1472″ /var/lib/mysql/binlog.000003 |mysql -uroot -pwestos
注:时间和位置号都可以通过mysqlbinlog命令查看。

三、Mysql的AB复制:(同步和异步复制)
下面做单向热备实验:
主库master:192.168.0.57 从库slave:192.168.0.95

1、在master和slave上安装mysql
yum install mysql mysql-server -y (主从机都要安装mysql)

2、在master上修改/etc/my.cnf文件,添加
server-id=1 //区别master和slave
log-bin=mysql-bin //启动二进制日志文件功能
binlog-do-db=test //二进制文件需要同步的数据库名(不写为同步所有数据)
binlog-ignore-db=mysql //不同步mysql数据库数据,以免发生因同步了用户信息而从机出现登录问题
然后重启服务:service  mysqld restart

3、授权给用户:
master登录数据库:
[root@desktop57 ~]# mysql -uroot -pwestos
mysql> grant replication slave,reload,super on *.* to ‘slave’@’192.168.0.95’ identified by “10086”;
mysql> flush privileges;
给主机192.168.0.95用户slave授权,密码10086。

在从库slave上测试:[root@desktop95 ~]# mysql -uslave -p10086 -h 192.168.0.57
OK正常登录,用户建立成功。

4、在slave上修改/etc/my.cnf文件,添加
server-id=2 //从库ID号,和主库区别开 (注意这一行的注释去掉,不然mysql起不来,可看日志)
master-host=192.168.0.57 //指定主库IP地址
master-user=slave //指定授权的用户名
master-password=10086 //指定授权用户的密码
replicate-do-db=test //要同步的数据库
replicate-ignore-db=mysql //忽略mysql数据库的同步

5、在master上查看主库状态:
[root@desktop57 ~]# mysql -uroot -pwestos
mysql> show master status;
+——————+———-+————–+——————+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+——————+———-+————–+——————+
| mysql-bin.000001 |      571 | test         | mysql            |
+——————+———-+————–+——————+
1 row in set (0.00 sec)

可以知道File(mysql-bin.000001),Position(571)

6、在slave上查看从库状态:
[root@desktop95 ~]# mysql -uroot -pwestos

mysql> slave stop;
Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> change master to master_host=’192.168.0.57′,master_user=’slave’,master_password=’10086′,master_log_file=’mysql-bin.000001′,master_log_pos=571;  (指定从库应该备份的任务号,以slave用户登录密码10086)
Query OK, 0 rows affected (0.13 sec)

mysql> slave start;
Query OK, 0 rows affected (0.00 sec)

mysql> show slave statusG
        ……
             Slave_IO_Running: Yes    (从库I/O读写正常)
            Slave_SQL_Running: Yes    (从库mysql监听正常)
        ……
OK啦,没有的话就检查配置文件是否正确吧~~
我们测试一下看从库slave是否同步了master的数据呢?
[root@desktop57 ~]# mysql -uroot -pwestos
mysql> show databases;
+——————–+
| Database           |
+——————–+
| information_schema |
| mysql              |
| test               |
+——————–+
3 rows in set (0.00 sec)

mysql> use test;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> show tables;
+—————-+
| Tables_in_test |
+—————-+
| grade          |
+—————-+
1 row in set (0.00 sec)

mysql> select * from grade;
+——-+—–+——-+——–+
| name  | num | grade | notes  |
+——-+—–+——-+——–+
| kevin | 14  | 98    | great! |
+——-+—–+——-+——–+
1 rows in set (0.01 sec)

OK,,已经同步过来啦!!

linux

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/1926090.html

(0)
上一篇 2025年2月22日 20:13:54
下一篇 2025年2月22日 20:14:47

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • navicat premium怎么上传数据库

    首先,在Navicat Premium中连接要导出数据库的mysql数据库。 填写好连接数据库的信息后就可以连接到需要导出的数据库了。 打开要导出的数据库。 将数据库的结构和数据导出为SQL文件。 相关推荐:《Navicat for mys…

    2025年2月23日 数据库
    100
  • navicat怎么打开数据库

    1、打开Navicat,点击左上角的‘Conection’按钮。 2、点击后,弹出菜单,我们要选择是哪种类型的数据库,根据你本地部署的数据库类型来选就行了,我这里选择MySql。 3、选择后,弹出窗口,在这个窗口上我们先输入数据库的Host…

    2025年2月23日 数据库
    100
  • navicat怎么清除数据库备份

    第一步,打开Navicat。 第二步,打开mysql数据库连接。 相关推荐:《Navicat for mysql使用图文教程》 第三步,点击备份所在的数据库,并选中备份菜单,此时显示已建的备份。 第四步,右击要删除的备份,在弹出菜单中选择“…

    2025年2月23日 数据库
    100
  • navicat怎么备份数据库

    本篇经验将和大家介绍如何利用Navicat for MySQL进行数据库备份的操作,希望对大家的工作和学习有所帮助! 推荐教程:mysql入门视频教程 1、打开桌面上的或者从开始程序中找到Navicat for MySQL,如下图所示: 2…

    2025年2月23日 数据库
    100
  • navicat新建数据库的步骤

    打开navicat工具,连接上您自己的mysql服务器,然后在如图所示的连接上右击,选择新建数据库。 相关推荐:《Navicat for mysql使用图文教程》 在新建数据库对话框中,需要输入数据库名称,选择字符集和排序规则,名称建议使用…

    2025年2月23日 数据库
    100
  • navicat怎么导入本地数据库

    navicat怎么导入本地数据库,为什么我没有找到该导入的功能呢?请看下面方法。 推荐教程:MySQL入门视频教程 1、首先我们打开软件,并且连接上本地数据库,选中连接,右键打开连接,直接双击也可以的 2、在本地数据库中我们新建一个数据库用…

    2025年2月23日 数据库
    100
  • navicat如何设置高级数据库属性

    Navicat是一套快速、可靠的数据库管理工具,在设置高级连接选项卡中还可以设置高级数据库属性,是否设置高级数据库属性不做强制性要求。如果需要设置高级数据库,前提是勾选“使用高级连接”。详细介绍如下: MySQL、PostgreSQL和Ma…

    2025年2月23日
    100
  • 怎么使用navicat连接数据库

      无论是本机安装的MySQL,还是远程服务器上的MySQL,对其进行管理都特别的麻烦,如何对其进行方便简单的管理呢?Navicat是一款管理MySQL数据库的软件,其简洁明了的界面,使我们能更好的管理数据库,对其进行增删改查的操作。 推荐…

    2025年2月23日 数据库
    100
  • navicat怎么创建数据库

      使用navicat快速创建数据库,我们这以创建Mysql数据库为例,其他数据库在navicat中操作都一样 推荐教程:MySQL数据库入门视频教程 1、打开navicat 2、选中数据库连接“root”右键-》新建数据库 3、填写数据库…

    2025年2月23日 数据库
    100
  • 如何使用navicat为数据库表建立索引?

    下面介绍如何使用Navicat为数据库表建立索引的具体操作方法。 推荐教程:MySQL数据库入门视频教程 1、打开Navicat 2、打开数据表所在的数据库,右击需要新增索引的数据库表,然后点击【设计表】 3、此时进入表设计界面 4、点击【…

    2025年2月23日 数据库
    100

发表回复

登录后才能评论