私は、要求に応じて、ライブデータベースとローカルデータベースとの間でテーブルの選択を同期させることができるソリューションを探しています。これに特定の解決策がない場合、ローカルデータベースとライブデータベースを同期するための良い解決策は何でしょうか?(部分)mysqlとのデータベース同期
答えて
選択したテーブルをエクスポートして再度インポートできるphpmyadminが常にあります。
開発システムで作業する必要のあるライブDBをお持ちの場合、これは実用的なソリューションです。あなたは、データベースのコピーを取ることができます、それについては、ドロップ、顧客テーブルを作成し、ライブをオフラインにしてバックアップし、顧客テーブル以外のすべてをドロップし、更新されたデータベースをインポートします。
phpmyadminの利点は、それがあなたのクエリを表示することです、あなたはこれらのスクリプトをまとめて、次にアップデートするときに使うことができます。
@ʍǝɥʇɐɯMathew、私が探していたものは、より自動化された、または自動化可能なものです(必要に応じて、またはx日ごとにシンクロを同期させるためのテーブルの選択)。私はスキルスケールの初心者の方がはるかに多いですが、私はphpmyadminを知っています。私には、まだ私がdicoverするべきいくつかの機能がない限り、それが得ることができる最もマニュアルであるようです。 – Argoron
...そうですが、確実に使用できるSQL文が吐き出されます。これらをテキストファイルに入れて、mysql -u user -pPASSWORD database
あなたは以下の条件を持っている場合は
- すべての必要なテーブルはInnoDBのある
- ライブDBは、パブリックIPでアクセスできる
あなたは個々のテーブル
のmysqldumpをを行うことができますシェルスクリプトを使用すると、ローカルマシンから実行するときにこれを実現する方法を以下に示します。
LIVEDB_IP=192.168.1.10
MYSQL_SRCUSER=whateverusername
MYSQL_SRCPASS=whateverpassword
MYSQL_SRCCONN="-h${LIVEDB_IP} -u${MYSQL_SRCUSER} -p${MYSQL_SRCPASS}"
SOURCE_DB=mydb_source
MYSQL_TGTUSER=whateverusername2
MYSQL_TGTPASS=whateverpassword2
MYSQL_TGTCONN="-h127.0.0.1 -u${MYSQL_TGTUSER} -p${MYSQL_TGTPASS}"
TARGET_DB=mydb_target
TBLLIST="tb1 tb2 tb3"
for TB in `echo "${TBLLIST}"`
do
mysqldump ${MYSQL_SRCCONN} --single-transaction ${SOURCE_DB} ${TB} | mysql ${MYSQL_TGTCONN} -A -D${TARGET_DB} &
done
wait
--single-transaction
オプションを指定すると、ソースデータベースでINSERT、UPDATE、およびDELETEを引き続き有効にしながら、テーブルのポイントインタイムスナップショットが発生します。
テーブルがかなり大きい場合、タイムアウトの問題が発生する可能性があります。代わりにこのスクリプトを試してみてください:
LIVEDB_IP=192.168.1.10
MYSQL_SRCUSER=whateverusername
MYSQL_SRCPASS=whateverpassword
MYSQL_SRCCONN="-h${LIVEDB_IP} -u${MYSQL_SRCUSER} -p${MYSQL_SRCPASS}"
SOURCE_DB=mydb_source
MYSQL_TGTUSER=whateverusername2
MYSQL_TGTPASS=whateverpassword2
MYSQL_TGTCONN="-h127.0.0.1 -u${MYSQL_TGTUSER} -p${MYSQL_TGTPASS}"
TARGET_DB=mydb_target
TBLLIST="tb1 tb2 tb3"
for TB in `echo "${TBLLIST}"`
do
mysqldump ${MYSQL_SRCCONN} --single-transaction ${SOURCE_DB} ${TB} | gzip > ${TB}.sql.gz &
done
wait
for TB in `echo "${TBLLIST}"`
do
gzip -d < ${TB}.sql.gz | mysql ${MYSQL_TGTCONN} -A -D${TARGET_DB} &
done
wait
試してみてください!必要なテーブルがMyISAMテーブルがある場合は
CAVEAT
、ただのmysqldumpから--single-transaction
を削除します。これにより、クエリが必要なテーブルでmysqldumpが終了するまで、ソースデータベースのクエリがフリーズすることがあります。その場合、トラフィックの少ない時間帯にこのスクリプトを実行してください。
デスクトップdbマネージャSQLYogには、このような設定を行う「Job Scheduler」ツールがあります。プロフェッショナルまたはエンタープライズのライセンスが必要です(音声よりも安い)が、最初にチェックアウトしたい場合は30日間のトライアルがフル機能です。
- 1. Artifactory - 部分リポジトリの同期
- 2. mysql:ローカルのmysqlデータベースとリモートサーバーデータベースの同期を維持
- 3. postgresqlデータベースとmysqlデータベースのデータを同期させるには?
- 4. データベースとの同期
- 5. MySQLへの一方向データベースの同期
- 6. MySQLデータベースの同期に最適なツール
- 7. webデータベースとMySQLデータベース間でデータを同期する
- 8. SQL Server 2005 Analysis Services(SSAS)部分同期
- 9. データベースとドメイン層の同期
- 10. masterデータベースとの同期
- 11. リモートデータベースとipadの同期データベース
- 12. 2つのデータベース間のMySQLデータベースの同期
- 13. SQL ServerとMySQLの同期
- 14. データベースの同期
- 15. hibernateが自分のデータベースと同期していません
- 16. Androidデータベースとサーバーデータベースを同期
- 17. 安全なサイトと安全でないサイトとの間の部分的なデータベースの同期
- 18. ElasticsearchをMySQLデータベースと同期させておく方法は?
- 19. 同期対非同期データベースへのアクセス
- 20. WebSQLとMySQLが同期
- 21. データベース同期
- 22. 同期データベースは
- 23. 非同期MySQL
- 24. mysqlテーブル同期
- 25. Node.jsの同期mysql
- 26. Laravel 5.2アプリケーション - 2つのmysqlデータベースの自動同期
- 27. アスタリスク1.8データベースとDigium GUIの同期化
- 28. テストエンジンとライブExpressionEngineデータベースの同期
- 29. JavaのJPA - 同期データベースとエンティティ
- 30. PowershellとAzure SQLデータベースの同期
これを明確にするために、liveDBのテーブルの新しいデータをlocalDBのテーブルにコピーしますか?あなたのlocalDBのスキーマを変更しようとしていますか? –
@ Cshift3iLikeアイデアは、選択されたテーブルの中でいずれかのデータベースに追加されたほとんどのデータを同期させることです。 – Argoron