mysqldump / mysqlcheck

时间:2017-09-24 13:05:06

标签: mysql mysqlcheck

每次我尝试备份或检查Windows服务器2012上的所有表mysql服务器崩溃, 我在我的开发环境中使用XAMPP堆栈。 数据库加密在DB中有超过1100个表。 我在下面列出了日志。

  

InnoDB:页面转储结束   2017-09-24 13:58:35 7dc InnoDB:未压缩页面,在field1 2521749199中存储校验和,计算字段1的校验和:crc32 2344073126,innodb 1121903210,无3735928559,在field2 0中存储校验和,计算字段2的校验和:crc32 2344073126, innodb 2892594725,none 3735928559,page LSN 0 2936733816,页面末尾0的低4字节LSN,页码(如果已存储到页面)34,空格id(如果使用> = MySQL-4.1.1创建并已存储) 1767   InnoDB:页面类型17855意思是INDEX   InnoDB:Page可能是索引ID为1522的索引页面   InnoDB :(索引" PRIMARY"表"加密"。" 300-token")   2017-09-24 13:58:35 2012 [ERROR] InnoDB:您的操作系统也可能损坏了自己的文件缓存。   2017-09-24 13:58:35 2012 [错误] InnoDB:重新启动计算机会删除错误。   2017-09-24 13:58:35 2012 [ERROR] InnoDB:如果损坏的页面是索引页面,你也可以尝试   2017-09-24 13:58:35 2012 [错误] InnoDB:通过转储,丢弃和重新导入来修复损坏   2017-09-24 13:58:35 2012 [错误] InnoDB:腐败表。你可以使用CHECK   2017-09-24 13:58:35 2012 [错误] InnoDB:用于扫描您的表以查找损坏的表。   2017-09-24 13:58:35 2012 [错误] InnoDB:另请参阅http://dev.mysql.com/doc/refman/5.6/en/forcing-innodb-recovery.html强制恢复。   2017-09-24 13:58:35 7dc InnoDB:断言2012年文件buf0lru.cc第2394行中的断言失败   InnoDB:失败的断言:bpage-> buf_fix_count == 0   InnoDB:我们故意生成一个内存陷阱。   InnoDB:向http://bugs.mysql.com提交详细的错误报告。   InnoDB:如果你反复断言失败或崩溃,甚至   InnoDB:在mysqld启动之后,可能会有   InnoDB:InnoDB表空间中的损坏。请参阅   InnoDB:http://dev.mysql.com/doc/refman/5.6/en/forcing-innodb-recovery.html   InnoDB:关于强迫恢复。   170924 13:58:35 [错误] mysqld得到异常0x80000003;   这可能是因为你遇到了一个bug。这个二进制文件也有可能   或者它所链接的其中一个图书馆是腐败的,不正确的,   或配置错误。此错误也可能是由硬件故障引起的。

     

要报告此错误,请参阅https://mariadb.com/kb/en/reporting-bugs

     

我们会尽力挖掘一些有希望提供帮助的信息   诊断问题,但由于我们已经崩溃,有些事情是   肯定是错的,这可能会失败。

     

服务器版本:10.1.22-MariaDB key_buffer_size = 16777216   read_buffer_size = 262144 max_used_connections = 1 max_threads = 1001   thread_count = 1 mysqld可能最多可以使用   key_buffer_size +(read_buffer_size + sort_buffer_size)* max_threads =   787106 K字节的内存希望没问题;如果没有,减少一些   等式中的变量。

     

线程指针:0x0尝试回溯。您可以使用以下内容   了解mysqld死亡的信息。如果您没有看到任何消息   在此之后,出现了严重的错误......   mysqld.exe!my_parameter_handler()mysqld.exe!my_wildcmp_mb_bin()   mysqld.exe!?save_in_result_field @项目@@ UAEX_N @ Z()   mysqld.exe!?save_in_result_field @项目@@ UAEX_N @ Z()   mysqld.exe!?save_in_result_field @项目@@ UAEX_N @ Z()   mysqld.exe!?save_in_result_field @项目@@ UAEX_N @ Z()   mysqld.exe!?save_in_result_field @项目@@ UAEX_N @ Z()   KERNEL32.DLL!BaseThreadInitThunk()   ntdll.dll中!RtlInitializeExceptionChain()   ntdll.dll!RtlInitializeExceptionChain()手册页   http://dev.mysql.com/doc/mysql/en/crashing.html包含信息   这应该可以帮助你找出导致崩溃的原因。

我希望有人能帮助我 感谢。

1 个答案:

答案 0 :(得分:0)

根据您提问中的内容, "服务器版本:10.1.22-MariaDB key_buffer_size = 16777216 read_buffer_size = 262144 max_used_connections = 1 max_threads = 1001 thread_count = 1 mysqld有可能最多使用key_buffer_size +(read_buffer_size + sort_buffer_size)* max_threads = 787106 K .. .."

上面有#include "dlist.hpp" using namespace std; dlist::node* dlist::at(int n) const{ if(n <= 0) return head(); else if(n >= size()) return nullptr; else{ node* temp = head(); for(int i = 0; i < n; i++){ temp = temp->next; } return temp; } } void dlist::insert(node* previous, int value){ if(previous == head()) { push_front(value); } else if(previous == tail()) { push_back(value); } else if(previous == nullptr){ _head->value = value; _head->prev = nullptr; _head->next = nullptr; _tail = head(); } else{ node* temp = new node; temp->value = value; temp->next = previous->next; previous->next = temp; temp->prev = previous; if(temp->next != nullptr){ temp->next->prev = previous; } } } void dlist::remove(node* which){ node* temp = which; if(which != nullptr){ which->prev->next = which->next; temp->next->prev = temp->prev; free(temp); } } void dlist::push_back(int value){ node* temp = new node; temp->value = value; temp->prev = _tail; _tail = temp; } void dlist::push_front(int value){ node* temp = new node; temp->value = value; temp->next = head(); temp->prev = nullptr; _head->prev = temp; _head = temp; } void dlist::pop_front(){ node* temp = _head->next; temp->prev = nullptr; _head->next = nullptr; _head = temp; free(temp); } void dlist::pop_back(){ node*temp = _tail->prev; temp->next = nullptr; _tail->prev = nullptr; _tail = temp; free(temp); } int dlist::size() const{ node* temp = head(); int counter = 0; while(temp != nullptr){ counter++; temp = temp->next; } return counter; } bool dlist::empty() const{ return head() == tail(); } bool operator== (const dlist& a, const dlist& b){ dlist::node* tempA = a.head(); dlist::node* tempB = b.head(); if(a.size() != b.size()) return false; else{ while( tempA != nullptr) { if(tempA->value != tempB->value) return false; else { tempA = tempA->next; tempB = tempB->next; } } return true; } } dlist operator+(const dlist& a, const dlist& b) { dlist::node* tempB = b.head(); dlist::node* tempA = a.head(); dlist c; while(tempA != nullptr) { c.push_back(tempA->value); tempA = tempA->next; } while(tempB != nullptr) { c.push_back(tempB->value); tempB = tempB->next; } return c; } dlist reverse(const dlist& l) { return l; } 线索 - 检查my.ini或.cnf中的max_connections。将max_connections降低到= 100可能会或可能无法帮助您通过BaseThreadInitThunk()ntdll.dll!