关键词环境部署:

############## 测试环境机器架构 #########
【1】策划
【1.1】linux服务器A组 8台
192.168.1.200~192.168.1.207,主机名db,db1~db7
【1.2】负载均衡服务器 2台
192.168.1.211~192.168.1.212,主机名,fz1,fz2
【1.3】中间件
192.168.1.221~192.168.1.222,主机名,xm1,xm2

【1.4】mysql服务器B组 8台
#拷贝的【1.1】中的虚拟机文件,所以是同样的IP和主机名
192.168.1.200~192.168.1.207,主机名db,db1~db7

############## 样板机部署 #########

【2】虚拟机,样板机centos7
#IP地址
IP地址,192.168.1.200
#修改主机名
hostname db1#直接修改本地主机名
vi /etc/sysconfig/network  #修改网络上的主机名

#磁盘分布
/ 50G
softvg:30G
appvg:51
datavg:52
logvg:53
bakvg:54

lvm磁盘系统构建
#PV
pvcreate /dev/sdb /dev/sdc /dev/sdd /dev/sde /dev/sdf
#VG
vgcreate softvg /dev/sdf
vgcreate appvg /dev/sdb
vgcreate datavg /dev/sdc
vgcreate logvg /dev/sdd
vgcreate bakvg /dev/sde
#LV
lvcreate -n softlv -L 30000M softvg
lvcreate -n mysqllv -L 50000M appvg
lvcreate -n datalv -L 50000M datavg
lvcreate -n loglv -L 50000M logvg
lvcreate -n baklv -L 49998M bakvg
#格式化
mkfs.xfs /dev/softvg/softlv
mkfs.xfs /dev/appvg/mysqllv
mkfs.xfs /dev/datavg/datalv
mkfs.xfs /dev/logvg/loglv
mkfs.xfs /dev/bakvg/baklv
#创建目录
mkdir -p /soft
mkdir -p /mysql/app
mkdir -p /mysql/data
mkdir -p /mysql/log
mkdir -p /mysql/backup

#挂载
mount /dev/softvg/softlv /soft
mount /dev/appvg/mysqllv /mysql/app
mount /dev/datavg/datalv /mysql/data
mount /dev/logvg/loglv /mysql/log
mount /dev/bakvg/baklv /mysql/backup

#修改 /etc/fstab 以便可以重启自动挂载
echo '/dev/softvg/softlv /soft xfs defaults 0 0'>>/etc/fstab
echo '/dev/appvg/mysqllv /mysql/app xfs defaults 0 0'>>/etc/fstab
echo '/dev/datavg/datalv /mysql/data xfs defaults 0 0'>>/etc/fstab
echo '/dev/logvg/loglv /mysql/log xfs defaults 0 0'>>/etc/fstab
echo '/dev/bakvg/baklv /mysql/backup xfs defaults 0 0'>>/etc/fstab

#本地host
echo '192.168.1.200 db' >>/etc/hosts
echo '192.168.1.201 db1' >>/etc/hosts
echo '192.168.1.202 db2' >>/etc/hosts
echo '192.168.1.203 db3' >>/etc/hosts
echo '192.168.1.204 db4' >>/etc/hosts
echo '192.168.1.205 db5' >>/etc/hosts
echo '192.168.1.206 db6' >>/etc/hosts
echo '192.168.1.207 db7' >>/etc/hosts
echo '192.168.1.211 fz1' >>/etc/hosts
echo '192.168.1.212 fz2' >>/etc/hosts
echo '192.168.1.221 xm1' >>/etc/hosts
echo '192.168.1.222 xm2' >>/etc/hosts

#配置字符集
echo "export LANG=en_US.UTF8">>~/.bash_profile
echo "export LANG=en_US.UTF8">>/etc/profile
#挂载光驱
mount /dev/cdrom /mnt
#配置本地yum源
cd /etc/yum.repos.d/
mkdir bk
mv CentOS-Base.repo bk/
touch base.repo
echo "[base]">>base.repo
echo "name=centos7.5_cdrom">>base.repo
echo "baseurl=file:///mnt">>base.repo
echo "gpgcheck=0">>base.repo
echo "enabled=1">>base.repo
yum list #核验yum源

#设置默认启动方式为3,多用户模式
systemctl get-default multi-user.target
systemctl get-default #核验

#参数优化(1)
echo "* soft memlock 300000">>/etc/security/limits.cnf #内存锁 300M
echo "* hard memlock 300000">>/etc/security/limits.cnf
echo "vm.nr_hugepages=150">>/etc/sysctl.conf
echo "vm.swappiness=10">>/etc/sysctl.conf --虚拟内存页面交换在物理内存低于10%的时候启用
echo "vm.min_free_kbytes=51200">>/etc/sysctl.conf --给操作系统预留50M,建议测试环境
echo "#vm.min_free_kbytes=512000">>/etc/sysctl.conf --给操作系统预留500M,建议给生产环境
sysctl -p#核验

#参数优化(2)
echo "* soft nproc 65535" >>/etc/security/limits.conf #nproc 用户创建进程数限制
echo "* hard nproc 65535" >>/etc/security/limits.conf
echo "* soft nofile 65535" >>/etc/security/limits.conf #nofile 进程打开文件次数限制
echo "* hard nofile 65535" >>/etc/security/limits.conf
echo "* soft stack 65535" >>/etc/security/limits.conf #存放变量的指针
echo "* hard stack 65535" >>/etc/security/limits.conf

systemctl stop avahi-daemon.socket avahi-daemon.service
systemctl disable avahi-daemon.socket avahi-daemon.service

#selinux关闭
echo "* - nproc 16384">/etc/security/limits.d/90-nproc.conf #nproc 进程数限制
echo "SELINUX=disable">/etc/selinux/config #关闭selinux
echo "#SELINUXTYPE=targeted">>/etc/selinux/config
cat /etc/selinux/config
setenforce 0
getenforce

#防火墙关闭
systemctl status firewalld.service
systemctl stop firewalld.service
systemctl disable firewalld.service

#IO调度算法
#一共4种,默认是CFQ(完全随机访问,相对来说这种算法对于mysql来说不是很好,会造成小IO的延时增加,msql官网建议算法换成deadline算法,这种IO比较稳定)。一共4种,默认是CFQ(完全随机访问,相对来说这种算法对于mysql来说不是很好,会造成小IO的延时增加,msql官网建议算法换成deadline算法,这种IO比较稳定)。
#sas和stat官网建议用这个
echo 'deadline' > /sys/block/sdb/queue/scheduler
echo 'deadline' > /sys/block/sdc/queue/scheduler
echo 'deadline' > /sys/block/sdd/queue/scheduler
echo 'deadline' > /sys/block/sde/queue/scheduler
echo 'deadline' > /sys/block/sdf/queue/scheduler
#ssd用这个
echo 'NOOP' > /sys/block/sd*/scheduler

#减少预读(默认128)
echo '16'>/sys/block/sdb/queue/read_ahead_kb
echo '16'>/sys/block/sdc/queue/read_ahead_kb
echo '16'>/sys/block/sdd/queue/read_ahead_kb
echo '16'>/sys/block/sde/queue/read_ahead_kb
echo '16'>/sys/block/sdf/queue/read_ahead_kb

#增大队列
echo '512'>/sys/block/sdb/queue/nr_requests
echo '512'>/sys/block/sdc/queue/nr_requests
echo '512'>/sys/block/sdd/queue/nr_requests
echo '512'>/sys/block/sde/queue/nr_requests
echo '512'>/sys/block/sdf/queue/nr_requests

#x修改时区为上海
cp -f /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

#更换内存模式,不使用NUMA模式
vi /etc/default/grub
GRUB_CMDLINE_LINUX="crashkernel=auto rhgb quiet numa=off" #把这行改成这样
grub2-mkconfig -o /etc/grub2.cfg
numastat
numactl --show
numactl --hardware
shutdown -r now

############## 克隆机器调整 ################################

#【1】记录每台机器的MAC
192.168.1.201 00:0c:29:65:8c:19
192.168.1.202
192.168.1.203
192.168.1.204
192.168.1.205
192.168.1.206
192.168.1.207

#【2】直接删除/etc/udev/rules.d下的70-persistent-net.rules文件,然后reboot次系统
#【3】配置mac地址,首先ifconfig -a 命令看一下hwaddr的值和文件/etc/sysconfig/network-scripts/ifcfg-ens34

#改MAC、IP、删UUID
(1)vi /etc/sysconfig/network-scripts/ifcfg-ens34 #修改IP信息,删除UUID
(2)rm -f /etc/udev/rules.d/70-persistent-ipoib.rules #修改mac地址,重启会生成
(3)#修改主机名
hostnamectl set-hostname db1
echo "db1">/etc/hostname
reboot

############ 安装mysql ################
【1】利用scp传输文件到8台服务器
scp 192.168.1.200:/soft/*

【2】install the base lib
mount /dev/cdrom /mnt
yum remove mariadb* -y
yum install gcc gcc-c++ perl-DBD-MySQL ncurses-devl.x86_64 cmake.x86_64 libaio.x86_64 bison.x86_64 gcc-c++.x86_64 bind-utils wget curl curl-devel -y
# perl-DBD-MySQL 这个lib包很重要
yum search rz -y
yum install -y lrzsz.x86_64

【3】install mysql
#(1)uncompress file,create user and usergroup mysql
groupadd mysql
useradd -r -g mysql -s /bin/falsh mysql
cd /mysql/app
tar -zxvf /soft/mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz
ln -s mysql-5.7.24-linux-glibc2.12-x86_64 mysql
echo "export PATH=\$PATH:$HOME/bin:/mysql/app/mysql/bin">>/etc/profile
source /etc/profile

#(2)create dir,and change privileges to mysql user
mkdir -p /mysql/data/3306/data
mkdir -p /mysql/log/3306/binlog
mkdir -p /mysql/log/3306/relaylog
mkdir -p /mysql/backup/backup-db
mkdir -p /mysql/backup/backup-tmp
mkdir -p /mysql/backup/backup-binlog
chown -R mysql:mysql /mysql

#(3)init database mysql
rm -rf /mysql/data/3306/data
cp /soft/my.cnf /mysql/data/3306/
/mysql/app/mysql/bin/mysqld --defaults-file=/mysql/data/3306/my.cnf --initialize --user=mysql
ln -s /mysql/data/3306/mysql.sock /tmp/mysql.sock

#(4) remove default my.cnf
rm -f /etc/my.cnf
rm -rf /etc/my.cnf.d

#(5)set the default password
mysqld_safe --defaults-file=/mysql/data/3306/my.cnf --skip-grant-tables --skip-networking &
mysql -uroot --socket='/mysql/data/3306/mysql.sock' -e"update mysql.user set authentication_string=password('123456') where user='root' and host='localhost';flush privileges;"
mysql -uroot -p123456 --connect-expired-password -S /mysql/data/3306/mysql.sock -e"alter user 'root'@'localhost' identified by '123456';"
mysql -uroot -p123456 -S /mysql/data/3306/mysql.sock -e"create user 'root'@'%' identified by '123456';grant all privileges on *.* to 'root'@'%' with grant option;flush privileges;"
mysql -uroot --password='123456' -S /mysql/data/3306/mysql.sock -e"create database t;use t;create table t1 select 1 as id;select * from t1;drop database t;"

--connect-expired-password 使用过期密码连接

#(6)set the mysql.start shell
echo "mysqld_safe --defaults-file=/mysql/data/3306/my.cnf --user=mysql &">>/mysql/data/3306/mysql.start
chown mysql:mysql /mysql
chmod +x /mysql/data/3306/mysql.start
mysqladmin -uroot -p123456 -S /mysql/data/3306/mysql.sock shutdown
sh /mysql/data/3306/mysql.start

#(7)把mysql配置成服务
ln -s /mysql/data/3306/my.cnf /etc/my.cnf
cp -r /mysql/app/mysql/support-files/mysql.server /usr/lib/systemd/system/

cp -r /mysql/app/mysql/support-files/mysql.server /etc/init.d/mysql

systemctl daemon-reload #重载系统进程,才能让上面的cp起作用把mysql.server封装成服务

#(8)设置成开机自启
systemctl daemon-reload #重载系统进程,才能让上面的cp起作用把mysql.server封装成服务
systemctl status mysql #查看mysql服务状态
systemctl start mysql #启动mysql
systemctl enable mysql #设置mysql服务开机自启

chkconfig --add mysql #设置mysql服务开机自启

(5.2)mysql高可用系列——测试环境部署的更多相关文章

  1. MySQL高可用架构-MHA环境部署记录

    一.MHA介绍 MHA(Master High Availability)目前在MySQL高可用方面是一个相对成熟的解决方案,它由日本DeNA公司youshimaton(现就职于Facebook公司) ...

  2. MySQL高可用架构-MMM环境部署记录

    MMM介绍MMM(Master-Master replication manager for MySQL)是一套支持双主故障切换和双主日常管理的脚本程序.MMM使用Perl语言开发,主要用来监控和管理 ...

  3. (5.8)mysql高可用系列——MySQL中的GTID复制(实践篇)

    一.基于GTID的异步复制(一主一从)无数据/少数据搭建 二.基于GTID的无损半同步复制(一主一从)(mysql5.7)基于大数据量的初始化 正文: [0]概念 [0.5]GTID 复制(mysql ...

  4. Mysql高可用集群环境介绍

    MySQL高可用集群环境搭建 01.MySQL高可用环境方案 02.MySQL主从复制原理 03.MySQL主从复制作用 04.在Linux环境上安装MySQL 05.在MySQL集群环境上配置主从复 ...

  5. (5.15)mysql高可用系列——MHA实践

    关键词:MHA,mysql mha [1]需求 采用mysql技术,实现MHA高可用主从环境,预计未来数据量几百G MHA概念参考:MYSQL高可用技术概述 [2]环境技术架构 [2.1]MHA简介 ...

  6. MySQL高可用系列之MHA(二)

    一.參数说明 MHA提供了一系列配置參数.深入理解每一个參数的详细含义,对优化配置.合理使用MHA非常重要.非常多高可用性也都是通过合理配置一些參数而实现的. MHA包含例如以下配置參数,分别说明例如 ...

  7. (5.1)mysql高可用系列——高可用架构方案概述

    关键词:mysql高可用概述,mysql高可用架构 常用高可用方案 20190918 现在业内常用的MySQL高可用方案有哪些?目前来说,用的比较多的开源方案分内置高可用与外部实现,内置高可用有如下: ...

  8. ProxySQL Cluster 高可用集群环境部署记录

    ProxySQL在早期版本若需要做高可用,需要搭建两个实例,进行冗余.但两个ProxySQL实例之间的数据并不能共通,在主实例上配置后,仍需要在备用节点上进行配置,对管理来说非常不方便.但是Proxy ...

  9. MySQL高可用方案MHA的部署和原理

    MHA(Master High Availability)是一套相对成熟的MySQL高可用方案,能做到在0~30s内自动完成数据库的故障切换操作,在master服务器不宕机的情况下,基本能保证数据的一 ...

随机推荐

  1. Python 面向对象Ⅳ

    类的继承 面向对象的编程带来的主要好处之一是代码的重用,实现这种重用的方法之一是通过继承机制. 通过继承创建的新类称为子类或派生类,被继承的类称为基类.父类或超类. 继承语法 在python中继承中的 ...

  2. vue中的js绑定样式

    添加class 对象形式添加   activated为true时p标签的class为activated false时为空 <div id="app"> <p :c ...

  3. R_Studio(关联)使用apriori函数简单查看数据存在多少条关联规则,并按支持度降序排序输出

    查看数据menu_orders.txt文件存在多少条关联规则,并按支持度降序排序输出 #导入arules包 install.packages("arules") library ( ...

  4. Sqlmap自动注入--REQEST

    数据段: --data sqlmap.py -u ”192.168.1.101/mullitea/login.php" --data="username&passwd=2& ...

  5. WebView内置方案主要是通过重写WebChromeClient 来实现的,如下面的代码所示。

    基本思想也很简单:通过WebChromeClient的方法以startActivityForResult的方式打开系统的文件选择器,选择文件后在onActivityResult中将结果回传给Webvi ...

  6. [翻译]扩展C#中的异步方法

    翻译自一篇博文,原文:Extending the async methods in C# 异步系列 剖析C#中的异步方法 扩展C#中的异步方法 C#中异步方法的性能特点. 用一个用户场景来掌握它们 在 ...

  7. 第十四周学习总结&课程实验报告

    课程总结 一.相关概念 1.什么是JDBC JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统 ...

  8. 解决cron不执行的问题

    在FreeBSD5.4下面做开发,需要定期备份mysql数据,开始在网上找了bash的脚本,但是执行无效,一怒之下,使用php来写,嘿嘿,其实php写脚本也不错滴.备份其实就是把mysql的数据库文件 ...

  9. Point-wise Mutual Information

    Point-wise Mutual Information (Yao, et al 2019) reclaimed a clear description of Point-wise Mutual I ...

  10. leetcode 123. 买卖股票的最佳时机 III

    使用动态规划的解法,空间复杂度O(2*2)如果交易k次则为O(2*k),时间复杂度O(2n),交易k次为O(n*k), 因此本题实际上可以退化为买卖一次的情况:去掉buy2和sell2,即leetco ...