search 2013 adfgs

大约一两个月之前做过一个小调查,大部分MySQL环境目前仍然还是用的MySQL 5.5,占比第二位的是 MySQL 5.6,再然后是5.1,也有不少爱尝鲜的朋友们开始了尝试5.7版本。

之前,通过内部邮件了解到 Oracle 最近计划直接将 MySQL 跳跃升级到 MyQL 8.x 版本。为啥会直接做如此大的跳跃性版本升级呢?

5.5 -> 5.6 -> 5.7 -> 8.0?

可能一:猜测是如上面的子版本号的变化,只不过是将版本号做了个规则调整而已。

可能二:最新的8.0版本对原有 MySQL一直保留的一些基础结构做了较大调整,如彻底放弃 MyISAM,彻底调整数据字典存放方式,对数据库之核心(查询优化器)做了较大调整等等,所以需要在大版本上做一次较大升级。

都只是猜测而已,根本原因官方并未对外宣布所以爷不得而知,当然也并不是我们需要特别关注的地方。

MySQL 8.0 的变化非常之大,值得所有 MySQL 从业者深入研究,这里我也真对我重点关注的几个特性做一个简单的记录。

  1. Storage Engine 层面的改变:
    • 彻底放弃MyISAM这一古老的存储引擎,改用 InnoDB存储引擎存储数据字典信息。
    • InnoDB 方面无论在Range Scan 还是 Full Scan 方面都进行了算法优化,较大的提高了扫描性能(类似 Oracle Full Table Scan的优化)
    • Auto Increment ID的记录在了 InnoDB 的日志中,解决了一个老掉牙的Bug
  2. Query Optimizer 层面的改变(对于熟悉 Oracle 的我来说 MySQL 的 Query Optimizer 一直都是个痛):
    • 据说整体重构了原有 Query optimizer
    • 针对 InnoDB 存储引擎深度优化,根据 Buffer Pool 中索引数据的情况调整 SQL 对索引的选择。(这个优化虽然看上去很NB,但很难说会否给未来带来麻烦)
  3. Performance Tuning 方面的改善:
    • SQL Hints 方面的加强,进一步提高了DBA/开发人员对 SQL 本身的可控性
    • 索引增加INVISIBLE(不可见)属性,方便调优时候的影响控制
    • 统计信息增加 Histogram(直方图),将会极大改善数据倾斜问题带来的 Query Optimizer 错误,改善在数据倾斜严重环境的查询性能
  4. 基础维护层面的完善:
    • 在权限层面增加了 ROLE,会大大简化 DBA 在权限管理方面的工作量,更简单清晰的做好安全管控。
    • 全局变量在线修改的持久化,在修改Global Variables 的时候,增加 PERSIST 关键字,将不仅仅只是在当前运行的Instance 的内存环境进行更改,同时也会将更改进行持久化,避免因为重启而丢失更改。
  5.  …

当然,除了上面列举的这几个本人比较关注的变化之外,还有非常非常多的改变,希望这次大版本的更新能让 MySQL 进一步提升在大型系统中的适应性。后续可能还会写几篇针对 MySQL 8.0 的文章,具体可能还需要看时间了。

之前几篇文章都主要都是 DBAAS部分,也就是主要涉及 Oracle Database Instance层面,但 Oracle 在实现 DBAAS 的时候,实际上同时也提供了 Compute 服务,基础设施服务。 这篇文章就体验一下 Oracle Cloude Service 中的 Compute 到底包含了什么?

顾名思义,Compute 自然是提供的计算服务了。而 DBAAS 只是软件服务的一种,软件本身运行就必须要计算服务,所以 Oracle 在给我们提供 DBAAS 的时候,同时也提供了 Compute 服务。

而 DBAAS 连带提供的 Compute 服务主要体现在以下几个方面:

  1. 运行 Oracle 的 OS(一台运行 Oracle Linux 的 VM)
    • 21
  2. 控制访问的 Network(一套控制网络访问的网络规则)
    • 22
  3. 存放数据的 Storage(几个虚拟磁盘卷)
    • 23
  4. 自定义 Images(自定义你镜像)
  5. 业务流程 Orchestrations(还没研究明白怎么用)

第一部分 Instance 就不用介绍了,就是基本的 OS 相关属性展示介绍。

第二部分 Network 之前在体验3 中已经做过介绍,这里也不详细介绍了。

第三部分 Storage 主要是指用于运行 Instance 所使用的存储资源,以及运行Oracle Database 和 存放数据所使用的存储资源。在该部分,除了使用系统默认创建的存储资源之外,还可以通过右侧按钮创建 Storage,如图:

24

 

此外,可以在右侧功能列表按钮还包括 挂载/取消挂载,删除,创建Snapshot 等等功能,如下图所示即为创建 Snapshot 界面。

25

 

 

完成 Snapshot创建后,可以看到所有的snapshot 列表

26

在 Oracle Cloud Service 体验系列文章中,之前已经介绍了三篇文章,分别对应 Oracle Cloud Service 的 概览,Create Instance 以及 网络配置

本文将介绍在 Oracle Cloud Service 中的 DBAAS控制台中提供的 Oracle Instance 基本管理功能,比如 Apply Patch。

首先,从我们的 Instance 列表中选择一个需要维护的 Instance,如下图:

1上图是 Instance 列表,在截图之前点开了右侧操作选项列表页。

我们从图中可以看到,可以进入 EM 管理页面,也可以进入Express 控制台和 DBAAS 监控台。此外,还有 SSH 访问信息展示页(用于增删ssh key),同时还有到网络配置的快捷入口。

下面我们看看通过点击左侧实例名称后的界面:

3

这就是点击实例名称之后进入的页面,可以看到主要分为2个部分:

  1. 概览信息
    • 包括概要信息(无力配置信息以及资源暂用情况)
    • 节点信息(RAC会有多个节点)
    • 2
    • 其他基础信息(实例在云服务中的各项信息)
  2. 管理信息
    • 补丁信息
    • 4

通过补丁列表,我们可以非常直观的了解到当前Instance 有哪些重要补丁,同时每个补丁都有具体介绍,以及应用补丁是否需要重启等信息。

每个补丁列表右侧有一个操作按钮,可以打开进行 Precheck 操作 和 Patch 操作,用以确保补丁应用过程的顺利实施。

从上面的补丁列表可以看出,我的这个 Instance 目前存在2个重要补丁,分别为:

  1. PSU Update 12.1.0.2.160419,发布于 2016.4.16日,Patch过程需要重启 Instance,属于 Database组件
  2. PSU Update 12.1.0.2.160719,发布于2016.7.16日,Patch 过程同样需要重启 Instance,也同属 Database 组件部分

 

,

上一篇体验中(Oracle Cloud Service 体验二)已经介绍了如何在 Oracle 云服务中如何创建一个 Oracle Instance,这次将介绍如何通过 Oracle 云服务的网络配置来让创建好的 Instance可以对外提供服务。

同样登录到 Oracle 云服务控制面板,打开服务控制台,然后选择“Network”,会出现如下图我这样的界面。
Network Rules
如绿色圆圈所示,我的云平台中总共有16条网络安全规则,启用的有7条。但下面列表中我只截取了上一篇文章中所示例创建的 j-test1 这个实例相关的安全规则。
红色方框中标示出了禁用的6条网络安全规则,只有绿色方框中的2条规则已经启用开放。

简要来说,就是 Oracle 云平台通过网络层面的配置搭建了一套相对完整的防火墙策略,已达到云服务的安全控制。这套网络防火墙就是通过一个一个的 Security List 锁构建,每一个 Security List 又由多个 Security Rule 组成。如下图所示:
Security-List

对于新建好的 Instance,基本上是没办法直接对外提供服务的,因为 Oracle 默认的网络规则是将所有想进入的流量(InBound)全部拒绝(DENY),仅放开(PERMIT)想出去的流量(OutBound)。
Oracle 针对每一种 InBound/OutBound提供了三种处理方式:DENY,REJECT以及PERMIT,含义分别如下:

  • DENY:直接丢弃所有信息,不做任何处理
  • REJECT:丢弃所有信息,返回告知已丢弃
  • PERMIT:允许所有请求通过

对于用户来说,必须针对每一个Instance都配置一套合适的网络规则,才能既确保数据安全又能提供正常的服务。虽然最安全的做法就是什么都不开放,但我们不可能不使用对吧,哈哈。

首先,我们至少需要开放数据库的1521(活着其他自定义端口)给我们需要连接数据库的某个(或某段或某些)地址,所以我们需要针对 InBound和OutBound各配置一条PERMIT的规则。当然,由于之前默认规则已经开放了所有的OutBound流量,所以我们实际上仅仅只需要增加一条InBound的规则。

然后,我们需要管理数据库,需要在系统层面做一些基本的数据库配置和维护工作,所以我们可能需要开放Instance 所在的主机OS访问(oracle用户的)权限,也就是我们经常使用的ssh 管理通道22端口(或者其他自定义端口)的 InBound 策略。

最后,我们可能还会有其他一些管理服务或者常用的服务如 NTP/SMTP/NS等,也都需要针对性的一一开放策略。由于这部分内容的图片涉及到部分隐私,所以就没有截取显示了。

杭州聚积宝广招各路英雄好汉加盟,具体职位信息如下描述。

项目靠谱的创业公司,发展潜力巨大,技术氛围很好,欢迎各路英雄前来!简历请发送至: jianzhaoyang at 51jujibao.com(希望进一步了解公司也可以通过此邮件沟通)

  • Java 研发工程师
    • 岗位描述
      • 负责公司应用系统的PC端/H5/安卓/苹果应用的服务端架构设计及开发;
      • 针对新项目参与项目需求分析/评审,设计文档编写等;
      • 针对现有应用进行系统架构及性能优化;
      • 针对业务数据进行分析挖掘。
    • 技能需求
      • 良好的沟通技能和团队合作能力
      • 至少1年以上移动互联网相关开发工作经验,2年Java进行Web开发经验
      • 扎实的Java基础,熟悉IO、多线程、集合等基础框架,熟悉AOP、MVC框架;
      • 熟悉Linux下常用命令,熟悉 MySQL数据库,对SQL语句的性能优化有一定了解;
      • 具备高度的抽象设计能力,善于沟通交流,有较好的团队合作能力;
      • 责任心强,有自己的想法,思路清晰,善于思考,有较好的独立解决问题的能力。
  • 前端开发工程师
    • 岗位描述
      • 公司现有产品前端H5/PC端页面的完善及维护
      • 协助产品经理,通过前端技术实现产品UI设计的效果
      • 利用服务端接口,实现前后端交互
      • 配合运营计划,开发业务活动功能
    • 技能需求
      • 至少2年以上Web前端开发经验
      • 熟练掌握前端开发技术(HTML5、CSS3、Javascript、Ajax、JQuery),了解各项技术的相关标准,并严格按照标准进行开发;
      • 能熟练高效手工编写HTML5及CSS3代码,确保代码对各种浏览器的良好兼容性,有响应式web设计的开发经验;
      • 良好的编程习惯和团队协作精神,工作积极向上
      • 理解模块化开发,对前端有技术热情和自己的理解;
  • 运维工程师
    • 岗位描述
      • 负责公司业务系统的基础设施环境搭建及后续维护;
      • 对生产突发事件快速响应,协助排查生产故障;
      • 参与应用业务系统的设计与实施,并根据线上应用运行状况提出优化建议;
      • 推动线上环境的标准化,推进运维自动化。
    • 技能需求
      • 至少2年以上互联网公司应用系统及网络运维相关工作经验
      • 深入理解linux系统及常见Web系统架构;
      • 熟悉LVS、HAproxy、Nginx、Keepalived等各种集群系统的部署和规划;
      • 熟悉代码发布流程及日志的集中化处理监控方案;
      • 熟练使用Zabbix/Cacti/Nagios等监控工具;
      • 熟练使用1种以上的脚本语言,包括:Shell、PERL、PHP、Python等;
      • 精通虚拟化技术(kvm,xen,esx之一)、云计算(CloudStack,OpenStack等)、自动化运维(监控、部署、调度、虚拟化等)领域的工作经验;
      • 有高并发的负载调优经验优先,熟悉TCP/IP ,熟悉防火墙,交换机等网络设备的安装、配置;
      • 良好的文档编写能力和故障排查能力,工作细心,责任心强,思路清晰,善于思考,有较好的独立解决问题的能力;