MySQL分区与主从的学习笔记_MariaDB_青云站长教程网
欢迎来到站长教程网!
  • 秒到短信接口 免费试用
  • 微信支付宝接口 秒结算
  • 中文网站排名|申请加入
  • 搜索引擎全站查询
  • 查询移动网站权重数据
  • 海外主机 台湾公司直销
  • MariaDB

    当前位置:主页 > 数据库 > MariaDB >

    MySQL分区与主从的学习笔记

    时间:2019-07-11|栏目:MariaDB|点击:
  • MySQL分区与主从是我们在性能优化上是常用到的几个知识点了,对于高级管理员对于MySQL分区与主从都是了解的非常深入了,下面我们一起来看看小编在学习MySQL分区与主从一些记录.

    1 分区相关

    MySQL5.6中,分区技术只支持水平分区,而不支持垂直分区,分区支持大部分的存储引擎,但是MERGE,CSV,FEDERATED存储引擎不支持.

    使用KEY或者LINEAR KEY进行分区是支持NDB(网络数据库)的,但是其他分区方式不支持,在MySQL中查看是否是支持分区技术,使用命令 SHOW PLUGINS 进行查看,如果存在名称为 partition 的插件,状态为 ACTIVE 则说明分区技术可用。

    MySQL5.6支持显式的分区查询,如 SELECT * FROM T PARTITION(p0, p1) WHERE c < 5,可以只从p0,p1分区进行查询支持的分区类型:

    RANGE 根据给定列的值的范围进行分区。

    LIST 与RANGE类似,不过它通过判断给定列的值是否在独立的值的集合中进行分区。

    HASH 这种分区根据对列进行操作的自定义表达式的值进行分区。这个自定义的函数可以包含任何可用的MySQL表达式,但是需要产生一个非负的值,扩展类型有LINEAR HASH.

    KEY 这种分区方式与HASH类似,区别是只需要提供一列或者多列的值,通过MySQL自己的哈希函数进行计算,扩展类型有LINEAR KEY.

    常用的分区方式可以通过日期, 时间 进行分区。当使用KEY或者LINEAR KEY 方式进行分区的时候,可以直接使用TIME, DATETIME, DATE作为分区列而不需要执行任何的修改(常用时间函数:TO_DAYS(), YEAR, TO_SECONDS, WEEKDAY(),MONTH等)。

    2 主从相关

    主库和从库都需要配置一个唯一的ID(server-id),每一个从库都必须配置主库的host名,日志文件名和配置文件中的位置.

    2.1 配置Master

    修改 my.cnf 或者 my.ini 文件,在[mysqld]部分,增加(去掉注释)下列选项:

    [mysqld] 

    log-bin=mysql-bin 

    server-id=1 

    修改后,重启mysql服务,如果没有设置server-id或者是设置其为默认值 0,master将会拒绝所有slave的连接请求,使用InnoDB的事务在进行复制的时候,应该设置innodb_flush_log_at_trx_commit=1和sync_binlog=1以获取最佳的稳定性,确保 skip-networking选项是禁止的,否则如果网络被禁止了,从库将无法与主库进行交流.

    主库中需要为从库创建连接用户,主库上的任何具有REPLICATION SLAVE权限的用户都可以作为从库的连接用户.

    mysql> CREATE USER 'repl'@'%.mydomain.com' IDENTIFIED BY 'slavepass'--phpfensi.com 

    mysql> GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%.mydomain.com'

    如果在主库上已经存在数据了,在与从库进行同步之前,必须先停止主库上的处理进程,然后获取当前二进制日志文件的坐标并dump它的数据。

    下面的步骤用于获取主库的二进制日志的坐标,使用命令行控制台连接到主库上,执行如下命令:

    mysql> FLUSH TABLES WITH READ LOCK;

    使用 UNLOCK TABLES 释放锁:

    mysql > SHOW MASTER STATUS; 

    +------------------+----------+--------------+------------------+ 

    | File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | 

    +------------------+----------+--------------+------------------+ 

    | mysql-bin.000003 | 73       | test         | manual,mysql     | 

    +------------------+----------+--------------+------------------+ 

    如果在启用log-bin之前,主库已经运行一段时间了,则使用SHOW MASTER STATUS命令查看到的日志文件名和位置将会是空的,在这种情况下,在从库中指定日志文件和位置分别为''和4.

    如果在进行从库同步复制之前,主库中已经存在数据了,请保持读锁,使用下面的方法将主库的数据复制到从库中,使用mysqldump创建要复制的所有数据库的一个快照,然后导入到从库中.

    上一篇:Redis设计与实现

    栏    目:MariaDB

    下一篇:MySQL字段前缀、后缀、替换操作的例子

    本文标题:MySQL分区与主从的学习笔记

    本文地址:http://www.jh-floor.com/shujuku/Mariadb/2925.html

    广告投放 | 联系我们 | 版权申明

    重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

    如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

    联系QQ:888888 | 邮箱:888888#qq.com(#换成@)

    Copyright © 2002-2017 青云站长教程网 版权所有 琼ICP备xxxxxxxx号