50-数据库迁移与建立NFS共享、负载均衡介绍

image

https://www.processon.com/view/link/5d004e07e4b0cbb88a599f6a

一、数据库迁移流程:

准备机器
web01 10.0.0.7
db01 10.0.0.51
nfs01 10.0.0.31

1.web01:将数据打包迁移到数据库db01服务器上

[root@web01 html]# mysqldump -uroot -p -A |gzip >/root/all.sql.gz   
[root@web01 html]# ll /root/
^[[3~total 20396
-rw-r--r-- 1 root   root        180073 Jun 10 11:22 all-gzip.sql.gz
[root@web01 html]# sshpass -p123456 rsync -avz /root/all.sql.gz 172.16.1.51:/root/
sending incremental file list
all.sql.gz

sent 315,345 bytes  received 35 bytes  210,253.33 bytes/sec
total size is 315,081  speedup is 1.00  

2.在db01上安装数据库环境

yum install -y mariadb
systemctl restart mariadb
systemctl enable mariadb

3.在db01上查看解压,然后倒入到数据库:

[root@db01 ~]# ll
total 308
-rw-r--r-- 1 root root 315081 Jun 12 09:11 all.sql.gz
[root@db01 ~]# gzip -d all.sql.gz 
[root@db01 ~]# ll
total 1248
-rw-r--r-- 1 root root 1277294 Jun 12 09:11 all.sql
[root@db01 ~]# mysql
MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| test               |
| wecenter           |
| wordpress          |
+--------------------+
6 rows in set (0.00 sec)

MariaDB [(none)]> select user,host from mysql.user;
+-----------+------------+
| user      | host       |
+-----------+------------+
| root      | 127.0.0.1  |
| wecenter  | 172.16.1.% |
| wordpress | 172.16.1.% |
| root      | ::1        |
| root      | localhost  |
| wecenter  | localhost  |
| wordpress | localhost  |
| root      | web01      |
+-----------+------------+
8 rows in set (0.00 sec)

4.将数据库刷新一下用远程登录测试是否成功

[root@db01 ~]# mysql
MariaDB [(none)]> flush privileges;
Query OK, 0 rows affected (0.00 sec)

db01登录测试:
[root@db01 ~]# mysql -uwordpress -p123456 -h 172.16.1.51

web01登录测试:
[root@web01~]# mysql -uwordpress -p123456 -h 172.16.1.51

5.在web01上修改站点目录的博客配置文件

修改数据库地址为db01:
[root@web01 html]# vim blog/wp-config.php 
/** MySQL hostname */
define( 'DB_HOST', '172.16.1.51' );

### 6.将web01的数据库服务关闭
```c
systemctl stop mariadb
systemctl disable mariadb

7.浏览器上输入网址查看下是否有内容,是否跟之前的一样

遇到的坑
用无痕浏览器进入博客后不可以发布文章,不可以上传图片,用正常的浏览器就可以了。

数据库的命令历史记录位置

家目录下的隐藏文件

[root@db01 ~]# ll ~/.mysql_history 

二、NFS建立共享

提前下载好rpcbind nfs-utils
先开启rpcbind 再开启nfs

1.写nfs配置文件重启nfs

[root@nfs01 ~]# id nginx
uid=887(nginx) gid=887(nginx) groups=887(nginx)
[root@nfs01 ~]# vim /etc/exports
#share for web01
/webdata             172.16.1.0/24(rw,all_squash,anonuid=887,anong
id=887)
[root@nfs01 ~]# systemctl restart nfs
[root@nfs01 ~]# showmount -e 172.16.1.31
Export list for 172.16.1.31:
/webdata   172.16.1.0/24

2.web01客户端

[root@web01 html]# usermod -u 887 nginx
[root@web01 html]# id nginx
uid=887(nginx) gid=887(nginx) groups=887(nginx)
[root@web01 html]# showmount -e 172.16.1.31
Export list for 172.16.1.31:
/webdata   172.16.1.0/24
[root@web01 html]# rpm -qa nfs-utils
nfs-utils-1.3.0-0.61.el7.x86_64

站点目录下的上传目录地址
/usr/share/nginx/html/blog/wp-content/uploads/

3.先备份之前的数据再挂载

如果先挂载了,用户的数据就被nfs的共享同步掉了,可能会被覆盖掉
要保证数据不丢

[root@web01 html]# cp blog/wp-content/uploads /tmp/
[root@web01 html]# ll /tmp/
total 12
drwxr-xr-x  3 nginx nginx   16 Jun 12 10:52 2019

[root@web01 html]# mount -t nfs 172.16.1.31:/webdata /usr/share/nginx/html/blog/wp-content/uploads/
[root@web01 html]# mv /tmp/upload/* /blog/wp-content/uploads/

浏览器查看一下blog.oldboy.com

数据库查看一下

image

添加设置缓冲区

/etc/nginx/conf.d/02-blog.conf

fastcgi_buffers 16 16k;

image

三、负载均衡

image

1.用途

1.实现用户访问进行合理调度处理,最终分配给不同web节点
2.实现用户访问压力分担,将网站压力分配给每一个节点
让后端服务器 报错每台服务器工作平均负载

2.实现

硬件设备
    F5 A10 Redware
开源软件
    Nginx Haproxy Lvs

3.开源软件负载均衡的区别

命名不同
    负载均衡:用户请求的转发(Lvs)
    反向代理:代替用户去找,在发给用户(类似中介)(Nginx、Haproxy)
功能不同
    Lvs:工作在四层负载均衡
        传输层   tcp/udp
        最多进行端口转发
    Nginx、Haproxy:工作在4层和7层负载均衡
        传输层和应用层
        进行http协议 uri转发

你可能感兴趣的:(50-数据库迁移与建立NFS共享、负载均衡介绍)