标签: crash

间歇性 MySQL 崩溃并出现错误“致命错误:无法为缓冲池分配内存”

添加于编辑,2013-05-29:因为这是一个很长的问题和讨论,这里是问题和解决方案的简短摘要。我在小型 Linux 服务器(1 GB 内存)上运行 MySQL 和 Apache 时遇到问题。Apache 不断要求更多的内存,结果,操作系统总是杀死 MySQL 以重新获得内存。 解决方案是用 Lighttpd 替换 Apache。在我这样做之后,服务器上的内存使用已经完全稳定了几个月,而且我没有出现任何形式的崩溃。编辑结束

我是一个小型虚拟服务器的初学者系统管理员。服务器的主要功能是运行用PHP编写的开源Moodle课程管理系统软件。它依赖于数据库(在本例中为 MySQL)和 Web 服务器(在本例中为 Apache)。

该服务器运行 64 位 CentOS 5.8 版(最终版),具有 1 GB 内存和 200 GB 磁盘,内核版本 2.6.18-308.8.2.el5xen。MySQL 版本为 Ver 14.14 Distrib 5.5.25,适用于使用 readline 5.1 的 Linux (x86_64)。

我不认为 Moodle 软件是 MySQL 的重度用户。目前,只有大约十位教师可以访问它,当我使用 bzip2 转储和压缩整个数据库时,生成的转储大小小于 1 MB。

我几个月前设置了系统。Apache服务器一直稳定,但MySQL崩溃了几次。尝试从网上学习了最佳配置,上次改/etc/my.cnf文件时,/usr/share/doc/mysql55-server-5.5.25/my-large.cnf以MySQL自带的文件为例。该文件说它适用于具有 512 MB 内存的系统,因此我认为使用其与内存相关的配置参数对该系统来说是安全的。(我之前用更小的数字配置了MySQL的内存相关参数,我认为这可能导致崩溃。虽然崩溃仍然发生,但系统至少现在更快了。)这些是当前的内容/etc/my.cnf

# /etc/my.cfg

# The main and only MySQL configuration file on [WEBSITE …
Run Code Online (Sandbox Code Playgroud)

mysql innodb mysql-5.5 crash

39
推荐指数
1
解决办法
6万
查看次数

MySQL InnoDB 崩溃事后分析

今天早上 MySQL 对我崩溃了。

除了标准的 MySQL 包含的数据库之外,我使用的一切都是 InnoDB。

我试图重新启动 MySQL 守护进程,但它失败了两次。

然后我重新启动了整个服务器,MySQL 正确启动并且从那以后一直运行良好。

初始崩溃的 mysqld 日志文件包含以下内容:

120927 10:21:05 mysqld_safe Number of processes running now: 0
120927 10:21:06 mysqld_safe mysqld restarted
120927 10:21:12 [Note] Plugin 'FEDERATED' is disabled.
120927 10:21:12 InnoDB: The InnoDB memory heap is disabled
120927 10:21:12 InnoDB: Mutexes and rw_locks use GCC atomic builtins
120927 10:21:12 InnoDB: Compressed tables use zlib 1.2.3
120927 10:21:12 InnoDB: Using Linux native AIO
120927 10:21:13 InnoDB: Initializing buffer pool, size = 4.0G
InnoDB: …
Run Code Online (Sandbox Code Playgroud)

mysql innodb mysql-5.5 crash

29
推荐指数
1
解决办法
2万
查看次数

转换为数字时奇怪的 SQL Server 实例崩溃

在使用 C# Entity Framework 时,我注意到我的 SQL Server 实例崩溃了。

我能够将其追溯到以下声明:

SELECT * FROM dbo.[TestTable]
where mpnr in (1099059904,
1038139906,
1048119902,
1045119902,
1002109903,
1117109910,
1111149902,
1063149902,
1117159902,
1116109904,
1105079905,
1012079906,
1129129904,
1103059905,
1065059905,
1091059906,
1110149904,
1129149903,
1083029905,
1080139904,
1076109903,
1010019902,
1058019902,
1060019903,
1053019902,
1030089902,
1018149902,
1077149902,
1010109901,
1011109901,
1000119902,
1023049903,
1107119909,
1108119909,
1106119909)
Run Code Online (Sandbox Code Playgroud)

该表如下所示:

CREATE TABLE dbo.[TestTable]([MPNR] [numeric](9, 0) NOT NULL)
Run Code Online (Sandbox Code Playgroud)

每次启动查询时都会发生崩溃。如果我减少IN子句中值的数量,它就会起作用。(当然,它不返回任何行。)

我知道IN子句中的值是 10 位数字,列只有 9 位数字,但这不应导致整个 SQL Server 实例崩溃。

我的 SQL Server 的版本是 Windows Server 2003 32 …

sql-server sql-server-2008-r2 crash

20
推荐指数
1
解决办法
520
查看次数

SQL Server 的崩溃恢复能力可以提高吗?

我们有运行 SQL Server(2008 SP4 和 2016 SP1)的 PC,它们经常断电。显然,这有时会导致 SQL Server 数据库的(索引)损坏,我们需要稍后恢复。

我知道 SQL Server 不是为这种情况设计的,正确的解决方案是修复断电的原因(如果您好奇,请在下面详细介绍)。尽管如此,我可以设置 SQL Server 中的任何调整选项来降低断电时数据库损坏的风险吗?


背景:“PC”是安装在叉车上的 Windows 平板电脑。当用户关闭叉车时,平板电脑就会断电。我们曾尝试教用户在关闭叉车之前正确关闭 Windows,但失败了(可能是因为在大多数情况下只是将其关闭“有效”)。我们目前还在研究其他选项,例如添加一个 UPS,它会在断电时向平板电脑发出信号关闭。

sql-server crash

20
推荐指数
3
解决办法
3245
查看次数

mysql.proc 不断崩溃,无法执行 mysqldump?

由于 InnoDB 的一些问题,我将所有数据库转储到新服务器:

mysqldump -E -R --all-databases | pv -b | mysql -u root -p -h new.server          
Run Code Online (Sandbox Code Playgroud)

转储过程因错误而停止:

59.9kB assword: 59.9kB 
ERROR 145 (HY000) at line 2970: Table './mysql/proc' is marked as crashed and should 
    be repaired
 228MB 
mysqldump: Got errno 32 on write
Run Code Online (Sandbox Code Playgroud)

我运行了以下命令来修复所有数据库中的所有表:

mysqlcheck --auto-repair --all-databases
Run Code Online (Sandbox Code Playgroud)

当我检查mysql.proc状态时,我得到:

mysql> check table mysql.proc;
+------------+-------+----------+----------+
| Table      | Op    | Msg_type | Msg_text |
+------------+-------+----------+----------+
| mysql.proc | check | status   | OK       |
+------------+-------+----------+----------+
1 row in set …
Run Code Online (Sandbox Code Playgroud)

mysql mysqldump stored-procedures crash

9
推荐指数
2
解决办法
1万
查看次数

在并发截断命令期间服务器崩溃后 MySQL INNODB 损坏

我的服务器今天崩溃了,我认为是由于我们的一个 INNODB 表上的并发 truncate table 命令。服务器可以重新启动,但是在它启动后,每次我尝试发出 SQL 命令时,都会出现以下错误:

ERROR 2006 (HY000): MySQL server has gone away
Run Code Online (Sandbox Code Playgroud)

这是日志中发生的事情:

121206 01:11:12  mysqld restarted
121206  1:11:13  InnoDB: Started; log sequence number 275 559321759
InnoDB: !!! innodb_force_recovery is set to 1 !!!
121206  1:11:13 [Note] /usr/libexec/mysqld: ready for connections.
Version: '5.0.95-log'  socket: '/var/lib/mysql/mysql.sock'  port: 3306  Source distribution
InnoDB: Error: trying to load index PRIMARY for table 
InnoDB: but the index tree has been freed!
121206  1:11:37 - mysqld got signal 11 ;
This could …
Run Code Online (Sandbox Code Playgroud)

mysql innodb index corruption crash

9
推荐指数
1
解决办法
2万
查看次数

如何跟踪导致 SQL Server 崩溃的 SQL 查询

我们有一个 SQL Server 2008 数据库服务器(它恰好在 MS 故障转移群集下运行,但我认为这与此处无关)。

我们的应用程序运行 Hibernate 以进行数据库访问,自从我们最近从 v3.1 升级到 3.6 以来,我们经常遇到 SQL Server 崩溃(每 24-48 小时,但有时更频繁)。

有问题的具体问题似乎与内存有关。就在服务器崩溃之前(然后似乎由故障转移集群管理器自动重新启动),我们收到了这些错误的负载:

Error: 701, Severity: 17, State: 130.
There is insufficient system memory in resource pool 'internal' to run this query.
Run Code Online (Sandbox Code Playgroud)

也偶尔(但定期)的消息

Error: 17300, Severity: 16, State: 1. (Params:). The error is printed in terse mode because there was error during formatting. Tracing, ETW, notifications etc are skipped.
Run Code Online (Sandbox Code Playgroud)

错误:17312,严重性:16,状态:1。(参数:)。错误以简洁模式打印,因为格式化过程中出现错误。跟踪、ETW、通知等被跳过。

我还收到一些应用程序级别的错误,例如

java.sql.SQLException: A time out occurred while waiting to optimize the query. Rerun …
Run Code Online (Sandbox Code Playgroud)

sql-server-2008 sql-server crash

9
推荐指数
1
解决办法
1万
查看次数

无法启动:InnoDB:页面损坏...找不到表空间

服务器崩溃(Ubuntu 16.04)后,当我尝试使用innodb_force_recovery=0它启动 Mysql(Mysql 5.7)时,它不会启动并且 error.log 显示:

InnoDB: Checksum mismatch in datafile: ./panel_financiero_v2/kpis_analytics.ibd, Space ID:93, Flags: 33. Please refer to http://dev.mysql.com/doc/refman/5.7/en/innodb-troubleshooting-datadict.html for how to resolve the issue.
InnoDB: Corrupted page [page id: space=93, page number=0] of datafile './panel_financiero_v2/kpis_analytics.ibd' could not be found in the doublewrite buffer.
InnoDB: Tablespace 93 was not found at ./panel_financiero_v2/kpis_analytics.ibd.
InnoDB: Set innodb_force_recovery=1 to ignore this and to permanently lose all changes to the tablespace.
InnoDB: Cannot continue operation.
Run Code Online (Sandbox Code Playgroud)

我只能使用启动 Mysql innodb_force_recovery=6(我无法使用 innodb_force_recovery=1 启动 …

mysql innodb crash mysql-5.7

7
推荐指数
1
解决办法
3万
查看次数

配置 MySQL 以防电源故障

我有一个嵌入式设备,运行 MySQL 数据库和基于 Web 的应用程序。

问题是,当我关闭嵌入式设备时,它只会切断电源,并且我无法进行受控关闭。鉴于这种情况,我如何配置 MySQL 以防止其发生故障,并且在发生故障时,我应该获得最大程度的支持来恢复我的数据库。

在搜索时,我遇到了 InnoDB Engine 以及一些配置选项,例如sync_binlog=1& innodb_flush_log_at_trx_commit=1。我注意到我的默认引擎是 InnoDB 并且也启用了二进制日志。

还有哪些其他配置可以实现最佳的故障和恢复支持?

我对数据库和 MySQL 完全没有经验。

mysql innodb recovery crash

6
推荐指数
1
解决办法
1743
查看次数

工作线程问题:如何读取此故障转储,以及如何处理?

我们的生产 SQL Server 昨天冻结了。必须杀死 Windows 进程才能让它重新启动。

Microsoft SQL Server 2016 (SP1-CU1) (KB3208177) - 13.0.4411.0 (X64)
Jan 6 2017 14:24:37  
Copyright (c) Microsoft Corporation
Enterprise Edition (64-bit) on Windows Server 2012 R2 Standard 6.3 <X64>
(Build 9600: ) (Hypervisor)
Run Code Online (Sandbox Code Playgroud)

事件查看器在崩溃时说:

分配给节点 0 上的进程的新查询在过去 300 秒内没有被工作线程接收。阻塞或长时间运行的查询会导致这种情况,并可能降低客户端响应时间。使用“最大工作线程”配置选项来增加允许的线程数,或优化当前运行的查询。SQL 进程利用率:0%%。系统空闲:99%%。

发现这篇文章(从 2010 年开始)提供了一些如何阅读故障转储的提示。我查看了来自我们服务器的故障转储,发现了数千个看起来像这样的块:

 2376  Id: 6bc.84c8 Suspend: 0 Teb: 00007ff7`f74d4000 Unfrozen
 # Child-SP          RetAddr           Call Site
00 000000b5`5938bcd8 00007fff`d22e6d8e ntdll!NtSignalAndWaitForSingleObject+0xa
01 000000b5`5938bce0 00007fff`c1944b99 KERNELBASE!SignalObjectAndWait+0xc8
02 000000b5`5938bd90 00007fff`c19414dc sqldk!SOS_Scheduler::Switch+0x106
03 000000b5`5938c080 00007fff`c4c5185f sqldk!SOS_Scheduler::SuspendNonPreemptive+0xd3
04 …
Run Code Online (Sandbox Code Playgroud)

sql-server crash sql-server-2016

6
推荐指数
1
解决办法
1348
查看次数