結合批處理與Windows計劃任務簡單實現MYSQL增量采集打賞

整理這個原因很簡單,最近做數據采集遇到有N多MYSQL數據庫需要采集、同步,原有對接系統單一庫、REST等形式的采集實現起來略顯麻煩。考慮到是內部系統,且采集、同步時間一般在晚上,故而打算開個先例,拋棄之前的采集方案,直接使用MYSQL命令導出遠程庫表再還原至本地。思路有了,實現起來就更簡單了,這里只介紹大概,不詳細講解枯燥的業務及實現。

首先,得知道MYSQL導入、導出命令:

導出:mysqldump -u用戶名 -p密碼 -h主機 數據庫 a -w "sql條件" --lock-all-tables > 路徑

導入:mysql -u用戶名 -p密碼 -h主機 數據庫 < 路徑 有很多文章描述的導入是登錄后使用source,這里因為我們要連多個庫、多個表,頻繁登錄操作也不方便,還是選擇這樣的方式了,具體內部實現是否一樣,不在我們探究范圍。

知道命令了,后面就是為了方便調用,我們使用批處理將以上命令存儲起來,與此同時,因為庫表很多,我們要維護一份配置,批處理里面根據配置讀取參數,進行操作。我們的批處理如下,可接收五個參數。

mysqldump –u%1 –p%2 –h%3 %4 a -w "%5" --lock-all-tables > %3.sql

mysql –u%1 –p%2 –h%3 %4 < %3.sql 如此寫,只是一個簡單的方式,實際應用中,我們還要增加不創建建表語句等參數配置,下面就是最主要的配置了,按BAT照參數格式,一個字段一個空格,我們將配置文件寫成如下文本: root root 10.78.65.101 test condition root root 10.78.65.102 test condition root root 10.78.65.103 test condition root root 10.78.65.104 test condition root root 10.78.65.105 test condition ... root root 10.78.65.199 test condition 最后另外建一批處理文件,讀取該配置文件,按行遍歷,直接拿每行數據當做參數傳入,然后將此批處理文件配置入Windows計劃任務,定時執行即可。 其實還忽視了一個重點,上面例子僅僅說了固定的內容,我們要實現增量并不是每天備份還原就行了,當然每天清空數據庫重新插入也不是不可,但對于服務器壓力卻會越來越大,所以,我們可以在配置文件中抽取出condition部分,當做動態值,第一次取全量,取過之后在指定文件夾下生成唯一的關鍵字標示的增量condition文件,比如,config/10.78.65.101.date下次讀取文件獲取增量標識,加入參數,即可實現增量。 當然,這里所說的也是簡單的實現,實際應用中很可能遇到比較復雜的情況,所以不建議使用。譬如,我們業務復雜的情況,這個初步設想已經不能滿足,所以我的小伙伴已經轉投Python來實現這個定時腳本了,至于Python怎么實現的,這里就不再贅述了。

結合批處理與Windows計劃任務簡單實現MYSQL增量采集
文章《結合批處理與Windows計劃任務簡單實現MYSQL增量采集》二維碼
  • 微信打賞
  • 支付寶打賞

已有14條評論

  1. Instagram

    好文章,辛苦了

    2016-08-24 23:47 回復
  2. 外貿業務員

    [bofu蹦極] 好文章,辛苦了

    2016-03-30 06:51 回復
  3. 林貞恩

    永遠支持博主,繼續發好貼

    2016-01-25 01:55 回復
  4. 最勵志網

    最勵志網:http://www.zuilizhi.net 前來拜訪,歡迎互訪!

    2015-08-17 13:18 回復
  5. 何捷浪

    好~萌菌網www.moejun.tv/

    2015-04-27 09:51 回復
  6. 娛樂名人榜

    都2015快過去一月了,文章還是去年的,博主,要抓緊更新了~~!

    2015-01-20 02:24 回復
  7. 偏方大全qianjinpianfang.com

    支持~

    2015-01-19 18:39 回復
  8. 威客

    還沒大量的采集過數據庫數據

    2015-01-13 14:43 回復
  9. osblog.net

    這個沒有使用過

    2015-01-12 09:03 回復
  10. 愛奇趣分享網

    真的不知道

    2015-01-08 15:45 回復
  11. flash教程

    win 下的計劃任務可以直接使用 php 代碼實現吧

    2015-01-06 16:59 回復

(必填)

(必填)

(可選)

黑龙江22选5开奖