首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

MySQL 不停机不锁主从搭建

MySQL主从搭建分几种场景 无业务数据,初始化搭建 有业务数据,临时扩展 初始化搭建很简单,不涉及数据业务,所以锁、停机等都不影响,但是更多时候是业务到一定阶段,才会涉及到横向扩展,需要做主从,...读写分离等来提升服务性能 这个时候,数据业务不能中断,又需要快速进行扩展提升性能,只能在不停机、不停服务情况下扩展,就需要用到下面介绍这种方法来做数据库主从 当然还是有前提条件,如果你原本MySQL...连binlog及server_id都这种基础配置都没做,那也谈不上不停机配置主从 原理 不停机实现主从搭建关键点就是以下两个参数: --single-transaction --master-data...和pos信息,在开启事务后,锁已经释放了,所以对业务影响很小 通过以上两个参数,可以在不长时间锁情况下获取准确binlogfile和pos信息,从而完成主从配置 实战 导出数据 从主库通过mysqldump...to master_host='ip',master_user='slave',master_port=port,master_password='password',master_log_file='mysql-bin.file

2.7K10
您找到你想要的搜索结果了吗?
是的
没有找到

mysql创建临时,将查询结果插入已有

今天遇到一个很棘手问题,想临时存起来一部分数据,然后再读取。我记得学数据库理论课老师说可以创建临时,不知道mysql有没有这样功能呢?临时在内存之中,读取速度应该比视图快一些。...然后还需要将查询结果存储到临时中。下面是创建临时以及插入数据例子,以供大家参考。...A、临时再断开于mysql连接后系统会自动删除临时数据,但是这只限于用下面语句建立: 1)定义字段   CREATE TEMPORARY TABLE tmp_table (      ...2)直接将查询结果导入临时   CREATE TEMPORARY TABLE tmp_table SELECT * FROM table_name B、另外mysql也允许你在内存中直接创建临时,...TABLE tmp_table (      name VARCHAR(10) NOT NULL,      value INTEGER NOT NULL   ) TYPE = HEAP 那如何将查询结果存入已有的

9.7K50

Mysql主从

前提: mysql主从搭建前提有: 两台虚拟机 两台虚拟机上都装有mysql,并且版本一样,两边mysql数据库文件一致,mysql安装方式我在前面博客已经介绍过了。...配置主库 修改配置文件 vi /etc/my.cnf 修改 server_id=1 //主从要不一样id log_bin=/home/mysql/log/datamybinlog //看你自己编译时候配置...测试过程我这里就不说了,自己尝试, 缺点 主从虽然能解决数据库服务器负载过高问题以及备份问题,但是主从同步是有延迟,特别是当慢查询语句过多,主从服务器性能差别较大,或者网络中断情况时候,也会造成同步延迟问题...MySQL数据库主从同步延迟解决方案 最简单减少slave同步延时方案就是在架构上做优化,尽量让主库DDL快速执行 还有就是主库是写,对数据安全性较高,比如sync_binlog=1,innodb_flush_log_at_trx_commit...另外就是使用比主库更好硬件设备作为slave 扩展 主从还能配合MySQL中proxy实现真正意义读写分离,还能配合keepalived做主从切换高可用,还能配合mysqljump做异地备份,在从库定时物理备份

2.7K10

Mysql数据库insert into select 单插入常量

学习中遇到问题以及解决分享给大家 1.Mysql最基本插入操作 INSERT INTO tb1 (col1, col2) VALUES (val1,val2 ) 可以解决最基本插入数据问题,...如果我们想在插入表格中已有的数据呢?显然需要其他方法。...INSERT INTO SELECT 用法 INSERT INTO tb1 (col1,colx) SELECT col1,colx FROM tb2 我们可以通过 INSERT INTO SELECT 用法在一个插入其他数据...这种问题可能对于精通数据库大大来说很简单,网上资料也很详细,作为新手我可能理解不到位。如果同时插入常量和表格中已有的数据怎么办呢?...3.单插入常量 INSERT INTO tb1 (col1,colx) SELECT col1,valx FROM tb1 其实本质还是INSERT INTO SELECT 用法,只是把其他化成了单

2.2K30

mysql备份恢复、分区分主从复制、读写分离

# 修改mysql数据路径权限为777 chmod -R 777 /var/lib/mysqlmysql 分区分 查看是否支持分区分:show plugins; 删除分区命令:ALTER...`PARTITIONS` WHERE table_name = '名'; # 归档分区数据,mysql数据库版本需要大于等于5.7 -- 分区归档操作步骤 -- 1.新建和分区表字段一致数据 归档前缀为...ALTER TABLE `归档表表名` ENGINE=ARCHIVE; ✨ mysql 主从复制读写分离 授权远程访问 mysql 数据库 新建相关数据库管理员,授权并开启远程访问权限 -- 建议新建一个备份和主从复制数据库管理员...binlog 日志和设置要发生主从同步数据库,使用 vim 打开 /etc/my.cnf 文件,修改配置如下 配置完毕后,需要重启服务:service mysqld restart; #mysqlbin-log...日志配置选项,假设做读写(主从),这个选项在从服务器必须关闭 log_bin = binlog #端口信息,其实可以不写 port = 3306 #主服务器id,这id不一定设为1,只要主从不一样就行

3.3K52

mysql主从架构实现

1.3.7 测试 1)测试主从同步   我们在 master 服务器上创建一个数据库,再使用该数据库创建一个,添加一条记录,来看一看 slave 服务器有没有同步成功。   ...我们可以看出,数据库已经同步,接下来,我们就来创建,并在插入一条记录: ?   然后,我们来看看从服务器是否更新: ?...解决方式也很简单,我们只需要把锁起来就可以了: MariaDB [keer]> flush tables with read lock;   进行锁操作以后,我们再来插入一条数据: ?   ...但是,有利就有弊,这样的话,我们主从就不能实时同步了,因为我们主从同步是通过把主上 sql 语句放在从上再执行一遍来实现,可是我们锁的话,sql 语句就不能执行了。...可以看出,两个插入数据是不会重复

1.1K10

mysql主从搭建

# 1.原理 masterI/O线程将数据写入binlog中; slaveI/O线程从masterbinlog中读取数据,写入自己Relay_Log_File日志中; slaveSQL线程从Relay_Log_File...# 2.应用场景 从服务器作为主服务器实时数据备份 主从服务器实现读写分离(主写从读),从服务器实现负载均衡 把多个从服务器根据业务重要性进行拆分访问(从服务器根据业务进行拆分) # 3.master...> 在主库上建立用于主从复制账号 mysql> CREATE USER 'rep1'@'%'; mysql> GRANT REPLICATION SLAVE ON *.* TO 'rep1'@'...%' identified by 'coolsummermoon'; 查看主库二进制日志名称 这里Position和File后面会用到 mysql> show master status\G *...> stop slave; mysql> reset slave all; # 5.验证 主上创建数据库插入数据等操作,从上能同步即可

2.9K20

MySQL主从搭建

= 1001 2、进入Mysql,分别为二台master创建各种用户供对方使用 温馨提示: 本案例为双主从,也就是master同步到node,node同步到master。...单主从,就只需要不执行带*即可 #master机器上 CREATE USER 'master'@'%' IDENTIFIED BY '123456';   #node机器上(*) CREATE USER...pos位置,为slave配置复制位置 master node 5、分别切换master,注意master_log_file还有master_log_pos mysql里面操作 #node机器上 change...start slave; #关闭 stop slave; 7、测试结果,在master上创建数据库,node是否能同步,然后再在node上创建写数据,看master能否同步。....000026',MASTER_LOG_POS=0; slave start; show slave status; 4、数据库主从日志很大 设置只保留30天binlog (临时,重启mysql

2.4K10

mysql主从复制周期_Mysql主从复制

大家好,又见面了,我是你们朋友全栈君。 Mysql主从复制 背景: Mysql可以实现主从复制,在学习了Mysql主从复制后,将一些如何主从复制过程记录下来,供以后复习使用。...准备: 在做Mysql主从复制前需要做一些准备工作: 1、同步时间 做主从服务器时间需要同步,不然会出问题。...命令:ntpdate ip (ntpdate命令需要先安装ntpdate) 2、版本一致 做主从Mysql服务需要版本一致,或者从服务器版本高于主服务器。...所有者和所属组为mysql;命令:chown mysql.mysql /app/bin_log 2)启动服务并添加主从复制需要帐号 CentOS6:service mysqld start CentOS7...步骤4、测试 1)在主数据库服务器创建一个数据库 2)在从mysql从服务器查看是否生成创建数据库 到此mysql主从复制已完成。

4.2K10

Mysql实现获取自增id插入到其他

现在有这样一个需求,就是我向A插入一条数据,id是自增。...插入之后,还需要向B插入一条数据,但是B中需要保存数据中要使用刚刚A自增后id, 这个其实是一个比较常见需求,就是两张之间一个关联,如果用程序来执行也是很容易实现。...比如我就在用sql执行之后,获取Aid插入到B中 实现方式如下: insert into A (id,name,code) values (null, "zhagnsan", "zs"); // 注意...Aid要设置为自增,给null值即可 set @id = @@IDENTITY; // 使用id变量保存刚刚自增生成id insert into B (id,a_id,name) values...(null, @id, "lisi"); // 使用变量获取AId 上面是用自定义变量形式进行保存,如果你只是想查一下是多少,可以直接使用: select @@IDENTITY; 好了,如果对你有帮助

3.9K30

mysql实现获取自增id插入到其他

现在有这样一个需求,就是我向A插入一条数据,id是自增。...插入之后,还需要向B插入一条数据,但是B中需要保存数据中要使用刚刚A自增后id, 这个其实是一个比较常见需求,就是两张之间一个关联,如果用程序来执行也是很容易实现。...比如我就在用sql执行之后,获取Aid插入到B中 实现方式如下: insert into A (id,name,code) values (null, "zhagnsan", "zs"); // 注意...Aid要设置为自增,给null值即可 set @id = @@IDENTITY; // 使用id变量保存刚刚自增生成id insert into B (id,a_id,name) values...(null, @id, "lisi"); // 使用变量获取AId 上面是用自定义变量形式进行保存,如果你只是想查一下是多少,可以直接使用: select @@IDENTITY; 好了,如果对你有帮助

3.5K20

MySQL 主从同步

为什么需要主从复制 分别读写数据库时候,把读和写分开,能够有效提高数据库负载 保证数据高可用,一旦有一台数据库服务器宕机,不会对数据产生太大影响 可以横向扩展,实现数据库水平扩容 主从同步原理...主从复制根本原理是从 master 服务器上面的数据,通过一定方式同步到 slave 服务器上面。...上面的 3 个过程是 MySQL 主从同步大概流程,其中 binlog 和 relay log 读写都是顺序 IO,性能很高。...搭建主从同步 此处用 Linux 服务器进行演示: 安装 MySQL 修改 my.cnf 如果找不到 my.cnf文件可以直接新建一个文件,MySQL 会自动读取。...log-bin=master-a-bin #主从服务核心 binlog-format=ROW # 二进制格式,row,startement 和 mixed 三种类型 binlog-do-db=testsync

4.9K30

mysql主从配置

怎么安装mysql数据库,这里不说了,只说它主从复制,步骤如下: 1、主从服务器分别作以下操作: 1.1、版本一致 1.2、初始化,并在后台启动mysql 1.3、修改root密码...6、登录主服务器mysql,查询master状态 mysql>show master status; +------------------+----------+-----------...注:Slave_IO及Slave_SQL进程必须正常运行,即YES状态,否则都是错误状态(如:其中一个NO均属错误)。 以上操作过程,主从服务器配置完成。...9、主从服务器测试: 主服务器Mysql,建立数据库,并在这个库中建插入一条数据: mysql> create database hi_db; Query OK, 1 row affected...yes(Slave_IO及Slave_SQL进程),如发现只有一个或零个yes,就表明主从有问题了,发短信警报吧。

2.8K40
领券