GreatSQL社区

搜索

[已解决] 数据导入报错 No space left on device

484 9 2024-2-26 15:47
背景:为测试tpch 1T性能 导入orders表(180G) 到greatsql.

报错:Error writing file '/tmp/MLLX2kbY' (OS errno 28 - No space left on device)Ctrl-C -- exit


其他信息:为greatsql 创建了greatsql用户,其下空间还有1T, 其他目录也有空间。 /tmp所在目录只剩下8.5G。

能否不写入/tmp/目录? 换成其他空间足够的目录。
全部回复(9)
KAiTO 2024-2-26 15:53:19
当然可以啊
KAiTO 2024-2-26 15:56:05
1、用TPCH测试可以看这篇文章(https://greatsql.cn/docs/8032-25 ... benchmark-tpch.html
2、导入数据可以用GreatSQL并行load data,https://greatsql.cn/docs/8032-25 ... -parallel-load.html 这样导入180G会更快
cse_engineer 2024-2-26 15:56:27

大佬 这具体怎么配置的?
KAiTO 2024-2-26 16:01:37
cse_engineer 发表于 2024-2-26 15:56
大佬 这具体怎么配置的?

你不是生成180G数据吗,然后用load data导入,然后再测试tpch
你这个报错应该是tpch生成180G数据的时候空间不足吧,那你换一个有空间的路径生成呗。
你的GreatSQL数据目录是在datadir        = /home/data_redo/yxz/data/GreatSQL ,这个你自己设置的呀,这个空间没满呀
cse_engineer 2024-2-26 16:03:02
KAiTO 发表于 2024-2-26 16:01
你不是生成180G数据吗,然后用load data导入,然后再测试tpch
你这个报错应该是tpch生成180G数据的时候空 ...

数据都生成好了,是导入过程中卡住,最后报错。
cse_engineer 2024-2-26 16:08:13
KAiTO 发表于 2024-2-26 16:01
你不是生成180G数据吗,然后用load data导入,然后再测试tpch
你这个报错应该是tpch生成180G数据的时候空 ...

语句如下:load /*+ SET_VAR(gdb_parallel_load=ON) */ data local infile '/home/data_sata/tpchgen/TPC-H_Tools_v3.0.0/dbgen/orders.tbl' into table orders FIELDS TERMINATED BY '|'; analyze table orders;
cse_engineer 2024-2-26 16:09:07
KAiTO 发表于 2024-2-26 16:01
你不是生成180G数据吗,然后用load data导入,然后再测试tpch
你这个报错应该是tpch生成180G数据的时候空 ...


用户在data_redo目录下,/home/data_redo/yxz/data/GreatSQL

/dev/mapper/rhel-root   50G   48G  2.6G  95% /
devtmpfs                95G     0   95G   0% /dev
tmpfs                   95G   88K   95G   1% /dev/shm
tmpfs                   95G  156M   95G   1% /run
tmpfs                   95G     0   95G   0% /sys/fs/cgroup
/dev/sda2             1016M  137M  880M  14% /boot
/dev/sda1              200M  9.8M  191M   5% /boot/efi
/dev/mapper/rhel-home  1.1T  865G  197G  82% /home
/dev/loop0             3.8G  3.8G     0 100% /media/cdrom
/dev/md0               3.0T  1.6T  1.4T  54% /home/data_raid1
/dev/md1               3.0T  2.3T  647G  79% /home/data_nvme
/dev/md2               1.5T  256G  1.3T  18% /home/data_redo
tmpfs                   19G     0   19G   0% /run/user/0
/dev/loop1             4.3G  4.3G     0 100% /iso
tmpfs                   19G     0   19G   0% /run/user/1000


cse_engineer 2024-2-26 16:10:47
KAiTO 发表于 2024-2-26 16:01
你不是生成180G数据吗,然后用load data导入,然后再测试tpch
你这个报错应该是tpch生成180G数据的时候空 ...

[client]

user = root
socket        = /home/data_redo/yxz/data/GreatSQL/mysql.sock

[mysqld]
user        = greatsqlyxz
port        = 3306
#主从复制或MGR集群中,server_id记得要不同
#另外,实例启动时会生成 auto.cnf,里面的 server_uuid 值也要不同
#server_uuid的值还可以自己手动指定,只要符合uuid的格式标准就可以
server_id = 3306

basedir = /usr/local/GreatSQL-8.0.32-25-Linux-glibc2.17-x86_64
datadir        = /home/data_redo/yxz/data/GreatSQL
socket= /home/data_redo/yxz/data/GreatSQL/mysql.sock
pid-file = mysql.pid
character-set-server = UTF8MB4
skip_name_resolve = 1
#若你的MySQL数据库主要运行在境外,请务必根据实际情况调整本参数
default_time_zone = "+8:00"

default_authentication_plugin=mysql_native_password

#performance setttings
lock_wait_timeout = 3600
open_files_limit    = 65535
back_log = 1024
max_connections = 512
max_connect_errors = 1000000
table_open_cache = 1024
table_definition_cache = 1024
thread_stack = 512K
sort_buffer_size = 4M
join_buffer_size = 4M
read_buffer_size = 8M
read_rnd_buffer_size = 4M
bulk_insert_buffer_size = 64M
thread_cache_size = 768
interactive_timeout = 600
wait_timeout = 600
tmp_table_size = 32M
max_heap_table_size = 32M
max_allowed_packet = 64M
net_buffer_shrink_interval = 180
#GIPK
loose-sql_generate_invisible_primary_key = ON

#log settings
log_timestamps = SYSTEM
log_error = /home/data_redo/yxz/data/GreatSQL/error.log
log_error_verbosity = 3
slow_query_log = 1
log_slow_extra = 1
slow_query_log_file = slow.log
#设置slow log文件大小1G及总文件数10
max_slowlog_size = 1073741824
max_slowlog_files = 10
long_query_time = 0.1
log_queries_not_using_indexes = 1
log_throttle_queries_not_using_indexes = 60
min_examined_row_limit = 100
log_slow_admin_statements = 1
log_slow_slave_statements = 1
log_bin = binlog
binlog_format = ROW
sync_binlog = 1
binlog_cache_size = 4M
max_binlog_cache_size = 140G
max_binlog_size = 8G
#控制binlog总大小,避免磁盘空间被撑爆
binlog_space_limit = 500G
binlog_rows_query_log_events = 1
binlog_expire_logs_seconds = 604800
#MySQL 8.0.22前,想启用MGR的话,需要设置binlog_checksum=NONE才行
binlog_checksum = CRC32
gtid_mode = ON
enforce_gtid_consistency = TRUE

#myisam settings
key_buffer_size = 32M
myisam_sort_buffer_size = 128M

#replication settings
relay_log_recovery = 1
slave_parallel_type = LOGICAL_CLOCK
#可以设置为逻辑CPU数量的2倍
slave_parallel_workers = 64
binlog_transaction_dependency_tracking = WRITESET
slave_preserve_commit_order = 1
slave_checkpoint_period = 2

#mgr settings
#loose-plugin_load_add = 'mysql_clone.so'
#loose-plugin_load_add = 'group_replication.so'
#loose-group_replication_group_name = "aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaa1"

#MGR本地节点IPORT,请自行替换
#loose-group_replication_local_address = "172.16.16.10:33061"

#MGR集群所有节点IPORT,请自行替换
#loose-group_replication_group_seeds = "172.16.16.10:33061,172.16.16.11:33061,172.16.16.12:33061"
#loose-group_replication_start_on_boot = OFF
#loose-group_replication_bootstrap_group = OFF
#loose-group_replication_exit_state_action = READ_ONLY
#loose-group_replication_flow_control_mode = "DISABLED"
#loose-group_replication_single_primary_mode = ON
#loose-group_replication_majority_after_mode = ON
#loose-group_replication_communication_max_message_size = 10M
#loose-group_replication_arbitrator = 0
#loose-group_replication_single_primary_fast_mode = 1
#loose-group_replication_request_time_threshold = 100
#loose-group_replication_primary_election_mode = GTID_FIRST
#loose-group_replication_unreachable_majority_timeout = 0
#loose-group_replication_member_expel_timeout = 5
#loose-group_replication_autorejoin_tries = 288
#report_host = "172.16.16.10"

#innodb settings
innodb_buffer_pool_size = 2G
innodb_buffer_pool_instances = 8
innodb_data_file_path = ibdata1:12M:autoextend
innodb_flush_log_at_trx_commit = 1
innodb_log_buffer_size = 32M
innodb_log_file_size = 2G
innodb_log_files_in_group = 3
innodb_redo_log_capacity = 6G
innodb_max_undo_log_size = 4G
# 根据您的服务器IOPS能力适当调整
# 一般配普通SSD盘的话,可以调整到 10000 - 20000
# 配置高端PCIe SSD卡的话,则可以调整的更高,比如 50000 - 80000
innodb_io_capacity = 4000
innodb_io_capacity_max = 8000
innodb_open_files = 65535
innodb_flush_method = O_DIRECT
innodb_lru_scan_depth = 4000
innodb_lock_wait_timeout = 10
innodb_rollback_on_timeout = 1
innodb_print_all_deadlocks = 1
innodb_online_alter_log_max_size = 4G
innodb_print_ddl_logs = 0
innodb_status_file = 1
#注意: 开启 innodb_status_output & innodb_status_output_locks 后, 可能会导致log_error文件增长较快
innodb_status_output = 0
innodb_status_output_locks = 1
innodb_sort_buffer_size = 67108864
innodb_adaptive_hash_index = 0
#开启NUMA支持
innodb_numa_interleave = ON
innodb_print_lock_wait_timeout_info = 1
#自动杀掉超过5分钟不活跃事务,避免行锁被长时间持有
kill_idle_transaction = 300

#innodb monitor settings
#innodb_monitor_enable = "module_innodb,module_server,module_dml,module_ddl,module_trx,module_os,module_purge,module_log,module_lock,module_buffer,module_index,module_ibuf_system,module_buffer_page,module_adaptive_hash"

#innodb parallel query
loose-force_parallel_execute = OFF
loose-parallel_default_dop = 8
loose-parallel_max_threads = 96
temptable_max_ram = 8G

#pfs settings
performance_schema = 1
#performance_schema_instrument = '%memory%=on'
performance_schema_instrument = '%lock%=on'
KAiTO 2024-2-26 16:26:29

你的tmp目录满了:
[mysqld]
tmpdir=XXX
修改cnf,换一个tmp空间大的地方可以容纳你的180G,然后重启GreatSQL

换的目录记得要修改权限哈
cse_engineer

10

主题

0

博客

32

贡献

注册会员

Rank: 2

积分
53

助人为乐(铜)勤学好问(铜)

合作电话:010-64087828

社区邮箱:greatsql@greatdb.com

社区公众号
社区小助手
QQ群
GMT+8, 2024-9-21 08:53 , Processed in 0.020775 second(s), 18 queries , Redis On.
快速回复 返回顶部 返回列表