弊社のサーバーは、140 日間の稼働時間を経て再起動 (起動しない) した後、クラッシュしました。サーバーは Plesk を実行しており、Online.net でホストされているため、リカバリ システムを実行してデータにアクセスできます。サーバーは、いくつかのデータベースとテーブルを含む MySQL サーバーを実行していました。サーバーを再インストールできるように、データベースにアクセスしてエクスポートする必要があります。サーバーは CentOS を実行しており、リカバリ システムは Ubuntu 12.04 です。データベースを取得したり、元の MySQL サーバーを起動したりする方法はありますか?
ありがとう!
答え1
デフォルトのCentOS 6システムでは、mysqlは`/var/lib/mysql'をルートとするツリーにファイルを保存します。
クラッシュしたシステムのファイル/var/lib/mysql/...
と/etc/my.cnf
ファイルを安全な場所にコピーします。
- CentOS システムを構築し、mysql をインストールします。
- 新しいシステムでmysqlサービスをシャットダウンします(開始されている場合)。
- 保存した
my.cnf
ファイルを/etc
新しいシステムにコピーします - 新しいシステム ツリーの内容を削除します
/var/lib/mysql
。 - 保存した mysql ツリーの内容を
/var/lib/mysql
新しいシステムにコピーします。 - mysql サービスを開始します (すべてをオンにします)。
運が良ければ、システムは稼働しており、データ損失などがないか検査することができます。
失敗した場合は、ログを確認し、見つかった内容に基づいて適切なアクションを実行する必要があります。
注記:ここで重要なのは、クラッシュしたシステムから回復したデータのコピーを使用して作業することです。
データの定期的なバックアップも検討してください。
答え2
まず、パーティション (mysql データ ディレクトリがあったもの) がリカバリ システム上のどこか (たとえば /mnt/old_root) にマウントされていることを確認する必要があります。
次に、このディレクトリに chroot します。
chroot /mnt/old_root
次に、mysql を起動してみます。
/etc/init.d/mysql start
最後に、必要なデータベースをダンプします。
mysqldump -u admin -p`cat /etc/psa/.psa.shadow` database_name > database_name.sql