zoukankan      html  css  js  c++  java
  • docker中mysql pxc集群

    PXC集群
    https://hub.docker.com/r/percona/percona-xtradb-cluster
    安装PXC镜像
    下载镜像或者导入本地镜像
    docker pull percona/percona-xtradb-cluster
    
    docker load < /home/soft/pxc.tar.gz 
    
    修改镜像名字
    docker tag docker.io/percona/percona-xtradb-cluster pxc
    删除镜像
    docker rmi  docker.io/xx
    查看镜像
    docker images
    
    创建内部网络
    docker network create net1
    docker network inspect net1
    docker network rm net1
    
    创建Docker卷
    容器中的pxc节点映射数据目录的解决办法
    docker volume create --name v1
    查看
    docker inspect v1
    删除
    docker volume rm v1 
    
    实战
    docker volume create v1
    docker volume create v2
    docker volume create v3
    docker volume create v4
    docker volume create v5
    
    docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -e CLUSTER_NAME=PXC -e XTRABACKUP_PASSWORD=ABC123456 -V V1:/var/lib/mysql --privileged --name=node --net=net1 --ip 172.18.0.2 pxc 
    
    
    数据库负载均衡
    安装Haproxy镜像
    docker pull haproxy
    创建Haproxy配置文件
    touch /home/soft/haproxy.cfg
    
    
    创建Haproxy容器
    docker run -it -d -p 4001:8888 -p 4002:3306 -v /home/soft/haproxy:/usr/local/etc/haproxy --name haproxy --privileged --net=net1 haproxy
    
    haproxy -f /usr/local/etc/haproxy/haproxy.cfg
    
    
    进入一个允许容器
    docker exec -it h1 bash 
    
    haproxy -f /usr/local/etc/haproxy/haproxy.cfg
    
    CREATE USER 'haproxy'@'%’ IDENTIFIED BY '';
    配置keepalived
    
    
    启动 Keepalived 
    service keepalived start 
    
    
    数据库热备份
    
    MYSQL常见的热备有LVM和XtraBackUp两种方案
    
    全量备份和增量备份
    创建数据卷 用于映射宿主机内和容器内路径
    docker volume create backup
    
    
    docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=abc123456 -e CLUSTER_NAME=PXC -e XTRABACKUP_PASSWORD=abc123456 -v v1:/var/lib/mysql -v backup:/data --privileged -e CLUSTER_JOIN=node2 --name=node1 --net=net1 --ip 172.18.0.2 pxc
    
    
    
    
    pxc全量备份步骤
    apt-get update
    apt-get install percona-xtrabackup-24
    全量备份
    innobackupex --user=root --password=abc123456 /data/backup/full
    
    
    
    pxc全量恢复步骤  
    第一步 删除 mysql数据
    rm -rf /var/lib/mysql/*
    第二步 apply-back 回滚没有提交的事务
    innobackupex --user=root --password=abc123456 --apply-back /data/backup/full/2018-04-15_05-09-07/
    第三步 copy-back还原的意思
    innobackupex --user=root --password=abc123456 --copy-back /data/backup/full/2018-04-15_05-09-07/
    
    
    
    还原冷备份 数据 前提工作
    
    docker stop node1 node2 node3 node4 node5  停掉5个pxc节点
    docker rm node1 node2 node3 node4 node5 删除5个pxc节点
    docker volume rmn v1 v2 v3 v4 v5 删除映射的数据卷
    docker volume create v1 创建新的数据卷
    
    启动一个pxc节点
    docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=abc123456 -e CLUSTER_NAME=PXC -e XTRABACKUP_PASSWORD=abc123456 -v v1:/var/lib/mysql -v backup:/data --privileged -e CLUSTER_JOIN=node2 --name=node1 --net=net1 --ip 172.18.0.2 pxc
    进入node1节点容器 
    docker exec -it node1 bash 
    执行冷还原 pxc全量恢复步骤  
    
    退出一下容器 exit
    重启下node1节点 
    docker stop node1
    docker start node1
  • 相关阅读:
    Java 面向对象(十二)类的成员 之 代码块
    Java 关键字:static
    Java 常用类(二):包装类(Wrapper)
    Java 之 clone 方法(对象拷贝)
    SQL分组聚合查询
    Rabbitmq消息持久化
    idea 插件
    TCP粘包,拆包及解决方法
    redis内存淘汰策略及如何配置
    MySQL存储过程/存储过程与自定义函数的区别
  • 原文地址:https://www.cnblogs.com/shanheyongmu/p/11206181.html
Copyright © 2011-2022 走看看