<?xml version="1.0" encoding="utf-8"?> 
<rss version="2.0"
  xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd"
  xmlns:atom="http://www.w3.org/2005/Atom">

<channel>

<title>SOREX.ORG: заметки с тегом sql</title>
<link>https://sorex.org/?go=tags/sql/</link>
<description>Exchange, esx, AD, GPO, veeam, adaptec,lsi megaraid</description>
<author>sorex</author>
<language>ru</language>
<generator>E2 (v3820;)</generator>

<itunes:owner>
<itunes:name>sorex</itunes:name>
<itunes:email></itunes:email>
</itunes:owner>
<itunes:subtitle>Exchange, esx, AD, GPO, veeam, adaptec,lsi megaraid</itunes:subtitle>
<itunes:image href="" />
<itunes:explicit></itunes:explicit>

<item>
<title>MySQL error «Can’t create new tempfile» при восстановлении таблицы.</title>
<guid isPermaLink="false">57</guid>
<link>https://sorex.org/?go=all/mysql-error-cant-create-new-tempfile-pri-vosstanovlenii-tablicy/</link>
<pubDate>Tue, 13 Apr 2021 10:29:15 +0000</pubDate>
<author>sorex</author>
<comments>https://sorex.org/?go=all/mysql-error-cant-create-new-tempfile-pri-vosstanovlenii-tablicy/</comments>
<description>
&lt;p&gt;В логах mysql много ошибок подобного рода.&lt;br /&gt;
&lt;i&gt;120920  9:25:28 [ERROR] /usr/sbin/mysqld: Table ’./old_sm/phones’ is marked as crashed and last (automatic?) repair failed&lt;/i&gt;&lt;br /&gt;
Поскольку автоматическое исправление не сработало, то будем исправлять вручную.&lt;br /&gt;
Перед любым таким действием настоятельно рекомендуется сделать резервное копирование данных.&lt;br /&gt;
Заходим в командную строку mysql.&lt;br /&gt;
Запускаем проверку таблицы.&lt;/p&gt;
&lt;pre class=""&gt;mysql -u root -p stalker_db&lt;/pre&gt;
&lt;p&gt;&lt;i&gt;mysql&amp;gt; check table phones;&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;+——————————-&lt;s&gt;+&lt;/s&gt;—-&lt;s&gt;+&lt;/s&gt;———&lt;s&gt;+&lt;/s&gt;—————————————————————+&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;|           Table                 | Op      | Msg_type | Msg_text                                          |&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;+——————————-&lt;s&gt;+&lt;/s&gt;—-&lt;s&gt;+&lt;/s&gt;———&lt;s&gt;+&lt;/s&gt;—————————————————————+&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;|             old_sm.phones | check | warning     | Table is marked as crashed and last repair failed |&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;|             old_sm.phones | check | error         | Found 6833 keys of 3930951                        |&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;|             old_sm.phones | check | error         | Corrupt                                           |&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;+——————————-&lt;s&gt;+&lt;/s&gt;—-&lt;s&gt;+&lt;/s&gt;———&lt;s&gt;+&lt;/s&gt;—————————————————————+&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;3 rows in set (0.37 sec&lt;/i&gt;)&lt;/p&gt;
&lt;p&gt;Запускаю восстановление таблицы.&lt;/p&gt;
&lt;p&gt;&lt;i&gt;mysql&amp;gt; repair table phones;&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;+——————————-&lt;s&gt;+&lt;/s&gt;——&lt;s&gt;+&lt;/s&gt;———&lt;s&gt;+&lt;/s&gt;————————————————————-+&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;|           Table                 | Op        | Msg_type | Msg_text                                                 |&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;+——————————-&lt;s&gt;+&lt;/s&gt;——&lt;s&gt;+&lt;/s&gt;———&lt;s&gt;+&lt;/s&gt;————————————————————-+&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;|             old_sm.phones | repair    | error        | Can’t create new tempfile: ’./old_sm/phones.TMD’ |&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;|             old_sm.phones | repair    | status       | Operation failed                                         |&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;+——————————-&lt;s&gt;+&lt;/s&gt;——&lt;s&gt;+&lt;/s&gt;———&lt;s&gt;+&lt;/s&gt;————————————————————-+&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;2 rows in set (0.01 sec)&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;Т. е. при запущенном mysql-сервере восстановлению не подлежит. Останавливаю mysql&lt;br /&gt;
&lt;i&gt;service mysql stop&lt;/i&gt;&lt;br /&gt;
Запускаю восстановление с помощью myisamchk. Данный метод будем работать с таблицами на движке MyISAM. Если у вас таблицы на движке InnoDB может помочь пересоздание таблицы с заливкой старых данных.&lt;br /&gt;
&lt;i&gt;root@112-1:/var/lib/mysql/old_sm# myisamchk -r -f phones.MYI &lt;/i&gt;&lt;br /&gt;
&lt;i&gt;— recovering (with sort) MyISAM-table ’phones.MYI’&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;Data records: 3930951&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;— Fixing index 1&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;— Fixing index 2&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;— Fixing index 3&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;— Fixing index 4&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;— Fixing index 5&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;Запускаю mysql сервер&lt;br /&gt;
&lt;i&gt;service mysql start&lt;/i&gt;&lt;br /&gt;
Ошибка пропала, что и требовалось.&lt;/p&gt;
</description>
</item>


</channel>
</rss>