--------CPU参数--------
cpu_total #可提供实际数量最大的CPU数(超脉CPU数量具体看数值150%或200%)
cpu_capacity #实际CPU总数量
cpu_assigned #已分配CPU数量
cpu_max_assigned #可分配CPU的最大数量
-------负载均衡功能参数
enable_rebalance #是否开启自动负载均衡的功能
控制负载均衡时Partition迁移的速度和影响
migrate_concurrency #用于控制控制内部数据迁移的并发度
data_copy_concurrency #用于设置系统中并发执行的数据迁移复制任务的最大并发数
server_data_copy_out_concurrency #用于设置单个节点迁出数据的最大并发数
server_data_copy_in_concurrency #用于设置单个节点迁入数据的最大并发数
-------内存参数
SSTable #静态基线数据(minor sstable,major sstable)
MemTable #动态增量数据
memory_limit=40GB #表示设置 OceanBase 数据库进程的使用内存上限是 40 GB
memory_limit_percentage #按照物理机器总内存的百分比计算observer内存上限
不可动态伸缩的内存:MemStore #MemStore用来保存DML产生的增量数据,空间不可被占用
可动态伸缩的内存:KVCache #KVCache空间会被其它众多内存模块复用。保存来自SSTable的热数据,提高查询速度
MemStore #大小由参数memstore_limit_percentage决定,表示租户的 MemStore 部分占租户总内存的百分比。
freeze_trigger_percentage #定义memstore内存使用百分比,超过就转储/合并(默认70%)
__all_server_event_history #查询MemStore使用率达到freeze_trigger_percentage而触发的租户级转储
__all_rootservice_event_history #查询手动转储
(默认值为50,即占用租户内存的50% ,当MemStore内存使用超过freeze_trigger_percentage定 义的百分比时(默认70%)触发冻结及后续的转储/合并等行为)
-----------合并转储参数
宏块 #OceanBase 数据库将磁盘切分为大小为 2MB 的定长数据块,称之为宏块(Macro Block),宏块是数据文件写 IO 的基本单位,每个 SSTable 就由若干个宏块构成, 宏块2M固定大小的长度不可更改, 后续转储合并重用宏块以及复制迁移等任务都会以宏块为最基本粒度。
微块 #在宏块内部数据被组织为多个大小为 16KB 左右的变长数据块,称之为微块(Micro Block),微块中包含若干数据行(Row),微块是数据文件读 IO 的最小单位。每个数据微块在构建时都会根据用户指定的压缩算法进行压缩,因此宏块上存储的实际是压缩后的数据微块,当数据微块从磁盘读取时,会在后台进行解压并将解压后的数据放入数据块缓存中。每个数据微块的大小在用户创建表时可以指定,默认 16KB,用户可以通过语句指定微块长度,但是不能超过宏块大小,语句如下。
minor_compact_trigger #控制L0层Mini SSTable 总数
major_compact_trigger #控制memtable dump flush次数达到时触发major compaction
minor_freeze_times #控制两次合并之间的转储次数,达到此次数则自动触发合并,设置为 0表示关闭转储
minor_merge_concurrency #并发做转储的分区个数;单个分区暂时不支持拆分转储,分区表可加快速度
major_freeze_duty_time #控制定时合并时间,可以修改参数控制合并时间(默认是02:00)
enable_manual_merge #OB 的配置项,指示是否开启手动合并
enable_merge_by_turn #OB的配置项,指示是否开启自动轮转合并
merge_list/zone_merge_order #指定自动轮转合并的合并顺序(智能轮转合并,指定顺序的轮转合并)
zone_merge_concurrency = 3 #用于设置在合并时,支持多少个 Zone 并发。
zone_merge_timeout #定义超时阈值;默认值为’3h’,如果某个ZONE的合并执行超过阈值,合并状态被设置为TIMEOUT
data_disk_usage_limit_percentage #定义数据盘空间使用阈值,默认值90。当数据盘空间使用量超过阈值后,禁止数据迁入。
merge_thread_count #合并线程数,默认值为0,最大值不要超过48,对ibserver的性能影响较大。
max_kept_major_version_number #设置SSTable中保留的数据合并版本个数,默认值为2,调大参数值可以保留更多历史数据,但同时占用更多的存储空间
__all_rootservice_event_history #查看合并记录和状态
__all_zone #查看当前合并状态
------------SQL性能监控
__all_virtual_sql_audit #该虚拟表对应的数据存放在一个可配置的内存空间中
alter system set enable_sql_audit = true/false #设置 sql_audit 使用开关
alter system set sql_audit_memory_limit = ‘3G’; #sql_audit 内存上限,默认内存上限为3G,可设置范围为 [64M,+∞]
-------------LDC配置
select * from __all_zone; #检查observer LDC设置内容是否生效
alter proxyconfig set proxy_idc_name=‘机房名’; #控制全局级别的当前IDC机房信息, 默认为空。
(配置项的设置可以通过启 动参数/登陆修改/ocp配置项更新进行, 在proxy的启动脚本中使用-i 机房名启动传入)
set @proxy_idc_name=‘xx’ #控制session级别的当前机房信息, 默认不指定
(优先级: session变量 > 配置项。 当用户指定session变量proxy_idc_name时,覆盖全局proxy_idc_name设置)
./bin/obproxy -p2883 -e -o obproxy_config_server_url=‘ocp_config_server_url’,proxy_idc_name=‘hz001’ -n trade #首次启动时通过启动参数(推荐)
mysql> alter proxyconfig set proxy_idc_name=‘hz001’; #修改proxy配置项
-----------global级别
set global ob_read_consistency=‘weak’ #用户设置当前租户全局系统session变量set global 对当租户所有会话都生效(当前会话不生效)
-----------session级别
set ob_read_consistency=‘weak’ #只对当前正在连接的session(会话)生效
SQL Hint,用户在select中加/+ read_consistency(weak)/的Hint,仅本语句生效
弱一致性读:备优先读策略
SET @proxy_route_policy='[policy]’ #取值为 follower_first 或 unmerge_follower_first
select @proxy_route_policy;|show proxysession variables #验证命令
set @@global.ob_route_policy=readonly_zone_first; #读写分离策略
-------------OBProxy - 守护进程
/opt/taobao/install/<obproxy目录>/bin/obproxyd.sh -c start -e private -n <obproxy名称>
登录 OBProxy 所在的宿主机,使用admin用户在命令行工具中运行以启动守护进程,守护进程会自 动拉起 OBProxy 进程
ps -ef | grep obproxy | grep ‘^admin’ #检查OBProxy进程状态
obclient - uroot@sys#[集群名称] -P2883 -h127.0.0.1 -p[密码] -Doceanbase -c
在 OceanBase 数据库支持的客户端工具中使用 root 用户登录集群的 sys 租户。然后运行以验证是否能连到 OceanBase 集群
----------OB Proxy配置项
show proxyconfig #展示proxy内部各配置项属性以及config server的配置信息
alter proxyconfig set key=value #更新指定config配置项值xflush_log_level #监控用的xflush的日志级别
syslog_level #OBProxy自己的应用日志的日志级别
observer_query_timeout_delta #关系到网络断开连接,到认为Observer不可用的delta时间
log_cleanup_interval #清理OBProxy自身应用日志的间隔时间
log_dir_size_threshold
internal_cmd_mem_limited #会话较多,导致buffer内存不足时需要调大
-----------日志参数
enable_syslog_recycle #是否开启回收系统日志的功能(默认false)
max_syslog_file_count #设置在回收日志文件之前可以容纳的日志文件数量(默认0)
syslog_io_bandwidth_limit #设置系统日志所能占用的磁盘 IO 带宽上限,超过带宽上限容量的系统 日志将被丢弃(默认30MB)
enable_syslog_wf #设置是否把 WARN 以上级别的系统日志打印到一个单独的日志文件中 (默认true)
trace_log_slow_query_watermark #设置查询的执行时间阈值。如果查询的执行时间超过该阈值,则被认为是慢查询(默认100ms)
slow_transaction_time_threshold #指慢查询或事务的整个生命周期的时间阈值,超过了该时间,就会打印相关日志(默认5s)
slow_proxy_process_time_threshold #在发往 Server 前 Proxy 本身的处理时间,包括获取集群信息,路由信息、黑名单信息等(2ms)
slow_query_time_threshold #指从 OBProxy 获取 SQL 直到返回给客户端之前的这段时间的阈值,超过了该时间,也会打印相关日志(500ms)