• 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
  • 相关阅读:
    .NET Core自定义TagHelper和使用Serilog
    .NET Core CSRF
    jq 获取表单全部数据
    Webuploader 简单图片上传 支持多图上传
    CF-1451 E Bitwise Queries 异或 交互题
    CF-1440C2 Binary Table (Hard Version) (构造,模拟)
    CF-1445 C
    ACM模板_axiomofchoice_extra
    Codeforces Round #678 (Div. 2) 题解 (A-E)
    Oracle数据同步
  • 原文地址:https://www.cnblogs.com/shanheyongmu/p/11206181.html
Copyright © 2020-2023  润新知