MySQL:主从复制集群,高可用,具体配置,关系型数据库原则,怎么在集群中实现分库分表,锁机制(centos7)

主从复制集群:

1、mysql主

①开启二进制文件:#vim   /etc/my.cnf(写入如下内容)

[mysqld]

log_bin

server-id=1

gtid_mode=ON

enforce_gtid_consistency=1

②重启服务:#systemctl   restart   mysqld

③进入数据库,为从服务器授权

#mysql-uroot-p'123'

mysql>grant  replication slave,replication client on *.* to  'rep'@'IP或网段'  identified  by '123';

mysql>flush  privileges;

2、mysql从

①测试rep用户是否可用:#mysql -h  'mysql主IP'  -urep  -p'123'

②启动服务序:#vim/etc/my.cnf

[mysqld] log_bin server-id=2 gtid_mode=ON enforce_gtid_consistency=1

③重启服务:#systemctl restart mysqld

④再次测试rep用户是否可用:#mysql  -h'mysql主IP'  -urep  -p'123'

⑤从设备上设置主服务

mysql>change master to master_host='mysql主IP',

master_user='rep',

master_password='123',

master_auto_position=1;(自动获取)

3、主主、多从

高可用:

①mysql主主同步

②在两台mysql上安装keepalived:#yum  -y  install  keepalived

③keepalived主备配置文件:#vim   /etc/keepalived/keepalived.conf

!Configuration  File  for  keepalived

global_defs  {

        router_id     mysql1 

}

        vrrp_scriptcheck_run   {         //定义配置健康检查脚本的配置名称check_run

script   "python  /root/keepalived_check_mysql.sh"

interval  5      //执行健康检查的时间间隔单位s(每5秒钟检查一次)

}

vrrp_instance  VI_1{

        state   MASTER

        interface   ens33

        virtual_router_id   88

        priority   100

        advert_int   1   //检查keepalived本身服务的时间间隔

        authentication{

                auth_type  PASS

                auth_pass  1111

        }

        track_script{

                check_run       //名字必须和上面的脚本配置名称一致

        }

        virtual_ipaddress{

        192.168.122.100   dev   ens33

        }

}

④编写mysql状态检测脚本(主主):

#vim  /root/bin/keepalived_check_mysql.sh

#chmod   755   /root/keepalived_check_mysql.sh

#/etc    /init.d/keepalivedstart

⑤测试及诊断

关系型数据库原则:ACID(注:数据库事务通常指对数据库进行读或写的一个操作序列)

1、A(Atomicity)原子性是说事务里的所有操作要么全部做完,要么都不做,事务成功的条件是事务里的所有操作都成功,只要有一个操作失败,整个事务就失败,需要回滚。

2、C(Consistency)一致性是说数据库要一直处于一致的状态,事务的运行不会改变数据库原本的一致性约束。如完整性约束a存款+b存款=2000。

3、I(Isolation)隔离性是指并发的事务之间不会互相影响,如果一个事务要访问的数据正在被另外一个事务修改,只要另外一个事务未提交,它所访问的数据就不受未提交事务的影响。

4、D(Durability)持久性是指一旦事务提交后,它所做的修改将会永久的保存在数据库上,即使出现宕机也不会丢失

分库:垂直拆分:按照业务垂直划分,将系统中不存在关联关系或者需要join的表可以放在不同的数据库不同的服务器中

           水平拆分:按照规则划分,一般水平分库是在垂直分库之后的。比如每天处理的订单数量是海量的,可以按照一定的规则水平划分

读写分离:对于时效性不高的数据,可以通过读写分离缓解数据库压力

分表:指将一张表按一定的规则分解成N个具有独立存储空间的实体表。

常见的分表策略:1.Range(范围)

                             2.Hash(哈希)

                            3.按照时间拆分

                           4.Hash之后按照分表个数取模

                          5.在认证库中保存数据库配置,就是建立一个DB,这个DB单独保存user_id到DB的映射关系

锁机制:用于保护数据的完整性,当并发事务同时访问一个资源时,有可能导致数据不一致,因此需要一种机制来将数据访问顺序化,以保证数据库数据的一致性,锁是其中的一种。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值