Move the docs folder

This commit is contained in:
LINxiansheng
2022-02-10 14:51:49 +08:00
committed by LINxiansheng
parent 7c6dcc6712
commit d42f317422
1160 changed files with 0 additions and 3 deletions

View File

@ -0,0 +1,78 @@
Java 连接 OceanBase 示例
=========================================
1. 添加 Maven 依赖
```javascript
<dependency>
<groupId>com.alipay.oceanbase</groupId>
<artifactId>oceanbase-client</artifactId>
<version>1.1.5</version>
</dependency>
```
**说明**
如果需要下载 oceanbase-client,请点击:[oceanbase-client](https://oceanbase-aliyun-docs.oss-cn-hangzhou.aliyuncs.com/downloads/obclient/oceanbase-client-1.1.5.jar)。
<!-- -->
2. 修改连接字符串
连接串的前缀需要设置为 jdbc:oceanbase ,其他部分的使用方式与原生的 MySQL 使用方式保持一致。
```javascript
String url = "jdbc:oceanbase://192.168.1.101/TPCC?useUnicode=true&characterEncoding=utf-8";
String username = "TPCC@obbmsql#obdemo";
String password = "123456";
Connection conn = null;
try {
Class.forName("com.alipay.oceanbase.obproxy.mysql.jdbc.Driver");
conn = DriverManager.getConnection(url, username, password);
PreparedStatement ps = conn.prepareStatement("select to_char(sysdate,'yyyy-MM-dd HH24:mi:ss') from dual;");
ResultSet rs = ps.executeQuery();
rs.next();
System.out.println("sysdate is:" + rs.getString(1));
rs.close();
ps.close();
} catch (Exception e) {
e.printStackTrace();
} finally {
if (null != conn) {
conn.close();
}
}
```
**注意**
* 目前驱动与服务端交互使用的是文本写协议部分,为了兼容 Oracle 文本协议的 SQL 语法,驱动在PreparedStatement 的 setTimestamp() 类型中都会在前面增加 timestamp 的字面量,因此针对 PreparedStatement 模式下,timestamp 参数不支持字面量。
* ServerPreparedStatement 支持还不完善,因此请不要设置 useServerPrepStmts 和 cachePrepStmts 参数。
* 对于 Druid 框架,推荐使用 Druid 最新版 1.2.3:https://github.com/alibaba/druid/releases。

View File

@ -0,0 +1,64 @@
OceanBase 常用参数和变量
======================================
* 下表所示是常用的跟开发有关的参数(parameters)
| **参数名** | **参数值** | **参数含义** | **范围** |
|---------------------------------------|---------|-----------------------------------------|--------|
| minor_freeze_times | 0 | 指定多少次minor freeze后会触发major freeze。 | 集群 |
| enable_major_freeze | True | 指定集群是否开启自动major freeze。 | 集群 |
| major_freeze_duty_time | 02:00 | 指定集群自动 major freeze的开始时间。 | 集群 |
| enable_rebalance | True | 指定是否开启分区负载均衡。True开启,False关闭。 | 集群 |
| enable_auto_leader_switch | True | 指定是否开启分区自动切主。 | 集群 |
| large_query_threshold | 100ms | 指定一个查询执行时间被判定为大查询的阈值。 | 集群 |
| large_query_worker_percentage | 30 | 指定大查询要使用的CPU工作线程比例。 | 集群 |
| data_copy_concurrency | 20 | 指定分区迁移时集群最大的迁移任务数。 | 集群 |
| server_data_copy_out_concurrency | 2 | 指定分区迁移时每个节点最大的迁出任务数。 | 集群 |
| server_data_copy_in_concurrency | 2 | 指定分区迁移时每个节点最大的迁入任务数。 | 集群 |
| freeze_trigger_percentage | 70 | 指定增量内存使用比例的一个阈值,达到这个值会触发 minor freeze 。 | 集群 |
| enable_perf_event | True | 指定是否开启性能事件信息收集,默认是False. | 集群 |
| enable_sql_audit | True | 指定是否开启SQL日志,默认是True。 | 集群 |
| sql_work_area | 1G | 指定租户的SQL工作内存。 | 租户 |
| writing_throttling_maximum_duration | 1h | 指定触发租户限流时增量内存预估最大使用时间。 | 租户 |
| writing_throttling_trigger_percentage | 100 | 指定触发租户限流时增量内存的使用比例阈值。 | 租户 |
| max_stale_time_for_weak_consistency | 5s | 指定弱一致读能接受备副本的最大时延。 | 租户 |
* 下表所示是常用的租户变量(variables)
| **变量名** | **变量值** | **变量含义** |
|-----------------------------|---------------------------------------------------------------|------------------------------------------------------------------|
| auto_increment_increment | 1 | 指定MySQL租户的自增列单次自增大小。 |
| auto_increment_offset | 1 | 指定MySQL租户的自增列自增起始值。 |
| auto_increment_cache_size | 1000000 | 指定MySQL租户的自增列内部缓存大小。 |
| autocommit | ON | 指定租户是否开启事务自动提交。 |
| ob_compatibility_mode | ORACLE/MYSQL | 显示当前租户的兼容类型。ORACLE/MYSQL。只读变量。 |
| ob_tcp_invited_nodes | % | 指定租户访问的IP白名单,逗号分隔。如:127.1,192.168.0.0/16 |
| ob_timestamp_service | GTS | 指定租户时间服务是用GTS还是LTS。 |
| ob_query_timeout | 10000000 | 指定SQL执行默认超时时间,单位微秒(us)。 |
| ob_trx_idle_timeout | 120000000 | 指定租户里事务最大空闲时间,单位微秒(us)。 |
| ob_trx_timeout | 100000000 | 指定租户里事务最大持续时间,单位微秒(us)。 |
| ob_read_consistency | STRONG | 指定租户里读SQL的默认一致性级别。STRONG是强一致读,WEAK是弱一致性读,FORZEN是读上次major freeze的 |
| ob_sql_audit_percentage | 3 | 指定租户SQL日志占用最大内存百分比。 |
| ob_sql_work_area_percentage | 5 | 指定租户SQL工作内存占内存最大百分比。 |
| recyclebin | ON | 指定是否开启回收站。ON开启,OFF关闭。 |
| sql_mode | STRICT_TRANS_TABLES,STRICT_ALL_TABLES,PAD_CHAR_TO_FULL_LENGTH | 指定SQL遵守的模式。 |
| tx_isolation | READ-COMMITTED | 指定租户事务默认隔离级别。 |
| time_zone | +8:00 | 指定租户默认时区。 |
| system_time_zone | +08:00 | 显示系统默认时区。 |
| version_comment | | 显示OceanBase版本,只读变量。 |

View File

@ -0,0 +1,47 @@
OceanBase 常用 SQL Hints
===========================================
SQL Hint的语法格式如下:
```javascript
/*+ HINT_NAME */
```
```javascript
/*+ HINT_NAME ( HINT_PARA )
```
如果是在命令行客户端 obclient 或 mysql 下连接 OceanBase,注意需要指定参数 -c ,这样 Hint 文本才会发送到 OBServer 端生效。
OceanBase 常用 SQL Hint 如下表所示:
| **Hint** **名称** | **Hint** **参数** | **Hint** **语义** |
|-------------------------|-------------------------------------------------------|----------------------------------------------------------------------------|
| NO_REWRITE | | 不改写SQL。 |
| READ_CONSISTENCY | weak\|strong\|frozen | weak:弱一致性读 strong:强一致性读 frozen:读最近一次冻结点的数据 |
| INDEX_HINT | \[ *qb_name* \] *table_name* *index_name* | 指定查询表时选择的索引。 |
| QUERY_TIMEOUT | *int64* | 指定语句执行的超时时间,单位是微秒(us)。 |
| LEADING | \[ *qb_name* \] *table_name* \[, *table* _ *name* \] | 指定多表连接时的顺序。 |
| ORDERED | | 指定多表连接顺序按SQL中表出现的顺序。 |
| FULL | \[qb *_name* \] *table_name* | 指定表的访问方式为全表扫描(有主键时会读主键)。 |
| USE_MERGE | \[qb *_name* \] *table_name* \[, *table_name* \] | 指定多表连接时使用MERGE算法。 |
| USE_NL | \[ *qb_name* \] *table_name* \[, *table_name* \] | 指定多表连接时使用NEST LOOP算法。 |
| USE_BNL | \[qb_name\] table_name \[,table_name\] | 指定多表连接时适用BLOCK NEST LOOP算法。 |
| USE_HASH_AGGREGATION | \[ *qb_name* \] | 指定 aggregate 方法使用HASH AGGREGATE,例如HASH GROUP BY,HASH DISTINCT。 |
| NO_USE_HASH_AGGREGATION | \[ *qb_name* \] | 指定 aggregate 方法不使用HASH AGGREGATE,使用MERGE GROUP BY,MERGE DISTINCT 。 |
| QB_NAME | *qb_name* | 指定 query block的名称。 |
| PARALLEL | *int64* | 指定分布式执行的并行度。 |