Mysql主从复制及Tomcat的相关介绍
数据库常遇到的问题:
1.向上拓展 scale up( 个体本身 硬件的拓展) 缺点:容易达到极限
2.向外拓展 scale out(计算机的个数,组合成集群)
摩尔定律:每18个月芯片的技术翻一倍,价格增长一倍,体积减少一倍
mysql的主从实现:
企业级数据库高可用构架图:
mysql内建的复制功能是构建大型,高性能应用程序的基础。
mysql复制的特点:
*mysql复制工作如何进行:
mysql的主从复制是异步的
binlog二进制日志
dump:主mysql中的线程,它会把二进制日志
I/O线程:在主的mysql上拉二进制文件,记录在relaylog中
SQL线程:从relaylog中拉出日志内容,去往数据库中写
mysql的主从复制解决高可用的问题
实战演练:
mysql的主从实现
主:vim /etc/my.cnfserver-id=1 让服务器有唯一的ID号log_bin=mysql-bin 开启二进制文件skip-name-resolve 名字解析hostname mysql-master 修改主机名systemctl start mariadbcd /var/lib/mysql ls 查看是否生成二进制日志mysql -uroot -p
>GRANT REPLICATION SLAVE,REPLICATION CLIENT ON *.* TO slave@'172.17./%.%' IDENTIFIED BY 'magedu';授权
// >flush tables with read lock 给表加锁 // >unlocak tables 解锁>create database magedu;>use magedu;>create table m26(id int not null,name char(20));>show create table m26 \G;>insert into m26 values(1,'laowang');> show binlog events;> show master status;
从:
vim /etc/mysqlserver-id=2relay-log=mysql-relay-binread_only =1log_bin =mysql-binlog_slave_updates=1systemctl start mariadbcd /var/lib/mysql ls 查看是否生成二进制日志 启动复制线程之前,指定服务器的配置mysql -uroot -p>CHANGE MASTER TO MASTER_HOST='172.17.0.159',MASTER_USER='SLAVE',MASTER_PASSWORD='magedu',MASTER_LOG_FILE='mysql-bin.000001',MASTER_LOG_POS=811;> start slave;> show tabless;>create tables m27(id int not null,name char(20)); 在从服务器上插表>select * from m26;
show slave status\G 查看是否成功
实现主从从构架:
从节点需要开启二进制日志,可以搭建主从从构架,
mysql的复制过滤器:仅限有一个或几个数据相关的数据,而非所有,由复制过滤器进行
什么是自增长ID:
什么是主键:关系型数据中的一条记录中有若干个属性,若其中某一个属性组(注意是组)能够唯一标识一条记录,该属性组就可以成为一个主键
主键的作用:1.可以保证数据的唯一,不会产生冗余的数据 2.可以加快数据的操作速度
外键:用来链表查询
索引:它是某个表中一列或若干列值的集合和相应的指向表中物理标识这些值的数据页的逻辑指针清单
索引的作用:是快速帮助查询数据
mysql互为主从:
1.vim /etc/my.cnfserver-id=1skip-name-resolverelay-log=mysql-relay-binlog-bin=mysql-binlog_slave_updates=1auto_increment_increment=2auto_increment_offset=1# replicate_do_db=magedusystemctl restart mariadbmysql -uroot -p >show databases>show master status;>CHANGE MASTER TO MASTER_HOST='172.17.0.170',MASTER_USER='SLAVE',MASTER_PASSWORD='magedu',MASTER_LOG_FILE='mysql-bin.000001',MASTER_LOG_POS=245;>start slave;>show slave status;>use magedu>create table userinfo(id int PRIMARY KEY AUTO_INCREMENT, name varchar(50) NOT NULL);>show tables;>desc userinfo;查看表>insert into userinfo(name)value('xiao'),('da'),('lao');>select * from userinfo;2.vim /etc/my.cnfserver-id=2relay-log=mysql-relay-binlog-bin=mysql-binlog_:wqslave_updates=1auto_increment_increment=2auto_increment_offset=2# replicate_do_db=magedusystemctl restart mariadb mysql -uroot -p>show databases>show slave status\G; >CHANGE MASTER TO MASTER_HOST='172.17.0.159',MASTER_USER='SLAVE',MASTER_PASSWORD='magedu',MASTER_LOG_FILE='mysql-bin.000002',MASTER_LOG_POS=245;>start slave;>show slave status;>use magedu;>show tables;>insert into userinfo(name)value('ni'),('wo'),('ta');>select * from userinfo;
半同步复制:基于互为主从复制进行的操作
主节点:
1. > INSTALL PLUGIN rpl_semi_sync_master SONAME 'semisync_master.so';>SHOW GLOBA VARIABLES LIKE 'rpl_semi%';>set global rpl_semi_sync_master_enabled =1;>stop slave;>start slave;cd /var/lib/mysqlcd /var/log/mariadbtail -200 mariadb.log 查看日志 2. >INSTALL PLUGIN rpl_semi_sync_master SONAME 'semisync_slave.so';>SHOW GLOBA VARIABLES LIKE 'rpl_semi%';>set global rpl_semi_sync_master_enabled =1;
mysql高可用构架之MHA:
1.安装配置MHA
2.准备基于SSH互信通信环境
3.进行安装包安装 yum install mha4mysql..... 在ftp上 n装ode 包也需要
4.初始化MHA,进行配置
mysql主从复制技术有哪些好处:提高性能,实现高可用
I/O线程和SQL线程
ysql读写分离,分库分表和优化介绍
select for update
中间件:mysql proxy实现mysql的代理,one proxy(mysql的代理)aliSQL proxySQL
动态请求:php-->server node1
静态请求:css images js html-->server node2
分库分表:
1.水平拆分
2.垂直拆分
mysql优化:
1.可以用数据缓存 常见的memcached
2.数据库生身有很多的缓存机制,可使用对应的缓存策略
3.对数据来说,尽可能使用索引
4.对请求而言,可以实现读写分离,对读请求进行负载均衡
5.对大数据库,可根据业务逻辑进行分库分表
6.所有的优化,尽可能往内存中存放
Tomcat和servlet
编程语言分类:
硬件级:微码编程,汇编语言
系统级:C C++...... (C语言性能高)
应用级:JAVA,PHP,Python,Ruby,Perl,C#,.......
面向对象:对象就是对事物的一种抽象描述
面向过程:按照事情发展的顺序一步一步的进行操作
JAVA使用的是面向对象的系统设计方法,并且JAVA可以实现多层构架对于跨平台的大型企业应用系统来讲,JAVA几乎已经成为唯一的选择
PHP:PHP适合于快速开发,中小型应用系统,开发成本低,能够对变动的需求作出快速的反应
JAVA编译器(字节码)-》虚拟机(解释器)-》解释器(翻译)-》机器码
.java->.class->机器码
JAVA运行原理:
编程语言编译类型大致可以分为三种:
1.源代码-编译器-本机代码-运行
2.源代码-解释器-本机代码-运行
3.源代码-中间语言-虚拟机(相当于解释器)-本机代码-运行
可以发现最后都需要变成本机代码才能执行
JAVA三大分支:
1.J2SE--java standard edition 标准版本
2.J2ME--java Micro edition 一般 位于嵌入式应用
3.J2EE--java Enterprise Edition 一般为服务器端程序的应用
servlet完全依赖于服务器端
servlet的本质是一个帮助程序
静态网站技术和动态网站技术:
servlet技术是什么:作为Java正营的CGI解决方案
servlet容器的作用:Servlet容器也叫做servlet引擎,是web服务器或应用程序服务器的一部分,用于在发送的请求和响应之上提供网络服务,解码基于MIME的请求,格式化基于MIME的响应
有了servlet之后用户通过单击某个链接或者直接在浏览器的地址中输入URL来访问servlet
servlet容器能提供什么:
1.通信支持:利用容器提供的方法,你能轻松的让servlet与web服务器对话,而不用自己建立serversocket,监听端口
2.生命周期管理
3.多线程支持
4.JSP支持
Tomcat是Apache软件基金会
Tomcat的核心分为三个部分:
1.web容器--处理静态的页面
2.catalina--一个servlet容器---处理servlet
3.还有有就是JSP容器,它就是把JSP页面翻译成为一个servlet
JSP和servlet的区别:JSP就是在HTML里面写Java代码,servlet就是在Java里面写HTML代码...其实JSP经过容器解释器之后就是servlet
JSEE-->sevlet--->CGI
java写的sevlet程序
Java容器过来调用
JSP html-->java标签-->sevlet
tomcat和servlet的关系:tomcat实际上就是servlet用Java编写的程序
JRE顾名思义是Java运行时的环境,包含了Java虚拟机,Java基础类库
JDK顾名思义是Java开发工具包,是程序使用Java语言编写Java程序所开发的工具包,是提供给程序员使用的。
JDK:yum install jdk-8u144-linux
Java -version可以查看
tomcat安装方式:
1.lftp 172.17.0.1>cd pub>cd sources>ls>cd 7.x86_64 >cd jdk>ls>get jdk-8u144-linux 下载
yum localinstall jdk......
默认路径
cd /usr/lib/jvm
cd /usr/java/jdk1.8.0_144/bin
cd .. java]
2.设置环境变量
vim /etc/profile.d/java.sh
export JAVA_HOME=/usr/java/jdk1.8.0_144
export JRE_HOME=$JAVA_HOME/jre
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
chmod +x /etc/profile.d/java.sh
. /etc/profile.d/java.sh 进行读取
echo $JAVA_HOME 查看 Jdk
Java -version再次可以查看,版本是否改变
3.lftp 172.17.0.1cd pubcd sourcescd 7.x86_64cd tomcatmget apache-tomcat-7.0.78.tar.gz solo-2.2.0.war(部署文件)
tar -xvf apache.....
cd apache-tomcat-7.0.78
ls 查看
cd ..
mv apache-tomcat-7.0.78 /usr/local/tomcat
cd /usr/local/tomcatls
cd bin
./catalina.sh start 运行tomcat
netstat -tunlp
172.17....:8080 访问测试
cd /conf server.xml 主配置配置文件
1.server:server表示整个的Catalina servlet容器。 2.service :service是存活在server内部的中间组件3.Connector组件:连接器处理与客户端的通信4.Engine组件:在tomcat中,每个service只能包含一个servlet引擎5.Host组件:位于engine内部用于接收请求并进行相应处理的主机或虚拟主机类似Nginx server6.Context组件:一个context表示了一个web应用程序,运行在特定的虚拟主机中,一个host可以包含多个context(代表web应用程序)类似Nginx locationweb.xml web应用程序描述文件context.xml 可以用来配置数据库之类的信息logging.properties日志系统相关的配置
tomcat页面: manmger
admin
测试jsp脚本
cd webapps
mkdir test
cd test
vim index.jsp
tomcat相关配置:
cd /usr/local/tomcat
cd conf
vim tomcat-users.xml
< role rolename="manager-gui"
< role rolename="admin-gui"
< user username="tomcat" password="tomcat" roles="manager-gui,admin-gui"/>
./bin/catalina.sh stop
./bin/catalina.sh start
Tomcat的部署:
将ftp上的solo包部署到Tomcat上
cp sols-2.2.0.war /usr/local/tomcat/webapps
cd webapps
mv solo-2.2.0.war /tmp
cd webapps
mv /tmp/solo-2.2.0.war ./
cd logs日志存放路径
tomcat组成原理:
service:就是连接器与引擎组合在一起
connector:连接器用来接收用户的请求
engine:引擎是用来处理用户的请求
host:就是虚拟主机
context:相当于location ,也就是相当于路由,也可做匹配
servlet:就是程序
JSP webapp的组织结构:
/:webapps的根目录;
index.jsp主页; cd /manager
maven 项目管理工具 www.oschina.net java开源项目
mysql -uroot -p -D magedu < jeesns.sql 在magedu数据库中导文件
转载于:https://blog.51cto.com/13287431/2044842
Mysql主从复制及Tomcat的相关介绍相关推荐
- mysql主从复制延迟问题的相关知识与解决方案
一.如何监控发生了主从延迟? 在从库机器上,执行show slave status,查看Seconds_Behind_Master值,代表主从同步从库落后主库的时间,单位为秒,若同从同步无延迟,这个值 ...
- mysql主从复制replication的一些相关命令
主服务器上的相关命令: show master status; mysql> show master status\G *************************** 1. row ** ...
- mysql主从复制-介绍
1 简介 Mysql Replication(MySQL主从复制)是MySQL数据库使用率非常高的一种技术,它使用某个数据库服务器为主,然后在其他数据库服务器上进行复制,后面复制的数据库也称从 ...
- mysql 主从复制介绍_MySQL 主从复制介绍
一.MySQL 主从复制简介 (1) MySQL 主从复制通过逻辑的 binlog 日志复制到要同步的服务器本地,然后由本地的线程读取日志里面的 SQL 语句,重新应用到 MySQL 数据库中 (2) ...
- 实现mysql主从复制
目录 一.简述DDL,DML,DCL,DQL,并且说明mysql各个关键字查询时候的先后顺序 二.自行设计10个sql查询语句,需要用到关键字[GROUP BY/HAVING/ORDER BY/LIM ...
- 缓存数据库Redis相关介绍
Redis 一.Redis相关介绍 二.如何保持session会话 三.nginx+tomcat+redis实现负载均衡.session共享 四.Redis基本操作命令 五.Redis持久化的实现方法 ...
- MySQL主从复制和Nginx高级
MySQL主从复制和Nginx高级 MySQL主从复制 课程内容 前言 1. MySQL主从复制 1.1 介绍 1.2 搭建 1.2.1 准备工作 1.2.2 主库配置 1.2.3 从库配置 1.3 ...
- MySQL主从复制原理、半同步操作步骤及原理
MySQL主从复制原理.半同步操作步骤及原理 1.1 企业Linux运维场景数据同步方案 1.1.1 文件级别的异机同步方案 1.scp/sftp/nc 命令可以实现远程数据同步. 2.搭建ftp/h ...
- Mysql主从复制(docker例子)
一.Binlog Binlog 日志主要作用是数据恢复和主从复制.本身就是二进制格式的日志文件,网络传输无需进行协议转换.MySQL 集群的高可用,负载均衡,读写分离等功能都是基于Binlog 来实现 ...
最新文章
- 磁盘镜像分析工具TSK
- chvg改变vg中LV的数量
- 命令行下的FTP使用详解
- Scala 中的文件操作
- 【渝粤教育】国家开放大学2018年春季 0234-21T公务员制度讲座 参考试题
- 阿里面试官给你的一些忠告,这样做肯定错不了!附视频
- java 显示服务器的图片,【JavaWeb】实现读取本地服务器路径下的图片
- 计算机面试题100题,精选面试100题及答案.doc
- 学会这几点,你会成为一名月薪过万的Java程序员
- tif格式文件用什么打开(如何打开怎么打开) tif是什么格式文件 ...
- 图像融合之泊松融合,原理讲解及C++代码实现(特别适合新手)
- 我的软件销售生涯(一)
- Tensorflow2.0深度学习入门与实战(日月光华)(学习总结1)
- 边缘计算网关的定制方案
- Basler 相机硬触发(line1外部触发)接线与输出Out1
- CatDriver 小米 猫盘 Boot Info
- Android实现图片放大缩小
- C语言 变量的指针和指向变量的指针变量
- 实例:用C#.NET手把手教你做微信公众号开发(21)--使用微信支付线上收款:H5方式
- 【区块链-智能合约工程师】第四篇:Truffle框架安装和介绍(Windows)
热门文章
- bash 脚本_Bash技巧:可以左右下移动和旋转俄罗斯方块的Shell脚本
- linux和windows测评,Windows Server 2016 与 Linux同台PK
- wsdl2java 工具下载_利用wsdl2java工具生成webservice的客户端代码
- 【 MATLAB 】Fourier Analysis and Filtering frame(傅立叶分析和滤波 框架)
- 应用PlanAhead进行I/O规划
- css实现自适应背景图及背景图透明度处理
- Sql Server2005 Transact-SQL 新兵器学习总结之-数据类型
- IDC公布2017年亚太地区数据中心10大预测
- 数据量高并发的数据库优化
- android 线程方式打印log到sd卡