檢查發(fā)現(xiàn)數(shù)據(jù)庫(kù)長(zhǎng)期沒(méi)有維護(hù),一條數(shù)據(jù)操作都無(wú)法寫(xiě)入,就是在數(shù)據(jù)庫(kù)中已沒(méi)有寫(xiě)入權(quán)限了,報(bào)錯(cuò)日志查看如圖: 網(wǎng)上查詢了幾個(gè)解決方案,并執(zhí)行預(yù)計(jì)采取方案: 1、查詢pg_prepared_xacts表,找出掛起的transaction_id,使用命令ROLLBACK PREPARED 'transaction_id';回滾所有掛起事務(wù); 執(zhí)行結(jié)果:無(wú)效,查詢不到相應(yīng)的表 2、找出最大年齡的表,對(duì)單表進(jìn)行碎片整理; 3、vacuum freeze tablename;對(duì)所有報(bào)錯(cuò)的表進(jìn)行清理:
當(dāng)執(zhí)行了所有的表之后,執(zhí)行命令還是報(bào)錯(cuò):VACUUM ANALYZE 表名;ANALYZE 表名; 4、執(zhí)行vacumm full;一共999999條事務(wù),執(zhí)行了20個(gè)小時(shí)才清理1萬(wàn)多條,實(shí)在是無(wú)法忍受,這樣起碼得半個(gè)月,暈哦!
各路神仙,能幫忙解答一下,怎才能拯救我的數(shù)據(jù)庫(kù)嗎?
|