2016-11-25 5 views
0

こんにちは、マスターからスレーブにデータベースcopy and pasteをやっています。しかし、スレーブにはマスターが上書きしたくないテーブルがあります。mysqldumpでテーブルを無視しますか?

私はcronジョブで実行される以下のbashスクリプトを試していますが、無視したいスレーブテーブルを上書きし続けます。私は間違って何をしていますか?無視するテーブルの場合

#!/bin/bash 

#Database login credentials - need to be changed accordingly 
dbHost="localhost" 

#Master (Staging) 
dbMastUser="admin_site" 
dbMastName="admin_site_pineapple_master" 

#Slave (Live) 
dbSlavUser="admin_sync" 
dbSlavName="admin_site_pineapple_slave" 

dbPass="ExamplePassword" 


EXCLUDED_TABLES=(
forms-responses 
) 

IGNORED_TABLES='' 
for TABLE in "${EXCLUDED_TABLES[@]}" 
do : 
    IGNORED_TABLES+=" --ignore-table=${dbMastName}.${TABLE}" 
done 

#Update the database from the Master to the Slave 
mysqldump -h ${dbHost} -u ${dbMastUser} -p${dbPass} ${dbMastName} ${IGNORED_TABLES} | mysql -h ${dbHost} -u ${dbSlavUser} -p${dbPass} ${dbSlavName} 
+0

ご質問はありますか? – Inian

+0

'localhost'を' $(localhost) 'として設定します。 –

+0

参照[this](http://www.tldp.org/LDP/LG/issue38/tag/6.html) –

答えて

1

次の構文を使用する必要があります

mysqldump -h {hostname} -u {username} -p{password} --ignore-table test.votes test > E:/db_backups/test_1480080906.sql 

一般的な構文

mysqldump -h {hostname} -u {username} -p{password} --ignore-table dbname.tbl_name db_name > E:/db_backups/test_1480080906.sql 

注:私たちはいくつかのテーブルに

おかげ スマンを無視するオプションを設定する必要がありますW.

+0

返信ありがとうございます - このセクションを明確にするためにあなたの答えを修正できますか? "test.votes test" –

0
/usr/local/mysql/bin/mysqldump -uroot -p{pwd} --skip-lock-tables --databases f6dms $(mysql -uroot -p{pwd} -Df6dms -Bse "show tables like 'tm_monitor_avg_price_%'"|awk '{print "--ignore-table=f6dms."$1}'|xargs)| gzip > /data/backup/database_f6dms_`date '+%m-%d-%Y'`.sql.gz; 
関連する問題