一、 配置部份
在基本配置完成之後,可以在slapd.conf設定一些提高安全和效率的選項
cachesize 5000
checkpoint 1024 5
cachesize是ldap在記憶體中快取的記錄條數。這個快取是openldap自己維護的,與bdb庫無關。
為了提高效率bdb在修改資料庫時,是先修改記憶體裡面的,然後分批回寫到資料庫檔案裡面。checkpoint操作就是把記憶體中的資料回寫資料庫檔案的操作。
checkpoint 1024 5表示每寫1024kb資料,或者是每隔5分鐘,bdb會執行一次checkpoint的操作。
在bdb庫中提拱了乙個命令db_checkpoint,用來給使用者執行checkpoint用。比如,當使用者需要刪除日誌的時候,他需要先執行一下db_checkpoint,來確保資料已經回寫到資料庫檔案中了,這時才能放心地刪掉日誌。
還有一些設定bdb環境的選項設定,這些選項存在於db_config。這個檔案放在openldap-data/下
set_cachesize是bdb庫自己的cache,這個選項用來設定cache的大小。這個選項的格式
set_cachesize
: cache 的 gb 大小
: cache 的 bytes
: cache 段的數目, 如果配置為 0 or 1, 那麼是一段連續的 cache.
set_cachesize一旦設定,就不能更改,除非你再用db_recover重建庫。
set_lg_dir 設定操作日誌存放的目錄。
set_lg_bsize 設定操作日誌的快取
set_lg_max 設定操作日誌檔案大小
set_flags 配置資料庫啟動引數, 可以配置多個選項標誌,比如 db_txn_nosync 告訴資料庫不要立即重新整理事務緩衝, 設定該值可以提高資料庫寫效能, 但伴隨的是資料丟失的風險(無法通過操作日誌恢復). 因此並不推薦使用該選項。
二、維護
1) 資料庫和日誌的歸檔(或者叫備份)
有兩種備份方法
a)標準備份
這種備份方法,要求是在備份的時候停止對資料庫的寫操作。方法是,
1)停止對資料庫的寫
2)執行一次checkpoint
3)在資料庫檔案的目錄下,執行db_archive –s標識出資料庫檔案,把它們拷到要備份的目錄下。
4)在日誌目錄下,執行db_archive,列出的是不活動的日誌檔案,再用db_archive –l列出所有
的日誌檔案,由些來判斷哪個是活動日誌檔案。一般是日誌檔案編號最大的乙個。把這個日誌檔案拷到
備份的目錄下。
這種備份不需要recover,直接就能用。
b)熱備份
這種備份方法,可以在任何時候用。方法如下
1)在資料庫檔案的目錄下,執行db_archive –s標識出資料庫檔案,把它們都拷到備份目錄下。
2)在日誌目錄下,執行db_archive –l標識出所有的日誌檔案。把它們拷到備份目錄下。
為了節省備份目錄的空間,可以在熱備份之前,在備份目錄執行db_archive列出不再需要的日誌檔案
的列表,可以不把這些日誌檔案拷到備份目錄下。
2)資料恢復
資料恢復有兩種,一種是正常恢復,一種是熱恢復。
正常恢復是,當資料庫檔案和日誌檔案都沒有被損壞時,執行db_recover,不要帶引數。當採用熱備份的方法所做的備份,必段要用熱恢復的方法來恢復
熱恢復是,當資料庫檔案或者日誌檔案損壞時,在熱備份的備份目錄下,執行db_recover -c 來恢復資料。
幾個工具的簡介
db_archive 用來確定歸檔檔案的工具,常用的用法
在資料檔案目錄下,執行db_archive –s 用來確定哪些是資料庫檔案
db_archive 不帶任保引數,列出不再需要的日誌檔名。db_archive –l 列出所有日誌檔名
db_checkpoint 用來手工checkpoint的工具,比如,在資料檔案目錄下,執行db_checkpoint –1 執行一次checkpoint的操作。
db_recover 用於恢復資料庫,常用的用法,db_recover 不帶任務引數,表示用正常恢復方法恢復資料庫。db_recover –c 用於熱恢復用的,db_reover –t 可以把資料庫恢復到指定時間的狀態。
關於Integer int String的一些方法
關於integer int string的一些方法 1.integer的parseint 和 valueof。integer靜態記憶體儲存 128 127 1 返回型別 parseint 返回的是int。valueof 返回的是integer 2 判斷相等 int 用 integer 用 equal...
關於Android Broadcast 的一樁血案
之前一直使用broadcast都僅僅侷限於簡單呼叫,疑惑是根據需求選擇傳送方式,亦或是看心情決定是什麼方式註冊,直到今天,發生了乙個關於廣播的血案,事情的經過是這樣 嫌疑人 傳送了乙個無序廣播,通知各位聽眾某某事情,聽眾 舉報別人聽到了,它沒聽見,大喊冤枉,我都廣播了,並且是不分高低貴賤的無序廣播,...
mysql關於日期 關於mysql日期的一些例子
mysql中的月份計算 減少乙個月,比如 原來的subtime 2006 10 22 12 22 22 減少後變成 2006 9 22 12 22 22 update message set subtime date sub subtime,interval 1 month 增加乙個月 update...