我想了解的mysqldump如何工作的:的mysqldump壓縮
,如果我在我的電腦執行mysqldump和連接到遠程服務器:
mysqldump -u mark -h 34.32.23.23 -pxxx --quick | gzip > dump.sql.gz
將在服務器壓縮它,並把它交給了我作爲gzip或將我的電腦先收到所有的數據,然後壓縮它?
因爲我有一個非常大的遠程數據庫導出,並且我想知道通過網絡執行它的最快方法!
我想了解的mysqldump如何工作的:的mysqldump壓縮
,如果我在我的電腦執行mysqldump和連接到遠程服務器:
mysqldump -u mark -h 34.32.23.23 -pxxx --quick | gzip > dump.sql.gz
將在服務器壓縮它,並把它交給了我作爲gzip或將我的電腦先收到所有的數據,然後壓縮它?
因爲我有一個非常大的遠程數據庫導出,並且我想知道通過網絡執行它的最快方法!
你應該使用SSH + SCP的,
因爲在本地主機上轉儲速度更快,
,你只需要使用scp過的gzip(較小的網絡開銷)
可能是你能做到這一點
ssh [email protected] "mysqldump -u mark -h localhost -pxxx --quick | gzip > /tmp/dump.sql.gz"
scp [email protected]:/tmp/dump.sql.gz .
(提供/ tmp目錄可選,應該改變任何目錄你舒服)
好主意,問題是,我正在處理cleardb(這是亞馬遜RDS的商業實例),我沒有設法通過SSH登錄..不知道它是否會可以! – 2012-03-27 18:33:10
檢查與支持? – ajreal 2012-03-27 18:34:28
是的,這是下一步..但在一個(虛擬)共享數據庫我不認爲他們會讓我這樣做:( – 2012-03-27 18:38:11
這是我要做的事:
做使用SELECT INTO OUTFILE
部分出口,在同一臺服務器上創建的文件。
如果您的表包含1000萬行。每次進行100萬行的部分導出,每次單獨導出一個文件。
一旦第一個文件準備就緒,您可以壓縮並傳輸它。與此同時,MySQL可以繼續將數據導出到下一個文件。
在另一臺服務器上,您可以開始將文件加載到新數據庫中。
順便說一句,很多這可以腳本。
OUTFILE是不可能在亞馬遜RDS – codewandler 2017-02-16 02:05:44
您是否嘗試過的--compress參數?
http://dev.mysql.com/doc/refman/5.1/en/mysqldump.html#option_mysqldump_compress
是的,它減少了大量的數據傳輸!但是我想了解的是:如果mysqldump將數據緩存在我的電腦或遠程服務器上。從我所瞭解的情況來看,它確實先傳輸了我電腦上的所有數據。我是否正確? – 2012-03-27 18:32:11
關於'--compress'參數的工作方式沒有太多的文檔,我可以做一個有根據的猜測,但需要看看源代碼是否可以。但我認爲你的問題是它是否得到了壓縮的服務器端或客戶端IDE。在你的例子中肯定是客戶端。如果你看到壓縮參數減少數據傳輸,那麼這應該回答你的問題,它壓縮它的服務器端。 – 2012-03-27 18:56:16
如果此行您的PC上執行的那麼'gzip'將您的PC上運行了。這意味着你將得到未壓縮的原始轉儲。 – pritaeas 2012-03-27 10:28:00