『壹』 SQL SERVER日誌限制增長
在計算伍絕過程中對數據有操作,所以會大量寫日誌。
可以通過以下方法:
1、日誌設置自增長,這樣就不會報滿了。
2、把資料庫的備份模式改成簡腔友姿單模式,並且收縮日誌告乎
『貳』 資料庫自動增長的增量值一般設定為多少
createdatabaselibrary
onprimary--默認就屬於primary文件組,可省略
(
/*--數據文件的具體描述--*/
name='library',--主數據文件的邏輯名稱
filename='D:library.mdf',--主數據文件爛桐的物理路徑名稱,可自行修改
size=3mb,--主數據文件的初始大小
filegrowth=15%--主數據仿歷灶文件備扮的增長率
)
logon
(
/*--日誌文件的具體描述,各參數含義同上--*/
name='library_log',filename='D:library_log.ldf',size=1mb,filegrowth=1mb
)
查看信息的話:
execSP_HELPDB
『叄』 sql server 資料庫 日誌 空間怎麼增長
打開查詢分析器,輸入命令
DUMP TRANSACTION 資料庫名 WITH NO_LOG
2.再打開企業管理器--右鍵你要壓縮的資料庫--所有任務--收縮資料庫--收縮文件--選擇日誌文件--在收縮方式里選擇收縮至XXM,這里會給出一個允許收縮到的最小M數,直接輸入這個數,確定就可以了。
『肆』 如何控制資料庫日誌增長速度
SQL server控制日誌增長採取措施:
1.清空日誌
DUMP TRANSACTION 庫名 WITH NO_LOG
2.收縮資料庫文件(如果不壓縮,資料庫的文件不會減小)
先提供一種復雜的方法壓縮日誌及資料庫文件如下:
1.清空日誌
DUMP TRANSACTION 庫名 WITH NO_LOG
2.截斷事務日誌:
BACKUP LOG 資料庫名 WITH NO_LOG
3.收縮資料庫文件(如果不壓縮,資料庫的文件不會減小
企業管理器--右鍵你要壓縮的資料庫--所有任務--收縮資料庫--收縮文件
--選擇日誌文件--在收縮方式里選擇收縮至天天上網M,這里會給出一個允許收縮到的最小M數,直接輸入這個數,確定就可以了
--選擇數據文件--在收縮方式里選擇收縮至天天上網M,這里會給出一個允許收縮到的最小M數,直接輸入這個數,確定就可以了
也可以用SQL語句來完成
--收縮資料庫
DBCC SHRINKDATABASE(客戶資料)
--收縮指定數據文件,1是文件號,可以通過這個語句查詢到:select * from sysfiles
DBCC SHRINKFILE(1)
4.為了最大化的縮小日誌文件(如果是sql 7.0,這步只能在查詢分析器中進行)
a.分離資料庫:
企業管理器--伺服器--資料庫--右鍵--分離資料庫
b.在我的電腦中刪除LOG文件
c.附加資料庫:
企業管理器--伺服器--資料庫--右鍵--附加資料庫
此法將生成新的LOG,大小隻有500多K
或用代碼:
下面的示例分離 pubs,然後將 pubs 中的一個文件附加到當前伺服器。
a.分離
E X E C sp_detach_db @dbname = 』pubs『
b.刪除日誌文件
c.再附加
E X E C sp_attach_single_file_db @dbname = 『pubs』,
@physname = 』c:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs.mdf『
5.為了以後能自動收縮,做如下設置:
企業管理器--伺服器--右鍵資料庫--屬性--選項--選擇"自動收縮"
--SQL語句設置方式:
E X E C sp_dboption 』資料庫名『, 』autoshrink『, 』TRUE『
6.如果想以後不讓它日誌增長得太大
企業管理器--伺服器--右鍵資料庫--屬性--事務日誌
--將文件增長限制為xM(x是你允許的最大數據文件大小)
--SQL語句的設置方式:
alter database 資料庫名 modify file(name=邏輯文件名,maxsize=20)
特別注意:
請按步驟進行,未進行前面的步驟,請不要做後面的步驟
否則可能損壞你的資料庫.
一般不建議做第4,6兩步
第4步不安全,有可能損壞資料庫或丟失數據
第6步如果日誌達到上限,則以後的資料庫處理會失敗,在清理日誌後才能恢復.
另外提供一種更簡單的方法
1。右建資料庫屬性窗口--故障還原模型--設為簡單
2。右建資料庫所有任務--收縮資料庫
3。右建資料庫屬性窗口--故障還原模型--設為大容量日誌記錄
『伍』 在創建資料庫時,主文件和日誌為什麼有有最大文件設置和文件增長設置
Mysql創建資料庫時會在如下目錄創建以資料庫名為名的目錄
show variables like "%datadir%";
數據文件日誌也就在相應目錄下了。
日誌慎差喊大小、看看這些參數是否能達到你的目的:
命令行參數–log-bin=filename:記錄二進制日誌文件的位置,盡量指定路徑名,如果不指定的話則保存在數據目錄;–log-bin-index=file:記錄二進制日誌文件索引的位置,保存了日誌文件名;–max_binlog_size:單個文件最大多少;–binlog-do-db=db_name:哪個資料庫使用,只有這個資料庫使用;–binlog-ignore-db=db_name:哪個資料庫不使用,只有這慶御個資料庫不使用;系統變數log_bin:日誌的位置;binlog_cache_size:二進制日誌緩存大小,是每一個連接進來的線程分配的大小,不是整個伺服器的大小;max_binlog_cache_size:最大緩存大小;max_binlog_size:單個文件最大大小,超過此大小則再分配一個文件,但是一個事務必須在一個文件中,所以可能會稍大點;binlog_cache_use:當前連接使用的binlog緩存的事務的數量,使用show status like 『binlog_cache_use』查看(show status命令顯示了所有連接到mysql伺服器的狀態值);binlog_cache_disk_use:如果binlog_cache_use不夠用,則在磁碟上緩存,應該盡量避免;binlog_do_db:設置master-slave時使用;binlog-ignore-db:設置寬野哪個資料庫不記錄日誌;sync_binlog:緩存與硬碟的同步頻率(commit多少下同步一次,0表示伺服器自動控制);