【YashanDB知识库】用yasldr配置Bulkload模式作单线程迁移300G的业务数据到分布式数据库,迁移任务频繁出错

简介: YashanDB知识库

问题描述

详细版本:YashanDB Server Enterprise Edition Release 23.2.4.100 x86_64 6db1237

影响范围:

离线数据迁移场景,影响业务数据入库。

外场将部分NewCIS的报表业务放到分布式数据库,验证SQL性能水平。

操作系统环境配置:

125G内存

32C CPU

2T的HDD磁盘

问题出现的步骤/操作:

1、部署崖山分布式数据库 1mm 1cn 3dn

单线启动yasldr数据迁移任务,设置32线程的bulk load模式

2、观察yasldr.log 是否出现如下错误

failed to allocate 6812396 bytes memory quota for init bulkload quota

问题分析

BULKLOAD导入过程中所有导入线程的最大可用内存按如下公式配置:

COLUMNAR_MATERIAL_PERCENT COLUMNAR_VM_BUFFER_SIZE BULKLOAD_MAX_MEM_PERCENT

相应参数配置:

COLUMNAR_VM_BUFFER_SIZE = 19375M

COLUMNAR_MATERIAL_PERCENT = 80 //没有配置,使用默认配置

BULKLOAD_MAX_MEM_PERCENT = 80 //没有配置,使用默认配置

导入线程的最大可用内存: 80% 19375M 80% = 12400M

yasldr进程数(8个)和线程数(32线程),总线程数量: 8 * 32 = 256

平均每个线程的可用内存: 12400M/256 = 48.4375 M

已知配置参数:COLUMNAR_BULK_SIZE = 4096 //指定列存计算每批次记录行数

每行记录如果有20K,就超过平均值,资源变成紧张。

规避方法

1、减小导入线程

2、调大相关内存配置(COLUMNAR_MATERIAL_PERCENT/COLUMNAR_VM_BUFFER_SIZE /BULKLOAD_MAX_MEM_PERCENT)

为保证导入不因内存不足报错,请至少保证每个服务端导入线程内存最小为300M。

可以通过视图dV$bulkloadStat观察bulkload导入的情况

https://doc.yashandb.com/yashandb/23.2/zh/%E5%8F%82%E8%80%83%E6%89%8B%E5%86%8C/%E9%85%8D%E7%BD%AE%E5%8F%82%E6%95%B0.html

文档中配置参数有详细说明

相关文章
|
Java 索引
多线程向设备发送数据
多线程向设备发送数据
248 0
|
安全 网络安全 数据库
YashanDB分布式节点间SSL连接配置
本文介绍YashanDB分布式节点间SSL连接配置方法,确保通信安全。需统一为整个集群配置SSL,使用相同根证书签名的服务器证书,否则可能导致连接失败或数据库无法启动。文章详细说明了使用OpenSSL生成根证书、服务器私钥、证书及DH文件的步骤,并指导如何将证书分发至各节点。最后,通过配置数据库参数(如`din_ssl_enable`)并重启集群完成设置。注意,证书过期需重新生成以保障安全性。
|
存储 监控 分布式数据库
ClickHouse分布式数据库动态伸缩(弹性扩缩容)的实现
实现ClickHouse数据库的动态伸缩需要持续的维护和精细的操作。从集群配置到数据迁移,再到监控和自动化,每一步都要仔细管理以确保服务的可靠性和性能。这些活动可以显著提高应用的响应性和成本效率,帮助业务根据实际需求灵活调整资源分配。
691 10
|
存储 关系型数据库 分布式数据库
【赵渝强老师】基于PostgreSQL的分布式数据库:Citus
Citus 是基于 PostgreSQL 的开源分布式数据库,采用 shared nothing 架构,具备良好的扩展性。它以插件形式集成,部署简单,适用于处理大规模数据和高并发场景。本文介绍了 Citus 的基础概念、安装配置步骤及其在单机环境下的集群搭建方法。
1141 2
|
数据采集 监控 调度
干货分享“用 多线程 爬取数据”:单线程 + 协程的效率反超 3 倍,这才是 Python 异步的正确打开方式
在 Python 爬虫中,多线程因 GIL 和切换开销效率低下,而协程通过用户态调度实现高并发,大幅提升爬取效率。本文详解协程原理、实战对比多线程性能,并提供最佳实践,助你掌握异步爬虫核心技术。
|
SQL 数据可视化 网络安全
YashanDB分布式可视化部署
本文介绍YashanDB的分布式部署流程,涵盖服务端安装、数据库基本信息与服务器配置、节点信息设置、建库参数调整、环境变量配置及安装结果检查等步骤。通过可视化Web界面操作,详细说明了各环节配置方法和注意事项,确保用户顺利完成数据库集群的搭建与初始化设置。适用于需要分布式数据库部署的场景,提供全面的操作指导。
YashanDB分布式可视化部署
|
SQL DataX HIVE
【YashanDB知识库】DataX迁移Hive到崖山分布式
本文来自YashanDB官网,介绍通过DataX将Hive数据迁移到YashanDB的实现方法。源环境为Hive 3.1.3,目标为YashanDB 23.2.3.100。文章提供了Hive与YashanDB的建表脚本、数据类型映射及DataX配置示例,包含reader和writer插件参数设置,并通过`datax.py`执行同步任务。内容详尽展示了数据迁移的全流程。
【YashanDB知识库】DataX迁移Hive到崖山分布式
|
SQL 存储 分布式数据库
分布式存储数据恢复—hbase和hive数据库数据恢复案例
分布式存储数据恢复环境: 16台某品牌R730xd服务器节点,每台服务器节点上有数台虚拟机。 虚拟机上部署Hbase和Hive数据库。 分布式存储故障: 数据库底层文件被误删除,数据库不能使用。要求恢复hbase和hive数据库。
702 12
|
负载均衡 Java 数据库连接
【YashanDB知识库】透明故障转移配置指导
本文介绍了YashanDB的透明应用故障转移(TAF)功能,该功能可在数据库实例故障时自动重新连接到其他节点,保持连接一致性。同时新增了JDBC URL配置参数,包括`failover`、`failoverType`、`failoverMethod`、`failoverRetries`和`failoverDelay`,用于定制化故障转移行为。文章提供了单机、主备及负载均衡模式下的URL示例,并说明了非DBA用户角色的授权方法。
|
SQL 网络安全 分布式数据库
YashanDB分布式部署
本文详细介绍了YashanDB在分布式环境下的安装与部署流程,以三台服务器为例(1个MN组、2个CN节点、1个DN组),涵盖主备配置。主要内容包括:生成部署文件(通过`yasboot package`命令)、执行安装、数据库部署、配置环境变量、检查安装结果等步骤。同时提供可选配置,如仲裁选主和用户管理,确保高可用性和性能优化。适合需要搭建分布式数据库集群的用户参考使用。

热门文章

最新文章