创建TiFlash副本

官网
官方资料

创建TiFlash副本

TiFlash 接入 TiKV 集群后,默认不会开始同步数据。可通过 MySQL 客户端向 TiDB 发送 DDL 命令来为特定的表建立 TiFlash 副本:
1、为表建立副本(可以参考自身配置的tiflash数量配置副本数量):

#test1 测试表 创建一个tiflash副本
ALTER TABLE test1 SET TIFLASH REPLICA 1

删除副本(命令备用):

ALTER TABLE test1 SET TIFLASH REPLICA 0

假设有一张表 t已经通过上述的 DDL 语句同步到 TiFlash,则通过以下语句创建的表也会自动同步到 TiFlash(命令备用):

CREATE TABLE table_name like t

2、查看表同步进度
可通过如下 SQL 语句查看特定表(通过 WHERE 语句指定,去掉 WHERE 语句则查看所有表)的 TiFlash 副本的状态:

SELECT * FROM information_schema.tiflash_replica WHERE TABLE_SCHEMA = '<db_name>' and TABLE_NAME = '<table_name>'

注:查询结果中:
AVAILABLE 字段表示该表的 TiFlash 副本是否可用。1 代表可用0 代表不可用
PROGRESS 字段代表同步进度,在 0.0~1.0 之间,1 代表至少 1 个副本已经完成同步。

使用案例:

SELECT * FROM information_schema.tiflash_replica

在这里插入图片描述
验证查询所走的是kv还是tiflash副本

-- 验证是否使用副本
-- explain analyze select * from test1

手动指定查询所使用的存储模块(tikv/tiflash)

select /*+ read_from_storage(tikv[test1] )*/ * from test1;
select /*+ read_from_storage(tiflash[test1] )*/ * from test1;

所使用的引擎

Engine 隔离是通过配置变量来指定所有的查询均使用指定 engine 的副本,可选 engine 为 tikv 和 tiflash,分别有 2 个配置级别:

1、会话级别,即 SESSION 级别。设置语句:

#查询默认配置的引擎
select @@session.tidb_isolation_read_engines
#设置
set @@session.tidb_isolation_read_engines = "逗号分隔的 engine list";set SESSION tidb_isolation_read_engines = "逗号分隔的 engine list";

会话级别的默认配置继承自 TiDB 实例级别的配置,见 2。

2、TiDB 实例级别,即 INSTANCE 级别,和会话级别配置是交集关系。比如实例级别配置了 “tikv, tiflash”,而会话级别配置了 “tikv”,则只会读取 TiKV。

在 TiDB 的配置文件添加如下配置项:

[isolation-read]
engines = ["tikv", "tiflash"]

实例级别的默认配置为 [“tikv”, “tiflash”]。

当 engine 配置为 “tikv, tiflash”,即可以同时读取 TiKV 和 TiFlash 副本,优化器会自动选择。
指定了 engine 后,对于查询中的表没有对应 engine 副本的情况(因为 TiKV 副本是必定存在的,因此只有配置了 engine 为 tiflash 而 TiFlash 副本不存在这一种情况),查询会报该表不存在该 engine 副本的错。



TIDB4.0版本开启TIflash

注意:
在配合使用 TiFlash 场景下,Placement Rules 功能进行过大量测试,可以在生产环境中使用。除配合使用 TiFlash 的场景外,单独开启 Placement Rules 没有经过大量测试,因此,不建议在生产环境单独开启该功能。

[replication] # PD配置
enable-placement-rules
打开 placement-rules
默认:false
参考Placement Rules 使用文档
4.0 实验性特性

前提:已经初始化过的集群开启TIflash

推荐:通过 pd-ctl 进行在线开启:
pd-ctl config placement-rules enable # 开启 Placement Rules 特性
pd-ctl config placement-rules disable # 关闭 Placement Rules 特性

1、在线开启tiflash

tiup ctl pd -u http://{pd}:2379 config placement-rules enable

2、使用 pd-ctl 检查 PD 的 Placement Rules 功能是否开启:

tiup ctl pd -u http://{pd}:2379 config show replication

3、检查集群状态,重启TIflash

例子:

[tidb@back-paas ~]$ tiup ctl pd -u http://172.168.192.33:2379 config placement-rules show
Starting component `ctl`:  pd -u http://192.168.192.33:2379 config placement-rules show
[412] "placement rules feature is disabled"

[tidb@back-paas ~]$ tiup ctl pd -u http://172.168.192.33:2379 config placement-rules enable
Starting component `ctl`:  pd -u http://172.168.192.33:2379 config placement-rules enable
Success!
[tidb@back-paas ~]$ tiup ctl pd -u http://172.168.192.33:2379 config placement-rules show
Starting component `ctl`:  pd -u http://172.168.192.33:2379 config placement-rules show
[
  {
    "group_id": "pd",
    "id": "default",
    "start_key": "",
    "end_key": "",
    "role": "voter",
    "count": 3
  }
]


TIflash常见问题

tiflash优化参考

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值