Mysql
MySQL:將常式添加到從站
在設置 MySQL 複製時,我使用了
mysqldump (without
–opt –routines並options)
沒有意識到它在預設情況mysqldump
下--routines
未啟用。問題
- 有什麼方法可以將常式插入從屬伺服器而不干擾複製?
- 我是否必須通過選擇一個新的轉儲來重新做整個事情
--routines
?
STEP 01) 您可以做的最簡單的事情是:
MYSQLDUMP_OPTIONS="--routines --all-databases --no-create-info --no-data" echo "STOP SLAVE;" > StoredProcedures.sql mysqldump -u... -p... ${MYSQLDUMP_OPTIONS} >> StoredProcedures.sql echo "START SLAVE;" >> StoredProcedures.sql
步驟 02) 將 StoredProcedures.sql 移至從站
STEP 03) 將儲存過程從主站載入到從站
mysql -u... -p... < StoredProcedures.sql
試一試 !!!
警告 #1
不需要使用
--single-transaction
,因為儲存過程儲存在 mysql.proc 中,這是一個 MyISAM 表。我之前有關於轉儲儲存過程的文章:
Feb 06, 2013
:如何從數據庫中轉儲單個儲存過程Oct 02, 2011
: mysqldump可以dump觸發器和程序嗎?Jul 25, 2011
:只轉儲 MySQL 中的儲存過程Jul 25, 2011
: DROP PROCEDURE IF EXISTS 不包含在 mysqldump 中如果您覺得更冒險,請在 Slave 上試試這個:
service mysql stop scp MasterIP:/var/lib/mysql/mysql/proc.* /var/lib/mysql/mysql/. service mysql start
又快又髒,嗯???
注意事項 #2
您可以將 mysqldump 選項放在
my.cnf
[mysqldump] routines triggers
那樣,
--routines
並且--triggers
是預設的。