日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

免費體驗PolarDB-X透明分布式

本文介紹了如何免費體驗PolarDB-X的透明分布式特性。

背景

PolarDB-X推出"透明分布式"系列能力,從連接、開發到管理行為均最大限度保留單機MySQL的使用體驗,讓用戶的分布式改造周期大幅縮短,研發運維團隊的原有技術棧最大限度保留。

PolarDB-X具備從單機到分布式的平滑演進能力,支持通過DDL將一張大表動態調整為分布式的分區表,結合分布式事務、以及兼容MySQL Binlog的數據回流,可完成單機到分布式的快速改造。本體驗從PolarDB-X的Auto Partition,以及兼容MySQL Binlog的CDC能力兩個方面演示透明分布式能力。

  • 基于自動化拆分和分布式Online DDL,保證單機MySQL平滑演進到分布式

  • 引入全局Binlog回流單機MySQL,確保分布式可上可下

阿里云提供了數據庫解決方案功能體驗館,提供真實免費的PolarDB分布式版實例環境和開箱即用的測試方法,您可以在線快捷體驗PolarDB-X的透明分布式能力。

影響

本功能體驗不涉及生產環境的部署,因此不會影響業務。

費用

本次體驗中,由于體驗涉及到的資源不歸屬于您,因此不會產生任何費用,您可以放心體驗。

體驗內容

體驗環境

在本免費體驗中,阿里云提供了預置環境供您操作體驗,預置環境的詳情如下:

  • 集群:提供了一個PolarDB-X實例。具體如下:

    • 內核版本:V5.4.18-17034692

    • 計算節點規格:4核16GB

    • 計算節點數量:2個

    • 存儲節點規格:4核16GB

    • 存儲節點數量:2個

    • 兼容性:MySQL 5.7

  • 提供了一臺安裝了Sysbench壓測工具的壓測機,向PolarDB-X實例運行壓測任務。壓測細節如下:

    • 測試模式:oltp_point_select_k,即對k字段進行僅含分區鍵的單點等值查詢

      說明

      本體驗中用到的Sysbench壓測模式相比標準oltp_point_select模式進行了一定調整:標準oltp_point_select模式為對ID字段進行點查,而oltp_point_select_k模式則是對k字段進行點查。

    • 壓測數據表大小:1張表,每張表10000條數據

    • 壓測并發線程數:4線程

    • 壓測持續時間:一共1分鐘

觀測指標

  • 觀測表的物理分布,可以按主鍵進行拆分。

  • 觀測改變分區鍵后與使用主鍵進行分區的性能對比。指標為TPS(Transactions Per Second),即數據庫每秒執行的事務數,以COMMIT成功次數為準。該指標可用于觀測集群性能。

  • 觀測CDC后的數據一致性。

操作步驟

  1. 進入瑤池解決方案體驗館

  2. 單擊核心功能體驗,然后單擊透明分布式功能體驗免費體驗按鈕,進入如下頁面:

    image

  3. 單擊頁面下方創建免費體驗任務按鈕。

  4. 稍等片刻后,單擊image.png刷新任務列表,可以看到您創建的體驗任務已開始。

    image

  5. 單擊查看詳情,進入實時查詢情況頁面,并單擊啟動任務

    image

    說明

    請根據頁面按鈕提示,手動點擊按鈕執行每一步操作。若在倒計時結束時沒有手動點擊執行,則會自動執行對應操作。

  6. 首先我們來體驗PolarDB-X的Auto Partitioning特性。

    1. 單擊切換到壓測庫,切換到PolarDB-X主庫mydb。

      use mydb;
    2. 單擊查看壓測表,自動執行如下命令,查看所用到的壓測表sbtest1的建表語句。

      show create table sbtest1;

      返回結果如下:

      +---------+-----------------------------------------------------+
      | Table   | Create Table                                        |
      +---------+-----------------------------------------------------+
      | sbtest1 | CREATE TABLE `sbtest1` (
      	`id` int(11) NOT NULL AUTO_INCREMENT,
      	`k` int(11) NOT NULL DEFAULT '0',
      	`c` char(120) NOT NULL DEFAULT '',
      	`pad` char(60) NOT NULL DEFAULT '',
      	PRIMARY KEY (`id`)
      ) ENGINE = InnoDB AUTO_INCREMENT = 10001 DEFAULT CHARSET = utf8 |
      +---------+-----------------------------------------------------+
      1 row in set (0.01 sec)
    3. 單擊查看物理DN,自動執行如下命令,查看表在存儲節點的分布情況。

      show storage; 

      返回結果如下:

      +------------------------------+--------------------+------------+-----------+----------+-------------+--------+-----------+-------+--------+
      | STORAGE_INST_ID              | LEADER_NODE        | IS_HEALTHY | INST_KIND | DB_COUNT | GROUP_COUNT | STATUS | DELETABLE | DELAY | ACTIVE |
      +------------------------------+--------------------+------------+-----------+----------+-------------+--------+-----------+-------+--------+
      | pxc-xdb-m-hzrth7pjc07vyb5509 | 11.197.3.159:3406  | true       | META_DB   | 2        | 2           | 0      | false     | 1     | 10     |
      | pxc-xdb-s-hzrth7pjc07vyb3208 | 11.197.8.96:3247   | true       | MASTER    | 3        | 4           | 0      | false     | 0     | 10     |
      | pxc-xdb-s-hzrth7pjc07vyb44da | 10.127.205.70:3039 | true       | MASTER    | 3        | 3           | 0      | true      | 0     | 10     |
      +------------------------------+--------------------+------------+-----------+----------+-------------+--------+-----------+-------+--------+
      3 rows in set (0.02 sec)
    4. 單擊查看表的分布,自動執行如下命令:

      show topology from sbtest1; 

      返回結果如下:

      +------+-------------------+--------------------+----------------+-------------------+-------------+------------------------------+-------------------+
      | ID   | GROUP_NAME        | TABLE_NAME         | PARTITION_NAME | SUBPARTITION_NAME | PHY_DB_NAME | DN_ID                        | STORAGE_POOL_NAME |
      +------+-------------------+--------------------+----------------+-------------------+-------------+------------------------------+-------------------+
      |    0 | MYDB_P00000_GROUP | sbtest1_R8tg_00000 | p1             |                   | mydb_p00000 | pxc-xdb-s-hzrth7pjc07vyb3208 |                   |
      |    1 | MYDB_P00001_GROUP | sbtest1_R8tg_00001 | p2             |                   | mydb_p00001 | pxc-xdb-s-hzrth7pjc07vyb44da |                   |
      |    2 | MYDB_P00000_GROUP | sbtest1_R8tg_00002 | p3             |                   | mydb_p00000 | pxc-xdb-s-hzrth7pjc07vyb3208 |                   |
      |    3 | MYDB_P00001_GROUP | sbtest1_R8tg_00003 | p4             |                   | mydb_p00001 | pxc-xdb-s-hzrth7pjc07vyb44da |                   |
      |    4 | MYDB_P00000_GROUP | sbtest1_R8tg_00004 | p5             |                   | mydb_p00000 | pxc-xdb-s-hzrth7pjc07vyb3208 |                   |
      |    5 | MYDB_P00001_GROUP | sbtest1_R8tg_00005 | p6             |                   | mydb_p00001 | pxc-xdb-s-hzrth7pjc07vyb44da |                   |
      |    6 | MYDB_P00000_GROUP | sbtest1_R8tg_00006 | p7             |                   | mydb_p00000 | pxc-xdb-s-hzrth7pjc07vyb3208 |                   |
      |    7 | MYDB_P00001_GROUP | sbtest1_R8tg_00007 | p8             |                   | mydb_p00001 | pxc-xdb-s-hzrth7pjc07vyb44da |                   |
      |    8 | MYDB_P00000_GROUP | sbtest1_R8tg_00008 | p9             |                   | mydb_p00000 | pxc-xdb-s-hzrth7pjc07vyb3208 |                   |
      |    9 | MYDB_P00001_GROUP | sbtest1_R8tg_00009 | p10            |                   | mydb_p00001 | pxc-xdb-s-hzrth7pjc07vyb44da |                   |
      |   10 | MYDB_P00000_GROUP | sbtest1_R8tg_00010 | p11            |                   | mydb_p00000 | pxc-xdb-s-hzrth7pjc07vyb3208 |                   |
      |   11 | MYDB_P00001_GROUP | sbtest1_R8tg_00011 | p12            |                   | mydb_p00001 | pxc-xdb-s-hzrth7pjc07vyb44da |                   |
      |   12 | MYDB_P00000_GROUP | sbtest1_R8tg_00012 | p13            |                   | mydb_p00000 | pxc-xdb-s-hzrth7pjc07vyb3208 |                   |
      |   13 | MYDB_P00001_GROUP | sbtest1_R8tg_00013 | p14            |                   | mydb_p00001 | pxc-xdb-s-hzrth7pjc07vyb44da |                   |
      |   14 | MYDB_P00000_GROUP | sbtest1_R8tg_00014 | p15            |                   | mydb_p00000 | pxc-xdb-s-hzrth7pjc07vyb3208 |                   |
      |   15 | MYDB_P00001_GROUP | sbtest1_R8tg_00015 | p16            |                   | mydb_p00001 | pxc-xdb-s-hzrth7pjc07vyb44da |                   |
      +------+-------------------+--------------------+----------------+-------------------+-------------+------------------------------+-------------------+
      16 rows in set (0.00 sec)
    5. 單擊查看壓測表數據分布,自動執行如下命令:

      select TABLE_SCHEMA,TABLE_NAME,STORAGE_INST_ID,PHYSICAL_TABLE,PARTITION_NAME as p_name,TABLE_ROWS as row 
      from information_schema.TABLE_DETAIL 
      where table_schema='mydb' and table_name= 'sbtest1' ;

      返回結果如下:

      +--------------+------------+------------------------------+--------------------+--------+------+
      | TABLE_SCHEMA | TABLE_NAME | STORAGE_INST_ID              | PHYSICAL_TABLE     | p_name | row  |
      +--------------+------------+------------------------------+--------------------+--------+------+
      | mydb         | sbtest1    | pxc-xdb-s-hzrth7pjc07vyb3208 | sbtest1_MXlT_00000 | p1     |  610 |
      | mydb         | sbtest1    | pxc-xdb-s-hzrth7pjc07vyb44da | sbtest1_MXlT_00001 | p2     |  632 |
      | mydb         | sbtest1    | pxc-xdb-s-hzrth7pjc07vyb3208 | sbtest1_MXlT_00002 | p3     |  680 |
      | mydb         | sbtest1    | pxc-xdb-s-hzrth7pjc07vyb44da | sbtest1_MXlT_00003 | p4     |  686 |
      | mydb         | sbtest1    | pxc-xdb-s-hzrth7pjc07vyb3208 | sbtest1_MXlT_00004 | p5     |  576 |
      | mydb         | sbtest1    | pxc-xdb-s-hzrth7pjc07vyb44da | sbtest1_MXlT_00005 | p6     |  682 |
      | mydb         | sbtest1    | pxc-xdb-s-hzrth7pjc07vyb3208 | sbtest1_MXlT_00006 | p7     |  627 |
      | mydb         | sbtest1    | pxc-xdb-s-hzrth7pjc07vyb44da | sbtest1_MXlT_00007 | p8     |  609 |
      | mydb         | sbtest1    | pxc-xdb-s-hzrth7pjc07vyb3208 | sbtest1_MXlT_00008 | p9     |  633 |
      | mydb         | sbtest1    | pxc-xdb-s-hzrth7pjc07vyb44da | sbtest1_MXlT_00009 | p10    |  632 |
      | mydb         | sbtest1    | pxc-xdb-s-hzrth7pjc07vyb3208 | sbtest1_MXlT_00010 | p11    |  593 |
      | mydb         | sbtest1    | pxc-xdb-s-hzrth7pjc07vyb44da | sbtest1_MXlT_00011 | p12    |  606 |
      | mydb         | sbtest1    | pxc-xdb-s-hzrth7pjc07vyb3208 | sbtest1_MXlT_00012 | p13    |  586 |
      | mydb         | sbtest1    | pxc-xdb-s-hzrth7pjc07vyb44da | sbtest1_MXlT_00013 | p14    |  598 |
      | mydb         | sbtest1    | pxc-xdb-s-hzrth7pjc07vyb3208 | sbtest1_MXlT_00014 | p15    |  609 |
      | mydb         | sbtest1    | pxc-xdb-s-hzrth7pjc07vyb44da | sbtest1_MXlT_00015 | p16    |  641 |
      +--------------+------------+------------------------------+--------------------+--------+------+
      16 rows in set (0.02 sec)

      可以看到,表sbtest1的建表語句中,并未指定任何分區定義(如分區鍵、分區策略等)。但從其拓撲分布和數據分布可以看到,PolarDB-X能夠自動選擇分區鍵(默認為主鍵)并對表及其索引進行水平分區

  7. 單擊啟動壓測,并等待30秒后進行后續操作。

  8. 啟動壓測后,我們來體驗PolarDB-X在改變分區鍵前后的性能對比。

    1. 單擊修改分區鍵,自動執行如下命令,將分區方式變更為k列:

      alter table sbtest1 partition by hash(k) partitions 8;
    2. 單擊再次查看表的分布,自動執行如下命令:

      show topology from sbtest1; 

      返回結果如下:

      +------+-------------------+-------------------------+----------------+-------------------+-------------+------------------------------+-------------------+
      | ID   | GROUP_NAME        | TABLE_NAME              | PARTITION_NAME | SUBPARTITION_NAME | PHY_DB_NAME | DN_ID                        | STORAGE_POOL_NAME |
      +------+-------------------+-------------------------+----------------+-------------------+-------------+------------------------------+-------------------+
      |    0 | MYDB_P00000_GROUP | sbtest1_mewg_qpne_00000 | p1             |                   | mydb_p00000 | pxc-xdb-s-hzrth7pjc07vyb3208 |                   |
      |    1 | MYDB_P00001_GROUP | sbtest1_mewg_qpne_00001 | p2             |                   | mydb_p00001 | pxc-xdb-s-hzrth7pjc07vyb44da |                   |
      |    2 | MYDB_P00000_GROUP | sbtest1_mewg_qpne_00002 | p3             |                   | mydb_p00000 | pxc-xdb-s-hzrth7pjc07vyb3208 |                   |
      |    3 | MYDB_P00001_GROUP | sbtest1_mewg_qpne_00003 | p4             |                   | mydb_p00001 | pxc-xdb-s-hzrth7pjc07vyb44da |                   |
      |    4 | MYDB_P00000_GROUP | sbtest1_mewg_qpne_00004 | p5             |                   | mydb_p00000 | pxc-xdb-s-hzrth7pjc07vyb3208 |                   |
      |    5 | MYDB_P00001_GROUP | sbtest1_mewg_qpne_00005 | p6             |                   | mydb_p00001 | pxc-xdb-s-hzrth7pjc07vyb44da |                   |
      |    6 | MYDB_P00000_GROUP | sbtest1_mewg_qpne_00006 | p7             |                   | mydb_p00000 | pxc-xdb-s-hzrth7pjc07vyb3208 |                   |
      |    7 | MYDB_P00001_GROUP | sbtest1_mewg_qpne_00007 | p8             |                   | mydb_p00001 | pxc-xdb-s-hzrth7pjc07vyb44da |                   |
      +------+-------------------+-------------------------+----------------+-------------------+-------------+------------------------------+-------------------+
      8 rows in set (0.00 sec)
    3. 單擊再次查看壓測表數據分布,自動執行如下命令:

      select TABLE_SCHEMA,TABLE_NAME,STORAGE_INST_ID,PHYSICAL_TABLE,PARTITION_NAME as p_name,TABLE_ROWS as row 
      from information_schema.TABLE_DETAIL 
      where table_schema='mydb' and table_name= 'sbtest1' ;

      返回結果如下:

      +--------------+------------+------------------------------+-------------------------+--------+------+
      | TABLE_SCHEMA | TABLE_NAME | STORAGE_INST_ID              | PHYSICAL_TABLE          | p_name | row  |
      +--------------+------------+------------------------------+-------------------------+--------+------+
      | mydb         | sbtest1    | pxc-xdb-s-hzrth7pjc07vyb3208 | sbtest1_mewg_qpne_00000 | p1     |  937 |
      | mydb         | sbtest1    | pxc-xdb-s-hzrth7pjc07vyb44da | sbtest1_mewg_qpne_00001 | p2     |  847 |
      | mydb         | sbtest1    | pxc-xdb-s-hzrth7pjc07vyb3208 | sbtest1_mewg_qpne_00002 | p3     | 1338 |
      | mydb         | sbtest1    | pxc-xdb-s-hzrth7pjc07vyb44da | sbtest1_mewg_qpne_00003 | p4     | 1296 |
      | mydb         | sbtest1    | pxc-xdb-s-hzrth7pjc07vyb3208 | sbtest1_mewg_qpne_00004 | p5     | 1917 |
      | mydb         | sbtest1    | pxc-xdb-s-hzrth7pjc07vyb44da | sbtest1_mewg_qpne_00005 | p6     |  986 |
      | mydb         | sbtest1    | pxc-xdb-s-hzrth7pjc07vyb3208 | sbtest1_mewg_qpne_00006 | p7     | 1297 |
      | mydb         | sbtest1    | pxc-xdb-s-hzrth7pjc07vyb44da | sbtest1_mewg_qpne_00007 | p8     | 1423 |
      +--------------+------------+------------------------------+-------------------------+--------+------+
      8 rows in set (0.02 sec)

      可以看到,壓測數據發生了重分布。

      在整個過程中可以觀測左側實例的TPS性能變化情況。

      image.png

  9. 接下來我們來體驗PolarDB-X兼容MySQL Binlog的CDC能力及CDC后的數據一致性。

    1. 單擊切換到同步庫,自動執行如下命令:

      use cdc_db;
    2. 單擊確認自建沒有test_11表,自動執行如下命令:

      show create table test_11 ;

      返回結果如下:

      ERROR 1146 (42S02): Table 'cdc_db.test_11' doesn't exist
    3. 單擊PolarDB分布式版創建表,在主庫自動執行如下建表命令,創建test_11表:

      CREATE TABLE `test_11` (
       `id` int(11) NOT NULL,
       `t` date NOT NULL,
       PRIMARY KEY (`id`)
       ) 
       ENGINE=InnoDB DEFAULT CHARSET=utf8 ; 
    4. 單擊增加列test_column,自動執行如下命令,在上一步主庫中創建的表中增加一列:

      alter table test_11 add column test_column INT NOT NULL DEFAULT 0; 
    5. 單擊主庫插入數據,自動執行如下命令,在主庫的test_11表中添加一行數據:

      insert into test_11(id,t,test_column) values (1111,now(),2); 
    6. 單擊從庫查看test_11表情況,在從庫中自動執行如下命令:

      select * from test_11;

      返回結果如下:

      +------+------------+-------------+
      | id   | t          | test_column |
      +------+------------+-------------+
      | 1111 | 2024-01-08 |           2 |
      +------+------------+-------------+
      1 row in set (0.01 sec)

      可以看到,主庫中創建表、新增列以及插入數據的動作(DML)已自動同步至從庫。

    7. 單擊分布式節點刪除test_11表結構,在主庫中自動執行如下命令:

      drop table test_11;
    8. 單擊查看test_11表結構,在從庫中自動執行如下命令:

      show create table test_11 ;

      返回結果如下:

      ERROR 1146 (42S02): Table 'cdc_db.test_11' doesn't exist

      可以看到,主庫中刪除表的語句(DDL)也已自動同步至從庫。

結果分析

PolarDB-X支持自動分區

PolarDB-X支持自動分區,默認主鍵拆分。從而讓移植到PolarDB-X的數據和業務擺脫對設計分區鍵的依賴,實現從單機MySQL到分布式的平滑演進。

也支持指定分區鍵拆分,從而提高整體性能。

PolarDB-X支持數據回流及數據一致性

事務型的分布式數據庫除了面向在線業務的高并發寫入以外,一般還需要將在線數據同步給下游的災備數據、匯聚業務或數據倉庫系統等,下游業務對于事務日志的一致性也有比較強的訴求,例如事務不能亂序、事務原子性、DDL支持同步等。

從本體驗可以看到,PolarDB-X支持將數據實時同步給下游的MySQL,其數據具有一致性。

相關內容