近期有些20g的靜態表需要遷移資料庫
為了保障效能,沒有使用myisam , 考慮到單個庫有20g,直接使用mysqldump 代價會比較大,後來改良dump的過程【分塊匯出,減少資料庫壓力】實現資料遷移。 後記:mydumper 也能併發處理類似場景,甚至支援 binlog 的同步,保持資料一致
注意:1、資料表必須有主鍵
2、需要自行判斷執行結果
3、需要自行將dump檔案傳輸至目標伺服器
簡單**如下:
匯出-此方式是通過id將資料分步生成多個sql檔案
for tablename intablename ;
dofor i in ; do
echo
$i ; #切割份數
n=61310
; # 每份行數
let a=$n*$i ; let b=$n*$i+$n ; echo
$a $b ;
mysqldump --no-set-names --skip-disable-keys --skip-add-locks --skip-create-options --skip-add-drop-table --where="
id >=$a and id <$b
" sourceschema $ | gzip > /tmp/$_20180308_$i.sql.gz;
done
; done
匯入-可以根據資料庫情況,併發匯入, -f 可以避免表存在的錯誤
for tablename in `find /tmp -type f -name "tablename*0308*.sql.gz
" ` ; do
echo $; gunzip
< $ | mysql -f test ; done
mysqldump匯出引數
mysqldump匯出引數 資料庫 zongfeng 發表於2005 09 29 比較詳細 mysqldump命令位於mysql bin 目錄中 mysqldump 工具很多方面類似相反作用的工具mysqlimport。它們有一些同樣的選項。但mysqldump能夠做更多的事情。它可以把整個資料庫裝...
mysqldump匯出方法
mysqldump匯出方法 字符集設定 myproject 替換為自己的資料庫名稱 從資料庫匯出資料 執行cmd 命令 首先進入mysql 的bin目錄下 cd d program files x86 mysql mysql server 5.0 bin 匯出 mysqldump u root p ...
MySQL dump匯出匯入
1.匯出庫指令碼,資料庫名稱 mysql,要匯出到data資料夾下的mysql.sql檔案中 mysqldump uroot databases mysql p data mysql.sql 回車後輸入資料庫密碼 2.使用剛剛生成的mysql.sql指令碼匯入已有資料庫mysql mysqldump...