古いバージョンのLinuxサーバのHDDが故障した時にMySQLを復旧する方法
ビヨンドの原岡です。
古いサーバーがハードディスクの破損によって起動しなくなった時に、データファイルだけでなくMySQLのデータを復旧するための手順を簡単にまとめました。
今回はMySQL 3.23.58のデータを復旧します。
※データ復旧は様々な要因が絡みますのであくまで参考としてご確認ください。
ハードディスク復旧業者さんにデータを復旧してもらう
まずは故障したHDDの復旧が必要です。
下記のように自前で復旧できる場合もありますが、失敗すると状況が悪化する恐れもありますので業務データなどが入っている場合はできるだけ確実に復旧するためにハードディスクの復旧業者を使った方が良いかと思います。
素人でもできるHDDの修理と復旧方法
http://macasakr.sakura.ne.jp/HDD
業者さんもかなりいろいろなところがありますが、私のおすすめ業者はくまなんPCネットさんです。
https://www.kumanan-pcnet.co.jp/hdd/info.php
実は業者の中でも技術力はかなり差があるのですが、くまなんPCネットさんは15年の実績があり、自社にクリーンルームも持っていて、高い技術力に基づいた復旧対応をしてくれます。
復旧用のサーバを構築
- 構築用のサーバを準備する
適当な筐体を用意してデータベース復旧用のサーバーを構築していきます。まずはMySQLが稼働していたサーバーのOSバージョンを確認しておきます。
cat /復旧ディレクトリ/etc/redhat-release
バージョン情報が手元にない場合は、復旧してもらったデータのディレクトリから
redhat-releaseのファイルを確認します。
古いOSはi386やi686などの32bit版の場合もあります。64bitのCPUでも32bit版のOSはインストールできますが、メモリを4GBまでしか認識できないため、メモリを多めに積んである筐体は抜いておいた方が無難です。
- 古いバージョンのLinuxOSをインストールする
今回はCentOSをこちらのサイトを参考に
http://www.linuxmaster.jp/linux_blog/2010/03/centos.html
このサイトからダウンロードします。
http://vault.centos.org/
上記サイトはCentOS2.1以降がダウンロードできるという素晴らしいサイトです。
今回はCentOS4系をダウンロードさせていただきました。
MySQLをダウンロード
こちらからインストール用ファイルを拝借
http://dbstudy.info/mysql/
ここにもあります。
http://live.dadanini.at/mysql/downloads_html/mysql-3.23.html
MySQLをインストール
ソースファイルからビルドします。
- インストール用ディレクトリとユーザの作成
cd /usr/local/src/ /usr/sbin/groupadd mysql /usr/sbin/useradd -g mysql mysql mkdir /usr/local/mysql mkdir /usr/local/mysql/var/ chown -R mysql:mysql /usr/local/mysql
- MySQLのインストール
tar -zxvf mysql-3.23.58.tar.gz cd mysql-3.23.58/ ./configure --prefix=/usr/local/mysql make make install
- インストールDBの作成
scripts/mysql_install_db
- mysql起動
/usr/local/mysql/bin/safe_mysqld --user=mysql &
※mysqld_safeではないので注意
- 起動確認
ps -ef | grep mysql
- ログインしてみる(パス無し)
mysql -u root
- rootパスワードの設定
mysqladmin -u root password "*****"
- mysql停止
/usr/local/mysql/bin/mysqladmin -u root -p shutdown
これで復旧の準備はOK
復旧したデータファイルを入れ替え
HDDを復旧した先からMySQLのデータファイルを丸ごとアップロード
文字化けの可能性もあるので、できれば圧縮して移動した方がよいです。
- アップロードしたファイルを解凍
gunzip /home/hogehoge/mysql_buckupdata.gz
- データファイルのディレクトリごと移動
mv /usr/local/mysql/var /usr/local/mysql/var_tmp cp /home/hogehoge/mysql_buckupdata /usr/local/mysql/var
- 権限変更
chown -R mysql:mysql /usr/local/mysql/var
- iblogfileの削除
rm /usr/local/mysql/var/ib_logfile*
- DBの起動
mysql起動・停止
/usr/local/mysql/bin/mysqld_safe --user=mysql &
これで起動すればひとまず復旧はOK
DBのエクスポート
mysqldump -u root -p db名 > /home/hogehoge/new_buckup.dmp
復旧したデータをエクスポートしておく
以上でデータ復旧は終わりです。
もし復旧などでお困りのことがあればビヨンドまでお問合せくださいませ。
https://beyondjapan.com/contact