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

使用流程

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

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

步骤一:创建PolarDB-O集群

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

    其他选项用于创建其它引擎的数据库。

    主可用区 集群的主可用区。
    • 可用区是地域中的一个独立物理区域,不同可用区之间没有实质性区别。
    • 您可以选择将PolarDB与ECS创建在同一可用区或不同的可用区。
    • 您只需要选择主可用区,系统会自动选择备可用区。
    网络类型

    固定为VPC专有网络,无需选择。如需使用经典网络请先任选一个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和交换机。
    资源组 资源组 您可以选择全部自营里的资源组。
    实例配置 兼容性 选择兼容Oracle语法

    PolarDB-O高度兼容Oracle语法。请参见Oracle兼容性说明

    系列 默认为普通版
    节点规格 按需选择。所有PolarDB节点均为独享型,性能稳定可靠。关于各规格的具体信息,请参见规格与定价
    节点个数
    • 无需选择。系统将自动创建一个与主节点规格相同的只读节点。
    • 如果主节点故障,系统会自动将只读节点切换为新的主节点,并重新生成一个只读节点。
    • 关于只读节点的更多信息,请参见产品架构
    存储费用 无需选择。系统会根据实际数据使用量按小时计费,详情请参见产品价格
    说明 创建集群时无需选择存储容量,存储容量随数据量的增减而自动弹性伸缩。
    开启TDE 选择是否开启TDE加密。启用TDE加密后,PolarDB将对集群数据文件进行加密,对于业务访问透明,会有5%~10%的性能损失。
    说明 TDE功能开启后不可关闭。
  5. 设置购买时长(仅针对预付费集群)和集群数量后,单击右侧的立即购买
    说明 最多可以一次性创建50个集群,适用于游戏批量开服等业务场景。
  6. 确认订单页面,确认订单信息,阅读和勾选服务协议,单击去支付
  7. 支付成功后,需要10~15分钟创建集群,之后您就可以在集群列表中看到新创建的集群。
    说明
    • 当集群中的节点状态为创建中时,整个集群可能仍未创建完成,此时集群不可用。只有当集群状态为运行中时,集群才可以正常使用。
    • 请确认已选中正确的地域,否则无法看到您创建的集群。
    • 当您的数据量较大时,推荐您购买PolarDB存储包,相比按小时付费,预付费购买存储包有折扣,购买的容量越大,折扣力度就越大。

步骤二:设置集群白名单

  1. 登录PolarDB控制台
  2. 在页面左上角,选择实例所在地域。
  3. 单击目标集群ID,进入基本信息页面。
  4. 单击配置与管理 > 集群白名单
  5. 集群白名单页面,可以配置已有白名单或新增IP白名单分组
    白名单
    • 单击操作栏中的配置,配置该IP白名单。
    • 单击新增IP白名单分组,可以新增IP白名单。
  6. 填写白名单,单击提交
    • 如果您的ECS服务器需要访问PolarDB,可在ECS实例详情页面配置信息区域,查看ECS服务器的IP地址,然后填写到白名单中。
      说明 如果ECS与PolarDB位于同一地域(例如,华东1),填写ECS的私网IP地址;如果ECS与PolarDB位于不同的地域,填写ECS的公网IP地址,或者将ECS迁移到PolarDB所在地域后填写ECS私网IP地址。
    • 如果您本地的服务器、电脑或其它云服务器需要访问PolarDB,请将其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. 单击基本信息页面右上角的登录数据库,进入数据库登录页面。
    DMS登录PolarDB-O
  5. 输入主地址和端口号(以英文冒号隔开),以及高权限账号或普通账号的用户名和密码,然后单击登录
    DMS登录仅支持主地址,不支持集群地址。
    说明 如果您是首次使用DMS连接PolarDB集群,系统会提示您授权白名单,单击确认后即可完成授权。

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

步骤五:创建示例数据库

  • 以下示例将为您演示如何创建表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)