优雅地给正在运行的MySQL添加从库
前言之前写过一篇 MySQL主从同步配置 给 MySQL 配置从库,在主库在使用的情况下,需要将主库进行禁止写入操作,然后再导出导入,如果库比较大的话, 会对业务造成一定的影响。这篇文章主要介绍如何不停机进行添加从库。 主库操作开启 binlog123[mysqld]log_bin=mysql-binserver-id=1 这里注意 server-id 主从不能一样, 配置完成重启 mysql 创建用于同步的用户账号登陆数据库 1mysql -hlocalhost -uroot -ppassword 创建用户并授权 1CREATE USER 'repl'@'%' IDENTIFIED BY '123456'; 授权 12GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%';flush privileges; 导出数据库 sql1mysqldump -uroot -ppassword -hlocalhost -P3306...
二进制安装MySQL5.7
如有特殊需求需要编译安装 MySQL 请看 编译安装MySQL5.7 准备工作卸载系统中的 MySQL 或 mariadb123rpm -qa | grep mysqlrpm -qa | grep mariadbyum remove xxx 下载二进制安装包MySQL官网 选择操作系统为 Linux-Generic 选择下载文件名为:mysql-5.7.39-linux-glibc2.12-x86_64.tar.gz 当然也可以用 wget 直接下载 1wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.39-linux-glibc2.12-x86_64.tar.gz 创建用户1useradd -M -s /sbin/nologin -r mysql 安装依赖包为了避免执行 mysql 命令报错 ibncurses.so.5 或者 libnuma.so.1 找不到 CentOSUbuntu1yum install -y ncurses-devel numactl-libs 注意: CentOS 9 或...
使用keepalived完成LVS高可用
有了 keepalived 可以不用执行 ipvsadm 了, 并且可以实现自动剔除节点,还可以两台 Director 做高可用。 手动配置 LVS 请看 内核级负载均衡 LVS DR模式 部署记录 另见:使用Keepalived来实现Nginx高可用 规划: 机器 IP VIP 10.0.0.8 director 10.0.0.40 realserver1 10.0.0.42 realserver2 10.0.0.43 网卡 interface eth0 单台 Director Serverkeepalived 配置: 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950vrrp_sync_group GOP { group { VI_PRI_CONNECT VI_PRI_AUTH }}vrrp_instance...
Containerd的管理工具
如果你对 Docker 命令比较熟悉, 可以考虑使用 nerdctl 来管理 containerd,和 docker 命令类似:https://github.com/containerd/nerdctl 命令对比 命令 docker crictl(推荐) ctr 查看容器列表 docker ps crictl ps ctr -n k8s.io c ls 查看容器详情 docker inspect crictl inspect ctr -n k8s.io c info 查看容器日志 docker logs crictl logs 无 容器内执行命令 docker exec crictl exec 无 挂载容器 docker attach crictl attach 无 容器资源使用 docker stats crictl stats 无 创建容器 docker create crictl create ctr -n k8s.io c create 启动容器 docker start crictl start ctr -n k8s.io...
Iptables进行持久化配置,重启不丢失
操作文档针对 ubuntu20 和 centos 系统,其他系统类似。iptables-save 命令其实只是把配置文件打印出来,并不会真的 save,这个有点容易让人误解。 针对 ubuntu 平台ubuntu20 需要安装 iptables-persistent 才能实现持久化 1apt install iptables-persistent 持久化的配置文件保存在 12345# 针对ipv4/etc/iptables/rules.v4# 针对ipv6/etc/iptables/rules.v6 手动保存当前配置 12345# 针对ipv4sudo iptables-save > /etc/iptables/rules.v4# 针对ipv6sudo ip6tables-save > /etc/iptables/rules.v6 针对 centos 平台安装包 iptables-services 1sudo dnf install...
iptables使用记录实战
iptables 四表五链四表五链:链就是位置:共有五个 进路由 (PREROUTING)、进系统 (INPUT) 、转发 (FORWARD)、出系统 (OUTPUT)、出路由 (POSTROUTING);表就是存储的规则;数据包到了该链处,会去对应表中查询设置的规则,然后决定是否放行、丢弃、转发还是修改等等操作。 具体的四表 表 说明 filter 过滤数据包 Nat 用于网络地址转换(IP、端口) Mangle 修改数据包的服务类型、TTL、并且可以配置路由实现...
hexo博客添加自定义html页面
比如我想增加一个文件夹,文件夹里面有 img、css、js 等文件夹,还有 index.html 文件,想要在 hexo 博客里可以正常显示 将 文件夹 放到 hexo 的 source 文件夹下。 然后需要配置跳过 hexo 的渲染,因为 hexo 会改变 html 文件的结构。 修改 _config.yml 1234skip_render: # 这里排除的是 source 目录下不需要渲染的文件 - '**/README.md' - 'html/*' 后续可以通过访问 http://xxx.com/html/ 来打开页面 需要注意 js css html 等文件调用的地址有可能需要更换。
编译安装MySQL5.7
编译需要耗时,且对系统的依赖更为复杂,更容易出错, 如果没有必要,可以参考使用 二进制安装MySQL5.7 安装编译依赖Ubuntu和DebianCentOS和Fedora1sudo apt-get install -y build-essential cmake libaio-dev libncurses5-dev pkg-config1sudo yum -y install zlib-devel openssl-devel libaio-devel ncurses-devel cmake gcc-c++ 编译设置安装路径12export BASE_DIR="/usr/local/mysql"export DATA_DIR="/data/mysql" 准备工作1234wget https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-boost-5.7.38.tar.gztar xf mysql-boost-5.7.38.tar.gz && cd mysql-5.7.38[[...
Prometheus手动打标签
有时候需要给 Prometheus 打标签,比如说联邦集群接入,需要知道是哪个集群,remote write 写入的时候也需要做个标记。 直接在集群打标签vim prometheus.yml 12345678910global: scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute. evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute. # scrape_timeout is set to the global default (10s). external_labels: env: uat dept: ops project: xxx... 这样就可以给集群内的所有 metrics...
基于VictoriaMetrics的大规模监控实战
victoriametrics 原生支持水平扩展,并且大部分兼容 Prometheus 语法,官方文档地址:https://docs.victoriametrics.com/ 这个是 victoriametrics 官方的集群架构 我公司用到的集群架构 目前用到 3 台机器 IP 部署的服务 10.0.0.21 vmauth、vmselect、vminsert、vmstorage、vmalert 10.0.0.22 vmselect、vminsert、vmstorage 10.0.0.23 vmselect、vminsert、vmstorage vmstorage首先需要把存储部署上,多个存储之间数据是不同步的,也就是说所有的 storege 组件之间是感知不到彼此的。通过 vmselect 和 vminsert 采用一致性 hash 算法来确定读取/写入哪台节点。 vmstorage 启动命令 12345678./vmstorage-prod -httpListenAddr "0.0.0.0:8482" \ #...