Database

  • 概述

    使用的Amazon Linux 2,相当于是CentOS 7,于是使用了官方的yum repo来进行安装。

    官方文档的参考:Linux downloads (Red Hat family)@postgresql.org

    添加yum仓库

    /etc/yum.repos.d/pgdg.repo
    [pgdg13]
    name=PostgreSQL 13 for RHEL/CentOS 7 - x86_64
    baseurl=https://download.postgresql.org/pub/repos/yum/13/redhat/rhel-7-x86_64
    enabled=1
    gpgcheck=0

    注意,上述文件中的url需要根据实际情况调整,需要根据主机的发行版本和需要安装的PostgreSQL版本,在仓库中找到对应的目录:目录列表

    更新yum仓库配置信息,并安装postgresql-server

    sudo yum update

    sudo yum install postgresql13-server

    添加执行文件到PATH路径

    export PATH="${PATH}:/usr/pgsql-13/bin"

    准备数据文件(database cluster)

    参考:Creating a Database Cluster

    root# mkdir /usr/local/pgsql
    root# adduser postgres
    root# chown postgres /usr/local/pgsql
    root# su postgres
    
    postgres$ export PATH="${PATH}:/usr/pgsql-13/bin"
    
    postgres$ pg_ctl -D /usr/local/pgsql/data initdb

    启动/关闭postgresql

    pg_ctl start -l logfile -D/usr/local/pgsql/data
    pg_ctl stop -D /usr/local/pgsql/data

    修改配置文件

    vim /usr/local/pgsql/data/postgresql.conf  # 例如修改 shared_buffers = 64MB

    连接数据库

    psql

  • 最近,Amazon RDS Custom开始支持了SQL Server。RDS Custom形态一方面提供托管数据库的安装、管理、弹性等能力,另一方面又提供类似自建数据库的OS访问与配置、驱动程序安装等能力。

    这种形态与阿里云数据库提供的MyBase有一些类似,那是不是同类产品呢?我们从一下几方面来看看Amazon RDS Custom。

    面向的场景:Amazon RDS Custom主要是面向一些比较封闭、传统的应用系统,需要对数据库控制、配置都有非常高要求的应用系统,让系统人员可以接触、控制RDS所运行的主机OS,从而完成这类“封闭、传统”的应用系统配置工作。所以,从这个逻辑出发,RDS Custom优先支持的是Oracle,现在又支持了SQL Server,而不是当下最流行的MySQL或者PostgreSQL。

    提供的能力:RDS Custom向用户提供了底层OS的访问权限,可以让用户一定程度上配置和管理数据库的运行环境。普通的RDS是一种全托管的数据库,用户不用关心数据库的安装配置,更不用关心底层的OS运行情况;如果基于EC2/ECS等构建数据库,则需要用户对OS、数据库做完整地管理与配置。可以这样理解,RDS Custom是一种介于这两种形态之间的一种中间形态,一方面RDS Custom提供了托管数据库地安装、管理、弹性等能力,另一方面又提供类似自建数据库地OS访问与配置、驱动程序安装等能力。下图,比较好的概括了相关能力,并给出了对比:

    一些常见的场景:

    • 在安装数据库时需要安装特定的数据库和OS补丁
    • 需要对数据库做一些特殊的配置
    • 应用系统和数据库需要通过文件的方式传输、共享数据

    RDS Custom的一些优势:

    • 安装、备份/恢复、监控/告警等,依旧可以全托管自动化完成
    • 可以在主机上运行自己的软件,例如某些第三方应用程序等
    • 可以按需的自己安装数据库补丁和OS补丁
    • 可以作为从本地环境迁移到全托管环境的一个过渡
    • 可以运行自己的系统脚本,例如监控、诊断、调度等

    与MyBase的异同:

    • 都提供了主机级别的权限,一方面向用户提供了更大自由度定制数据库和运行OS环境,另外也可以在主机上运行一些额外的软件(例如监控agent等)
    • MyBase比较重要的一点是,提供在主机级别超卖率的配置,可以让用户根据自己应用的实际情况去配置,这就可以在一些非性能关键的场景下,获得非常高的性价比。同时,MyBase也基本是全托管的(自动化安装、备份、监控等),使用起来依旧很建档,让客户更加专注于自己的业务系统。
    • 整体上,定位是不同的。RDS Custom核心是解决用户的部分传统应用部署时候对数据库有一些特殊要求的场景,所以,支持的数据库也是Oracle和SQL Server;而MyBase是提供给用户一个更加自主可控的环境,另外,MyBase是以主机为单位购买,也向用户提供更加高性价比的实例选择,基于此,希望通过这种产品形态,让用户放下一些“顾忌”,选择云数据库上云。

    所以,RDS Custom和MyBase这两个形态看起来有些像,但是出发点、形态、使用上差异也都非常大。不过有一点是一样的,都是在一些较为垂直的场景上,帮助用户更加便利、平滑的完成数据库上云。

    参考:

  • Azure数据库的Flexible Server

    ·

    一直对云数据库比较关注,在去年9月份的微软“Ignite”大会宣布推出的托管数据库“Flexible Server”(后面简称”FS”),虽然一直处于Preview状态,但是依据看到在过去一年中,该版本一直在非常快速的更新,猜测该版本应该会是未来开源托管数据库的主要形态(如有微软朋友可以帮回复确认一下),这里对比之前的”Single Server”(后面简称”SS”),对“Flexible Server”做一个概要性的介绍,详细的介绍可以直接阅读本文结尾处链接中Azure的官方文档。

    关于”Flexible Server”的”TLDR”版

    • Flexible Server就是Azure上使用了新一代底层架构的托管MySQL、PostgreSQL服务
    • 早期Azure上开源数据库托管是基于Windows(参考),称作”Single Server”,新版本托管平台基于Linux,称作Flexible Server
    • 该版本是Azure OSS开发者组2019年左右开始开发,2020年对外宣布,当前处于Preview状态
    • 该版本让开发者在管理实例时,具备更大的灵活性,包括:更多的参数管理、维护窗口控制等
    • 支持了多可用区的高可用,对于企业的核心应用来说,这应该是必须的能力
    • 是未来Azure上开源托管产品的主要形态(这是一个猜测)
    • 版本选择上的建议:
      • 当前,连续要求不高的业务,建议选择FS,因为这将是未来的主打形态
      • 如果稳定的、重要的业务,当前还是建议选择SS,毕竟是经过很长时间验证的产品形态

    继续阅读,可以了解更多关于Flexible Server的详细说明

    (more…)
  • 一直以来实现数据库的零数据丢失都是非常有挑战,尤其是跨可用区的场景下。很多核心系统为了实现这一点都投入了大量的智慧和金钱。Amazon RDS在文档都明确的写到,数据库在多AZ之间的数据是保持同步的(注:同步是指数据写入两边要同时写成功,即使一边不可用,已经提交的事务在另一边一定是成功的)。一直以来,我也很好奇Amazon RDS在哪个层面实现的同步复制。

    这个问题原本也是没有太大疑问的,可以推测应该是通过EBS层面的块复制来下。依据有两方面,有一些公开的Amazon RDS一些架构图中可以看到有EBS复制的箭头说明。另外,还有一点,只有通过EBS的复制实现跨可用区数据一致性,才可能在RDS支持的多种数据库,如MySQL、SQL Server、Oracle等,上保持架构上一致。否则,不同数据库类型的高可用和复制架构可能相差很大。

    但是,之前很长时间我还是有一个疑问,Amazon RDS复制到底是在数据库逻辑层实现的还是在EBS物理层实现的。

    既然有上面的猜测,那为什么产生了这个疑问呢?是因为,在Aurora很多的对外介绍材料(包括论文、架构介绍的slide)中,会放一个MySQL架构来突出Aurora的架构优势。这个图一直让我误以为Amazon RDS使用了数据库的binlog的复制。在了解Aurora的时候大家经常会看到如下架构图作为反面案例(参考): (more…)

  • PolarDB产品架构与实现

    ·

    这是上周在数据技术嘉年华上分享的内容:PolarDB产品架构与实现。(文件约5MB,下载比较慢,请耐心等待,点击下载(more…)

  • AWS是云计算领域的“领头羊”,产品和技术创新快速且比较踏实。re:Invent是AWS一年最盛大的线下活动(有个同事比喻,相当于阿里云的“杭州云栖大会”),一般产品的重大更新都会在这列做宣传,一直以来,我对AWS的产品都保持着高度的关注,今年,则直接来到了Las Vegas现场,近距离“观察”。

    明天AWS re:Invent大会会有AWS CEO Andy Jassy的Keynote,这里先提前做个“猜测”,猜猜一下数据库方向会发布哪些产品或者重大特性吧:

    1. 宣布Aurora Multi-Master近期GA,Global Replication Preview,Aurora PostgreSQL Serverless Preview。 继续宣传是AWS增长最快的产品,大势宣传AWS Top 100客户有75%使用了Aurora(较大概率)。

    2. 怒怼Oracle(大概率),可能会说Amazon将在2020第一季度完成去O,替代产品分布是redshift、Aurora、DynamoDB(小概率)。

    3. 会继续宣传DMS(Database Migration Service,在阿里云对应的产品是数据传输 DTS)又迁移了多少数据库,可能会重点说一下迁移了多少Oracle(小概率)到Aurora(如果这个数据比较大的话)。

    4. DynamoDB支持事务(大概率)。

    5. 继续强调AWS数据库技术是Open的。

    6. 发布其他的全新产品?(极小概率)

    明天看看结果。