- 博客(66)
- 资源 (5)
- 收藏
- 关注
原创 1 基础介绍
PostgreSQL使用多版本并发控制(MVCC,Multiversion concurrency control)系统进行并发控制,该系统向每个用户提供了一个数据库的"快照",用户在事务内所作的每个修改,对于其他的用户都不可见,直到该事务成功提交。大型游戏、O2O 等应用需要支持世界地图、附近的商家,两个点的距离等能力,PostGIS 增加了对地理对象的支持,允许您以 SQL 运行位置查询,而不需要复杂的编码,帮助您更轻松理顺逻辑,更便捷的实现 LBS,提高用户粘性。
2022-12-16 21:32:37
689
原创 第十三讲 MySQL配置Keepalived读写分离
虚拟路由冗余协议,可以认为是实现路由器高可用的协议,即将N台提供相同功能的路由器组成一个路由器组,这个组里面有一个master和多个backup,master上面有一个对外提供服务的vip(该路由器所在局域网内其他机器的默认路由为该vip),master会发组播,当backup收不到vrrp包时就认为master宕掉了,这时就需要根据VRRP的优先级来选举一个backup当master。core模块为keepalived的核心,负责主进程的启动、维护以及全局配置文件的加载和解析。应用于三个数据库节点。...
2022-07-18 21:58:12
468
原创 第十二讲 MySQL之高可用组件MHA
MHA(MasterHighAvailability)是由日本人yoshinorim开发的一款成熟且开源的MySQL高可用程序,它实现了MySQL主从环境下MASTER宕机后能够自动进行单次故障转移的功能,其本身由perl语言编写,安装方便,使用简单MHAMaster可以单独部署在一台独立的机器上管理多个master-slave集群,也可以部署在一台slave节点上MHA工作原理从宕机崩溃的Master保存二进制日志事件(binlogevent);识别含有最新更新的Slave;.........
2022-07-18 21:54:02
505
原创 第九讲 MySQL锁机制
MySQL提供两种标准级别的行级锁排他锁与共享锁的兼容性InnoDB支持多细粒度锁定,允许在行级上的锁和表级上的锁同时存在InnoDB还支持额外的锁方式,称之意向锁,是表级别的锁,用于在一个事务中揭示下一行将被请求的锁的类型意图锁需遵循以下协议:X锁与任何的锁都不兼容,S锁与IX锁不兼容,剩下的均兼容意向锁只会阻塞表级别的锁,并不会阻塞行级别的锁InnoDB存储引擎的两种加锁操作:事务插入到具有AUTO-INC列的一种特殊表级锁,当事务插入时,必须获取自增锁以获取自增列的值innodb_autoinc_lo
2022-06-06 22:06:19
157
原创 第八讲 MySQL事务
1 事务特性ACID四大特性:原子性 (atomicity)事务中的所有操作要么全部执行成功,要么会退到事务之前的状态一致性 (consistency)一致性状态下,所有事务对同一个数据的读取结果是相同的隔离性 (isolation)一个事务的影响范围在提交前对其他事务不可见(锁机制)持久性 (durability)事务一旦提交,即可持久化到磁盘,可进行宕机恢复2 事务实现2.1 redo在InnoDB存储引擎中,事务日志通过重做日志(redo log)和日志缓冲
2022-05-28 21:52:58
184
原创 第七讲 MySQL日志管理
1 MySQL日志1.1 错误日志文件名:可用–log-error[=file_name]指定,否则默认使用hostname.err内容:记录mysqld启动和停止时,以及服务器发生任何严重错误时记录相关信息1.2 二进制日志文件名:也是binlog(逻辑日志),可用–log-bin[=file_name] 指定,默认为主机名内容:包含了所有更新了或者潜在更新了数据的所有语句,语句以“事件”的形式保存,描述数据更改文件位置和格式查看日志:mysqlbinlog log-file删除日志:
2022-05-28 21:51:29
200
原创 第六讲 MySQL索引创建与维护
1 InnoDB两种索引介绍B+树索引:B+树在数据库中的实现,高度大约2~3层,最多2-3次I/O即可查询到数据行聚集索引:按照主键构造的一棵B+树叶子节点存放表的行记录,叶子节点也称数据页非叶子节点存放键值以及指向数据页的偏移量辅助索引:叶子节点包含键值以及对应行数据的主键每张表可以存在多个非聚集索引哈希索引:InnoDB存储引擎使用自适应哈斯索引,采用散列表的数据结构,加速查询key:索引键值,value:索引记录页面位置系统自动生成,无
2022-05-28 21:48:57
475
原创 第四讲 MySQL 数据库基础维护
1 MySQL用户管理1.1 查询用户mysql> use mysql;mysql> select * from user;1.2 创建用户#主机名可使用%表示所有的主机mysql> create user '用户名'@'主机名' identified by '密码';1.3 删除用户mysql> drop user 'mytest'@'localhost';1.4 修改用户密码#可选下面两种写法mysql> update user set pass
2022-04-30 22:43:58
1860
原创 第三讲 MySQL数据库的安装部署
1 单节点部署1.1 tar.gz包安装方式1)安装依赖yum -y install gcc glibc libaio libstdc++ libstdc libncurses ld-linux2)准备软件包,解压tar -xvf Percona-Server-5.7.19-17-Linux.x86_64.ssl101.tar.gz -C /usr/local/3)建立软链接ln -s /usr/local/Percona-Server-5.7.19-17-Linux.x86_64.ssl
2022-04-30 22:41:42
510
原创 第二讲 MySQL体系结构与存储引擎
1 MySQL体系结构1.1 数据库与数据库实例数据库:物理操作系统中的文件和其他文件类型的集合,除了硬盘存储的文件,也可以是存放在内存中的文件数据库实例:有数据库后台进程、线程以及一个共享内存区域组成,共享内存可以被后台进程/线程所共享,是应用程序,位于用户与操作系统直接的数据管理软件注意:不能通过修改二进制文件来更改数据库内容,仅可以通过数据库实例操作数据库。在MySQL中,实例与数据库是一一对应的,但在集群环境下会发生一个数据库被多个实例调用的情况1.2 体系结构由图可知,MySQL由以
2022-04-30 16:05:20
665
原创 第一讲 MySQL数据库简介
1 简介MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一MySQL是一种关系型数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性MySQL所使用的 SQL 语言是用于访问数据
2022-04-30 16:03:49
586
1
原创 PUPPET配置进阶
文章目录一、简介二、目录结构三、一个helloworld3.1 创建module3.2 配置入口3.3 验证四、常用资源列表4.1 user4.2 group4.3 package4.4 file4.5 service4.6 exec4.7 cron4.8 notify五、变量与作用域5.1 数据类型5.2 变量赋值5.3 作用域六、条件语句与函数6.1 条件语句6.2 表达式6.3 函数七、模块、类、模板7.1 模块7.2 类7.3 模板八、节点管理一、简介Puppet是开源的基于Ruby的系统配.
2022-04-02 20:56:19
382
原创 PUPPET部署篇
一、简介puppet是一种Linux、Unix、windows平台的集中配置管理系统,使用自有的puppet描述语言,可管理配置文件、用户、cron任务、软件包、系统服务等。puppet把这些系统实体称之为资源,puppet的设计目标是简化对这些资源的管理以及妥善处理资源间的依赖关系puppet采用C/S星状的结构,所有的客户端和一个或几个服务器交互。每个客户端周期的(默认半个小时)向服务器发送请求,获得其最新的配置信息,保证和该配置信息同步。每个puppet客户端每半小时(可以设置)连接一次服务器端,
2022-03-30 21:42:54
4218
原创 学习OpenStack踩过的坑合集
一、至今仍可用OS仓库地址为方便初学者,本文整理了截至2022年2月仍可用的OpenStack版本仓库地址,可添加到yum源进行下载CentOS 6OS版本仓库地址junohttps://vault.centos.org/centos/6.7/cloud/x86_64/openstack-juno/CentOS 7OS版本仓库地址kilohttps://vault.centos.org/centos/7.1.1503/cloud/x86_64/ope
2022-01-24 20:38:57
1627
原创 【已解决】记一次使用systemctl启动nginx导致进程假死的问题
问题:sytemctl restart nginx卡死,实际应用已经重启
2022-01-22 17:48:07
3351
原创 虚拟化容器Docker之初出茅庐篇
一、原理OpenStack是开源的云计算软件平台,部署laas(基础架构即服务),由多个相互关联的组件组成,组件控制着存储、网络等资源。服务项目名称方法描述DashboardHorizon提供了一个基于web的自服务门户,与OpenStack底层服务交互,诸如启动一个实例,分配IP地址以及配置访问控制。ComputeNova在OpenStack环境中计算实例的生命周期管理。按需响应包括生成、调度、回收虚拟机等操作。NetworkingNeutron确保为其它OpenS
2021-12-25 20:00:05
1170
原创 认证协议LDAP篇
一、什么是LDAP定义:基于X.500标准的轻量级目录访问协议,目录是一个为查询、浏览和搜索而优化的数据库,呈树形结构特点:读性能优异,写性能差,没有事务处理、回滚等复杂功能,不适合存储频繁修改的数据LDAP目录服务器是由目录数据库和一套访问协议组成的系统优势:开放的Internet标准,支持跨平台的Internet协议,在业界得到广泛认可,市场上很多产品已经加入了对LDAP的支持,大幅降低了重复开发和对接的成本二、主要产品厂商产品介绍SUNSUNONE Director
2021-12-25 19:46:52
2096
原创 认证协议RADIUS篇
概述:远程认证拨号服务,是一种分布式、C/S架构信息交互协议,通常应用在既要求较高安全性、又允许远程用户访问的各种网络环境中传输方式:UDP,端口1812和1813作为认证、计费端口,思科设备认证、授权端口为1645,计费端口1646Radius协议最初是针对拨号用户AAA的协议,随着用户接入方式的多样性发展,Radius已支持多种用户接入方式,如以太网接入等,通过认证授权来提供接入服务,通过计费来手机、记录用户对网络资源的使用架构:C/S (客户端/服务器模式)客户端:位于网络接入服务器NAS上
2021-12-25 19:40:37
3320
原创 Linux集群之HA(高可用集群)篇
LVS+Keepalive网络结构:IP备注120.10.10.10ipvsadm master120.10.10.11ipvsadm slave120.10.10.12web1120.10.10.13web21、搭建LVS DR模式,见上一篇文章Linux集群之LB(负载均衡集群)篇2、高可用搭建使用Keepalived实现高可用主副节点Keepalived设置vi /etc/keepalived/keepalived.conf! Confi
2021-12-25 19:28:43
507
2
原创 Linux集群之LB(四层负载均衡集群)篇
一、DR模式:直接路由模式:Virtual Server via Direct Routing)DR模式是通过改写请求报文的目标MAC地址,将请求发给真实服务器的,而真实服务器响应后的处理结果直接返回给客户端用户。同TUN模式一样,DR模式可以极大的提高集群系统的伸缩性。而且DR模式没有IP隧道的开销,对集群中的真实服务器也没有必要必须支持IP隧道协议的要求。但是要求调度器LB与真实服务器RS都有一块网卡连接到同一物理网段上,必须在同一个局域网环境。DR模式是互联网使用比较多的一种模式。原理:
2021-12-25 19:22:40
2184
原创 基于Python的图片批量转PDF实现
不多BB,直接上代码:from reportlab.pdfgen import canvasfrom reportlab.lib.units import inch, cmfrom reportlab.lib.pagesizes import letterfrom reportlab.platypus import SimpleDocTemplate, Paragraph, Image, PageBreakfrom reportlab.lib.pagesizes import A4,A3,A2,A
2021-12-24 21:27:58
513
原创 深入浅出SIP协议详解(以呼叫中心呼入呼出为例)
一、背景传统拨打电话流程:A呼叫B,邀请B建立通话(Invite)电话B振铃(Ring),同时电话A也可以听见振铃电话B提起表示应答,因此通话建立通话中。。。任意方挂断电话,通话结束传统电话使用电磁波传输通信信号,而现阶段网络几乎拥有完整的覆盖率,因此SIP协议的意义是在IP网络中实现网络电话功能二、协议内容sip协议是应用层协议,与其他应用层协议协同工作,通过网络控制多媒体通信会话通话双方需在IP网络中拥有一个SIP账号,区别于传统数字号码,SIP采用URL表示方法 sip:j
2021-12-24 21:25:45
16320
原创 iptables规则小记
防止CC攻击,1、拒绝连接数100以上的连接(限制并发数)iptables -I INPUT -p TCP --syn --dport 80 -m connlimit --connlimit-above 100 -j REJECT2、限制数据包一分钟之内为10个iptables -A INPUT -p icmp -m limit --limit 1/m --limit-burst 10 -j ACCEPT...
2021-12-23 20:48:05
289
原创 Linux公共服务组件之DHCP篇
一、简介DHCP(DynamicHost ConfigurationProtocol,动态主机配置协议)通常被应用在大型的局域网络环境中,主要作用是集中的管理、分配IP地址,使网络环境中的主机动态的获得IP地址、Gateway地址、DNS服务器地址等信息,并能够提升地址的使用率。二、安装安装软件包 yum -y install dhcp修改配置文件 vi /etc/dhcp/dhcpd.conf#规定子网和掩码subnet 120.10.10.0 netmask 255.255.25
2021-12-23 20:47:00
638
原创 Linux公共服务组件之DNS篇
一、简介DNS域名解析服务(Domain Name System)是用于解析域名与IP地址对应关系的服务,功能上可以实现正向解析与反向解析:正向解析:根据主机名(域名)查找对应的IP地址。反向解析:根据IP地址查找对应的主机名(域名)。应用场景:正向解析较好理解,为域名解析为ip地址;反向解析主要用于垃圾邮件拦截,例如使用xx@xx.com的邮箱给用户发送邮件,用户邮箱所在服务器会查询该邮件的ip地址,进行反向解析,若对应的域名是xx.com则接收邮件,否则放弃接收。由于在域名系统中,一个IP地址
2021-12-22 22:33:01
908
原创 Linux公共服务组件之时间同步chrony篇
一、简介定义:chrony 是网络时间协议(NTP)的通用实现。chrony 包含两个程序:chronyd 是一个可以在启动时启动的守护程序。chronyc 是一个命令行界面程序,用于监视 chronyd 的性能并在运行时更改各种操作参数。时间概念:UTC (Universal Time Coordinated):世界标准时间,属于世界统一世界GMT (Greenwich Mean Time):英国伦敦郊区的皇家格林尼治天文台的标准时间,因为本初子午线被定义在通过那里的经线。(UTC与GMT时间基
2021-12-22 09:57:47
321
原创 LVS+Keepalived详解
一、引言什么是Keepalived:Keepalived一个基于VRRP 协议来实现的 LVS 服务高可用方案,可以利用其来解决单点故障。一个LVS服务会有2台服务器运行Keepalived,一台为主服务器(MASTER),一台为备份服务器(BACKUP),但是对外表现为一个虚拟IP,主服务器会发送特定的消息给备份服务器,当备份服务器收不到这个消息的时候,即主服务器宕机的时候, 备份服务器就会接管虚拟IP,继续提供服务,从而保证了高可用性。Keepalived的作用:如上述所说,Keepalived
2021-12-21 11:24:48
6765
3
原创 存储组件之MFS详解
一、引言MFS:MooseFS是一个具有冗余容错功能的分布式网络文件系统,具有高可靠性,高可扩展性,高可容错性和高数据一致性应用场景:1、大规模高并发的线上数据存储及访问(不论大文件还是小文件)2、大规模的数据处理,如日志分析、小文件强调性能不用HDFS二、组件网络架构:管理服务器 managing server,简称master:它是管理整个mfs文件系统的主服务器,出了分发用户请求外,还用来存储整个文件系统的metadata信息,包括目录、socket、管道、块设备等的大小、属性、文件路
2021-12-19 22:08:26
4214
原创 存储组件之NFS详解
一、引言定义:网络文件系统,英文Network File System(NFS),是由SUN公司研制的UNIX表示层协议(presentation layer protocol),能使使用者访问网络上别处的文件就像在使用自己的计算机一样(转自百度百科)。二、部署与实现网络拓扑环境:IP备注172.16.2.100NFS服务端节点172.16.2.101Client客户端使用yum安装软件包yum -y install rpcbind nfs-utils
2021-12-19 17:34:07
906
原创 shell脚本之进程的查找与结束
1、查找并结束包含mysql的进程脚本#!/bin/bashpids=`ps aux | grep mysql* | grep -v grep | awk '{print $2}'`if [ -n "$pids" ]; then kill -9 $pidsfi2、TODO
2021-08-15 16:51:41
830
原创 从入门到精通系列:SQLAlchemy篇
1、SQLAlchemy入门案例from sqlalchemy import Column, String, create_engine, ForeignKeyfrom sqlalchemy.orm import sessionmaker, relationshipfrom sqlalchemy.ext.declarative import declarative_base# 创建基类Base = declarative_base()# 定义User对象class User(Base):
2021-08-13 23:05:04
268
原创 个人网站Nginx防盗链设置
1、事由:由于个人网站带宽较小,传输速率较小,尤其是在传输图片等较大的媒体文件时候。为杜绝第三方网站恶意使用自建站流量,遂进行防盗链设置。2、配置文件:修改conf文件下的server内容,添加以下字段,即可大功告成!# ()内的表示需要过滤的文件格式,不同项之间是并列关系location ~*\.(gif|jpg|jpeg|png|bmp|swf)$ { # valid_referers表示允许的reference地址,也就是域名白名单 valid_referer
2021-07-13 11:42:14
156
iphone常用号码黄页,vcf文件可直接导入,包括了各大银行,快递,大平台的服务号码,并带图片
2022-06-27
C3P0与druid连接池
2020-09-25
spring 4.0.5 jar包
2018-09-21
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人