質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

MariaDB

MariaDBは、MySQL派生のオープンソースなリレーショナルデータベースシステムです。 また、MySQLとほぼ同じデータベースエンジンに対応しています。

Q&A

1回答

892閲覧

myISAM データファイルバックアップからの戻し(レストア)が適用されない

yoshii_

総合スコア0

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

MariaDB

MariaDBは、MySQL派生のオープンソースなリレーショナルデータベースシステムです。 また、MySQLとほぼ同じデータベースエンジンに対応しています。

0グッド

0クリップ

投稿2021/06/22 06:11

概要

myISAMエンジンのテーブルのチューニング業務
テストチューニング後のテーブルをすぐに元に戻したい
バックアップしたファイルを上書きで戻せばいいのかと考えていたら、テーブルが戻らない。

環境

MariaDB 10.36.1.21
Cent OS 7.4

データファイルバックアップ

myISAMテーブルのデータファイルでhogehoge.MYD、hogehoge.MYI,hogehoge.frmがある。
ファイルのバックアップをとる→hogehoge_org.MYD、hogehoge_org.MYI,hogehoge_org.frm

テストチューニング

myISAMのテーブルにIndexを追加する
hogehoge.MYD、hogehoge.MYI,hogehoge.frmに更新がかかる

テーブルの戻し(レストア)

Indexを追加した状態から元に戻したいと思い
バックアップしておいたデータファイルhogehoge_org.MYD、hogehoge_org.MYI,hogehoge_org.frmを
hogehoge.MYD、hogehoge.MYI,hogehoge.frmに上書きする。

SHOW INDEX FROM hogehoge; でindexの状態を見ると、追加したINDEXが残っている。

ファイルバックアップを適用するには?

バックアップしておいたデータファイルを戻し(今のデータファイルに上書きし)、
テーブルに適用するには、何かしらのコマンド実行かmysqlの再起動が必要なのでしょうか。

検索すると「myISAMのバックアップやテーブル移動は3つのファイルをバックアップするだけだから簡単」
という情報は見つかるのですが、バックアップしたファイルをどう戻す(リカバリー、レストアする)のか
明示的な情報が得られません。
それともテーブルの元ネタのdumpファイルはありますので、毎回レストアするのがよいのでしょうか。

「エンジンをinnoDBにする」対応は難しいです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

バックアップの処理はmysqldを止めた状態で行いましたか?

SQLは常にリアルタイムでファイルを書き換えしているわけではなく
一旦メモリ上に保持して遅延書き込みする場合もあるので
単にファイルをコピーすればいいというものではありません。

また確実に行うならmysqldumpを利用してテキストに落として
もどしてください

投稿2021/06/22 06:16

yambejp

総合スコア116724

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yoshii_

2021/06/22 06:34

返答ありがとうございます。 テスト環境につきほとんど全くデータが動かないので、データの同一性はあまり重視していませんでした。 バックアップ取得も、FLUSHしてディスクに書き込む必要はない、mysqldを止める必要もないと判断していました。単にcpしただけです。 mysqldumpで戻すのが最善なのでしょうが、チューニングテストの度に毎回毎回戻しに時間がかかって大変なので検索したところ、 「myisamはMYI,MYD,frmファイルをバックアップしておけば移動やレストアが楽」のような記事をいくつか見つけたので、今回の私の目的に合致していると思い試してみた次第です。
yambejp

2021/06/22 06:42

とにかく一旦デーモンを止めてバックアップ、再起動 作業後サイドデーモンをとめて上書き、再起動 で動作を確認するところからでしょう mysqlのデータバックアップはmysqldump 復元はmysqlクライアントにファイルからリダイレクトでやるのが普通です
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問