mysql备份提示too many open files Errornumber 24怎么解决

60次阅读
没有评论

共计 2763 个字符,预计需要花费 7 分钟才能阅读完成。

本篇内容主要讲解“mysql 备份提示 too many open files Errornumber 24 怎么解决”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让丸趣 TV 小编来带大家学习“mysql 备份提示 too many open files Errornumber 24 怎么解决”吧!

一. 问题的描述

备份程序 执行前滚的时候报错。

InnoDB: Errornumber 24 means  Too many open files .
InnoDB: Some operatingsystem error numbers are described at
InnoDB: http://dev.MySQL.com/doc/mysql/en/Operating_System_error_codes.html
InnoDB: File name/home/nice/backup/mysql/var.20121211021656/user_db_20121123/tuser_like_core.ibd
InnoDB: File operationcall:  open .
InnoDB: Cannot continueoperation.
 
innobackup:Error:

二. 问题分析

openfiles  开的小了。mysql 的 open_file_limit 受制于以下几个参数
max_connections、 table_open_cache 、open_files_limit  以及  /etc/security/limits.conf 中的配置。max_connections 和  table_open_cache  与 open_files_limit  的关系: max_1 = 10 + max_connections + table_cache * 2;
 max_2 = max_connections * 5;
 max_3 = max_os_open_files;// 操作系统单个进程最大允许打开文件句柄(文件描述符)。 open_files_limit= max( max_1, max_2 )   max_3 ? max_3 : max ( max_1, max_2);
综合分析发现,open_files_limit | 10240
而目前 ibd 表已经 10800 个了。

三. 解决问题

1.my.cnf  配置 open_files_limit  = 20480

重启 mysql 发现没有变化,open_files_limit  | 10240。

2.ulimit -a

core file size (blocks, -c) unlimited
data seg size (kbytes, -d) unlimited
file size (blocks, -f) unlimited
pending signals (-i) 1024
max locked memory (kbytes, -l) 32
max memory size (kbytes, -m) unlimited
open files (-n) 1024
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
stack size (kbytes, -s) 10240
cpu time (seconds, -t) unlimited
max user processes (-u) 137216
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited

3.vi /etc/security/limits.conf, 添加

mysql soft nofile 8192
mysql hard nofile 20480

4. 经过前三步,重启 mysql。

重启 mysql 发现,open_files_limit  | 20480。

5. 修改 OS 用户配置文件

经过前四步,虽然在 mysql 中 看 open_files_limit  | 20480, 但 ibbackup 还是在前滚时报错。报,open_file 不够。怀疑 还是没有生效。

ulimit -a
core file size (blocks, -c) unlimited
data seg size (kbytes, -d) unlimited
file size (blocks, -f) unlimited
pending signals (-i) 1024
max locked memory (kbytes, -l) 32
max memory size (kbytes, -m) unlimited
open files (-n) 1024
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
stack size (kbytes, -s) 10240
cpu time (seconds, -t) unlimited
max user processes (-u) 137216
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited

于是,修改 OS 用户配置文件

分别查看了.bash_profile、.bashrc、/etc/bashrc;

发现,.bash_profile 调用 .bashrc,.bashrc 调用 /etc/bashrc

发现,/etc/bashrc 中有  

ulimit -S -c unlimited   /dev/null 2 1

在这一行之后 添加

ulimit -n 20480  /dev/null 2 1

6. 重启 mysql , 执行备份程序,在 –apply-log,还是报错,报,open_file 不够

InnoDB: Errornumber 24 means  Too many open files .
InnoDB: Some operatingsystem error numbers are described at
InnoDB: http://dev.mysql.com/doc/mysql/en/Operating_System_error_codes.html

7. 修改 innodb_open_files  参数

之前这个参数,设置成 500. 这次修改到 1000.

重启 mysql 解决问题

到此,相信大家对“mysql 备份提示 too many open files Errornumber 24 怎么解决”有了更深的了解,不妨来实际操作一番吧!这里是丸趣 TV 网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-28发表,共计2763字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)