開發測試環境日志檔案沒有定期維護,越來越大,甚至比資料檔案還大,是以定期進行日志收縮:
def shrinklog(ip,mark):
ms = MSSQL(host=ip,user="dumper",pwd="123456",db="master")
# 要收縮資料庫
query = "SELECT name FROM Master..SysDatabases Where dbid >6"
dblist = ms.ExecQuery(query)
for db in dblist:
dbname = db[0]
# 收縮語句
sql = "USE [%s] ; ALTER DATABASE [%s] SET RECOVERY SIMPLE ;DBCC SHRINKFILE (2, 500) ;ALTER DATABASE [%s] SET RECOVERY FULL;"%(dbname,dbname,dbname)
print(sql)
# 執行語句
ms.ExecNonQuery(sql)
logging.info("Shrink log for %s %s"%(ip,dbname))
注意:日志收縮後,事務日志備份失敗,通過執行一次全備或差異備份解壓。