2015-12-22 30 views
-2

我正在爲平臺上的所有用戶創建一個集中式數據庫的內容管理系統,用戶可以擁有一個或多個網站。如何將零件從一個活動數據庫遷移到另一個活動數據庫?

當一個用戶的網站完成填充內容時,我們把網站放在一個帶有集中測試數據庫的測試域中。

填充用戶給我們打電話,我們的網站從我們的集中測試數據庫遷移到新的主機和遷移/合併數據到我們集中生產數據庫中的內容後。

這樣做的最佳解決方案是什麼?因爲恐怕這會在將來引發很多問題(數據不同步,數據被覆蓋或者CMS越發破壞......)。

要總括起來:如何從一個活躍的數據庫遷移部分到另一個活動數據庫

回答

1

使用mysqldump的

mysqldump -hREMOTE_HOST -uroot -pREMOTEpwd --opt --compress REMOTEdb | mysql -uroot -pLOCALpwd LOCALdb 

此命令可以執行在目標服務器上,它將提取源數據庫的內容,重新創建所有表和數據。

使用這種方法需要關閉數據庫服務器的源 以避免丟失數據。

2.按照後續要求,你需要增量備份計劃

增量備份僅備份自 以前的備份以來更改的數據。該技術爲設計備份策略提供了額外的靈活性,並減少了備份所需的存儲空間。

增量備份通過選項啓用,該選項指向mysqlbackup命令。

樣的命令行參數來啓動mysqlbackup是:

# Information about data files can be retrieved through the database connection. 
# Specify connection options on the command line. 
mysqlbackup --user=dba --password --port=3306 \ 
    --with-timestamp --backup-dir=/export/backups \ 
    backup 

# Or we can include the above options in the configuration file 
# under [mysqlbackup], and just specify the configuration file 
# and the 'backup' operation. 
mysqlbackup --defaults-file=/usr/local/mysql/my.cnf backup 

# Or we can specify the configuration file as above, but 
# override some of those options on the command line. 
mysqlbackup --defaults-file=/usr/local/mysql/my.cnf \ 
    --compress --user=backupadmin --password --port=18080 \ 
    backup 

--user和我們指定--password用於連接到MySQL服務器。

--with-timestamp選項將備份放置在我們上面指定的目錄下創建的子目錄中。備份子目錄的名稱由備份運行的日期和時鐘時間組成。

請參閱完整參考herehere

+0

這將是很好,如果我想合併整個數據庫,但我只想合併它的一部分。例如,網站#13正在將其內容填充到測試數據庫中,而網站#2已經在生產數據庫上運行了幾個月。如何在生產數據庫上合併#13的數據而不丟失#2的數據。 – 0x1ad2

+0

你應該做那個複製。還要改變你的問題 –

+0

我將很快提供複製解決方案 –

相關問題