GOLANG-02-数据类型
整型整型分为以下两个大类: 按长度分为:int8、int16、int32、int64 对应的无符号整型:uint8、uint16、uint32、uint64
其中,uint8就是我们熟知的byte型,int16对应C语言中的short型,int64对应C语言中的long型。
类型
描述
uint8
无符号 8位整型 (0 到 255)
uint16
无符号 16位整型 (0 到 65535)
uint32
无符号 32位整型 (0 到 4294967295)
uint64
无符号 64位整型 (0 到 18446744073709551615)
int8
有符号 8位整型 (-128 到 127)
int16
有符号 16位整型 (-32768 到 32767)
int32
有符号 32位整型 (-2147483648 到 2147483647)
int64
有符号 64位整型 (-9223372036854775808 到 9223372036854775807)
特殊整型
类型
描述
uint
32位操作系统上就是uint32, ...
GOLANG-01-变量常量
变量的来历程序运行过程中的数据都是保存在内存中,我们想要在代码中操作某个数据时就需要去内存上找到这个变量,但是如果我们直接在代码中通过内存地址去操作变量的话,代码的可读性会非常差而且还容易出错,所以我们就利用变量将这个数据的内存地址保存起来,以后直接通过这个变量就能找到内存上对应的数据了。
变量类型变量(Variable)的功能是存储数据。不同的变量保存的数据类型可能会不一样。经过半个多世纪的发展,编程语言已经基本形成了一套固定的类型,常见变量的数据类型有:整型、浮点型、布尔型等。
Go语言中的每一个变量都有自己的类型,并且变量必须经过声明才能开始使用。
变量声明Go语言中的变量需要声明后才能使用,同一作用域内不支持重复声明。 并且Go语言的变量声明后必须使用。
标准声明Go语言的变量声明格式为:
1var 变量名 变量类型
声明变量必须要使用
变量声明以关键字var开头,变量类型放在变量的后面,行尾无需分号。 举个例子:
123var name stringvar age intvar isOk bool
批量声明每声明一个变量就需要写var关键字会比较繁琐,go语言中还支持批量变量 ...
综合架构-DBA-14-MongoDB
逻辑结构1234Mongodb 逻辑结构 MySQL逻辑结构库database 库集合(collection) 表文档(document) 数据行
安装部署系统准备1234567891011121314151617181920212223242526272829(1)redhat或centos6.2以上系统(2)系统开发包完整(3)ip地址和hosts文件解析正常(4)iptables防火墙&SElinux关闭(5)关闭大页内存机制########################################################################root用户下在vi /etc/rc.local最后添加如下代码if test -f /sys/kernel/mm/transparent_hu ...
综合架构-DBA-13-Redis
NoSQL 产品(key-value)
RDBMS :MySQL,Oracle ,MSSQL,PG
NoSQL :Redis,MongoDB,列存储存储相关
NewSQL—–>分布式数据库架构,第三代数据库架构转型
缓存产品介绍:
memcached (大公司会做二次开发)
redis
Tair
Redis功能介绍
数据类型丰富
支持持久化
多种内存分配及回收策略
支持事务
消息队列、消息订阅
支持高可用
支持分布式分片集群 (面试)
缓存穿透\雪崩(笔试、面试)
Redis API
企业缓存产品介绍
Memcached:
优点:高性能读写、单一数据类型、支持客户端式分布式集群、一致性hash多核结构、多线程读写性能高。
缺点:无持久化、节点故障可能出现缓存穿透、分布式需要客户端实现、跨机房数据同步困难、架构扩容复杂度高
Redis:
优点:高性能读写、多数据类型支持、数据持久化、高可用架构、支持自定义虚拟内存、支持分布式分片集群、单线程读写性能极高
缺点:多线程读写较Memcached慢
memcache与redis在读写性能的对比
memcached ...
综合架构-DBA-12-Mycat
MyCAT基础架构图
image.png
MyCAT基础架构准备环境准备两台虚拟机 db01 db02每台创建四个mysql实例:3307 3308 3309 3310
删除历史环境123pkill mysqldrm -rf /data/330* mv /etc/my.cnf /etc/my.cnf.bak
创建相关目录初始化数据12345mkdir /data/33{07..10}/data -pmysqld --initialize-insecure --user=mysql --datadir=/data/3307/data --basedir=/app/mysqlmysqld --initialize-insecure --user=mysql --datadir=/data/3308/data --basedir=/app/mysqlmysqld --initialize-insecure --user=mysql --datadir=/data/3309/data --basedir=/app/mysqlmysqld --initialize-in ...
综合架构-DBA-11-Atlas
Atlas介绍
Atlas是由 Qihoo 360, Web平台部基础架构团队开发维护的一个基于MySQL协议的数据中间层项目。它是在mysql-proxy 0.8.2版本的基础上,对其进行了优化,增加了一些新的功能特性。360内部使用Atlas运行的mysql业务,每天承载的读写请求数达几十亿条。下载地址https://github.com/Qihoo360/Atlas/releases注意:
Atlas只能安装运行在64位的系统上
Centos 5.X安装 Atlas-XX.el5.x86_64.rpm,Centos 6.X安装Atlas-XX.el6.x86_64.rpm。
后端mysql版本应大于5.1,建议使用Mysql 5.6以上
安装配置1234567891011121314151617181920212223yum install -y Atlas*cd /usr/local/mysql-proxy/confmv test.cnf test.cnf.bakvim test.cnf[mysql-proxy]admin-username = useradmin-pa ...
综合架构-DBA-10-MHA高可用技术
主从复制架构演变介绍基本结构
一主一从
一主多从
多级主从
双主
循环复制
高级应用架构演变高性能架构
读写分离架构(读性能较高)代码级别MySQL proxy (Atlas,mysql router,proxySQL(percona),maxscale)、amoeba(taobao)xx-dbproxy等。
分布式架构(读写性能都提高):分库分表——cobar—>TDDL,DRDSMycat—>DBLE自主研发等。NewSQL–>TiDB
高可用架构
单活:MMM架构——mysql-mmm(google)
单活:MHA架构——mysql-master-ha(日本DeNa),T-MHA
多活:MGR ——5.7 新特性 MySQL Group replication(5.7.17) —>Innodb Cluster
多活:MariaDB Galera Cluster架构,(PXC)Percona XtraDB Cluster、MySQL Cluster(Oracle rac)架构
高可用MHA架构工作原理主库宕机处理过程
监控节点 (通过配置文件获取 ...
综合架构-DBA-09-主从复制进阶
延时从库介绍是我们认为配置的一种特殊从库.人为配置从库和主库延时N小时.
为什么要有延时从库物理损坏
主从复制非常擅长解决物理损坏
逻辑损坏
普通主从复制没办法解决逻辑损坏
配置延时从库SQL线程延时:数据已经写入relaylog中了,SQL线程”慢点”运行一般企业建议3-6小时,具体看公司运维人员对于故障的反应时间
123456mysql>stop slave;mysql>CHANGE MASTER TO MASTER_DELAY = 300;mysql>start slave;mysql> show slave status \GSQL_Delay: 300SQL_Remaining_Delay: NULL
延时从库应用故障恢复思路1主1从,从库延时5分钟,主库误删除1个库
先停业务,挂维护页
5分钟之内 侦测到误删除操作
停从库SQL线程
截取relaylog起点 :停止SQL线程时,relay最后应用位置 终点:误删除之前的position(GTID)
恢复截取的日志到从库
导出被误操作的数据到主库,但如果数据量太大不建议这样操作
...
综合架构-DBA-08-主从复制
企业高可用性标准全年无故障率(非计划内故障停机)99.9% —-> 0.001*365*24*60=525.6 min99.99% —-> 0.0001*36524\60=52.56 min99.999% —-> 0.0001*365*24*60=5.256 min
高可用架构方案
负载均衡:有一定的高可用性LVS Nginx
主备系统:有高可用性,但是需要切换,是单活的架构KA , MHA, MMM
真正高可用(多活系统):NDB Cluster Oracle RAC Sysbase cluster , InnoDB Cluster(MGR),PXC , MGC
主从复制简介
基于二进制日志复制的
主库的修改操作会记录二进制日志
从库会请求新的二进制日志并回放,最终达到主从数据同步
主从复制核心功能:辅助备份,处理物理损坏扩展新型的架构:高可用,高性能,分布式架构等
主从复制前提(搭建主从的过程)
两台以上mysql实例 ,server_id,server_uuid ...
综合架构-DBA-07-备份恢复
运维在数据库备份恢复方面的职责设计备份策略全备 、增量、时间、自动
日常备份检查备份存在性备份空间够用否
定期恢复演练(测试库)一季度 或者 半年
故障恢复通过现有备份,能够将数据库恢复到故障之前的时间点.
迁移
停机时间
回退方案
备份类型热备在数据库正常业务时,备份数据,并且能够一致性恢复(只能是innodb)对业务影响非常小
温备锁表备份,只能查询不能修改(myisam)影响到写入操作
冷备关闭数据库业务,数据库没有任何变更的情况下,进行备份数据.业务停止
备份方式及工具介绍逻辑备份工具
mysqldump
mydumper
load data in file
主从方式
mysqlbinlog
物理备份工具基于磁盘数据文件备份xtrabackup(XBK) :percona 第三方MySQL Enterprise Backup(MEB)
逻辑备份和物理备份的比较mysqldump (MDP)优点:1.不需要下载安装2.备份出来的是SQL语句,文本格式,可读性高,便于备份处理3.压缩比较高,节省备份的磁盘空间
缺点:4.依赖于数据库引擎,需要从磁盘把数据读出,然 ...