CentOSサーバーがあり、/ var / lib / mysql /は125GBです(ディスクには1GBの空き容量があります)。
通常、mysqldumpを使用してデータベースをバックアップしますが、通常はそのような大きなデータベースを操作しないため、データベースを新しいサーバーにコピーする最も安全な方法を知る必要があります。
すべてのアドバイスに感謝します!
CentOSサーバーがあり、/ var / lib / mysql /は125GBです(ディスクには1GBの空き容量があります)。
通常、mysqldumpを使用してデータベースをバックアップしますが、通常はそのような大きなデータベースを操作しないため、データベースを新しいサーバーにコピーする最も安全な方法を知る必要があります。
すべてのアドバイスに感謝します!
回答:
次の手順を使用できます
古いサーバー
1.mysqlサーバーを停止する
2. datadirの内容を... mysqlbackupとしてディスク上の別の場所にコピーします。
3.mysqlサーバーを再起動します
4.データを圧縮します(tar -czvf mysqlbackup.tar.gz mysqlbackup)
5.圧縮ファイルを新しいサーバーにコピーします
新しいサーバー上
1. MySQLをインストールします[MySQLのバージョンは古いサーバーと同じである必要があります](MySQLサーバーを起動しないでください)
2.圧縮ファイルを解凍します(tar -xzvf mysqlbackup.tar.gz)
3. mysqlbackupの内容をdatadirに移動します。
4. datadirの権限が正しいことを確認します
5. innodb_log_file_sizeが新しいサーバーで同じであることを確認します。そうでない場合は、古いログファイルをコピーしないでください(MySQLがこれらを生成します)。
6.MySQLを起動します。
ソースDBには1GBしかないため、どこにもmysqldumpを実行する余地はありません。
必要なものは次のとおりです
IPアドレスが10.20.30.40のソースDBサーバーの場合、ターゲットDBにログインしてこれを実行します。
MYSQL_HOST=10.20.30.40
MYSQL_USER=root
MYSQL_PASS=rootpassword
MYSQL_CONN="-u${MYSQL_USER} -p${MYSQL_PASS}"
MYSQLDUMP_OPTIONS="--all-databases --add-drop-database --single-tranactions"
MYSQLDUMP_OPTIONS="${MYSQLDUMP_OPTIONS} --routines --triggers"
mysqldump -h${MYSQL_HOST} ${MYSQL_CONN} ${MYSQLDUMP_OPTIONS}| mysql ${MYSQL_CONN}
MYSQL_HOST=10.20.30.40
MYSQL_USER=root
MYSQL_PASS=rootpassword
MYSQL_CONN="-u${MYSQL_USER} -p${MYSQL_PASS}"
MYSQLDUMP_OPTIONS="--all-databases --add-drop-database --single-transaction"
MYSQLDUMP_OPTIONS="${MYSQLDUMP_OPTIONS} --hex-blob --routines --triggers"
mysqldump -h${MYSQL_HOST} ${MYSQL_CONN} ${MYSQLDUMP_OPTIONS} > MySQLData.sql
mysql ${MYSQL_CONN} < MySQLData.sql
手法#1を使用するのは、SQLファイルを保存するためのディスク領域がない場合です。ファイルをダンプして後でロードする場合は、テクニック#2を使用します。
通常、次のようにmysqldumpを実行して、データベースのコピーとバックアップを作成します。
$ mysqldump -u user -p db-name > db-name.out
sftp / sshを使用してdb-name.outファイルをリモートMySQLサーバーにコピーします。
$ scp db-name.out user@remote.box.com:/backup
リモートサーバーでデータベースを復元(ssh経由でログイン):
$ mysql -u user -p db-name < db-name.out
または
$ mysql -u user -p 'password' db-name < db-name.out
@ user2029574、ハードウェアはクラウドにありますか?私もかつてあなたと同じ問題に出くわしました。ただし、MySQLのインストールはAWSで行われるため、さらに大きなサイズのディスクを簡単に接続できます。ここで私がやったことを要約しています:
このようにして、このDBに常時接続するアプリケーションを持つことができ、必要であればクラウドインスタンスのプロファイルもアップグレードできます。
ssh -C
オンザフライ圧縮に使用することを忘れないでください。