开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第18天,点击查看活动详情
@[toc]
第四章:OB Server的SQL引擎和存储引擎
4.3 备份恢复
4.3.1 物理备份系统架构
支持 OSS、NFS 和 COS 三种备份介质,提供了备份、恢复、管理三大功能。支持手动删除指定的备份和自动过期备份的功能物理备份由数据备份和日志归档两个功能。数据备份指备份基线数据,包括全量备份和增量备份;日志归档指日志数据的自动归档功能
4.3.2 物理恢复系统架构
• 支持租户级别的恢复,恢复是基于已有备份数据重建新租户的过程。用户只需要一个 alter systemrestore tenant 命令,就可以完成整个恢复过程
• 恢复过程包括租户系统表和用户表的 Restore 和Recover 过程。Restore 是将恢复需要的基线数据恢复到目标租户的 OBServer,Recover 是将基线对应的日志恢复到对应 OBServer
4.3.3 小结
本章节从集群的宏观视角到OB Server的微观视角,剖析OB Server内的SQL引擎和存储引擎的基础技术架构: • OceanBase可以支持在一个数据库中同时支持MySQL租户和Oracle租户;全面兼容MySQL 5.6语法,兼容Oracle 11g语法 • 可以使用Explain命令查看SQL的执行计划 • OceanBase是准内存数据库并使用LSMTree存储,可以有效解决随机写和写放大问题 • 为避免内存中数据丢失,redo-log以WAL机制实时落盘,保证数据持久性 • OceanBase通过转储和合并机制,避免了频繁的check point,提高写性能的同时也可以更好的实现数据压缩,降低成本
第五章:参数和变量
5.1 参数管理
当 OBServer 启动后,如果没有指定参数,使用系统指定的参数 Default 值。在 OBServer 进程启动成功后,参数值持久化到 /home/admin/oceanbase/etc/observer.config.bin 文件中,可以通过 strings 命令来查看内容
5.1.1 管理范围
• 通过集群参数的设置可以控制集群的负载均衡、合并时间、合并方式、资源分配和模块开关等功能
5.1.2 参数生效
• 参数分为动态生效和重启生效两类,大部分为动态生效
5.1.3 参数级别
• 参数分为集群级别和租户级别,大部分为集群参数
5.1.4 管理权限
• 系统租户可以查看和设置所有其他租户的参数 (包括 sys 租户),普通租户只能设置自己租户的参数
5.2 集群参数查询
5.2.1 语法
5.2.1.1 系统租户查询集群参数语法
show parameters [SHOW_PARAM_OPTS] [tenant='tenant‘]
5.2.1.2 普通租户查询集群参数语法
show parameters [SHOW_PARAM_OPTS]
• [SHOW_PARAM_OPTS] :值可指定为 [LIKE 'pattern' | WHERE expr] • [tenant='tenant'] :系统租户查看集群参数时需指定租户名
5.2.2 查询结果
列名 | 含义 | ||||
---|---|---|---|---|---|
Zone | 所在的zone | ||||
svr_ip | 机器 IP | ||||
svr_port | 机器端端口 | ||||
name | 配置项名 | ||||
value | 配置项值 | ||||
data_type | 配置项数据类型(NUMBER,STRING,CAPACITY...) | ||||
info | 配置项解释(描述了 Parameter 的意义和取值范围) | ||||
scope | 配置项范围属性(Tenant | /Cluster) | |||
source | 当前值来源(Tenant | Cluster | CommandLine | ObAdmin | File) |
edit_level | dynamic_effective(动态生效)/ static_effective(重启后生效) |
5.2.3 示例
系统租户 • show parameters like 'sql_work_area' tenant=t1 • show parameters where edit_level='static_effective' and name='sql_work_area' tenant=t1; 普通租户 • show parameters like 'sql_work_area'
5.3 集群参数设置
5.3.1 语法
集群参数修改语句的语法如下所示,同时修改多个系 统配置项时,请用逗号(,)隔开:
ALTER SYSTEM SET param_name = expr
[COMMENT 'text’]
[PARAM_OPTS]
[TENANT = 'tenantname’]
PARAM_OPTS:
[ZONE='zone' | SERVER='server_ip:rpc_port’]
如果不带任何条件,则修改所有 OB Server 的值
5.3.2 示例
系统租户设置集群配置项
alter system set sql_port=8888 –
系统租户设置租户配置项
alter system set sql_work_area='1G' tenant='test_tenant’
alter system set max_syslog_file_count=100 zone='ZONE_1’
ALTER SYSTEM SET max_syslog_file_count = 100
server='100.88.8.54:2882’;
租户设置租户配置项
alter system set sql_work_area='2G’
alter system set memory_limit = '100G' SERVER='192.168.100.1:2882’;
alter system set memory_limit = '100G' ZONE='z1'
• ALTER SYSTEM 语句不能同时指定 Zone 和 Server。如指定 Zone,仅能指定一个 Zone,如果指定 Server,只能指定一个Server • 集群级别的配置项(Scope) 不能通过普通租户设定,也不可以通过 sys 租户指定普通租户进行设定。例如, alter system setmemory_limit=‘100G’ tenant=‘test_tenant’ 将导致报错,因为 memory_limit 是集群级别(scope)的配置项