不同於memcached,memcachedb是作為永續性儲存的資料庫設計的的key value型資料庫,雖然不象傳統關係型資料庫那麼強大,但麻雀雖小,五臟俱全,基本的功能還是該有都有。
工具/原料
telnet客戶端
1.2.0已安裝
方法/步驟
memcahcedb從2009年起就沒有作版本更新了,所以不用擔心本文的操作不適用於自己的版本; 假設服務端已經安裝完成,用whereis memcachedb命令來查詢安裝執行的目錄
memcachedb由於設計成輕型系統,所以啟動很靈活,最簡單的啟動就是memcachedb -u username -d,其中-u表示以後面跟的user許可權執行,-d表示後臺執行。
當然在絕大多數生產環境這樣的啟動太簡單,比如資料檔案往往是和程式安裝檔案分離的,那麼啟動時用-H <目錄名> 來指定資料檔案目錄,另外為提高安全,往往會將程式啟動在非預設埠,以 -p <埠名> 表示。 埠名> 目錄名>
最重要的一點,預設啟動並不輸出日誌,需要手動增加啟動引數-v輸出日誌,這時的日誌是輸出到終端屏,在系統除錯時特別重要,用-vv可顯示更詳細的日誌,除錯結束後,正常啟動可使用重定向符>> <檔名> 來輸出日誌到檔案。 檔名>
memcachedb和關係型資料庫一樣,也是目錄下也是分為資料檔案和日誌檔案,一般情況下的異常,正常啟動資料庫後,系統可以通過資料檔案和日誌的對比,自動恢復資料庫。
由上可知memcachedb也有一致性的持性,只要儲存有建庫以來的所有日誌檔案,即便資料檔案不存在,也是可以進行恢復,命令為db_recover -cf -h /data/memcachedb。
db_recover是安裝memcachedb時安裝的工具,也可以通過whereis來查詢命令,-h後面直接跟日誌所在的目標,-c代表的是災難型恢復,命令的最後也可以增加 -v輸出日誌。
上面的方法雖然簡單,但如果資料量比較大,儲存自建庫以來的日誌實際也是不可能的,所以還是定期的備份,使用db_hotbackup -h
用檔案拷貝而不用上述那些工具也是可以作庫的備份的,但小編髮現,在恢復方面要比關係型資料庫要弱,所以在編寫角本時一定要打包備份資料檔案,再備份日誌。
所以注意無論用哪種辦法,必須擁有備份以後的所有日誌,或者日誌檔案中的SCN要比資料檔案新,這樣才是可恢復的,不然一定會因為SCN不一致而地恢復成功。
因此定期日誌檔案是件需要慎重的工作,預設系統提供了db_archive -d -h
這種清理方案可能導致需要作災難恢復時無法恢復資料庫,因此小編不建議用這樣的方案進行清除,或者進行清理前需要用copy命令將日誌歸檔到離線目標才是最安全的。
注意事項
memcache是個快取系統,一字之差,千差萬別,別搞混了