快速入门旨在介绍如何创建PolarDB O引擎集群、进行基本设置以及连接数据库集群,使您能够了解从购买PolarDB O引擎到开始使用的流程。

使用流程

通常,从购买PolarDB O引擎(创建新集群)到可以开始使用,您需要完成如下操作。

  1. 步骤一:创建PolarDB O引擎集群
  2. 步骤二:设置集群白名单
  3. 步骤三:创建数据库账号
  4. 步骤四:连接数据库集群
  5. 步骤五:创建示例数据库
  6. 步骤六:查询数据

步骤一:创建PolarDB O引擎集群

  1. 登录PolarDB控制台
  2. 单击页面左上角创建新集群
  3. 选择包年包月按量付费
    说明
    • 包年包月:在创建集群时支付计算节点(一个主节点和一个只读节点)的费用,而存储空间会根据实际数据量按小时计费,并从账户中按小时扣除。如果您要长期使用该集群,包年包月方式更为经济,而且购买时长越长,折扣越多。
    • 按量付费:无需预先支付费用,计算节点和存储空间(根据实际数据量)均按小时计费,并从账户中按小时扣除。如果您只需短期使用该集群,可以选择按量付费,用完即可释放,节省费用。
  4. 设置如下参数。
    参数 说明
    地域 集群所在的地理位置。购买后无法更换地域。
    说明 请确保PolarDB与需要连接的ECS创建于同一个地域,否则它们无法通过内网互通,只能通过外网互通,无法发挥最佳性能。
    创建方式 创建PolarDB集群的方式。
    • 创建主集群:创建一个全新的PolarDB集群。
    • 从回收站恢复:您可以通过从回收站中恢复已删除集群的备份来创建新集群。
      • 原版本:已删除集群的版本。
      • 已删除集群:已删除的集群名称。
      • 历史备份:选择想要恢复的备份。
    说明 其他选项用于创建其它引擎的数据库。
    主可用区 集群的主可用区。
    • 可用区是地域中的一个独立物理区域,不同可用区之间没有实质性区别。
    • 您可以选择将PolarDB与ECS创建在同一可用区或不同的可用区。
    • 您只需要选择主可用区,系统会自动选择备可用区。
    网络类型 固定为VPC专有网络,无需选择。
    VPC网络

    VPC交换机

    请确保PolarDB与需要连接的ECS创建于同一个VPC,否则它们无法通过内网互通,无法发挥最佳性能。
    • 如果您已创建符合您网络规划的VPC,直接选择该VPC。例如,如果您已创建ECS,且该ECS所在的VPC符合您的规划,那么选择该VPC。
    • 如果您未创建符合您网络规划的VPC,您可以使用默认VPC和交换机:
      • 默认VPC:
        • 在您选择的地域中是唯一的。
        • 网段掩码是16位,如172.31.0.0/16,最多可提供65536个私网IP地址。
        • 不占用阿里云为您分配的VPC配额。
      • 默认交换机:
        • 在您选择的可用区中是唯一的。
        • 网段掩码是20位,如172.16.0.0/20,最多可提供4096个私网IP地址。
        • 不占用VPC中可创建交换机的配额。
    • 如果以上默认VPC和交换机无法满足您的要求,您可以自行创建VPC和交换机,详情请参见使用专有网络
    兼容性
    • MySQL 8.0(与MySQL 8.0完全兼容),原生支持并行查询,特定场景下性能提升十倍,详情请参见并行查询(Parallel Query)
    • MySQL 5.7(与MySQL 5.7完全兼容)。
    • MySQL 5.6(与MySQL 5.6完全兼容)。
    • PostgreSQL 11(与PostgreSQL 11 完全兼容)。
    • 兼容Oracle语法高度兼容Oracle语法)。
    系列 默认为集群版(2-16个节点)【推荐】
    节点规格 按需选择。所有PolarDB节点均为独享型,性能稳定可靠。

    更多关于计算节点规格的详情,请参见规格与定价

    节点个数 如果源集群系列为集群版(2-16个节点)【推荐】, 系统将默认创建规格相同的两个节点(一主一只读),无需选择。
    说明 如果主节点故障,系统会自动将只读节点切换为新的主节点,并重新生成一个只读节点,关于只读节点的更多信息,请参见产品架构
    存储费用 无需选择。系统会根据实际数据使用量按小时计费,详情请参见规格与定价
    说明 创建集群时无需选择存储容量,存储容量随数据量的增减而自动弹性伸缩。
    开启TDE 选择是否开启TDE加密。启用TDE加密后,PolarDB将对集群数据文件进行加密,对于业务访问透明,会有5%~10%的性能损失。
    说明 TDE功能开启后不可关闭。
    集群名称 输入集群名称,集群名称需满足如下要求:
    • 不能以http://https://开头。
    • 长度为2~256个字符。

    如果留空,系统将为自动生成一个集群名称,创建集群后还可以修改。

    资源组 从已创建资源组中选择一个目标资源组。
    说明 资源组是在单个云账号下将一组相关资源进行统一管理的容器,一个资源只能归属于一个资源组,详情请参见RAM资源分组与授权
  5. 设置集群数量后,单击立即购买
    说明 最多可以一次性创建50个集群,适用于游戏批量开服等业务场景。
  6. 确认订单页面确认订单信息,阅读并选中服务协议,单击立即开通即可。

    开通成功后,需要10~15分钟创建集群,之后您就可以在集群列表中看到新创建的集群。

    说明
    • 当集群中的节点状态为创建中时,整个集群可能仍未创建完成,此时集群不可用。只有当集群状态为运行中时,集群才可以正常使用。
    • 请确认已选中正确的地域,否则无法看到您创建的集群。
    • 当您的数据量较大时,推荐您购买PolarDB存储包,相比按小时付费,预付费购买存储包有折扣,购买的容量越大,折扣力度就越大,详情请参见搭配存储包

步骤二:设置集群白名单

  1. 登录PolarDB控制台
  2. 在控制台左上角,选择集群所在地域。
  3. 找到目标集群,单击集群ID。
  4. 在左侧导航栏,单击配置与管理 > 集群白名单
  5. 集群白名单页面,您可以新增IP白名单分组配置已有白名单。
    配置
    • 新增白名单分组
      1. 单击新增IP白名单分组
      2. 新增IP白名单分组对话框,输入分组名称和允许访问的IP白名单地址。新增
        说明 IP白名单分组名称需满足如下要求:
        • 由小写字母、数字、下划线(_)组成。
        • 由字母开头、字母或数字结尾。
        • 长度为2~120个字符。
    • 配置白名单
      1. 单击目标IP白名单分组名称右侧的配置
      2. 配置白名单对话框,输入允许访问的IP白名单地址。配置
        说明
        • 每个集群都默认包含一个default的白名单分组,且只包含IP地址127.0.0.1,表示任何IP地址均无法访问该数据库集群。
        • 若将IP白名单设置为%或者0.0.0.0/0,表示允许任何IP地址访问数据库集群。该设置将极大降低数据库的安全性,如非必要请勿使用。
  6. 单击确定即可。
    说明 目前支持创建50个IP白名单,所有IP白名单累积支持添加1000个IP地址或地址段。

步骤三:创建数据库账号

  1. 登录PolarDB控制台
  2. 在控制台左上角,选择集群所在地域。
  3. 找到目标集群,单击集群ID。
  4. 在左侧导航栏中,单击配置与管理 > 账号管理
  5. 单击创建账号
  6. 设置以下参数:
    参数 说明
    账号名

    填写账号名称。要求如下:

    • 以小写字母开头,以字母或数字结尾。
    • 由小写字母、数字或下划线组成。
    • 长度为2~16个字符。
    • 不能使用某些预留的用户名,如root、admin。
    账号类型
    • 创建高权限账号,选择高权限账号
    • 创建普通账号,选择普通账号
    密码 设置账号的密码。要求如下:
    • 由大写字母、小写字母、数字或特殊字符组成,至少包含其中三类。
    • 长度为8~32个字符。
    • 特殊字符为:

      !@#$%^&*()_+

    确认密码 再次输入密码。
    备注 备注该账号的相关信息,便于后续账号管理。要求如下:
    • 不能以http://或https://开头。
    • 必须以大小写字母或中文开头。
    • 可以包含大小写字母、中文、数字、下划线(_)或连字符(-)。
    • 长度为2~256个字符。
  7. 单击确定

步骤四:连接数据库集群

通过客户端连接PolarDB O引擎,本文以DMS为例,操作步骤如下:

  1. 登录PolarDB控制台
  2. 在控制台左上角,选择集群所在地域。
  3. 找到目标集群,单击集群ID。
  4. 单击基本信息页面右上角的登录数据库
  5. 在弹出的对话框中,输入PolarDB集群中创建的数据库账号数据库密码
    DMS登录实例
  6. 单击登录
    说明 如果您是首次使用DMS连接PolarDB集群,系统会提示您授权白名单,单击确认后即可完成授权。
  7. 登录后刷新DMS页面,在左侧导航栏中,单击已登录实例
  8. 找到目标数据库,双击目标数据库即可切换到目标数据库。

更多连接方式请参见连接数据库集群

步骤五:创建示例数据库

  • 以下示例将为您演示如何创建表dept、表emp和表jobhist
    CREATE TABLE dept (
        deptno          NUMBER(2) NOT NULL CONSTRAINT dept_pk PRIMARY KEY,
        dname           VARCHAR2(14) CONSTRAINT dept_dname_uq UNIQUE,
        loc             VARCHAR2(13)
    );
    CREATE TABLE emp (
        empno           NUMBER(4) NOT NULL CONSTRAINT emp_pk PRIMARY KEY,
        ename           VARCHAR2(10),
        job             VARCHAR2(9),
        mgr             NUMBER(4),
        hiredate        DATE,
        sal             NUMBER(7,2) CONSTRAINT emp_sal_ck CHECK (sal > 0),
        comm            NUMBER(7,2),
        deptno          NUMBER(2) CONSTRAINT emp_ref_dept_fk
                            REFERENCES dept(deptno)
    );
    CREATE TABLE jobhist (
        empno           NUMBER(4) NOT NULL,
        startdate       DATE NOT NULL,
        enddate         DATE,
        job             VARCHAR2(9),
        sal             NUMBER(7,2),
        comm            NUMBER(7,2),
        deptno          NUMBER(2),
        chgdesc         VARCHAR2(80),
        CONSTRAINT jobhist_pk PRIMARY KEY (empno, startdate),
        CONSTRAINT jobhist_ref_emp_fk FOREIGN KEY (empno)
            REFERENCES emp(empno) ON DELETE CASCADE,
        CONSTRAINT jobhist_ref_dept_fk FOREIGN KEY (deptno)
            REFERENCES dept (deptno) ON DELETE SET NULL,
        CONSTRAINT jobhist_date_chk CHECK (startdate <= enddate)
    );
  • 以下示例将为您演示如何在表中插入数据。
    INSERT INTO dept VALUES (10,'ACCOUNTING','NEW YORK');
    INSERT INTO dept VALUES (20,'RESEARCH','DALLAS');
    INSERT INTO dept VALUES (30,'SALES','CHICAGO');
    INSERT INTO dept VALUES (40,'OPERATIONS','BOSTON');
    INSERT INTO emp VALUES (7369,'SMITH','CLERK',7902,'17-DEC-80',800,NULL,20);
    INSERT INTO emp VALUES (7499,'ALLEN','SALESMAN',7698,'20-FEB-81',1600,300,30);
    INSERT INTO emp VALUES (7521,'WARD','SALESMAN',7698,'22-FEB-81',1250,500,30);
    INSERT INTO emp VALUES (7566,'JONES','MANAGER',7839,'02-APR-81',2975,NULL,20);
    INSERT INTO emp VALUES (7654,'MARTIN','SALESMAN',7698,'28-SEP-81',1250,1400,30);
    INSERT INTO emp VALUES (7698,'BLAKE','MANAGER',7839,'01-MAY-81',2850,NULL,30);
    INSERT INTO emp VALUES (7782,'CLARK','MANAGER',7839,'09-JUN-81',2450,NULL,10);
    INSERT INTO emp VALUES (7788,'SCOTT','ANALYST',7566,'19-APR-87',3000,NULL,20);
    INSERT INTO emp VALUES (7839,'KING','PRESIDENT',NULL,'17-NOV-81',5000,NULL,10);
    INSERT INTO emp VALUES (7844,'TURNER','SALESMAN',7698,'08-SEP-81',1500,0,30);
    INSERT INTO emp VALUES (7876,'ADAMS','CLERK',7788,'23-MAY-87',1100,NULL,20);
    INSERT INTO emp VALUES (7900,'JAMES','CLERK',7698,'03-DEC-81',950,NULL,30);
    INSERT INTO emp VALUES (7902,'FORD','ANALYST',7566,'03-DEC-81',3000,NULL,20);
    INSERT INTO emp VALUES (7934,'MILLER','CLERK',7782,'23-JAN-82',1300,NULL,10);
    INSERT INTO jobhist VALUES (7369,'17-DEC-80',NULL,'CLERK',800,NULL,20,'New Hire');
    INSERT INTO jobhist VALUES (7499,'20-FEB-81',NULL,'SALESMAN',1600,300,30,'New Hire');
    INSERT INTO jobhist VALUES (7521,'22-FEB-81',NULL,'SALESMAN',1250,500,30,'New Hire');
    INSERT INTO jobhist VALUES (7566,'02-APR-81',NULL,'MANAGER',2975,NULL,20,'New Hire');
    INSERT INTO jobhist VALUES (7654,'28-SEP-81',NULL,'SALESMAN',1250,1400,30,'New Hire');
    INSERT INTO jobhist VALUES (7698,'01-MAY-81',NULL,'MANAGER',2850,NULL,30,'New Hire');
    INSERT INTO jobhist VALUES (7782,'09-JUN-81',NULL,'MANAGER',2450,NULL,10,'New Hire');
    INSERT INTO jobhist VALUES (7788,'19-APR-87','12-APR-88','CLERK',1000,NULL,20,'New Hire');
    INSERT INTO jobhist VALUES (7788,'13-APR-88','04-MAY-89','CLERK',1040,NULL,20,'Raise');
    INSERT INTO jobhist VALUES (7788,'05-MAY-90',NULL,'ANALYST',3000,NULL,20,'Promoted to Analyst');
    INSERT INTO jobhist VALUES (7839,'17-NOV-81',NULL,'PRESIDENT',5000,NULL,10,'New Hire');
    INSERT INTO jobhist VALUES (7844,'08-SEP-81',NULL,'SALESMAN',1500,0,30,'New Hire');
    INSERT INTO jobhist VALUES (7876,'23-MAY-87',NULL,'CLERK',1100,NULL,20,'New Hire');
    INSERT INTO jobhist VALUES (7900,'03-DEC-81','14-JAN-83','CLERK',950,NULL,10,'New Hire');
    INSERT INTO jobhist VALUES (7900,'15-JAN-83',NULL,'CLERK',950,NULL,30,'Changed to Dept 30');
    INSERT INTO jobhist VALUES (7902,'03-DEC-81',NULL,'ANALYST',3000,NULL,20,'New Hire');
    INSERT INTO jobhist VALUES (7934,'23-JAN-82',NULL,'CLERK',1300,NULL,10,'New Hire');

步骤六:查询数据

您可以使用SELECT语句来查询表,以下示例将查询emp表中所有的列。

SELECT * FROM emp;

 empno | ename  |    job    | mgr  |      hiredate      |   sal   |  comm   | deptno
-------+--------+-----------+------+--------------------+---------+---------+--------
  7369 | SMITH  | CLERK     | 7902 | 17-DEC-80 00:00:00 |  800.00 |         |     20
  7499 | ALLEN  | SALESMAN  | 7698 | 20-FEB-81 00:00:00 | 1600.00 |  300.00 |     30
  7521 | WARD   | SALESMAN  | 7698 | 22-FEB-81 00:00:00 | 1250.00 |  500.00 |     30
  7566 | JONES  | MANAGER   | 7839 | 02-APR-81 00:00:00 | 2975.00 |         |     20
  7654 | MARTIN | SALESMAN  | 7698 | 28-SEP-81 00:00:00 | 1250.00 | 1400.00 |     30
  7698 | BLAKE  | MANAGER   | 7839 | 01-MAY-81 00:00:00 | 2850.00 |         |     30
  7782 | CLARK  | MANAGER   | 7839 | 09-JUN-81 00:00:00 | 2450.00 |         |     10
  7788 | SCOTT  | ANALYST   | 7566 | 19-APR-87 00:00:00 | 3000.00 |         |     20
  7839 | KING   | PRESIDENT |      | 17-NOV-81 00:00:00 | 5000.00 |         |     10
  7844 | TURNER | SALESMAN  | 7698 | 08-SEP-81 00:00:00 | 1500.00 |    0.00 |     30
  7876 | ADAMS  | CLERK     | 7788 | 23-MAY-87 00:00:00 | 1100.00 |         |     20
  7900 | JAMES  | CLERK     | 7698 | 03-DEC-81 00:00:00 |  950.00 |         |     30
  7902 | FORD   | ANALYST   | 7566 | 03-DEC-81 00:00:00 | 3000.00 |         |     20
  7934 | MILLER | CLERK     | 7782 | 23-JAN-82 00:00:00 | 1300.00 |         |     10
(14 rows)

如果您需要查询指定的列,可以执行如下命令:

SELECT ename, sal, sal * 24 AS yearly_salary, deptno FROM emp;

 ename  |   sal   | yearly_salary | deptno
--------+---------+---------------+--------
 SMITH  |  800.00 |      19200.00 |     20
 ALLEN  | 1600.00 |      38400.00 |     30
 WARD   | 1250.00 |      30000.00 |     30
 JONES  | 2975.00 |      71400.00 |     20
 MARTIN | 1250.00 |      30000.00 |     30
 BLAKE  | 2850.00 |      68400.00 |     30
 CLARK  | 2450.00 |      58800.00 |     10
 SCOTT  | 3000.00 |      72000.00 |     20
 KING   | 5000.00 |     120000.00 |     10
 TURNER | 1500.00 |      36000.00 |     30
 ADAMS  | 1100.00 |      26400.00 |     20
 JAMES  |  950.00 |      22800.00 |     30
 FORD   | 3000.00 |      72000.00 |     20
 MILLER | 1300.00 |      31200.00 |     10
(14 rows)

如果您要查询部门20中工资超过1000的员工,可以执行如下命令:

SELECT ename, sal, deptno FROM emp WHERE deptno = 20 AND sal > 1000;

 ename |   sal   | deptno
-------+---------+--------
 JONES | 2975.00 |     20
 SCOTT | 3000.00 |     20
 ADAMS | 1100.00 |     20
 FORD  | 3000.00 |     20
(4 rows)

请求按排序顺序返回查询结果,例如按姓名顺序返回查询结果,可以执行如下命令:

SELECT ename, sal, deptno FROM emp ORDER BY ename;

 ename  |   sal   | deptno
--------+---------+--------
 ADAMS  | 1100.00 |     20
 ALLEN  | 1600.00 |     30
 BLAKE  | 2850.00 |     30
 CLARK  | 2450.00 |     10
 FORD   | 3000.00 |     20
 JAMES  |  950.00 |     30
 JONES  | 2975.00 |     20
 KING   | 5000.00 |     10
 MARTIN | 1250.00 |     30
 MILLER | 1300.00 |     10
 SCOTT  | 3000.00 |     20
 SMITH  |  800.00 |     20
 TURNER | 1500.00 |     30
 WARD   | 1250.00 |     30
(14 rows)

如果您需要查询某一列中不同的值,例如查询job列中有哪些职业,可以使用如下命令:

SELECT DISTINCT job FROM emp;

    job
-----------
 ANALYST
 CLERK
 MANAGER
 PRESIDENT
 SALESMAN
(5 rows)