马哥教育N36第十九周作业

一、搭建Tomcat,并基于memcached实现会话共享
1.实验的拓扑图

在这里插入图片描述

2. 搭建Tomcat1服务器(192.168.30.100)
  • 安装Java JDK
yum install java-1.8.0-openjdk-devel
  • 安装Tomcat
yum install tomcat
  • 安装示例页面
yum install tomcat-admin-webapps tomcat-webapps tomcat-docs-webapp
  • 配置服务
    简单测试不做配置

  • 准备测试页面

mkdir /var/lib/tomcat/webapps/test/{lib,classed,META-INF,WEB-INF}
vim /var/lib/tomcat/webapps/test/index.jsp
---------------------------------------------------------------------
  <%@ page language="java" %>
    <html>
      <head><title>TomcatA</title></head>
      <body>
        <h1><font color="red">TomcatA.magedu.com</font></h1>
        <table align="centre" border="1">
          <tr>
            <td>Session ID</td>
        <% session.setAttribute("magedu.com","magedu.com"); %>
            <td><%= session.getId() %></td>
          </tr>
          <tr>
            <td>Created on</td>
            <td><%= session.getCreationTime() %></td>
         </tr>
        </table>
      </body>
    </html>
---------------------------------------------------------------------
  • 启动服务
systemctl start tomcat
3.搭建Tomcat2服务器(192.168.30.104)
  • 安装Java JDK
yum install java-1.8.0-openjdk-devel
  • 安装Tomcat
yum install tomcat
  • 安装示例页面
yum install tomcat-admin-webapps tomcat-webapps tomcat-docs-webapp
  • 准备测试页面
mkdir /var/lib/tomcat/webapps/test/{lib,classed,META-INF,WEB-INF}
vim /var/lib/tomcat/webapps/test/index.jsp
---------------------------------------------------------------------
  <%@ page language="java" %>
    <html>
      <head><title>TomcatB</title></head>
      <body>
        <h1><font color="red">TomcatB.magedu.com</font></h1>
        <table align="centre" border="1">
          <tr>
            <td>Session ID</td>
        <% session.setAttribute("magedu.com","magedu.com"); %>
            <td><%= session.getId() %></td>
          </tr>
          <tr>
            <td>Created on</td>
            <td><%= session.getCreationTime() %></td>
         </tr>
        </table>
      </body>
    </html>
---------------------------------------------------------------------
  • 启动服务
systemctl start tomcat
4.搭建反代服务器(192.168.30.102)
  • 安装软件包
yum -y install httpd
  • 配置服务
vim /etc/httd/conf.d/tomcat.conf
--------------------------------------------------------------
<Proxy balancer://tomcat>
        BalancerMember http://192.168.30.100:8080 loadfactor=1
        BalancerMember http://192.168.30.104:8080 loadfactor=1
        ProxySet lbmethod=byrequests
</Proxy>

ProxyVia off
ProxyRequests Off
ProxyPass / balancer://tomcat/
ProxyPassReverse / balancer://tomcat/
<Proxy *>
        Order Allow,Deny
        Allow From All
</Proxy>

<Location />
        Order Allow,Deny
        Allow From All
</Location>
--------------------------------------------------------------
  • 启动服务
systemctl start httpd
  • 测试
firefox 192.16.30.102/test/

在这里插入图片描述
在这里插入图片描述

5.安装和配置Memcached
  • 安装软件包
yum -y install memcached
  • 查看软件包构成
~]# rpm -ql memcached
/etc/sysconfig/memcached
/usr/bin/memcached
/usr/bin/memcached-tool
/usr/lib/systemd/system/memcached.service
/usr/share/doc/memcached-1.4.15
/usr/share/doc/memcached-1.4.15/AUTHORS
/usr/share/doc/memcached-1.4.15/CONTRIBUTORS
/usr/share/doc/memcached-1.4.15/COPYING
/usr/share/doc/memcached-1.4.15/ChangeLog
/usr/share/doc/memcached-1.4.15/NEWS
/usr/share/doc/memcached-1.4.15/README.md
/usr/share/doc/memcached-1.4.15/protocol.txt
/usr/share/doc/memcached-1.4.15/readme.txt
/usr/share/doc/memcached-1.4.15/threads.txt
/usr/share/man/man1/memcached-tool.1.gz
/usr/share/man/man1/memcached.1.gz
  • 配置服务
    基本上不用做任何配置
vim /etc/sysconfig/memcached
  • 启动服务
systemctl start memcached
  • 查看服务端口
    它监听的端口:11211/tcp, 11211/udp
 ~]# ss -tunl
Netid State      Recv-Q Send-Q  Local Address:Port                 Peer Address:Port              
udp   UNCONN     0      0                   *:11211                           *:*                  
udp   UNCONN     0      0                   *:68                              *:*                  
udp   UNCONN     0      0                   *:111                             *:*                  
udp   UNCONN     0      0                   *:835                             *:*                  
udp   UNCONN     0      0                  :::11211                          :::*                  
udp   UNCONN     0      0                  :::111                            :::*                  
udp   UNCONN     0      0                  :::835                            :::*                  
tcp   LISTEN     0      128                 *:11211                           *:*                  
tcp   LISTEN     0      128                 *:111                             *:*                  
tcp   LISTEN     0      128                 *:22                              *:*                  
tcp   LISTEN     0      100         127.0.0.1:25                              *:*                  
tcp   LISTEN     0      128                :::11211                          :::*                  
tcp   LISTEN     0      128                :::111                            :::*                  
tcp   LISTEN     0      128                :::22                             :::*                  
tcp   LISTEN     0      100               ::1:25                             :::*  

6.msm配置(实验没有成功)
  • 下载需要的jar包
    参考这个文档下载对应的jar包:https://github.com/magro/memcached-session-manager/wiki/SetupAndConfiguration#add-memcached-session-manager-jars-to-tomcat
wget memcached-session-manager-2.3.2
wget memcached-session-manager-tc7-2.3.2
wget spymemcached-2.12.3
  • 配置Tomcat
    The configuration of tomcat requires two things: you need to drop some jars in your $CATALINA_HOME/lib/ and WEB-INF/lib/ directories and you have to configure the memcached session manager in the related element (e.g. in META-INF/context.xml inside the application files).
cp ~/*.jar /usr/share/tomcat/lib/
cp ~/*.jar /var/lib/tomcat/webapps/test/WEB-INF/lib/
cp /etc/tomcat/context.xml /var/lib/tomcat/webapps/test/WEB-INF/
vim  /var/lib/tomcat/webapps/test/WEB-INF/context.xml
------------------------------------------------------------------------------------------------------------
<?xml version='1.0' encoding='utf-8'?>
<Context path="/test" docBase="/var/lib/tomcat/webapps/test" reloadable="true">
        <Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager" 
          memcachedNodes="n1:192.168.30.103:11211"          
          requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$"
        />
</Context>
------------------------------------------------------------------------------------------------------------
二、搭建mysql服务器,并实现主从复制
  1. 首先同步主从服务器的时间
  2. 主服务器上配置
  • 修改配置文件
vim /etc/my.cnf  
[mysqld]  
log_bin=log-bin  
server_id=1  
innodb_file_per_table  
skip_name_resolve=on  
  • 数据备份
mysqldump -A -F --single-transaction --master-data=1 --flush-privileges > /backups/full_backup.sql
  • 创建主从复制的帐号和权限
mysql> grant replication slave on *.* to rpl_user@'192.168.30.%' identified by 'test';  
  1. 从服务器上配置
  • 修改配置文件
vim /etc/my.cnf  
[mysqld]  
innodb_file_per_table=on  
skip_name_resolve=on  
server_id=11  
relay_log=relay-log  
read_only=on  
  • 使用主服务器的备份数据还原数据库
mysql <  /backups/full_backup.sql  
  • 设置从服务器复制帐号
mysql> CHANGE MASTER TO   
  MASTER_HOST='192.168.30.103',   
  MASTER_USER='rpl_user',   
  MASTER_PASSWORD='test',  
  MASTER_PORT=3306,   
  MASTER_LOG_FILE='log-bin.000002',   
  MASTER_LOG_POS=245;  
  • 开启从服务器复制
mysql> start slave;  
  • 查看从服务器状态
mysql> show slave status \G  
三、搭建mysql服务器,实现数据库的备份和还原
使用Mysqldump 进行备份和还原

它是一种逻辑备份工具

  • 备份
mysqldump -A -F --single-transaction --master-data=1 --flush-privileges > /backups/full_backup.sql
  • 还原
mysql <  /backups/full_backup.sql  
使用xtrabackup 进行备份和还原

它是一种物理备份工具

  • 安装工具
 yum install ./percona-xtrabackup-24-2.4.9-1.el7.x86_64.rpm 
  • 查看软件包构成
~]# rpm -ql percona-xtrabackup-24
-------------------------------------------------------------
/usr/bin/innobackupex
/usr/bin/xbcloud
/usr/bin/xbcloud_osenv
/usr/bin/xbcrypt
/usr/bin/xbstream
/usr/bin/xtrabackup
/usr/share/doc/percona-xtrabackup-24-2.4.9
/usr/share/doc/percona-xtrabackup-24-2.4.9/COPYING
/usr/share/man/man1/innobackupex.1.gz
/usr/share/man/man1/xbcrypt.1.gz
/usr/share/man/man1/xbstream.1.gz
/usr/share/man/man1/xtrabackup.1.gz
-------------------------------------------------------------
  • 完全备份
innobackupex --user=DBUSER --password=DBUSERPASS /path/to/BACKUP-DIR/
# 示例
innobackupex --user=root /data/backups/base
ll 2019-08-08_09-16-19/
----------------------------------------------------------------
total 18460
-rw-r----- 1 root root      417 Aug  8 09:16 backup-my.cnf
drwxr-x--- 2 root root       20 Aug  8 09:16 helldb
-rw-r----- 1 root root 18874368 Aug  8 09:16 ibdata1
drwxr-x--- 2 root root     4096 Aug  8 09:16 mysql
drwxr-x--- 2 root root     4096 Aug  8 09:16 performance_schema
-rw-r----- 1 root root       20 Aug  8 09:16 xtrabackup_binlog_info
-rw-r----- 1 root root      113 Aug  8 09:16 xtrabackup_checkpoints
-rw-r----- 1 root root      462 Aug  8 09:16 xtrabackup_info
-rw-r----- 1 root root     2560 Aug  8 09:16 xtrabackup_logfile
----------------------------------------------------------------
  • 准备还原数据
    如果还有增量备份,那这一阶段。需要加上 –redo-only 选项。但是最后一个增量备份不需要加这个选项,都完成后在应用了所有增量数据的完全备份目录,在运行下面的命令。
innobackupex --apply-log /path/to/BACKUP-DIR
# 示例
innobackupex --apply-log 2019-08-08_09-16-19/
ll 2019-08-08_09-16-19/
----------------------------------------------------------------
total 49176
-rw-r----- 1 root root      417 Aug  8 09:16 backup-my.cnf
drwxr-x--- 2 root root       20 Aug  8 09:16 helldb
-rw-r----- 1 root root 18874368 Aug  8 09:21 ibdata1
-rw-r----- 1 root root  5242880 Aug  8 09:21 ib_logfile0
-rw-r----- 1 root root  5242880 Aug  8 09:21 ib_logfile1
-rw-r----- 1 root root 12582912 Aug  8 09:21 ibtmp1
drwxr-x--- 2 root root     4096 Aug  8 09:16 mysql
drwxr-x--- 2 root root     4096 Aug  8 09:16 performance_schema
-rw-r----- 1 root root       20 Aug  8 09:16 xtrabackup_binlog_info
-rw-r----- 1 root root      113 Aug  8 09:21 xtrabackup_checkpoints
-rw-r----- 1 root root      462 Aug  8 09:16 xtrabackup_info
-rw-r----- 1 root root  8388608 Aug  8 09:21 xtrabackup_logfile
----------------------------------------------------------------
  • 还原
    还原的目标根据 mysql 配置文件 my.cnf 中 datadir=/var/lib/mysql 决定
innobackupex --copy-back /path/to/BACKUP-DIR
# 示例
innobackupex --copy-back /data/backups/base/2019-08-08_09-16-19/
  • 修改所有者和所数组
chown -R mysql:mysql /var/lib/mysql
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值