OceanBase is an enterprise distributed relational database with high availability, high performance, horizontal scalability, and compatibility with SQL standards.

Overview

What is OceanBase database

OceanBase Database is a native distributed relational database. It is developed entirely by Alibaba and Ant Group. OceanBase Database is built on a common server cluster. Based on the Paxos protocol and its distributed structure, OceanBase Database provides high availability and linear scalability. OceanBase Database is not dependent on specific hardware architectures.

OceanBase Database has these features:

  • High availability Single server failure recovers automatically. OceanBase Database supports cross-city disaster tolerance for multiple IDCs and zero data loss. OceanBase Database meets the financial industry Level 6 disaster recovery standard (RPO=0, RTO<=30 seconds).
  • Linear scalability OceanBase Database scales transparently to applications and balances the system load automatically. Its cluster can contain more than 1500 nodes. The data volume can reach petabytes. The records in a single table can be more than a trillion rows.
  • Highly compatible with MySQL OceanBase Database is compatible with MySQL protocol and syntax. You can access to OceanBase Database by using MySQL client.
  • High performance OceanBase Database supports quasi memory level data change and exclusive encoding compression. Together with the linear scalability, OceanBase Database provides high performance.
  • Low cost OceanBase Database uses PC servers and cheap SSDs. Its high storage compression ratio and high performance also reduce the storage cost and the computing cost.
  • Multi-tenancy OceanBase Database supports native multi-tenancy architecture. One cluster supports multiple businesses. Data is isolated among tenants. This reduces the deployment, operation, and maintenance costs.

OceanBase Database supports the entire core business of Alipay and the core systems of hundreds of financial institutions, such as banks and insurance companies.

Quick start

Refer to the Get Started guide (Simplified Chinese, English will be ready soon) to try out OceanBase Database.

Documentation

Supported clients

Licencing

OceanBase Database is under MulanPubL - 2.0 license. You can freely copy and use the source code. When you modify or distribute the source code, please obey the MulanPubL - 2.0 license.

How to build

debug mode

sh build.sh debug --init --make

release mode

sh build.sh release --init --make

rpm packages

sh build.sh rpm --init && cd build_rpm && make -j16 rpm

Contributing

Contributions are warmly welcomed and greatly appreciated. Here are a few ways you can contribute:

Support

In case you have any problems when using OceanBase Database, welcome reach out for help:

Issues
  • Please STOP star purchase

    Please STOP star purchase

    It's really embarrassing to purchase GitHub stars in disguise over social networks. It means nothing to the project but pollutes the community, which significantly reduces the credibility of the star number.

    For the courtesy, I won't post any screenshots or other proofs here. But, please, STOP doing it.

    Thank you.

    opened by gao-sun 27
  • Support using Ubuntu for development and deployment

    Support using Ubuntu for development and deployment

    Hey guys!

    I have successfully compiled and deployed on Ubuntu 20.04 image. I will open a PR after further test.

    [email protected]:/data/oceanbase# cat /etc/issue
    Ubuntu 20.04.2 LTS \n \l
    
    [email protected]:/data/oceanbase# build_debug/src/observer/observer --version
    build_debug/src/observer/observer --version
    observer (OceanBase CE 3.1.0)
    
    REVISION: -377fa3d62f0b4a7a20dd2e7ebaaa0ef38f190759
    BUILD_BRANCH: master
    BUILD_TIME: Jun  2 2021 16:39:57
    BUILD_FLAGS: Debug
    BUILD_INFO:
    
    Copyright (c) 2021 Ant Group Co., Ltd.
    
    OceanBase CE is licensed under Mulan PubL v2.
    You can use this software according to the terms and conditions of the Mulan PubL v2.
    You may obtain a copy of Mulan PubL v2 at:
                http://license.coscl.org.cn/MulanPubL-2.0
    THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
    EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
    MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
    See the Mulan PubL v2 for more details.
    
    [email protected]:/data/observer# obd cluster display ubuntu-test
    Get local repositories and plugins ok
    Connect to observer ok
    Wait for observer init ok
    +---------------------------------------------+
    |                   observer                  |
    +-----------+---------+------+-------+--------+
    | ip        | version | port | zone  | status |
    +-----------+---------+------+-------+--------+
    | 127.0.0.1 | 3.1.0   | 5001 | zone1 | active |
    +-----------+---------+------+-------+--------+
    
    [email protected]:/data/observer#  mysql -h127.0.0.1 -uroot -P5001
    Welcome to the MariaDB monitor.  Commands end with ; or \g.
    Your MySQL connection id is 3221487781
    Server version: 5.7.25 OceanBase 3.1.0 (r-377fa3d62f0b4a7a20dd2e7ebaaa0ef38f190759) (Built Jun  2 2021 16:39:57)
    
    Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
    
    Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
    
    MySQL [(none)]> use oceanbase
    Reading table information for completion of table and column names
    You can turn off this feature to get a quicker startup with -A
    
    Database changed
    MySQL [oceanbase]> select * from __all_server;
    +----------------------------+----------------------------+-----------+----------+----+-------+------------+-----------------+--------+-----------------------+-----------------------------------------------------------------------+-----------+--------------------+--------------+----------------+-------------------+
    | gmt_create                 | gmt_modified               | svr_ip    | svr_port | id | zone  | inner_port | with_rootserver | status | block_migrate_in_time | build_version                                                         | stop_time | start_service_time | first_sessid | with_partition | last_offline_time |
    +----------------------------+----------------------------+-----------+----------+----+-------+------------+-----------------+--------+-----------------------+-----------------------------------------------------------------------+-----------+--------------------+--------------+----------------+-------------------+
    | 2021-06-02 17:05:41.848472 | 2021-06-02 17:06:13.652835 | 127.0.0.1 |     5002 |  1 | zone1 |       5001 |               1 | active |                     0 | 3.1.0_-377fa3d62f0b4a7a20dd2e7ebaaa0ef38f190759(Jun  2 2021 16:39:57) |         0 |   1622624771655757 |            0 |              1 |                 0 |
    +----------------------------+----------------------------+-----------+----------+----+-------+------------+-----------------+--------+-----------------------+-----------------------------------------------------------------------+-----------+--------------------+--------------+----------------+-------------------+
    1 row in set (0.004 sec)
    
    MySQL [oceanbase]> Ctrl-C -- exit!
    Aborted
    

    BTW, all mysqltest cases work well on Ubuntu :)

    +---------------------------------------------------------------------------+
    |                  Result (Total 152, Passed 152, Failed 0)                 |
    +-------------------------------------------------------+----------+--------+
    | Case                                                  | Cost (s) | Status |
    +-------------------------------------------------------+----------+--------+
    | alter.alter_log_archive_option                        |     0.40 | PASSED |
    | delete.delete_from_mysql                              |     8.35 | PASSED |
    
    wip 
    opened by MizuhaHimuraki 11
  • Better compatible with  mysql  golang driver or packages

    Better compatible with mysql golang driver or packages

    Is your feature request related to a problem? Please describe.

    currently do some tests with golang driver find s error

    • while parameter _ob_enable_prepared_statement is disabled, prepared statement not supported

    • Alter charset or collation type not supported

    • xorm do With Sync2 for multi-time will cause duplicate

    Maybe add some notes or do better test for golang or other languages MySQL driver ?

    tool 
    opened by rongfengliang 8
  • Fix typo error: transfomer -> transformer

    Fix typo error: transfomer -> transformer

    What changes were proposed in this pull request?

    fix type error

    Why are the changes needed?

    #654

    Will break the compatibility? How if so?

    Does this PR introduce any user-facing change?

    How was this patch tested?

    Checklist

    • [ ] I've run the tests to see all new and existing tests pass.
    • [ ] If this Pull Request resolves an issue, I linked to the issue in the text above.
    • [ ] I've informed the technical writer about the documentation change if necessary.
    documentation typos 
    opened by Leozki 7
  • Errors during downloading metadata for repository 'oceanbase.community.stable':

    Errors during downloading metadata for repository 'oceanbase.community.stable':

    Please check the FAQ documentation before raising an issue

    Please check the old issues before raising an issue in case someone has asked the same question that you are asking.

    Describe the bug (must be provided)

    A clear and concise description of what the bug is.

    Your Environments (must be provided)

    • OS: Linux iZ2ze9eafb0m02rmgn3oinZ 5.10.60-9.al8.x86_64 #1 SMP Mon Sep 6 21:30:37 CST 2021 x86_64 x86_64 x86_64 GNU/Linux
    • CPU:
    Architecture:        x86_64
    CPU op-mode(s):      32-bit, 64-bit
    Byte Order:          Little Endian
    CPU(s):              1
    On-line CPU(s) list: 0
    Thread(s) per core:  1
    Core(s) per socket:  1
    Socket(s):           1
    NUMA node(s):        1
    Vendor ID:           GenuineIntel
    BIOS Vendor ID:      Alibaba Cloud
    CPU family:          6
    Model:               79
    Model name:          Intel(R) Xeon(R) CPU E5-2682 v4 @ 2.50GHz
    BIOS Model name:     pc-i440fx-2.1
    Stepping:            1
    CPU MHz:             2494.220
    BogoMIPS:            4988.44
    Hypervisor vendor:   KVM
    Virtualization type: full
    L1d cache:           32K
    L1i cache:           32K
    L2 cache:            256K
    L3 cache:            40960K
    NUMA node0 CPU(s):   0
    Flags:               fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx pdpe1gb rdtscp lm constant_tsc rep_good nopl nonstop_tsc cpuid tsc_known_freq pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch invpcid_single pti ibrs ibpb stibp fsgsbase tsc_adjust bmi1 hle avx2 smep bmi2 erms invpcid rtm rdseed adx smap xsaveopt arat
    

    How To Reproduce(must be provided)

    Steps to reproduce the behavior:

    Following the steps in: https://github.com/oceanbase/oceanbase/blob/master/docs/docs/docs-en/quick-start-en.md

    1. sudo yum install -y yum-utils
    2. sudo yum-config-manager --add-repo https://mirrors.aliyun.com/oceanbase/OceanBase.repo
    3. sudo yum install -y ob-deploy
    OceanBase-community-stable-el3                                                                                                                                                                            7.9 kB/s | 2.3 kB     00:00    
    Errors during downloading metadata for repository 'oceanbase.community.stable':
      - Status code: 404 for http://mirrors.aliyun.com/oceanbase/community/stable/el/3/x86_64/repodata/repomd.xml (IP: 124.238.244.248)
    Error: Failed to download metadata for repo 'oceanbase.community.stable': Cannot download repomd.xml: Cannot download repodata/repomd.xml: All mirrors were tried
    

    Expected behavior

    OBD is installed successfully.

    sudo yum install -y ob-deploy installs a very old version of OBD, which no longer exists in aliyun mirror.

    bug system compatibility 
    opened by yamasite 6
  • Compile error on centos 7

    Compile error on centos 7

    uname -a Linux MiWiFi-R4CM-srv 3.10.0-957.el7.x86_64 #1 SMP Thu Nov 8 23:39:32 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

    lscpu Architecture: x86_64 CPU op-mode(s): 32-bit, 64-bit Byte Order: Little Endian CPU(s): 4 On-line CPU(s) list: 0-3 Thread(s) per core: 1 Core(s) per socket: 4 Socket(s): 1 NUMA node(s): 1 Vendor ID: GenuineIntel CPU family: 6 Model: 165 Model name: Intel(R) Core(TM) i7-10700 CPU @ 2.90GHz Stepping: 5 CPU MHz: 2904.004 BogoMIPS: 5808.00 Hypervisor vendor: KVM Virtualization type: full L1d cache: 32K L1i cache: 32K L2 cache: 256K L3 cache: 16384K NUMA node0 CPU(s): 0-3 Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx rdtscp lm constant_tsc rep_good nopl xtopology nonstop_tsc eagerfpu pni pclmulqdq ssse3 cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt aes xsave avx rdrand hypervisor lahf_lm abm 3dnowprefetch fsgsbase avx2 invpcid rdseed clflushopt flush_l1d arch_capabilities

    bash build.sh release --init --make [ 65%] Building CXX object src/share/CMakeFiles/ob_share.dir/Unity/unity_ob_share_cache/0_cxx.cxx.o [ 65%] Building CXX object src/share/CMakeFiles/ob_share.dir/Unity/unity_ob_share_stat/0_cxx.cxx.o [ 65%] Building CXX object src/sql/CMakeFiles/ob_sql.dir/Unity/unity_ob_sql_engine/2_cxx.cxx.o [ 65%] Built target ob_clog Consolidate compiler generated dependencies of target ob_archive [ 65%] Building CXX object src/archive/CMakeFiles/ob_archive.dir/Unity/unity_ob_archive_common/0_cxx.cxx.o [ 65%] Building CXX object src/share/CMakeFiles/ob_share.dir/Unity/unity_ob_share_common/0_cxx.cxx.o /bin/sh: line 1: 16465 Killed /root/oceanbase/deps/3rd/usr/local/oceanbase/devtools/bin/clang++ -DPACKAGE_NAME=""OceanBase CE"" -DPACKAGE_STRING=""OceanBase CE 3.1.1"" -DPACKAGE_VERSION="3.1.1" -DRELEASEID="1" -I/root/oceanbase/src -I/root/oceanbase/deps/oblib/src -I/root/oceanbase/deps/easy/src/include -I/root/oceanbase/deps/easy/src -I/root/oceanbase/deps/3rd/usr/local/oceanbase/deps/devel/include -fdebug-prefix-map=/root/oceanbase=. --gcc-toolchain=/root/oceanbase/deps/3rd/usr/local/oceanbase/devtools -fcolor-diagnostics -I/root/oceanbase/deps/3rd/usr/local/oceanbase/devtools/lib/clang/11.0.1/include -O2 -g -DNDEBUG -fPIC -Wno-invalid-offsetof -D_GLIBCXX_USE_CXX11_ABI=0 -fmax-type-align=8 -D__STDC_LIMIT_MACROS -D__STDC_CONSTANT_MACROS -D_NO_EXCEPTION -Wall -Wextra -Wformat -Wno-deprecated -fno-omit-frame-pointer -mtune=core2 -Wno-address-of-packed-member -Wno-sign-compare -Werror -Wno-inconsistent-missing-override -fno-delete-null-pointer-checks -Wno-delete-non-virtual-dtor -Wno-dynamic-class-memaccess -Wno-format-security -Wno-reserved-user-defined-literal -Wno-sometimes-uninitialized -Wno-unused-value -Wno-self-assign -Wno-overloaded-virtual -Wno-unused-private-field -Wno-mismatched-tags -Wno-unused-variable -Wno-tautological-compare -Wno-psabi -Wno-c99-designator -D_GNU_SOURCE -Winvalid-pch -Xclang -include-pch -Xclang /root/oceanbase/build_release/src/CMakeFiles/server_pch.dir/cmake_pch.hxx.pch -Xclang -include -Xclang /root/oceanbase/build_release/src/CMakeFiles/server_pch.dir/cmake_pch.hxx -MD -MT src/share/CMakeFiles/ob_share.dir/Unity/unity_ob_share_common/0_cxx.cxx.o -MF CMakeFiles/ob_share.dir/Unity/unity_ob_share_common/0_cxx.cxx.o.d -o CMakeFiles/ob_share.dir/Unity/unity_ob_share_common/0_cxx.cxx.o -c /root/oceanbase/build_release/src/share/CMakeFiles/ob_share.dir/Unity/unity_ob_share_common/0_cxx.cxx make[2]: *** [src/share/CMakeFiles/ob_share.dir/Unity/unity_ob_share_common/0_cxx.cxx.o] Error 137 make[1]: *** [src/share/CMakeFiles/ob_share.dir/all] Error 2 make[1]: *** Waiting for unfinished jobs.... [ 65%] Building CXX object src/sql/CMakeFiles/ob_sql.dir/Unity/unity_ob_sql_privilege_check/0_cxx.cxx.o [ 65%] Built target ob_archive [ 65%] Building CXX object src/sql/CMakeFiles/ob_sql.dir/Unity/unity_ob_sql_engine/15_cxx.cxx.o [ 65%] Building CXX object src/sql/CMakeFiles/ob_sql.dir/Unity/unity_ob_sql_engine/12_cxx.cxx.o [ 69%] Building CXX object src/rootserver/CMakeFiles/ob_rootserver.dir/Unity/unity_ob_rootserver_backup/0_cxx.cxx.o ... ... [ 82%] Building CXX object src/sql/CMakeFiles/ob_sql.dir/Unity/unity_ob_sql_session/0_cxx.cxx.o [ 82%] Built target ob_sql make: *** [all] Error 2

    bug 
    opened by zetatez 6
  • What is the error

    What is the error "java.sql.SQLException: The observer or zone is not the master"?

    When I read data from OceanBase table use Spark mysql JDBC in parallel, it occurs this error "java.sql.SQLException: The observer or zone is not the master" . More details are: 21/10/13 07:57:22 ERROR Executor: Exception in task 58.0 in stage 0.0 (TID 58) java.sql.SQLException: The observer or zone is not the master at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:964) at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3973) at com.mysql.jdbc.MysqlIO.nextRowFast(MysqlIO.java:2115) at com.mysql.jdbc.MysqlIO.nextRow(MysqlIO.java:1989) at com.mysql.jdbc.MysqlIO.readSingleRowSet(MysqlIO.java:3410) at com.mysql.jdbc.MysqlIO.getResultSet(MysqlIO.java:470) at com.mysql.jdbc.MysqlIO.readResultsForQueryOrUpdate(MysqlIO.java:3112) at com.mysql.jdbc.MysqlIO.readAllResults(MysqlIO.java:2341) at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2736) at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2487) at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1858) at com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:1966) at org.apache.spark.sql.execution.datasources.jdbc.JDBCRDD.compute(JDBCRDD.scala:413) at org.apache.spark.rdd.RDD.computeOrReadCheckpoint(RDD.scala:346) at org.apache.spark.rdd.RDD.iterator(RDD.scala:310) at org.apache.spark.rdd.MapPartitionsRDD.compute(MapPartitionsRDD.scala:52) at org.apache.spark.rdd.RDD.computeOrReadCheckpoint(RDD.scala:346) at org.apache.spark.rdd.RDD.iterator(RDD.scala:310) at org.apache.spark.rdd.MapPartitionsRDD.compute(MapPartitionsRDD.scala:52) at org.apache.spark.rdd.RDD.computeOrReadCheckpoint(RDD.scala:346) at org.apache.spark.rdd.RDD$$anonfun$7.apply(RDD.scala:359) at org.apache.spark.rdd.RDD$$anonfun$7.apply(RDD.scala:357) at org.apache.spark.storage.BlockManager$$anonfun$doPutIterator$1.apply(BlockManager.scala:1165) at org.apache.spark.storage.BlockManager$$anonfun$doPutIterator$1.apply(BlockManager.scala:1156) at org.apache.spark.storage.BlockManager.doPut(BlockManager.scala:1091) at org.apache.spark.storage.BlockManager.doPutIterator(BlockManager.scala:1156) at org.apache.spark.storage.BlockManager.getOrElseUpdate(BlockManager.scala:882) at org.apache.spark.rdd.RDD.getOrCompute(RDD.scala:357) at org.apache.spark.rdd.RDD.iterator(RDD.scala:308) at org.apache.spark.rdd.MapPartitionsRDD.compute(MapPartitionsRDD.scala:52) at org.apache.spark.rdd.RDD.computeOrReadCheckpoint(RDD.scala:346) at org.apache.spark.rdd.RDD.iterator(RDD.scala:310) at org.apache.spark.rdd.MapPartitionsRDD.compute(MapPartitionsRDD.scala:52) at org.apache.spark.rdd.RDD.computeOrReadCheckpoint(RDD.scala:346) at org.apache.spark.rdd.RDD.iterator(RDD.scala:310) at org.apache.spark.rdd.MapPartitionsRDD.compute(MapPartitionsRDD.scala:52) at org.apache.spark.rdd.RDD.computeOrReadCheckpoint(RDD.scala:346) at org.apache.spark.rdd.RDD.iterator(RDD.scala:310) at org.apache.spark.rdd.MapPartitionsRDD.compute(MapPartitionsRDD.scala:52) at org.apache.spark.rdd.RDD.computeOrReadCheckpoint(RDD.scala:346) at org.apache.spark.rdd.RDD.iterator(RDD.scala:310) at org.apache.spark.scheduler.ShuffleMapTask.runTask(ShuffleMapTask.scala:99) at org.apache.spark.scheduler.ShuffleMapTask.runTask(ShuffleMapTask.scala:55) at org.apache.spark.scheduler.Task.run(Task.scala:123) at org.apache.spark.executor.Executor$TaskRunner$$anonfun$10.apply(Executor.scala:408) at org.apache.spark.util.Utils$.tryWithSafeFinally(Utils.scala:1360) at org.apache.spark.executor.Executor$TaskRunner.run(Executor.scala:414) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748)

    opened by mrhanice 6
  • can't grant privilege to user

    can't grant privilege to user

    Please check the FAQ documentation before raising an issue

    Please check the old issues before raising an issue in case someone has asked the same question that you are asking.

    Describe the bug (must be provided) when i grant all privilege to root, but it doesn't work. how can i to deal with it? image

    opened by luyiqu 6
  • memory 1G building is Killed

    memory 1G building is Killed

    Describe the bug (must be provided)

    get-the-oceanbase-database-by-using-source-code
    make  -j4  observer
    [ 59%] Linking CXX static library liboblib.a [ 59%] Built target oblib  Consolidate compiler generated dependencies of target ob_share [ 59%] Building CXX object src/share/CMakeFiles/ob_share.dir/Unity/unity_ob_share_partition_table/0_cxx.cxx.o make[3]: 
    [src/share/CMakeFiles/ob_share.dir/build.make:110: src/share/CMakeFiles/ob_share.dir/Unity/unity_ob_share_partition_table/0_cxx.cxx.o] Killed  
    
    

    Your Environments (must be provided)

    • mac
    • Docker:
    • Mem:1g
    • cpu: Architecture: x86_64 CPU op-mode(s): 32-bit, 64-bit Byte Order: Little Endian

    How To Reproduce(must be provided) https://open.oceanbase.com/docs/community/oceanbase-database/V3.1.0/get-the-oceanbase-database-by-using-source-code

    Expected behavior build success

    opened by watchpoints 6
  • 你们的联系方式是空的,不存在的?

    你们的联系方式是空的,不存在的?

    
    找不到地址由于系统找不到电子邮件地址&nbsp;[email protected],或该地址无法接收邮件,因此无法递送您的邮件。 | 找不到地址由于系统找不到电子邮件地址&nbsp;[email protected],或该地址无法接收邮件,因此无法递送您的邮件。 | 找不到地址 | 由于系统找不到电子邮件地址&nbsp;[email protected],或该地址无法接收邮件,因此无法递送您的邮件。
    -- | -- | -- | --
    找不到地址由于系统找不到电子邮件地址&nbsp;[email protected],或该地址无法接收邮件,因此无法递送您的邮件。 | 找不到地址 | 由于系统找不到电子邮件地址&nbsp;[email protected],或该地址无法接收邮件,因此无法递送您的邮件。
    找不到地址
    由于系统找不到电子邮件地址&nbsp;[email protected],或该地址无法接收邮件,因此无法递送您的邮件。
    以下为远程服务器的响应:554 RCPT ([email protected]) dosn't exist
    
    
    
    
    
    opened by cnmade 6
  • Remove duplicate codes in ObBloomFilterBuildTask::build_bloom_filter

    Remove duplicate codes in ObBloomFilterBuildTask::build_bloom_filter

    What changes were proposed in this pull request?

    There are some duplicate codes in ObBloomFilterBuildTask::build_bloom_filter, It seems that there were some problems in resolving the merge conflict.

    Please confirm whether it is meta.schema_->rowkey_column_number_ or meta.meta_->rowkey_column_number_.(If there is a merge conflict, it is more likely to be the meta.schema_->rowkey_column_number_, because the second change deletes the scanner, then the first change should be a modification of the rowkey_cnt_)

    Why are the changes needed?

    Will break the compatibility? How if so?

    No, it won't.

    Does this PR introduce any user-facing change?

    No.

    How was this patch tested?

    N/A

    Checklist

    • [ ] I've run the tests to see all new and existing tests pass.
    • [ ] If this Pull Request resolves an issue, I linked to the issue in the text above.
    • [x] I've informed the technical writer about the documentation change if necessary.
    opened by ScienJus 6
  • fix bux:oceanbase.__tenant_virtual_table_column definition result in ISNULL fail when rewrite stmt #970

    fix bux:oceanbase.__tenant_virtual_table_column definition result in ISNULL fail when rewrite stmt #970

    What changes were proposed in this pull request?

    Why are the changes needed?

    differ with mysql do fix bux:oceanbase.__tenant_virtual_table_column definition result in ISNULL fail when rewrite stmt

    Will break the compatibility? How if so?

    Does this PR introduce any user-facing change?

    How was this patch tested?

    Checklist

    • [ ] I've run the tests to see all new and existing tests pass.
    • [ ] If this Pull Request resolves an issue, I linked to the issue in the text above.
    • [ ] I've informed the technical writer about the documentation change if necessary.
    opened by akaError 0
  • [Bug]: oceanbase 分页sql ,hang住 导致net_write_timeout 超时

    [Bug]: oceanbase 分页sql ,hang住 导致net_write_timeout 超时

    Please check the issue list for the same bug

    • [X] I have checked issue list and this bug is encountered for the first time.

    Environment

    - OB Version&commit_id or other module version&commit_id (e.g. observer V3.1.2 8b23a93):
    - Hardware parameter:OS type & Compliler & CPU etc. 
    - Others
    ### 部署:1台obproxy 3个实例
    ### 版本:
    obproxy (OceanBase 3.2.0 1)
    observer 实例版本 3.1.1
    
    ### 硬件:
    obproxy :  8core, 32G
    observer : 16core ,64G
    
    ### OS
    obproxy及obsever 都部署在以下版本系统中
    Distributor ID: CentOS
    Description:    CentOS Linux release 7.5.1804 (Core) 
    Release:        7.5.1804
    

    Fast Reproduce Steps(Required)

    测试表为1.37亿,无主键及索引建;我使用分页抽取,开启十个并行度 十个sql如下: String q0 = "SELECT * FROM hugedata_db.t_users limit 0, 13785876"; String q1 = "SELECT * FROM hugedata_db.t_users limit 13785876, 13785876"; String q2 = "SELECT * FROM hugedata_db.t_users limit 27571752, 13785876"; String q3 = "SELECT * FROM hugedata_db.t_users limit 41357628, 13785876"; String q4 = "SELECT * FROM hugedata_db.t_users limit 55143504, 13785876"; String q5 = "SELECT * FROM hugedata_db.t_users limit 68929380, 13785876"; String q6 = "SELECT * FROM hugedata_db.t_users limit 82715256, 13785876"; String q7 = "SELECT * FROM hugedata_db.t_users limit 96501132, 13785876"; String q8 = "SELECT * FROM hugedata_db.t_users limit 110287008, 13785876"; String q9 = "SELECT * FROM hugedata_db.t_users limit 124072884, 13785876"; 任务有8成概率失败,但偶尔可以成功,设置为5或3并行度的分页大概率成功。

    测试代码如下

    image

    大部分情况是9个sql跑的很快,剩余一个sql(如q9 SELECT * FROM hugedata_db.t_users limit 124072884, 13785876,也可能是别的sql,此处仅举例,多跑几次任务 就可能是别的sql hang住) hang住了;q9在连接的状态是active的(如图) image 且q9 从日志看他并不是一点数据没读出,而是已经读出9千万了差400百万读不出且hang住了,最后会被net_write_timeout超时。

    obproxy日志如下:

    image 连接断开的日志 image

    表数据所在实例节点observer日志如下(只截图断开时间的部分日志供参考):

    image

    image

    observer 的warn日志应该是有价值的就是从截图摘出来的文本:

    [2022-06-24 14:25:28.547824] INFO  [RPC.OBMYSQL] ob_mysql_handler.cpp:186 [4081][0][Y0-0000000000000000] [lt=2] [dc=0] process wakeup c has error(ref=0, sessid=3221945693)
    [2022-06-24 14:25:28.547841] INFO  [RPC.OBMYSQL] obsm_handler.cpp:165 [4081][0][Y0-0000000000000000] [lt=4] [dc=0] kill and revert session(conn->version_=0, conn->sessid_=3221945693, proxy_sessid=1113, server_id=2, tmp_ret=0, eret=0)
    [2022-06-24 14:25:28.547849] INFO  easy_connection.c:398 [4081][0][Y0-0000000000000000] [lt=3] [dc=0] Socket closed, fd(1824), conn(10.99.0.233:2881_10.99.0.184:49818_1824_0x7fd13c97cf60 tp=0 t=1656050775514141-1656051928547783 s=3 r=0 io=998/960829412 sq
    =0), ev_is_pending(0), ev_is_active(0), ev_timer_pending_addr(0x7fd13c97bad0), ev_timer_pending(1), timeout_watcher(0x7fd13c97d030).
    [2022-06-24 14:25:28.547889] INFO  [RPC.OBMYSQL] obsm_handler.cpp:245 [4081][0][Y0-0000000000000000] [lt=2] [dc=0] mark sessid unused(conn->version_=0, conn->sessid_=3221945693, proxy_sessid=1113, server_id=2)
    [2022-06-24 14:25:28.547893] INFO  [RPC.OBMYSQL] obsm_handler.cpp:260 [4081][0][Y0-0000000000000000] [lt=3] [dc=0] unlock session of tenant(conn->version_=0, conn->sessid_=3221945693, proxy_sessid=1113, conn->tenant_id_=1001)
    [2022-06-24 14:25:28.547901] INFO  [RPC.OBMYSQL] obsm_handler.cpp:283 [4081][0][Y0-0000000000000000] [lt=2] [dc=0] connection close(easy_connection_str(c)="0.0.0.0_10.99.0.184:49818_-1_0x7fd13c97cf60 tp=0 t=1656050775514141-1656051928547783 s=3 r=0 io=998
    /960829412 sq=0", version=0, sessid=3221945693, proxy_sessid=1113, tenant_id=1001, server_id=2, from_proxy=true, from_java_client=false, c/s protocol="OB_2_0_CS_TYPE", is_need_clear_sessid_=true, ret=0)
    [2022-06-24 14:25:28.547914] WARN  [SERVER] flush_buffer_internal (ob_mysql_request_utils.cpp:204) [4026][1726][YB420A6300E9-0005E206AF4E046D] [lt=10] [dc=65174] send error happen, quit current query(ret=-4124)
    [2022-06-24 14:25:28.547919] WARN  [SERVER] flush_buffer (ob_mysql_request_utils.cpp:408) [4026][1726][YB420A6300E9-0005E206AF4E046D] [lt=4] [dc=0] failed to flush_buffer(ret=-4124)
    [2022-06-24 14:25:28.547922] WARN  [SERVER] flush_buffer (obmp_base.cpp:974) [4026][1726][YB420A6300E9-0005E206AF4E046D] [lt=3] [dc=0] failed to flush_buffer(ret=-4124)
    [2022-06-24 14:25:28.547925] WARN  [SERVER] try_encode_with (obmp_base.cpp:1078) [4026][1726][YB420A6300E9-0005E206AF4E046D] [lt=2] [dc=0] failed to flush_buffer(ret=-4124, last_ret=-4019)
    [2022-06-24 14:25:28.547928] WARN  [SERVER] response_packet (obmp_base.cpp:1121) [4026][1726][YB420A6300E9-0005E206AF4E046D] [lt=2] [dc=0] failed to encode packet(ret=-4124)
    [2022-06-24 14:25:28.547932] WARN  [SERVER] response_query_result (ob_sync_plan_driver.cpp:269) [4026][1726][YB420A6300E9-0005E206AF4E046D] [lt=2] [dc=0] response packet fail(ret=-4124, row=0x7fd3656edcb0, row_num=9789781, can_retry=false)
    [2022-06-24 14:25:28.547936] WARN  [SERVER] response_query_result (ob_sync_plan_driver.cpp:287) [4026][1726][YB420A6300E9-0005E206AF4E046D] [lt=2] [dc=0] fail to iterate and response(ret=-4124, row_num=9789781, can_retry=false)
    [2022-06-24 14:25:28.547939] WARN  [SERVER] response_result (ob_sync_plan_driver.cpp:76) [4026][1726][YB420A6300E9-0005E206AF4E046D] [lt=3] [dc=0] response query result fail(ret=-4124)
    [2022-06-24 14:25:28.548027] WARN  [SQL.EXE] end_participant (ob_sql_trans_control.cpp:1445) [4026][1726][YB420A6300E9-0005E206AF4E046D] [lt=2] [dc=0] session has been killed(ret=-5066, my_session->get_session_state()=4, my_session->get_sessid()=322194569
    3, proxy_sessid=1113)
    [2022-06-24 14:25:28.548034] WARN  [SQL] end_participant (ob_result_set.cpp:462) [4026][1726][YB420A6300E9-0005E206AF4E046D] [lt=3] [dc=0] fail to end participant(ret=-5066, is_rollback=false, participants=[{tid:1100611139454025, partition_id:0, part_cnt:
    0}])
    [2022-06-24 14:25:28.548038] WARN  [SQL.EXE] end_stmt (ob_sql_trans_control.cpp:1249) [4026][1726][YB420A6300E9-0005E206AF4E046D] [lt=3] [dc=0] session has been killed(ret=-5066, my_session->get_session_state()=4, my_session->get_sessid()=3221945693, prox
    y_sessid=1113)
    [2022-06-24 14:25:28.548043] WARN  [SQL] end_stmt (ob_result_set.cpp:370) [4026][1726][YB420A6300E9-0005E206AF4E046D] [lt=3] [dc=0] fail to end stmt(ret=-5066, is_rollback=true)
    [2022-06-24 14:25:28.548047] WARN  [SQL] close (ob_result_set.cpp:843) [4026][1726][YB420A6300E9-0005E206AF4E046D] [lt=2] [dc=0] fail close main query(ret=0, do_close_plan_ret=-5066)
    [2022-06-24 14:25:28.548050] WARN  [SERVER] response_result (ob_sync_plan_driver.cpp:92) [4026][1726][YB420A6300E9-0005E206AF4E046D] [lt=1] [dc=0] close result set fail(cret=-5066)
    [2022-06-24 14:25:28.548060] INFO  [SERVER] obmp_base.cpp:1163 [4026][1726][YB420A6300E9-0005E206AF4E046D] [lt=2] [dc=0] sending error packet(err=-4124, bt="0x9786d2e 0x9297565 0x928e97d 0x92bbee1 0x92b8db9 0x98ad35c 0x90a956f 0x9089efb 0x90a81cf 0x9087e0
    4 0x9088327 0x2bf4284 0x95718e5 0x9570572 0x956d09f", extra_err_info=NULL)
    [2022-06-24 14:25:28.548063] WARN  [SERVER] send_error_packet (obmp_base.cpp:1170) [4026][1726][YB420A6300E9-0005E206AF4E046D] [lt=3] [dc=0] connection already disconnected(ret=-4124)
    [2022-06-24 14:25:28.548066] WARN  [SERVER] response_result (ob_sync_plan_driver.cpp:196) [4026][1726][YB420A6300E9-0005E206AF4E046D] [lt=2] [dc=0] send error packet fail(sret=-4124, ret=-4124)
    [2022-06-24 14:25:28.548069] WARN  [SERVER] do_process (obmp_query.cpp:670) [4026][1726][YB420A6300E9-0005E206AF4E046D] [lt=2] [dc=0] execute query fail(ret=-4124, timeout_timestamp=1656223575515378)
    [2022-06-24 14:25:28.548087] INFO  [SQL.SESSION] ob_sql_session_info.cpp:90 [4026][1726][YB420A6300E9-0005E206AF4E046D] [lt=3] [dc=0] revert schema guard success by sql(session_id=1113, tenant_id=1001, schema_version=1655974784316328)
    [2022-06-24 14:25:28.548097] WARN  [SHARE.SCHEMA] revert (ob_schema_mgr_cache.cpp:89) [4026][1726][YB420A6300E9-0005E206AF4E046D] [lt=3] [dc=0] long time to hold one guard(schema_mgr=0x7fcfea6da4d0, tenant_id=1, version=1655880042729544, cur_timestamp=165
    6051928548093, ref_timestamp=1656050775514780, lbt()="0x9786d2e 0x2787772 0x2555ca8 0x6025124 0x586265f 0x92bc7f8 0x92b8db9 0x98ad35c 0x90a956f 0x9089efb 0x90a81cf 0x9087e04 0x9088327 0x2bf4284 0x95718e5 0x9570572 0x956d09f")
    [2022-06-24 14:25:28.548103] WARN  [SHARE.SCHEMA] revert (ob_schema_mgr_cache.cpp:89) [4026][1726][YB420A6300E9-0005E206AF4E046D] [lt=4] [dc=0] long time to hold one guard(schema_mgr=0x7fcf85bd62d0, tenant_id=1001, version=1655974784316328, cur_timestamp=
    1656051928548101, ref_timestamp=1656050775514780, lbt()="0x9786d2e 0x2787772 0x2555ca8 0x6025124 0x586265f 0x92bc7f8 0x92b8db9 0x98ad35c 0x90a956f 0x9089efb 0x90a81cf 0x9087e04 0x9088327 0x2bf4284 0x95718e5 0x9570572 0x956d09f")
    [2022-06-24 14:25:28.548127] WARN  [SQL.SESSION] set_session_state_ (ob_basic_session_info.cpp:4140) [4026][1726][YB420A6300E9-0005E206AF4E046D] [lt=3] [dc=0] session is killed(ret=-5066, sessid_=3221945693, proxy_sessid_=1113, version_=0, state=1)
    [2022-06-24 14:25:28.548133] WARN  [SERVER] process (obmp_query.cpp:293) [4026][1726][YB420A6300E9-0005E206AF4E046D] [lt=3] [dc=0] fail execute sql(conn_valid=false, ret=-4124, ret="OB_CONNECT_ERROR")
    [2022-06-24 14:25:28.548142] WARN  [SERVER] process (obmp_query.cpp:320) [4026][1726][YB420A6300E9-0005E206AF4E046D] [lt=3] [dc=0] connection in error, maybe has disconnected(tmp_ret=-4124)
    [2022-06-24 14:25:28.548179] TRACE [TRACE]obmp_base.cpp:911 [4026][1726][YB420A6300E9-0005E206AF4E046D] [lt=2] [dc=0] [slow query](TRACE=begin_ts=1656050775515493 2022-06-24 06:06:15.515493|[process_begin] u=0 in_queue_time:115, receive_ts:165605077551537
    8, enqueue_ts:1656050775515491|[start_sql] u=0 addr:{ip:"10.99.0.184", port:49818}|[query_begin] u=1 trace_id:YB420A6300E9-0005E206AF4E046D|[before_processor_run] u=0 |[session] u=1 sid:3221945693, tenant_id:1001|[parse_begin] u=3 stmt:"SELECT `user_code`
    ,`user_name`,`label`,`user_state`,`create_time`,`update_time`,`delete_flag`,`in_flow`,`contact_type`,`device_type` FROM `hugedata_db`.`t_users`   limit 124072884, 13785876", stmt_len:189|[cache_get_plan_begin] u=1 |[tl_calc_by_range_end] u=4 |[tl_calc_par
    t_id_end] u=0 |[pc_choose_plan] u=1 |[check_priv] u=1 |[cache_get_plan_end] u=0 |[plan_id] u=0 plan_id:3886|[exec_begin] u=2 arg1:false, end_trans_cb:false|[start_trans] u=14 trans_id:{hash:13803104520073566401, inc:3127477, addr:{ip:"10.99.0.233", port:2
    882}, t:1656050775515516}|[start_trans] u=0 trans_id:{hash:13803104520073566401, inc:3127477, addr:{ip:"10.99.0.233", port:2882}, t:1656050775515516}, timeout:1656223575515378, start_time:1656050775515378|[do_open_plan_begin] u=0 plan_id:3886|[sql_start_s
    tmt_begin] u=1 |[sql_start_stmt_end] u=17 |[exec_plan_begin] u=0 |[exec_plan_end] u=7 |[sql_start_participant_begin] u=0 |[start_part] u=8 ret:0, trans_id:{hash:13803104520073566401, inc:3127477, addr:{ip:"10.99.0.233", port:2882}, t:1656050775515516}|[sq
    l_start_participant_end] u=1 |[do_open_plan_end] u=0 |[storage_table_scan_begin] u=12 |[storage_table_scan_end] u=120 |[get_row] u=218283510 |[close_plan_begin] u=934748745 |[revert_scan_iter] u=80 |[end_participant_begin] u=2 |[end_participant] u=6 ret:-
    5066|[end_participant_end] u=7 |[start_end_stmt] u=0 |[end_stmt] u=9 |[close_plan_end] u=0 |[auto_end_plan_begin] u=3 |[auto_end_plan_end] u=0 |[result_set_close] u=0 ret:-5066, arg1:-5066, arg2:0, arg3:0, async:false|[exec_end] u=19 |[query_end] u=63 |[p
    rocess_end] u=14 run_ts:1656050775515494|total_timeu=1153032652)
    [2022-06-24 14:25:28.548171] INFO  [SQL.SESSION] ob_sql_session_info.cpp:322 [4019][1712][Y0-0000000000000000] [lt=13] [dc=0] end trans successfully(sessid=3221945693, proxy_sessid=1113, version=0, trans id={hash:13803104520073566401, inc:3127477, addr:"1
    0.99.0.233:2882", t:1656050775515516}, has_called_txs_end_trans=true)
    [2022-06-24 14:25:28.548208] INFO  [SERVER] obmp_disconnect.cpp:86 [4019][1712][Y0-0000000000000000] [lt=13] [dc=0] free session successfully(sessid=3221945693, version=0)
    

    Actual Behavior

    q9 为什么会hang住,读不出数据,且设置net_write_timeout也是无效的(https://github.com/oceanbase/oceanbase/issues/972)

    Expected Behavior

    No response

    other information

    No response

    bug 
    opened by xiaoxinniux 0
  • navicat支持调整modify after语法

    navicat支持调整modify after语法

    我们在使用中发现,通过navicat直接修改一个默认为null的int类型fdz字段,修改为默认为0。 image 通过查看日志提示为[2022-06-24 13:19:03.501862] WARN [SQL] stmt_query (ob_sql.cpp:171) [21616][1208][YB427F000001-0005E1F1854B6179] [lt=10] [dc=0] fail to handle text query(stmt=ALTER TABLE wcnkafa.gj MODIFY COLUMN fdz int(1) NULL DEFAULT 0 AFTER codeOrName, ret=-4007) 与老师沟通反馈后,希望完善功能,感谢支持。

    opened by Liuhw-1025 1
  • [Bug]: net_write_timeout 设置此参数无效

    [Bug]: net_write_timeout 设置此参数无效

    Please check the issue list for the same bug

    • [X] I have checked issue list and this bug is encountered for the first time.

    Environment

    - OB Version&commit_id or other module version&commit_id (e.g. observer V3.1.2 8b23a93):
    - Hardware parameter:OS type & Compliler & CPU etc. 
    - Others
    ### 部署:1台obproxy 3个实例
    ### 版本:
    obproxy (OceanBase 3.2.0 1)
    observer 实例版本 3.1.1
    
    ### 硬件:
    obproxy :  8core, 32G
    observer : 16core ,64G
    
    ### OS
    obproxy及obsever 都部署在以下版本系统中
    Distributor ID: CentOS
    Description:    CentOS Linux release 7.5.1804 (Core) 
    Release:        7.5.1804
    
    
    
    

    Fast Reproduce Steps(Required)

    我是用流模式读取ob (1.3亿左右),跑了45分钟报的是这个错 com.alipay.oceanbase.jdbc.exceptions.jdbc4.CommunicationsException: App lication was streaming results when the connection failed. Consider raising value of 'net_write_timeout' on the server. net_write_timeout这个参数默认是60s;然后我在obproxy 通过set global net_write_timeout=28800; 但是跑任务依然报相同的错(其实jdbcurl也设置了netTimeoutForStreamingResults=28800),感觉没有生效,也就是说我在服务端及客户端的jdbcUrl都尝试调大参数net_write_timeout ,但任务依然45分钟左右失败,报net_write_timeout 超时,感觉没有生效。 ps:一下参数也是设置了的 "set ob_trx_idle_timeout=172800000000;" "set wait_timeout=300000;" "set ob_query_timeout=172800000000;" "set ob_trx_timeout=172800000000;"

    Actual Behavior

    com.alipay.oceanbase.jdbc.exceptions.jdbc4.CommunicationsException: App lication was streaming results when the connection failed. Consider raising value of 'net_write_timeout' on the server. a326b5ea9d42bcddcf73d9245c0a5f8


    Expected Behavior

    1

    other information

    1

    bug 
    opened by xiaoxinniux 2
  • 是否能增加一个系统表来帮忙判断是否存在热点分区?

    是否能增加一个系统表来帮忙判断是否存在热点分区?

    读写热点始终是数据库的一个核心问题,分布式数据库中的热点读写容易导致其中单台server的性能抖动。希望能增加一个功能来帮助判断一个时间段内哪些partition是热点parititon,可能有点类似于tidb中判断hot region的TIDB_HOT_REGIONS表。原有的oceanbase中的gv$partition_audit视图只记录了partition的读写操作数量,而且是全局性质的,并不好帮助线上排障。

    opened by TyphoonTai 1
Releases(v3.1.3_CE_BP1)
  • v3.1.3_CE_BP1(Apr 15, 2022)

    RELEASE NOTE

    About this version

    This version fixed some bugs.

    BUGFIX

    • Fix observer restart failed in some extreme environment because fetch slog again failed.( #a09d313);
    • Decrease the memory limit of MINI MODE docker image.( #7a49bef);

    发布说明

    发版目的

    本次发版主要是BUG修复。

    BUG 修复

    • 修复极端场景下,ob重启回放slog失败,导致启动失败的问题( #a09d313);
    • 调低MINI MODE的内存限制( #7a49bef);
    Source code(tar.gz)
    Source code(zip)
    oceanbase-ce-3.1.3-10100032022041510.el7.aarch64.rpm(36.58 MB)
    oceanbase-ce-3.1.3-10100032022041510.el7.x86_64.rpm(47.10 MB)
    oceanbase-ce-3.1.3-10100032022041510.el8.aarch64.rpm(36.60 MB)
    oceanbase-ce-3.1.3-10100032022041510.el8.x86_64.rpm(47.15 MB)
    oceanbase-ce-devel-3.1.3-10100032022041510.el7.aarch64.rpm(45.01 MB)
    oceanbase-ce-devel-3.1.3-10100032022041510.el7.x86_64.rpm(57.44 MB)
    oceanbase-ce-devel-3.1.3-10100032022041510.el8.aarch64.rpm(45.78 MB)
    oceanbase-ce-devel-3.1.3-10100032022041510.el8.x86_64.rpm(58.27 MB)
    oceanbase-ce-libs-3.1.3-10100032022041510.el7.aarch64.rpm(144.07 KB)
    oceanbase-ce-libs-3.1.3-10100032022041510.el7.x86_64.rpm(154.64 KB)
    oceanbase-ce-libs-3.1.3-10100032022041510.el8.aarch64.rpm(150.90 KB)
    oceanbase-ce-libs-3.1.3-10100032022041510.el8.x86_64.rpm(159.23 KB)
    oceanbase-ce-utils-3.1.3-10100032022041510.el7.aarch64.rpm(36.54 MB)
    oceanbase-ce-utils-3.1.3-10100032022041510.el7.x86_64.rpm(47.07 MB)
    oceanbase-ce-utils-3.1.3-10100032022041510.el8.aarch64.rpm(36.57 MB)
    oceanbase-ce-utils-3.1.3-10100032022041510.el8.x86_64.rpm(47.13 MB)
  • v3.1.3_CE(Mar 30, 2022)

    RELEASE NOTE

    Please refert to https://open.oceanbase.com/blog/10900260 for more Details.

    | Item | Description | | -------- | ------------------ | | Release date | 2022-3-30 | | Release number | V3.1.3 | | Commit number | 3d79cacb37012cf61b7cb8faf00d9a6bb152bcd1 |

    About this version

    In V3.1.3, OceanBase Database enhanced its ecological capabilities to provide better services for community users.

    • Supports JSON data types and provides OBKV HBASE client, to support semi-structured and NoSQL scenarios.
    • Supports connecting to OceanBase Database via MySQL native drivers including Python, Go and ODBC, supports k8s container orchestration by using ob-operator, and supports ARM platforms.
    • Stranger product capabilities: supports a minimum resource specification of 2C8GB, and improves the reliability of CDC link synchronization.

    New features

    Support JSON data type

    In this version, OceanBase Database supports DDL, index creation, SQL query and data type conversion operations, and supports all the JSON functions of MySQL 5.7 and some of JSON functions of MySQL 8.0.

    • Supports four basic types (string, number, bool and NULL) and two structural types (objects and array).
    • Supports creating a JSON type column when creating a table or add a column.
    • Supports creating indexes on the basis of a JSON type column.
    • Supports referencing JSON objects using -> and ->> operators.
    • Supports using JSON text in SQL statements, including SELECT/INSERT/UPDATE/DELETE.
    • Supports all the JSON functions of MySQL 5.7 and some new JSON functions (for example, JSON_OVERLAPS() and JSON_VALUE() ) of MySQL 8.0.

    Provide OBKV HBASE client

    Applications can obtain API interfaces that are compatible with HBASE (HBASE 0.94) by using this client, and communicate with OceanBase Database via TABLE API interface protocol. Besides, in this version, OceanBase Database supports WideColumn data mode, optimizes the Filter logic, and supports KEY, RANGE and Prefix partitions.

    Compatible with MySQL native drivers

    In this version, OceanBase Database supports being connected via the following MySQL native drivers:

    • Supports Python3 pyMySQL and Python2 MySQL-python drivers.
    • Supports golang Go-SQL-Driver/MySQL driver.
    • Supports Unix ODBC driver.

    Provide ob-operator and support K8s container orchestration

    With ob-operator, OceanBase Database can be deployed on Kubernetes clusters on public cloud or on-premise environments. ob-operator can be deployed by using YAML files or Kustomize. ob-operator provides the following functions.

    • Supports deploying OceanBase clusters on k8s.
    • Supports creating, deleting , scaling in/out clusters and lifecycle management of clusters.
    • Supports creating and deleting Zone.
    • Supports creating, deleting, restarting OBServer instances.
    • Supports viewing cluster, Zone and OBServer status via kubectl commands.
    • Supports managing k8s resources via HTTP API.

    Support ARM platforms

    OceanBase Database and OBProxy are tested and verified on ARM platforms. In V3.1.3, users can develop, compile and test and deploy applications on ARM platforms.

    Support lower specifications

    In V3.1.3, OceanBase Database provides 2C8GB Docker images. Users can learn and use OceanBase Database with less resources. Enhance the reliability of CDC data synchronization Formerly, the data captured by CDC from OceanBase Database is stored in memory and then provided to downstream consumers, and this presents very high requirements on server specifications and might cause data synchronization failure on customers' key business. Therefore, OceanBase Database enhances the sychronization capability of CDC link.

    • Supports persistence mode. Before data sychronization, data is first stored temporarilly in local disk and then be transferred to the downstream consumers via the CDC link, and the transaction data stored in local disk is deleted after being consumed, thus reducing the capacity of memory occpied during data synchronization.
    • Supports big transaction. In V3.1.3, OceanBase Database optimizes the usage of memory during big transaction synchromization. This together with the persistence mode can fultill the data synchronization requirements in big transaction scenarios.

    Improves usability

    • Resource capacity parameters (storage and memory) can be configured as a decimal, for example, alter system set datafile_size ='11.5G';.
    • Links directing to the related help information is printed when errors occur to OBD.
    • ob_admin will filter out business data while performing Clog parsing.
    • information_schema.TABLES supports ENGINE.
    • Documentations are opened to github where you can commit doc issues and push requests.

    Feature changes

    • Change the default index of partition table to local index To better meet business requirements, the default index created on partition table is changed to local index. If you want to create global index, refer to create table ad1(c1 int primary key, c2 int, index(c2) global)partition by key(c1) partitions 2;.
    • Change to default table creation action to non-strict mode By default, OceanBase Database judges that a table is successfully created when the majority of replicas are successfully created. If you want to use the strict mode, set ob_create_table_strict_mode to False.

    Bugfixes

    • Fixes the flashback table function. Tables deleted will be stored temporarilly in the recycle bin of OceanBase Database, and can be restored using the flashback table command.
    • Fixes the defect that when the TIMESTAMP precision is modified the time value returned changes. In V3.1.3, when the TIMESTAMP precision is modified, for example modifying the column type from TIMESTAMP(0) to TIMESTAMP(6), the time value returned will not change.
    • Error message will be returned when using the ALTER SYSTEM SET DATAFILE_SIZE command to set the data file size to a smaller value.
    • Fixes the defect that incremental backup will fail when the transaction status table is not null.

    版本信息

    更全版本信息, 请参考https://open.oceanbase.com/blog/10900260 .

    | 名称 | 描述 | | -------- | ------------------ | | 发布时间 | 2022-3-30 | | 版本号 | V3.1.3 | | 提交号 | 3d79cacb37012cf61b7cb8faf00d9a6bb152bcd1 |

    概要说明

    在 V3.1.3 版本,OceanBase数据库进一步增强社区生态能力,更好地服务广大社区用户。

    • 多模应用:新增JSON格式数据类型和OBKV HBASE 客户端,支持半结构化和NoSQL类型业务场景应用。
    • 生态能力增强:支持MySQL原生的Python/Go/ODBC类型驱动连接OceanBase数据库,发布ob-operator支持K8s容器编排,支持ARM平台编译运行。
    • 更优的产品能力:支持更小的资源规格(2C8GB),提升CDC链路同步可靠性。

    特性更新

    支持 JSON 格式数据类型 支持 DDL、索引创建、SQL 查询、数据类型转换等基本操作,兼容MySQL 5.7 版本的全量以及 8.0 版本的部分 JSON 函数。

    • 支持四种基本类型(字符串、数字、布尔值和 NULL)和两种结构化类型(对象和数组)。
    • 支持在创建表、添加列时创建类型为 JSON 的列。
    • 支持基于 JSON 列的生成列创建索引。
    • 支持通过 ->、->> 操作符引用 JSON 对象。
    • 支持在 SELECT/INSERT/UPDATE/DELETE 等 SQL 语句中使用 JSON 文本。
    • 支持MySQL 5.7 版本的全量 JSON 函数以及 JSON_OVERLAPS()、JSON_VALUE() 等 8.0 版本新增函数。

    开源 OBKV HBASE 客户端

    应用可以通过该客户端获得HBASE语法兼容(HBASE 0.94版本)的API接口,与OceanBase数据库通过TABLE API 接口协议进行通信。在数据模型上增加宽表模型(WideColumn),优化 Filter 逻辑,支持 KEY 分区、RANGE 分区和前缀分区。

    兼容MySQL原生驱动

    支持更多MySQL生态原生驱动连接OceanBase数据库:

    • 新增支持Python3 pyMySQL和Python2 MySQL-python驱动。
    • 新增支持golang Go-SQL-Driver/MySQL驱动。
    • 新增支持Unix ODBC驱动。

    发布ob-operator,支持K8s容器编排

    通过使用 ob-operator,OceanBase 数据库可以以容器的形式运行在公有云或私有化部署的 Kubernetes 集群上。用户通过 YAML或Kustomize 部署 ob-operator,ob-operator 以服务的形式提供如下能力:

    • 在 K8s 环境下独立部署 OceanBase 集群。
    • 支持集群的创建、删除、扩容、缩容和生命周期管理。
    • 支持Zone的创建、删除。
    • 支持OBServer实例的创建、删除、重启、故障转移。
    • 支持使用 kubectl 命令查看集群、Zone和OBServer 的状态。
    • 支持通过 HTTP API 管理 K8s 资源。

    新增支持 ARM 平台

    完成OceanBase 数据库与OBProxy中间件在ARM架构平台下的适配验证,并发布基于ARM架构的版本,社区用户可以在ARM平台下进行业务开发、编译测试和应用部署。

    支持更小规格

    发布2C8GB资源规格的Docker镜像,方便社区开发者使用更小的资源学习和使用OceanBase数据库,降低入门成本。

    CDC数据同步可靠性增强

    CDC 从 OceanBase 数据库拉取的数据以内存态的形式提供给下游消费者,对机器资源配置规格有较高要求,对于用户的关键业务场景(例如大数据量入库场景),可能会造成数据同步失败。因此,我们对CDC链路的数据同步能力进行增强:

    • 支持持久化模式,数据在同步开始前先进行本地临时存储,然后再通过CDC链路同步给下游消费者,待消费完毕后清理本地临时存储的事务数据,减少数据同步过程中对内存的占用。
    • 支持大事务,优化大事务同步时对内存的使用,结合持久化模式,满足大事务场景下的数据同步需求。

    产品易用性增强

    • 资源容量(存储、内存)相关配置项支持小数设置,例如:alter system set datafile_size ='11.5G'。
    • OBD 在报错时提供帮助链接地址。
    • ob_admin支持在Clog解析时过滤用户数据。
    • information_schema.TABLES 增加 ENGINE 值。
    • 文档开源,支持通过github提交文档issue和pr。文档包括架构设计原理、性能调优、故障处理、日常维护指导等。

    行为变更

    • 分区表默认创建的索引变更为本地索引 在一些客户使用过程中我们发现 ,需要经常对分区表的索引性能进行调优,经过分析总结,发现局部索引更适合多数客户业务场景,因此我们将分区表默认创建的索引调整为本地索引。如果需要创建全局索引,可以参考示例 create table ad1(c1 int primary key, c2 int, index(c2) global)partition by key(c1) partitions 2。
    • 修改创建表的默认行为为非严格模式 OceanBase 数据库建表时只要求多数派副本创建成功即认为建表成功。如果需要使用严格模式创建表,需要将系统变量ob_create_table_strict_mode设置为True。

    问题修复:

    • FLASHBACK TABLE 功能修复,删除的表会临时存放在数据库的回收站中,用户可以通过 FLASHBACK TABLE命令恢复表和数据。
    • 修复TIMESTAMP值域变更导致的显示错误问题,例如:列类型由TIMESTAMP(0)修改为TIMESTAMP(6),保证前后查询时间结果显示一致。
    • 修复ALTER SYSTEM SET DATAFILE_SIZE命令执行报错,若将数据文件大小变更缩小直接报错返回。
    • 修复因事务状态表非空导致增量备份失败的缺陷。
    Source code(tar.gz)
    Source code(zip)
    oceanbase-ce-3.1.3-10000292022032916.el7.aarch64.rpm(36.59 MB)
    oceanbase-ce-3.1.3-10000292022032916.el7.x86_64.rpm(47.10 MB)
    oceanbase-ce-3.1.3-10000292022032916.el8.aarch64.rpm(36.60 MB)
    oceanbase-ce-3.1.3-10000292022032916.el8.x86_64.rpm(47.15 MB)
    oceanbase-ce-devel-3.1.3-10000292022032916.el7.aarch64.rpm(45.01 MB)
    oceanbase-ce-devel-3.1.3-10000292022032916.el7.x86_64.rpm(57.45 MB)
    oceanbase-ce-devel-3.1.3-10000292022032916.el8.aarch64.rpm(45.75 MB)
    oceanbase-ce-devel-3.1.3-10000292022032916.el8.x86_64.rpm(58.27 MB)
    oceanbase-ce-libs-3.1.3-10000292022032916.el7.aarch64.rpm(144.07 KB)
    oceanbase-ce-libs-3.1.3-10000292022032916.el7.x86_64.rpm(154.63 KB)
    oceanbase-ce-libs-3.1.3-10000292022032916.el8.aarch64.rpm(150.91 KB)
    oceanbase-ce-libs-3.1.3-10000292022032916.el8.x86_64.rpm(159.23 KB)
    oceanbase-ce-utils-3.1.3-10000292022032916.el7.aarch64.rpm(36.54 MB)
    oceanbase-ce-utils-3.1.3-10000292022032916.el7.x86_64.rpm(47.07 MB)
    oceanbase-ce-utils-3.1.3-10000292022032916.el8.aarch64.rpm(36.58 MB)
    oceanbase-ce-utils-3.1.3-10000292022032916.el8.x86_64.rpm(47.13 MB)
  • v3.1.2_CE(Dec 31, 2021)

    RELEASE NOTE

    Version information

    | Item | Description | | -------- | ------------------ | | Release date | 2021-12-30 | | Release number | V3.1.2 | | Commit number | d4ace121deae5b81d8f0b40afbc4c02705b7fc1d |

    About this version

    In V3.1.2, we provided free GUI developer tool (ODC), maintenance and monitoring tool (OCP), data migration tool (OMS), OBDUMPER, and OBLOADER for OceanBase users. OceanBase supported online cross-version upgrade. You can specify the target upgrade version by using OBD. OBD will automatically find the best upgrade solution and do the upgrade for you. The upgrade process does not affect your business. We optimized the update of hot row data and improved the performance by 300%. We optimized the delimination mechanism of SQL PLAN for partition tables. We optimized the underlying communication code. We added multiple SQL MODE functions and system functions.

    New features

    • Developer center (ODC): OceanBase Developer Center Community Version is a development platform for OceanBase database. ODC supports database objects visual management, intelligent syntax, session management, recycle bin management, data import or export, and resource and permission management. Key features of ODC are:

      • Multi-window development mode: Provided SQL window, anonymous block window, and command line window development modes. You can choose your development mode based on your habits. The SQL window and anonymous block window supports advanced features such as intelligent auto-completion, syntax highlighting, and formatting, etc.
      • Rich result set management: Supported the interactive operation of result set tabulation. Supported exporting all or part of the query result set in SQL window.
      • Flexible import and export: Supported SQL, CSV, and other format data files. You can import or export a single table, multi-table, or all data in a database at one time. Supported importing or exporting the defined objects and tables separately or together.
      • Collaboration management: Supported built-in control platform. You can edit the roles and permissions for user groups, and manage connection resources to improve your collaboration efficiency.
    • Maintenance and monitoring tool (OCP): OceanBase Cloud Platform (OCP) is a cluster management tool for OceanBase Database. With OCP, you can manage and operate your hosts, networks, software packages, and the full lifecycle for your clusters and tenants. With OCP, you can also decrease your IT O&M cost. Key features of OCP are:

      • Cluster management: Supported cluster installation, operation, and maintenance, performance monitoring, configuration, upgrade, deletion, adding or removing hosts.
      • Tenant management: Supported creating tenant, tenant topology, performance monitoring, session management, and parameter management.
      • Monitoring and alerts: Supported monitoring clusters, tenants, and hosts. You can use the built-in alerts or customize your alerts. You can use templates to configure HTTP or customize script channels for various message channels.
      • System management: Supported viewing tasks and managing running tasks. You can customize parameters based on your business.
      • Security: Supported creating, altering, and deleting database users and roles, granting and revoking permissions for roles. You can manage OCP users' settings, passwords, and alarm subscriptions through User Center.
    • OceanBase Migration Service (OMS): You can use the OceanBase Data Migration Tool (OMS) Community Edition to migrate data from heterogeneous databases to OceanBase databases. OMS supports online data migration and real-time synchronization of incremental data. All changes to OceanBase database are synchronized in real-time to the source database before migration. You can use the management console to create data migration projects, customize task configuration and monitor the OMS transfer components. Key features of OMS are:

      • Database objects migration: Supported exporting, switching, and creating tables, indexes, constraints.
      • Full data migration.
      • Incremental data migration: Supported real-time incremental data synchronization from the source database to the target database through log parsing.
      • Full data verification: Supported full data verification between source data and target data. Provided scripts to correct the inconsistent data.
      • Reverse incremental migration: When the business switches the application to the (source) target data, the incremental data in the target database is synchronized back to the source database in real-time.
      • Supported MySQL versions: 5.6, 5.7.
      • Supported customized alarm settings.
      • O&M monitoring: Supported monitoring on hosts and components.
    • OBLOADER/OBDUMPER: You can use OBLOADER or OBDUMPER to import or export data. To improve concurrent performance for OBLOADER or OBDUMPER, you can specify the concurrency number, the paging query records number, and the batch number based on your kernel load capacity. OBLOADER and OBDUMPE support exporting SQL by partition, specified conditions, single table, multi-table, full database, and customized queries. OBLOADER and OBDUMPE support data pre-processing, field mapping import. OBLOADER and OBDUMPE are compatible with SQL, CSV, CUT, etc.

    • Supported online rotating upgrade across versions: You can upgrade your OceanBase database with the obd cluster upgrade command. OBD automatically identifies the upgrade path between matching versions and does a rotating upgrade for each Zone. For more information, see OBD document.

    • Optimized data hotspot row: To update hotspot data, OceanBase used lock for write and released row-level locks before filling logs. This increased the concurrent update performance from 3000TPS to 9000TPS and expanded the upper limit for hotspot data processing.

    • Optimized the elimination mechanism for partition table SQL PLAN: In distributed scenario plan evaluation, there is no accurate feedback on the number of rows in the remote node partition. And there is a risk of plan degradation. OceanBase uses the final SQL execution time feedback to negatively optimize the execution plan. When the average execution time of the sampled query exceeds twice the first execution time, the PLAN is targeted to be eliminated and a new SQL PLAN is generated to solve the bad performance caused by the degradation of the SQL PLAN.

    • Optimized the communication clock stability: OceanBase uses CPU clock (SYS_clock_gettime) to get the timeout time for its underlying communication framework. However, the upper SQL layer uses OS clock (get_timeofday) to record the timeout time. The difference between these two times may cause the upper business layer to reset the original error code for the bottom layer. With the timeout difference tolerance design, OceanBase reproduces the system error and improves the error locating efficiency.

    • Compatibility with MySQL: Supported some new system functions:

      • VALIDATE_PASSWORD_STRENGTH(): This function returns an integer to indicate how strong the password is. The return value ranges from 0 (weak) to 100 (strong). For example, SELECT VALIDATE_PASSWORD_STRENGTH('[email protected]');
      • UUID_SHORT(): Returns a “short” universal identifier as a 64-bit unsigned integer. For example, SELECTUUID_SHORT();
      • TO_BASE64() and FROM_BASE64(): TO_BASE64() returns the argument converted to a base-64 string. For example, SELECT TO_BASE64('12345'). FROM_BASE64() decodes base64 encoded string and return result. For example, SELECT FROM_BASE64('MTIZNDU=');.
      • DAY(): Returns the day of the month (0-31). For example, SELECT DAY('2021-12-12');.
      • ANY_VALUE(): Suppress ONLY_FULL_GROUP_BY value rejection.
    • Open sourced OBKV TABLE JAVA Client: Provided direct access to the underlying OceanBase database stored table data through the TABLE API interface protocol. You can call this API as a JAR package in development. TABLE API supports authentication, add, delete, check, and append operations. For more information, see GitHub repo

    • Open sourced OBKV HBASE API: Based on the basic interface protocol provided by the TABLE API, we added the wide table model (WideColumn) for the data model, optimized the filter logic, supported KEY partitioning, RANGE partitioning, prefix partitioning, and TTL. Compatibility with HBase API client is coming soon.

    • Supported UOS platform operating system: OceanBase and obproxy are fully compatible with the mainstream X86 platform operating system. For more information, see OceanBase GitHub repo.

    • Enhanced administrator tool ob_admin: supported parsing and explicitly exporting block_file files, archive files, backup meta information, and data. The input command is ob_admin dumpsst/archive_tool/dump_backup. For more information, see ob_admin document.

    • Enhanced OceanBase Community Edition documentation. Documentation includes architecture design principles, performance tuning, troubleshooting, daily maintenance guidance,etc.

    Bugfixes

    • Fixed __all_virtual_memory_info returs incomplete tenant information. This is caused by MEMOEY APPEND.
    • Fixed global index creation failure caused by killing observer. OceanBase triggers retry for this scenario to make sure a successful index creation.
    • Fixed the error triggered by writing long column values.
    • Fixed compiled error on CentOS 8.3 and 7.9 platform. For more information, see Issue 714 and Issue 715.

    版本信息

    | 名称 | 描述 | | -------- | ------------------ | | 发布时间 | 2021-12-30 | | 版本号 | V3.1.2 | | 提交号 | d4ace121deae5b81d8f0b40afbc4c02705b7fc1d |

    概要说明

    在 V3.1.2 版本,我们为 OceanBase 用户提供了免费的图形界面开发者工具(ODC)、运维监控云平台(OCP)、数据迁移工具(OMS)、导数工具(OBLOADER 和 OBDUMPER) 。OceanBase 支持在线跨版本轮转升级,通过 OBD 指定需要升级到的版本,自动完成最佳升级路径解析和应用升级,全过程无需人工干预且不影响业务运行。优化了热点行数据更新,性能提升了 300%。优化了分区表 SQL PLAN 淘汰机制。优化了底层通信代码等。新增了多个 SQL MODE 和系统函数。

    特性更新

    • 开发者中心(ODC):OceanBase 社区版开发者中心(ODC)是为 OceanBase 数据库量身打造的开发平台。为数据库开发者提供了数据库对象的可视化管理、智能语法、会话管理、回收站管理、导入导出、资源和权限统一管理等多种能力。ODC 核心功能如下:

      • 多窗口开发模式:ODC 提供 SQL 窗口、匿名块窗口和命令行窗口开发模式。您可以按照自身习惯选择打开对应模式窗口进行开发,SQL 窗口与匿名块窗口支持智能联想提示、语法高亮、格式化等高级功能。
      • 丰富的结果集管理:支持对结果集表格化的交互操作,可导出全部和部分的 SQL 窗口内的查询结果集。
      • 灵活的导入导出:支持 SQL、CSV 和其他数据格式的文件,可以一次导入和导出单表、多表或全库数据。支持定义对象和表数据单独或混合导入导出。
      • 协作管理:内置管控平台,您可以编辑用户群体的角色和权限,管理连接资源,提升企业协作管理效率。
    • 运维监控工具(OCP):OceanBase 社区版运维监控工具(OCP)是为 OceanBase 数据库量身打造的企业级数据库集群管理平台工具。您可以使用 OCP 管理和运维主机、网络、软件包等资源,管理集群和租户的全生命周期,降低 IT 运维成本。OCP 的核心功能如下:

      • 集群管理:支持集群的安装、运维、性能监控、配置、升级、删除、主机添加和删除等功能。
      • 租户管理:支持租户的创建、结构拓扑图、性能监控、会话管理和参数管理等。
      • 监控告警:支持集群、租户和主机三种维度的监控告警。您可以使用内置告警项或自定义配置告警项,可以选择 HTTP 通道或者脚本通道传递告警消息。
      • 系统管理:支持查看和管理运行中的任务,根据业务自定义参数配置。
      • 安全 :支持创建、修改或删除数据库用户和角色,赋予和回收角色的权限。您可以通过用户中心管理 OCP 用户的个人设置、密码和告警订阅等信息。
    • 数据迁移工具(OMS):您可以使用 OceanBase 社区版数据迁移工具(OMS)实现异构数据库与 OceanBase 数据库的数据迁移。OMS 支持将异构数据库在线不停服地迁移至 OceanBase 数据库,同时在应用切换至 OceanBase 数据库后,将 OceanBase 数据库上所有的变更数据实时同步至切换前的源端数据库。您可以使用管理控制台创建数据传输项目、自定义任务配置和监控运维传输组件。OMS 的核心功能如下:

      • 支持数据库对象迁移:包括表、约束、索引的自动导出、转换和创建。
      • 支持全量数据迁移。
      • 支持增量数据迁移:通过日志解析将源端实时的增量数据迁移至目标端。
      • 支持全量数据校验:源端和目标端表数据全字段的数据比对,对不一致的数据提供订正 SQL 语句。
      • 支持切换后反向增量迁移:业务将应用切换至(源)目标端数据源时,将目标端增量数据实时同步回源端。
      • 支持的 MySQL 版本包括:5.6、5.7。
      • 支持用户自定义告警设置。
      • 支持运维监控:包括主机监控、组件监控和组件运维。
    • 数据导入导出工具(OBLOADER/OBDUMPER):您可以使用 OBLOADER 和 OBDUMPER 快速导入和导出数据。您可以根据内核的负载能力指定并发数、分页查询的记录条数及分批处理数来提升导入和导出的并发性能。OBLOADER 和 OBDUMPER 支持按照分区、指定条件、单表、多表、全库、以及自定义查询 SQL 导出,支持数据预处理、字段映射导入,兼容 SQL,CSV、 CUT 等多种文本格式。

    • 支持在线跨版本轮转升级:您可以通过 obd cluster upgrade 命令升级 OceanBase 数据库。OBD 自动识别匹配版本间的升级路径,对每个 Zone 进行轮转升级。更多信息,参考 OBD 使用指导。

    • 数据热点行优化:在热点数据更新场景中,OceanBase 通过对 lock for write 加锁逻辑、填充日志前释放行级锁优化,使得 OceanBase 在处理热点数据的并发更新性能从 3000TPS 提升到 9000TPS,提升了热点数据处理能力上限。

    • 优化了分区表 SQL PLAN 的淘汰机制:在分布式场景计划评估中,无法准确获得远端节点分区的行数反馈,存在计划退化的风险。OceanBase 采用最终 SQL 执行时间反馈负向优化执行计划,当采样的查询平均执行时间超过首次执行时间的 2 倍时,则针对性淘汰该 PLAN 并重新生成新的 SQL PLAN,解决因 SQL PLAN 劣化导致的性能下降问题。

    • 通信时钟稳定性优化:OceanBase 底层通信框架使用 CPU 时钟(SYS_clock_gettime)获取超时时间,而上层 SQL 业务逻辑是使用操作系统时钟(get_timeofday)记录超时时间的,这两种时间精度上的误差会有极低概率导致上层业务逻辑重置底层的原始错误码,OceanBase 通过设计可容忍超时误差计算逻辑,准确还原出系统运行报错的第一现场,提升问题分析诊断效率。

    • MySQL兼容:新增支持系统函数:

      • VALIDATE_PASSWORD_STRENGTH():该函数用来给密码的安全性进行评分,返回 0-100。如 SELECT VALIDATE_PASSWORD_STRENGTH('[email protected]');
      • UUID_SHORT():该函数可以生成一个 64 位无符号整数。如 SELECTUUID_SHORT();
      • TO_BASE64() 和 FROM_BASE64():该函数提供基于 base-64 算法的字符编码与解码能力。如 SELECT TO_BASE64('12345') 和 SELECT FROM_BASE64('MTIZNDU=');
      • DAY():该函数返回给定日期的月份的日期部分。如 SELECT DAY('2021-12-12');
      • ANY_VALUE():该函数用来抑制 ONLY_FULL_GROUP_BY 的值被拒绝。
    • 开源 OBKV TABLE JAVA Client:提供通过 TABLE API 接口协议直接访问 OceanBase 数据库底层存储表数据的操作方式,用户开发程序可以以 JAR 包的形式调用该接口,支持认证、对行增删改查追加等操作。详见GitHub代码仓库(https://github.com/oceanbase/obkv-table-client-java)

    • 开源 OBKV HBASE API:基于 TABLE API 提供的基本接口协议,在数据模型上增加宽表模型(WideColumn),优化 filter 逻辑,支持 KEY 分区、RANGE 分区和前缀分区,支持 TTL。兼容 HBase API 客户端持续开源中。

    • 新增配置支持统信 UOS 平台操作系统:observer 与 obproxy 全面兼容主流 X86 平台操作系统。兼容列表详见:https://github.com/oceanbase/oceanbase

    • 增强管理员工具 ob_admin:支持解析和显式输出 block_file 文件、归档文件、备份元信息和数据。命令输入形式为ob_admin dumpsst/archive_tool/dump_backup,详细参考帮助命令。

    • 完善 OceanBase 社区版本文档。文档包括架构设计原理、性能调优、故障处理、日常维护指导等。

    问题修复:

    • 修复 __all_virtual_memory_info 虚拟表因 MEMOEY APPEND 失败导致显示租户信息不全的问题。
    • 修复因 kill observer 实例导致创建 GLOBAL INDEX 失败的问题。该场景下系统自动发起DDL操作重试保证索引创建成功。
    • 修复写入超长列值触发的 SCHEMA 刷新的防御性报错。
    • 修复在 CentOS 8.3 和 7.9 平台上的编译错误。更多信息,参考 Issue 714Issue 715
    Source code(tar.gz)
    Source code(zip)
    oceanbase-ce-3.1.2-10000392021123010.el7.x86_64.rpm(46.45 MB)
    oceanbase-ce-3.1.2-10000392021123010.el8.x86_64.rpm(46.47 MB)
    oceanbase-ce-devel-3.1.2-10000392021123010.el7.x86_64.rpm(54.70 MB)
    oceanbase-ce-devel-3.1.2-10000392021123010.el8.x86_64.rpm(55.35 MB)
    oceanbase-ce-libs-3.1.2-10000392021123010.el7.x86_64.rpm(155.22 KB)
    oceanbase-ce-libs-3.1.2-10000392021123010.el8.x86_64.rpm(158.66 KB)
    oceanbase-ce-utils-3.1.2-10000392021123010.el7.x86_64.rpm(46.43 MB)
    oceanbase-ce-utils-3.1.2-10000392021123010.el8.x86_64.rpm(46.46 MB)
  • v3.1.1_CE_BP1(Oct 21, 2021)

    RELEASE NOTE

    About this version

    This version fixed some bugs.

    BUGFIX

    • Fixed start service failure when slog uses more than 80% disk space(#8c615943);
    • Fixed process hangs issue when de-duplicating unique indexes by using rowkey comparison(#6dd10291);

    发布说明

    发版目的

    本次发版主要是BUG修复。

    BUG 修复

    • 修复slog所在的磁盘使用超过80%可能无法启动的问题( #8c615943);
    • 修复多个唯一索引去重使用rowkey比较时可能会线程hung的问题( #6dd10291);
    Source code(tar.gz)
    Source code(zip)
    oceanbase-ce-3.1.1-4.el7.x86_64.rpm(46.21 MB)
    oceanbase-ce-3.1.1-4.el8.x86_64.rpm(46.24 MB)
    oceanbase-ce-devel-3.1.1-4.el7.x86_64.rpm(54.49 MB)
    oceanbase-ce-devel-3.1.1-4.el8.x86_64.rpm(239.55 MB)
    oceanbase-ce-libs-3.1.1-4.el7.x86_64.rpm(155.15 KB)
    oceanbase-ce-libs-3.1.1-4.el8.x86_64.rpm(486.00 KB)
    oceanbase-ce-utils-3.1.1-4.el7.x86_64.rpm(46.16 MB)
    oceanbase-ce-utils-3.1.1-4.el8.x86_64.rpm(46.17 MB)
  • v3.1.1_CE(Oct 12, 2021)

    RELEASE NOTE

    About this version

    In V3.1.1, we have strengthened OceanBase in these fields: kernel compatibility, tools, interfaces, backup and recovery, open-source OS, usability. We will continue to enhance the open-source productization capabilities. Core enhancements and improvements are as follows.

    1. MySQL compatibility: Supported MySQL5.7 driver protocol, Common Table Expression (CTE), several compatible functions. And supported migrating data from MySQL OceanBase Database directly.
    2. High availability: Supported for physical backup and recovery, cluster-level backup, and tenant-level recovery. You can back up production data at high speed and flexibly select recovery methods according to scenarios and needs.
    3. Usability: Released administrator tool ob_admin and error code parsing tool ob_error to provide more convenient and flexible problem analysis and processing capabilities. OBD supported deployment based on system resources and multiple Benchmark testing frameworks.
    4. Interface: Released TABLE API interface, supported direct KV access, high-performance storage access. Released REDO log interface CDC, you can connect your data with third-party data easily to do data conversion, extraction, and framework synchronization.
    5. Tools: Supported Prometheus, production system operation, and maintenance monitoring. Supported Dbeaver, developer client tools, DataX, Canal, Dataworks data development governance framework, MySQL, and OceanBase data migration. Released small-size Docker. Supported almost all major Linux distributions and installation and deployment for 8+ distributions of OS and 12+ versions.

    New features

    • Supported physical backup and recovery. OceanBase Database supports physical backup for clusters. Physical backup has sstable and memtable. OceanBase Database supports recovery for tenants. To recover data, you must create a new tenant.
    • Supported MySQL 5.7 driver protocol.
    • Supported Common Table Expressions (CTE). A CTE is a named temporary result set that exists within the scope of a single statement and that can be referred to later within that statement, possibly multiple times. OceanBase Database syntax is compatible with MySQL 8.0. OceanBase Database supports recursive CTE and non-recursive CTE. For information, see PR 314.
    • Supported system function CRC32(). You can calculate the cyclic redundancy check value of a given string. For example, SELECT CRC32("abc");. For information, see PR 152.
    • Supported system function CONVERT_TZ(). This function converts a datetime value dt from the time zone given by from_tz to the time zone given by to_tz and returns the resulting value. For example,SELECT CONVERT_TZ('2021-01-01 12:00:00','+00:00','+08:00');. For information, see PR 276.
    • Supported INET_ATON(), INET_NTOA(), INET6_ATON(), INET6_NTOA(), IS_IPV4(), IS_IPV6(), IS_IPV4_MAPPED(), and IS_IPV6_MAPPED(). For information, see PR 198.
    • Supported the maximum connection setting for tenants/users. Use the system variable MAX_CONNECTIONS to set the maximum connection for tenants. Use the system variable MAX_USER_CONNECTIONS to set the maximum connection for users. When you create a user, use MAX_USER_CONNECTIONS to set the maximum concurrent connection for a specified user. MAX_CONNECTIONS_PER_HOUR specifies the maximum connection per hour for a user.

    Tools

    • Released Change Data Capture (CDC). CDC is an open-source interface for OceanBase Database. It gives external access to the transaction logs. As a part of the data link, CDC parses, extracts, and assembles the transaction logs. It gives data for downstream data replication. For example, together with Canal, CDC supports incremental data migration.
    • Released open-source interface TABLE API. OceanBase database supports access using the NoSQL interface. TABLE API interface is an operational interface for table model and KV model data. It defines a common set of interaction protocols between the client and the database server. The row operation interface supports execute() for single-row operations and batch_execute() for multi-row batch operations. TABLE API supports retrieve/get, insert_or_update/put, delete, insert, update, replace, increment, and append operations.
    • Supported data replication tools Canal and DataX. You can replicate data from MySQL to OceanBase Database. You can use DataX to do full data migration to OceanBase Database.
    • OBD supported auto test. We integrated mysql_test, TPCH, and Sysbench test frames to OBD. For more information, see OBD test commands.
    • OBD supported auto OceanBase Database configuration based on your system resource. Use obd cluster autodeploy to auto deploy OceanBase Database with your maximum available resource. Use obd cluster tenant create/drop to create or drop a tenant. For more information, see OBD cluster tenant create.
    • Supports deploying OceanBase Database by using Docker. For more information, see OceanBase Docker Hub.
    • Supported DBeaver client. For more information, see PR 13596.
    • Supported Prometheus to monitor clusters for the community version. For example, you can monitor your resource (CPU, memory, IO, and net), your system pressure (SQL latency, live session, and cache hit ratio), and cluster usage limits (NTP).
    • Supported multiple x86 operation systems. For more information, see Compatibility list.
    • Released error code tool ob_error. By using ob_error, you can locate the help information based on the error code returned by OceanBase Database. For more information, see ob_error.
    • Released admin tool ob_admin. ob_admin supports parsing transaction logs and transforming transaction ID. The output format is ob_admin clog_tool/usec_tools <args>. For more information, seeclog_tool.

    Compatibility changes

    | Parameter name | Original default value | Modification type | New default value | Description | | ------------------------------ | -------- | -------------------------- | -------- | ------------------------------------------------------------------------------ | | minor_freeze_times | 5 | Modification | 100 | Avoid triggering frequent merges | | freeze_trigger_percentage | 70 | Modification | 30 | Reduce the risk of excessive cluster memory consumption. Decreasing this value dumps earlier to release memory, but dumping becomes more frequent. | | enable_merge_by_turn | TRUE | Modification | FALSE | By default, we recommend that you merge multiple zones at the same time. Merging by turn needs different zones to avoid response time increase during merges. | | trace_log_slow_query_watermark | 100ms | Modification | 1s | The original default value 100ms is not reasonable. The performance decreases in high pressure. | | clog_sync_time_warn_threshold | 100ms | Modification | 1s | The original default value 100ms is not reasonable. The performance decreases in high pressure because too many log files are produced. | | enable_one_phase_commit | TRUE | Modification | FALSE | Deprecated in the new version. | | enable_pg | FALSE | Deletion | -- | Deprecated in the new version. | | _enable_split_partition | FALSE | Deletion | -- | Deprecated in the new version. |

    Bug fixes

    • Fixed the problem of using the aggregation function and the same alias. When you use an aggregation function for a string, and you set the result alias the same as the function name, the aggregation function throws an error. For more information, see Issue 173.
    • Fixed the problem of timediff precision. When your data has more than 2 digits, the calculation result is NULL. For more information, see Issue 298.

    发布说明

    版本新特性

    本次迭代版本(v3.1.1),OceanBase 全面提升内核兼容、工具生态、接口开放、备份恢复、开源 OS 支持和易用性能力,持续增强开源产品化应用能力。您可以获得以下关键特性:

    • 支持 MySQL 5.7 驱动协议,支持 5.7 新增的会话变量。可以推高 OceanBase 的 MySQL 兼容版本,避免企业内部安全审计问题。
    • 新增 MySQL 8.0 的通用表表达式(Common Table Expressions),丰富了 SQL 的能力,满足复杂业务查询需求实现。
    • 新增校验函数(CRC32()),完善 MySQL 数据迁移到 OceanBase 的数据校验环节。
    • 新增物理备份和恢复功能,支持近实时的数据备份和恢复到历史任意时间点功能,提升社区版的容灾能力。
    • 新增 TABLE API 接口,支持 KV 接口读写数据,提升高性能存储访问能力。
    • 新增 REDO 日志接口 CDC 能力,方便用户抽取 OceanBase 增量数据和跟第三方数据同步产品对接,解决了数据实时流出 OceanBase 难题。
    • 支持对接 Prometheus ,提升性能监控和诊断能力。
    • 新增管理员工具 ob_admin 和 ERROR CODE 解释工具 ob_error,提升问题排查分析和故障应急处理能力。
    • OBD 新增命令参数,支持自动配置相关参数;新增租户管理命令;新增常用数据库性能测试框架,方便初次使用 OceanBase 。

    新增功能

    MySQL兼容:

    • 适配支持 MySQL 5.7 驱动协议,支持 5.7 新增的会话变量。可以推高 OceanBase 的 MySQL 兼容版本,避免企业内部安全审计问题。
    • 支持通用表表达式(Common Table Expressions)。语法兼容 MySQL 8.0,支持非递归 CTE 和递归 CTE。CTE 相当于一个临时表但没有实际存储,仅在查询执行期间被使用,丰富了 SQL 的功能。详细信息,参考 PR 314
    • 支持系统函数 CRC32()。您可以通过计算字符串的 CRC32 校验和来校验数据。例如 SELECT CRC32("abc");。详细信息,参考 PR 152
    • 支持系统函数 CONVERT_TZ()。此函数可以实现时区转换查询。例如 SELECT CONVERT_TZ('2021-01-01 12:00:00','+00:00','+08:00');。详细信息,参考 PR 276
    • 支持网络地址相关函数 INET_ATON()INET_NTOA()INET6_ATON()INET6_NTOA()IS_IPV4()IS_IPV6()IS_IPV4_MAPPED()IS_IPV6_MAPPED()。详细信息,参考 PR 198
    • 支持租户/用户最大连接数设置。系统变量 MAX_CONNECTIONS 设置租户最大连接数。系统变量 MAX_USER_CONNECTIONS 设置用户最大并发连接数。创建用户时,可以通过参数 MAX_USER_CONNECTIONS 指定用户的最大并发连接数。参数 MAX_CONNECTIONS_PER_HOUR 指定用户的每小时最大连接数。

    高可用性:

    • 支持物理备份与恢复。物理备份是集群级别的,包括数据全量和增量备份、事务日志近实时备份(秒级别触发);物理恢复是租户级别的,能恢复到历史任意时间点(几秒之前)。详细信息,参考 物理备份与恢复

    易用性:

    • OBD 支持根据系统资源情况自动配置 OceanBase 参数。新增 obd cluster autodeploy 命令,支持自动使用最高规格启动 OceanBase 数据库。新增 obd cluster tenant create/drop 命令支持创建/删除租户。详细信息,参考 OBD 创建租户
    • OBD 支持自动化测试。OBD 支持集成运行 mysql_testTPCHSysbench 测试框架。详细参考帮助命令。详细信息,参考 OBD 测试命令
    • 新增错误码解析工具 ob_errorob_error 可以帮助您根据 OceanBase 数据库返回的错误码快速找到帮助信息,输入形式为 ob_error [option] errorcode。详细信息,参考 错误码工具
    • 新增管理员工具 ob_admin。ob_admin 支持解析事务日志和转换事务 ID ,提升疑难问题分析诊断能力。输入形式为ob_admin clog_tool/usec_tools <args>。详细信息,参考 clog_tool

    接口开放:

    • 开源 TABLE API 接口。OceanBase 数据库支持使用 NoSQL 接口访问。TABLE API 接口是表模型和 KV 模型数据的操作接口,定义了客户端和数据库服务端之间的一组通用的交互协议。行操作接口支持 execute() 执行单行操作和 batch_execute() 执行多行批量操作。支持 retrieve/getinsert_or_update/putdeleteinsertupdatereplaceincrementappend 操作。
    • 开源 Change data capture(CDC)。CDC 是 OceanBase 数据库对外提供事务日志访问的接口。作为数据链路的一环,CDC 支持解析、抽取和组装事务日志,为下游数据同步提供消费数据。例如,CDC 与 Canal 对接可以实现数据增量迁移。

    社区生态

    兼容性变化

    | 配置项 | 原默认值 | 修改类型 | 新默认值 | 描述 | | ------------------------------ | -------- | -------------------------- | -------- | ------------------------------------------------------------------------------ | | minor_freeze_times | 5 | 修改 | 100 | 增加内存转储次数,避免内存合并被触发,提升大批量写时性能稳定性 | | freeze_trigger_percentage | 70 | 修改 | 50 | 降低内存转储触发阈值,增加内存转储频率,避免内存写不足报错 | | enable_merge_by_turn | TRUE | 修改 | FALSE | 关闭按 ZONE 逐个合并机制,避免不必要的主备切换带给业务的影响 | | trace_log_slow_query_watermark | 100ms | 修改 | 1s | 增加慢查询 SQL 的时间阈值,减少慢查询日志,降低对磁盘的 IO 影响 | | clog_sync_time_warn_threshold | 100ms | 修改 | 1s | 增加 clog 同步告警时间阈值,减少同步日志 | | enable_one_phase_commit | TRUE | 修改 | FALSE | 新版本已废弃使用 | | enable_pg | FALSE | 删除 | -- | 已废弃的功能 | | _enable_split_partition | FALSE | 删除 | -- | 已废弃的功能 |

    Bug 修复

    • 修复聚合函数与别名相同使用报错的问题。对某字段使用聚合函数后,对结果设置成相同字段别名后,使用聚合结果排序必须使用别名,不能使用原来的聚合函数排序。详细信息,参考 Issue 173
    • 修复 timediff 精度的问题。当数据的小数点超过 2 位时,计算结果为 NULL。详细信息,参考 Issue 177
    • 修复跨图查询视图报错的问题。详细信息,参考 Issue 298
    Source code(tar.gz)
    Source code(zip)
    oceanbase-ce-3.1.1-1.el7.x86_64.rpm(46.20 MB)
    oceanbase-ce-3.1.1-1.el8.x86_64.rpm(46.23 MB)
    oceanbase-ce-devel-3.1.1-1.el7.x86_64.rpm(54.48 MB)
    oceanbase-ce-devel-3.1.1-1.el8.x86_64.rpm(239.53 MB)
    oceanbase-ce-libs-3.1.1-1.el7.x86_64.rpm(165.65 KB)
    oceanbase-ce-libs-3.1.1-1.el8.x86_64.rpm(496.50 KB)
    oceanbase-ce-utils-3.1.1-1.el7.x86_64.rpm(46.16 MB)
    oceanbase-ce-utils-3.1.1-1.el8.x86_64.rpm(46.17 MB)
  • v3.1.0_CE_BP2(Aug 10, 2021)

    RELEASE NOTE

    Fixed:

    • Fixed the COM_STMT_SEND_LONGDATA error and crash when Golang calls ps.
    • Fixed an issue of accessing arrays outside the bounds of numeric objects.

    Feature enhancement:

    • Improved location refresh mechanism to reduce the response time to failures.
    • Set _ob_enable_prepared_statement to false by default.
    • Optimized the frequency of writing checkpoint logs for cold partitions.
    • Supported PI() function in MySQL tenant.
    • Supported transaction_read_only parameter configuration in MySQL tenant.
    • Improved the performance for the 'union all' operator.

    发布说明

    问题修复:

    • 修复Golang 驱动在使用ps调用时遇到的COM_STMT_SEND_LONGDATA错误和程序崩溃问题。
    • 修复访问数字对象的边界外的数组问题。

    特性更新:

    • 改善location 刷新机制,降低由于故障导致的交易响应时间变长。
    • 设置 _ob_enable_prepared_statement 默认值为false。
    • 优化冷分区写checkpoint日志的频率。
    • mysql 租户支持PI()函数。
    • mysql 租户支持 transaction_read_only 参数配置。
    • union all算子性能提升。
    Source code(tar.gz)
    Source code(zip)
  • v3.1.0_CE_BP1(Jun 28, 2021)

    Fix:

    • Fixed OBserver init io error(#84).
    • Fixed plan cache memory leak.
    • Fixed compilation and spelling error.

    Feature enhancement:

    • Supported Debian and SUSE based.
    Source code(tar.gz)
    Source code(zip)
Owner
OceanBase
The Leading Scalable HTAP Database.
OceanBase
Kunlun distributed DBMS is a NewSQL OLTP relational distributed database management system

Kunlun distributed DBMS is a NewSQL OLTP relational distributed database management system. Application developers can use Kunlun to build IT systems that handles terabytes of data, without any effort on their part to implement data sharding, distributed transaction processing, distributed query processing, crash safety, high availability, strong consistency, horizontal scalability. All these powerful features are provided by Kunlun.

zettadb 99 Jun 24, 2022
dqlite is a C library that implements an embeddable and replicated SQL database engine with high-availability and automatic failover

dqlite dqlite is a C library that implements an embeddable and replicated SQL database engine with high-availability and automatic failover. The acron

Canonical 3k Jun 27, 2022
YugabyteDB is a high-performance, cloud-native distributed SQL database that aims to support all PostgreSQL features

YugabyteDB is a high-performance, cloud-native distributed SQL database that aims to support all PostgreSQL features. It is best to fit for cloud-native OLTP (i.e. real-time, business-critical) applications that need absolute data correctness and require at least one of the following: scalability, high tolerance to failures, or globally-distributed deployments.

yugabyte 6.6k Jul 1, 2022
HybridSE (Hybrid SQL Engine) is an LLVM-based, hybrid-execution and high-performance SQL engine

HybridSE (Hybrid SQL Engine) is an LLVM-based, hybrid-execution and high-performance SQL engine. It can provide fast and consistent execution on heterogeneous SQL data systems, e.g., OLAD database, HTAP system, SparkSQL, and Flink Stream SQL.

4Paradigm 45 Sep 12, 2021
PGSpider: High-Performance SQL Cluster Engine for distributed big data.

PGSpider: High-Performance SQL Cluster Engine for distributed big data.

PGSpider 127 Jun 24, 2022
A MariaDB-based command line tool to connect to OceanBase Database.

什么是 OceanBase Client OceanBase Client(简称 OBClient) 是一个基于 MariaDB 开发的客户端工具。您可以使用 OBClient 访问 OceanBase 数据库的集群。OBClient 采用 GPL 协议。 OBClient 依赖 libobclie

OceanBase 47 Mar 16, 2022
A proxy server for OceanBase Database.

OceanBase Database Proxy TODO: some badges here OceanBase Database Proxy (ODP for short) is a dedicated proxy server for OceanBase Database. OceanBase

OceanBase 76 Apr 6, 2022
DuckDB is an in-process SQL OLAP Database Management System

DuckDB is an in-process SQL OLAP Database Management System

DuckDB 5.4k Jun 27, 2022
TimescaleDB is an open-source database designed to make SQL scalable for time-series data.

An open-source time-series SQL database optimized for fast ingest and complex queries. Packaged as a PostgreSQL extension.

Timescale 13.3k Jun 27, 2022
BaikalDB, A Distributed HTAP Database.

BaikalDB supports sequential and randomised realtime read/write of structural data in petabytes-scale. BaikalDB is compatible with MySQL protocol and it supports MySQL style SQL dialect, by which users can migrate their data storage from MySQL to BaikalDB seamlessly.

Baidu 955 Jun 30, 2022
GalaxyEngine is a MySQL branch originated from Alibaba Group, especially supports large-scale distributed database system.

GalaxyEngine is a MySQL branch originated from Alibaba Group, especially supports large-scale distributed database system.

null 229 Jun 30, 2022
MySQL Server, the world's most popular open source database, and MySQL Cluster, a real-time, open source transactional database.

Copyright (c) 2000, 2021, Oracle and/or its affiliates. This is a release of MySQL, an SQL database server. License information can be found in the

MySQL 8k Jul 4, 2022
A mini database for learning database

A mini database for learning database

Chuckie Tan 3 Nov 3, 2021
A PostgreSQL extension providing an async networking interface accessible via SQL using a background worker and curl.

pg_net is a PostgreSQL extension exposing a SQL interface for async networking with a focus on scalability and UX.

Supabase 41 Jun 19, 2022
A lightweight header-only C++11 library for quick and easy SQL querying with QtSql classes.

EasyQtSql EasyQtSql is a lightweight header-only C++11 library for quick and easy SQL querying with QtSql classes. Features: Header only C++11 library

null 44 Jun 28, 2022
A type safe SQL template library for C++

sqlpp11 A type safe embedded domain specific language for SQL queries and results in C++ Documentation is found in the wiki So what is this about? SQL

Roland Bock 2k Jul 2, 2022
A bare-bone SQL implementation

MiniSQL A bare-bone SQL implementation. Project Structure include folder contains header files of all modules. These header files are meant to be shar

null 16 Apr 23, 2022
Trilogy is a client library for MySQL-compatible database servers, designed for performance, flexibility, and ease of embedding.

Trilogy is a client library for MySQL-compatible database servers, designed for performance, flexibility, and ease of embedding.

GitHub 248 Jun 11, 2022
DB Browser for SQLite (DB4S) is a high quality, visual, open source tool to create, design, and edit database files compatible with SQLite.

DB Browser for SQLite What it is DB Browser for SQLite (DB4S) is a high quality, visual, open source tool to create, design, and edit database files c

null 16.7k Jun 27, 2022