データを別のフォルダーに移動して、cent os dbサーバーでドライブする必要があります。
新しいハードドライブを追加しました(スペースが不足したため)。
1 TBのハードドライブがあり、新しい2 TBがあり、同じサーバー(データセンターでホストされている専用サーバー)にデータを配置したい
データを失うことなくデータを移行する簡単な方法は何ですか?
現在私は次の場所にデータを持っています:/var/lib/mysql/
cent os。mysql version is 5.1
データを別のフォルダーに移動して、cent os dbサーバーでドライブする必要があります。
新しいハードドライブを追加しました(スペースが不足したため)。
1 TBのハードドライブがあり、新しい2 TBがあり、同じサーバー(データセンターでホストされている専用サーバー)にデータを配置したい
データを失うことなくデータを移行する簡単な方法は何ですか?
現在私は次の場所にデータを持っています:/var/lib/mysql/
cent os。mysql version is 5.1
回答:
ステップ1
最初にドライブをセットアップし(マウントされていてfstabに正しくセットアップされていることが前提)、新しいMySQLディレクトリを作成します。
sudo mkdir /path/to/new/mysql
このフォルダに適切な権限があることを確認してください:
chown -R mysql:mysql /data/mysql
ここで、データのコピー中にサービスをシャットダウンできます。現在のデータディレクトリから新しいデータディレクトリにデータをコピーします(例:)。
sudo cp -R /var/lib/mysql/* /path/to/new/mysql/
または、必要に応じて、または安全だと感じた場合は、各データベースを個別にコピーできますmv
。コマンドを使用してフォルダを移動できます。
ステップ2
でMySQLデータの場所を変更できますmy.cnf
。このファイルの場所がわからない場合は、次のコマンドを実行できます。
locate my.cnf
これにより、my.cnfが配置されている場所のパスがわかります。次に、ファイルを編集します。
sudo vi /etc/mysql/my.cnf
(もちろんあなたはあなたのパスに置き換える必要があります)
次に、を探してdatadir = /var/lib/mysql
更新しdatadir = /path/to/new/mysql
ます。
次に、mysqlを再起動します
sudo /etc/init.d/mysqld restart
数日/数週間後、問題がなければ、古いフォルダ(/ var / lib / mysql)を削除するか、内部のすべてをバックアップできます。
移行中にシャットダウンしたくない場合は、mysql(同じバージョン)を使用して2tbのchroot環境にマスターマスターレプリケーションをセットアップし、同期時に1tbをオフにすると、chroot環境が機能します。
chroot環境を使用しない場合は、my.cnf(chroot環境ではない)を変更して、mysqlファイルを2TBディスクに保存する場所をポイントし、レプリケーションを無効にします。次に、chroot環境をオフにして、データをmy.cnfにあるものに移動します。同じディスク上にあるため、ここでの移動は1秒もかかりません。mysqlを再起動します。
これは少し複雑です。最初にローカルvm環境でこれを試すことができます。