当前位置:首页 » 操作系统 » 数据库的主从复制

数据库的主从复制

发布时间: 2022-07-04 05:16:20

❶ mysql主从复制,是从库是拉还是推

mysql的主从复制开启之后,从数据库会立马复制主数据库中的数据。 然后,对主数据库进行增,删,改操作之后,从数据库也会进行相同的操作。 不过,对从数据库进行增,删,改操作的话,对主数据库是没有任何影响的

❷ mysql的主从复制会同步mysql数据库吗

mysql的主从复制开启之后,从数据库会立马复制主数据库中的数据。
然后,对主数据库进行增,删,改操作之后,从数据库也会进行相同的操作。
不过,对从数据库进行增,删,改操作的话,对主数据库是没有任何影响的

❸ 如何添加新数据库到MySQL主从复制列表

具体操作如下:
1. 从服务上,停掉slave数据库。
stop slave;

2. 主服务器上,导出新数据库。
mysqlmp --master-data --single-transaction -R --databases newdb > newdb.sql

3. 主服务器上,修改my.cnf文件,添加新库到binlog-do-db参数,重启mysql。
4. 在导出的newdb.sql里面查找当前的日志文件以及位置(change master to …)
然后让slave服务器执行到这个位置。
start slave until MASTER_LOG_FILE="mysql-bin.000001", MASTER_LOG_POS=1222220;

其中MASTER_LOG_FILE以及MASTER_LOG_POS在导出的数据库newdb.sql顶部位置查找。
4. 导入新库到从服务器上。
mysql < newdb.sql

5. start slave
其中比较重要的是在主服务器上导出新库时的日志位置(position A),这个点很重要,以这个点做为分界线,导入新库。
这种方法也同样适用于某个数据库或者某个数据表不同步的情况,比如主从数据库有一个表由于某些原因数据不一致,那么上面的方法只需要去掉重启数据库一步,其他的操作基本

❹ 如何在一台windows主机上实现MySQL的主从复制

1、首先要在本地建立两个mysql服务,指定不同的端口。我这里一个主(3306),一个从(3307)。
2、然后修改主配置文件:
[mysqld]
server-id = 1
binlog-do-db=test #要同步的数据库
#binlog-ignore-db=mysql #不同步的数据库,如果指定了binlog-do-db这里应该可以不用指定的
log-bin=mysql-bin #要生成的二进制日记文件名称
修改从配置文件:
[mysqld]
server-id = 2
log-bin = mysql-bin
replicate-do-db=test
3、在主库添加一个用户 repl 并指定replication权限
create user 'repl'@'127.0.0.1' identified by 'asdf';
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'127.0.0.1'; -- --这里我指定数据库(test.*)时报错,而指定全库(*.*)时会成功。
4、保持主从mysql的test数据库初始状态一致。
一般是先将所有的表加读锁,然后磁盘上的数据库文件夹。我这里直接停止服务,然后将数据文件拷贝过去。
5、在主数据库里面运行show master status;记下file和position字段对应的参数。
mysql> show master status;
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000001 | 107 | test | |
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)
6、在从库设置它的master:
mysql> change master to master_host='127.0.0.1',master_port=3306,master_user='repl',master_password='asdf',master_log_file='mysql-bin.000001',master_log_pos=107;
Query OK, 0 rows affected (0.19 sec)
这里的master_log_file和master_log_pos对应刚才show master status记下的参数。
7、在从库开启从数据库复制功能。
slave start;
mysql> slave start;
Query OK, 0 rows affected (0.00 sec)
在从库可以通过show slave status来查看一些参数。
8. 此时在主库创建表或插入数据,在从库就会很快也能看到了。
-- 主库
mysql> create table tianyc_02(b int);
Query OK, 0 rows affected (0.16 sec)
mysql> insert into tianyc_02 values(2013);
Query OK, 1 row affected (0.13 sec)
-- 从库
mysql> show tables;
+----------------+
| Tables_in_test |
+----------------+
| tianyc_01 |
| tianyc_02 |
+----------------+
2 rows in set (0.00 sec)
mysql> select * from tianyc_02;
+------+
| b |
+------+
| 2013 |
+------+
1 row in set (0.00 sec)同理,可以搭建第二、第三个从节点。

❺ MySQL的主从复制原理以及流程

原理:master将数据库的改变写入二进制日志,slave同步这些二进制日志,并根据这些二进制日志进行数据重演操作,实现数据异步同步。流程:1. slave端的IO线程发送请求给master端的binlog mp线程2. master端binlog mp线程获取二进制日志信息(文件名和位置信息)发送给slave端的IO线程3. salve端IO线程获取到的内容依次写到slave端relay log里,并把master端的bin-log文件名和位置记录到master.info里4. salve端的SQL线程,检测到relay log中内容更新,就会解析relay log里更新的内容,并执行这些操作,从而达到和master数据一致原理和流程就是这样了,如果在工作中遇到了,希望帮到你,还有不明白的,可以在网上多搜一下这方面的知识,我这些知识都是在黑马程序员社区看到的,你也可以去看看有没有想了解的。

❻ Mysql 的主从复制,最多支持多少个数据库同步

主从复制理论上支持无穷大的从库个数,实际情况下,受服务器带宽和读写能力的影响
请参考MySQL官方手册的建议:
理论上,通过使用单个主服务器/多从服务器设置,可以通过添加更多的从服务器来扩充系统,直到用完网络带宽,或者你的更新负载已经增长到主服务器不能处理的点。
在获得的收益开始吃平之前,为了确定可以有多少从服务器,以及可以将你的站点的性能提高多少,需要知道查询模式,并且要通过基准测试并根据经验确定一个典型的主服务器和从服务器中的读取(每秒钟读取量,或者max_reads)吞吐量和写(max_writes)吞吐量的关系。通过一个假设的带有复制的系统,本例给出了一个非常简单的计算结果。
假设系统负载包括10%的写和90%的读取,并且我们通过基准测试确定max_reads是1200 –2 × max_writes。换句话说,如果没有写操作,系统每秒可以进行1,200次读取操作,平均写操作是平均读操作所用时间的两倍,并且关系是线性的。我们假定主服务器和每个从服务器具有相同的性能,并且我们有一个主服务器和N个从服务器。那么,对于每个服务器(主服务器或从服务器),我们有:
reads = 1200 – 2 × writes
reads = 9 × writes / (N + 1) (读取是分离的, 但是写入所有服务器)
9 × writes / (N + 1) + 2 × writes = 1200
writes = 1200 / (2 + 9/(N+1))
最后的等式表明了N个从服务器的最大写操作数,假设最大可能的读取速率是每分钟1,200次,读操作与写操作的比率是9。
如上分析可以得到下面的结论:
· 如果N = 0(这表明没有复制),系统每秒可以处理大约1200/11 = 109个写操作。
· 如果N = 1,每秒得到184个写操作。
· 如果N = 8,每秒得到400个写操作。
· 如果N = 17,每秒得到480个写操作。

❼ mysql主从复制是什么概念什么场合用最好举例说明。

主从复制,是用来建立一个和主数据库完全一样的数据库环境,称为从数据库;主数据库一般是实时的业务数据库

❽ 怎样解决MySQL数据库主从复制延迟的问题

在主服务器上建立一个为从服务器进行复制使用的用户。该账户必须授予 REPLICATION SLAVE 权限,由于仅仅是进行复制使用所以不需要再授予任何其它权限。

mysql> GRANT REPLICATION SLAVE ON *.* TO 'replication'@'%'192.168.0.2' IDENTIFIED BY 'slavepasswd';
mysql> FLUSH PRIVILEGES;

3、编辑主服务器的配置文件:/etc/my.cnf的[ mysqld ] 部分:
server-id = 本机数据库 ID 标示,该部分还应有一个server-id=Master_id选项,其中master_id必须为1到232之间的一个正整数值
log-bin = 二进制日志的位置和名称
binlog-do-db = 需要备份的数据库名,如果备份多个数据库,重复设置这个选项即可
binlog-ignore-db = 不需要备份的数据库苦命,如果备份多个数据库,重复设置这个选项即可

❾ 下面关于数据库主从复制机制的原理概述,哪个是错误的

主库的主机关机时,数据只能读不能写,并且从库的主机关机后,数据仍然可读可写,这个不好弄,如果你对lua脚本有所了解,修改mysql-proxy 的读写分离脚本或许可以实现。 不过主库关机时不能访问,并且从库关机仍可读可写,这个不需要配读写分离,这本来就是主从复制的基本能力,从库只是备用的而已。从库关闭后再开启,slave IO线程会自动从中断处二进制日志的位置开始复制主机的二进制日志,slave SQL线程会读取并执行这些二进制日志中的SQL。 总之,不需要特别的配置,这是主从复制的基本能力。

❿ mysql的读写分离和主从复制的区别在哪里

读写分离的意思是,写入的时候向 a 服务器写入,而读出的时候从 b c d 甚至更多的服务器读出;这样的架构适合于读多写少的应用,最典型的就是火车购票系统,一般我们买票的时候要先查询好多次,包括车次啊,时间啊,这都是读操作,而最后可能只买一张车票,这是写操作;做了读写分离之后,可以将资源分配到最合理的地方,不会使某些资源闲置,而另一些资源不够用;

但是读写分离必然引发主从复制,试想一共有 10 张票,买了 1 张票,读的时候如果还是读到 10 张余票就不对了,因此需要主从复制,再读的时候,就只能读到 9 张余票了;

热点内容
hp存储扩容 发布:2024-11-17 23:29:16 浏览:569
在ftp中put表示什么 发布:2024-11-17 23:29:12 浏览:383
mvc多文件上传 发布:2024-11-17 23:13:56 浏览:155
玩游戏硬盘缓存32m 发布:2024-11-17 23:03:42 浏览:525
蓝光存储系统 发布:2024-11-17 23:03:41 浏览:436
地平线4提示配置低于最低怎么办 发布:2024-11-17 22:54:38 浏览:610
注册银行卡账户密码填什么 发布:2024-11-17 22:54:35 浏览:537
java压缩上传图片 发布:2024-11-17 22:26:59 浏览:627
plc编程课件 发布:2024-11-17 22:18:23 浏览:469
我的世界服务器信号一直在检测 发布:2024-11-17 22:09:52 浏览:547