sql server資料庫怎麼寫日誌
:查看sql資料庫操作日誌的方法步驟: 1、用windows身份驗證登陸資料庫,點擊【連接】; 2、展開資料庫伺服器下面的【管理】【SQL Server日誌】; 3、雙擊【當前】可以打開【日誌文件查看器】裡面有所有的運行日誌;
❷ SQL SERVER 2000資料庫日誌文件過大如何解決
收縮資料庫
一般情況下,SQL資料庫的收縮並不能很大程度上減小資料庫大小,其主要作用是收縮日誌大小,應當定期進行此操作以免資料庫日誌過大
1、設置資料庫模式為簡單模式:打開SQL企業管理器,在控制台根目錄中依次點開Microsoft
SQL
Server-->SQL
Server組-->雙擊打開你的伺服器-->雙擊打開資料庫目錄-->選擇你的資料庫名稱(如論壇資料庫Forum)-->然後點擊右鍵選擇屬性-->選擇選項-->在故障還原的模式中選擇「簡單」,然後按確定保存
2、在當前資料庫上點右鍵,看所有任務中的收縮資料庫,一般裡面的默認設置不用調整,直接點確定
3、收縮資料庫完成後,建議將您的資料庫屬性重新設置為標准模式,操作方法同第一點,因為日誌在一些異常情況下往往是恢復資料庫的重要依據
❸ SQL伺服器端如何設置記錄日誌
設置作業歷史記錄日誌
在對象資源管理器中,連接到 SQL Server 資料庫引擎實例,再展開該實例。
右鍵單擊「SQL Server 代理」,再單擊「屬性」。
在「SQL Server 代理屬性」對話框中,選擇「歷史記錄」頁。
從下列選項中選擇:
選中「限製作業歷史記錄日誌的大小」,然後鍵入作業歷史記錄日誌的最大行數和每個作業的最大行數。
選中「自動刪除代理歷史記錄」,然後指定時間段。這樣,早於此時間段的歷史記錄將從日誌中清除。
❹ SQL Server事務日誌的幾個常用操作
我們知道,SQL Server事務日誌主要是用來記錄所有事務對資料庫所做的修改,如果系統出現故障,它將成為最新數據的唯一來源。日誌的操作常有以下幾個應用:
一、事務日誌文件LDF的丟失
當我們不小刪除或者LDF文件丟失的時候,資料庫只剩下MDF文件,此時直接通過附加MDF是無法恢復資料庫的,那我們怎麼樣才能恢復資料庫呢?我們可以把SQL Server的日誌文件分為兩種形式:一類是無活動事務的日誌,另一類是有活動事務的日誌,我們分別根據兩種情況來進行資料庫恢復。
1、無活動事務的日誌恢復
當文件並沒有發生活動性的日誌,我們就可以很容易的利用MDF文件就可以直接恢復資料庫了,具體操作方法如下:
1)資料庫要是沒有日誌,就會處於置疑的狀態,我們先可以通過企業管理器中在對應資料庫中點擊右鍵,然後在「所有任務」下選擇「分離資料庫」把資料庫進行分離;
2)利用MDF文件附加資料庫生成新的日誌文件,可用企業管理器中資料庫點擊右鍵選擇「所有任務」下的「附加資料庫」把資料庫附加上。
這樣就可以直接恢復好資料庫了,而如果資料庫的日誌文件中含有活動事務,利用此方法就不能恢復資料庫,所以得使用下面的方法。
2、有活動事務的日誌恢復
當日誌發生了事務的記錄,丟失的時候,我們採用如下的方法來實現:
1)新建一個同名的資料庫,如原資料庫名為MYDB,然後停止SQL Server伺服器,再把資料庫主數據MDF文件移走,然後重新啟動SQL Server伺服器,新建一個同名的資料庫MYDB,然後再停止SQL Server伺服器,把移走的MDF文件再覆蓋回來,然後再重新啟動SQL Server伺服器,在默認的情況下,系統表是不允許被修改的,我們需要運行以下語句才可以,在查詢分析器中,選擇Master資料庫,然後執行:
Sp_configure 'allow updates',1
Reconfigure With Override
接著運行以下語句,把Sysdatabases表中MYDB資料庫的status屬性設為『37268』,把MYDB資料庫設置為緊急模式。
update sysdatabases set status=32768 where name=』MYDB』
然後再把資料庫MYDB設置為單用戶模式,然後重啟SQL Server伺服器,並把資料庫MYDB設為單用戶模式
Sp_dboption 'MYDB','single user', 'true'
❺ sql server怎麼設置日誌文件
請參閱
SQL2005——向資料庫中添加日誌文件
https://jingyan..com/article/6f2f55a1bbb8b3b5b93e6ccc.html
❻ sql2000自動設置清除日誌的具體方法如何操作
資料庫日誌文件是隨著時間增長而增長的,如果長時間不清理,文件會變得特別大,因此需要定期清空,但是日至文件是恢復資料庫的重要依據,不用日誌文件也是不明智的。手工清除單個資料庫的還好說,但資料庫多了,或者臨時沒有來得及清理,可能硬碟空間就會占滿了,影響訪問。因此設置自動清理資料庫日誌文件還是比較實用的。
手動清理方法:右鍵單擊需要清理的資料庫,選擇「屬性」,在「選項」卡上,把故障還原模型設定為簡單,確定後關閉;再右鍵單擊該資料庫,「所有任務」-「收縮資料庫」,確認後即可清除日誌文件,最後記得重新選擇「屬性」,將故障還原模型設置為完全。
自動清理方法:同樣是利用sql
server代理服務,執行自動作業。
打開企業管理器,進入「管理」-「sql
server代理服務」-「作業」,在右側窗口點擊右鍵,選擇「新建作業」。「常規」選項卡中,填寫作業名稱,具體描述,注意所有者最好還是用sa或者默認的管理帳號。
轉到「步驟」選項卡,新建作業步驟,填寫步驟名稱,類型為腳本,資料庫為需要清理日誌的資料庫,在下邊命令中填寫以下命令:
Sql代碼
1.
DUMP
TRANSACTION
資料庫名稱
WITH
NO_LOG
DBCC
SHRINKFILE(資料庫日誌文件名,1)
或者使用
2.
DUMP
TRANSACTION
DBName
WITH
NO_LOG
BACKUP
LOG
DBName
WITH
NO_LOG
DBCC
SHRINKDATABASE(DBName
)
DBCC
SHRINKFILE(1)
❼ 如何創建SQL SERVER2005事務日誌並且能每天自動建立。
方法1:
第一步:
backup
log
database_name
with
no_log
或者
backup
log
database_name
with
truncate_only
--no_log和truncate_only是在這里是同義的,隨便執行哪一句都可以
第二步:
1.收縮特定資料庫的所有數據和日誌文件,執行
dbcc
shrinkdatabase
(database_name,[,target_percent])--database_name是要收縮的資料庫名稱;target_percent是資料庫收縮後的資料庫文件中所要的剩餘可用空間百分比
2.收縮一次一個特定資料庫中的數據或日誌文件,執行
dbcc
shrinkfile(file_id,[,target_size])
--file_id是要收縮的文件的標識
(id)
號,若要獲得文件
id,請使用
file_id
函數或在當前資料庫中搜索
sysfiles;target_size是用兆位元組表示的所要的文件大小(用整數表示)。如果沒有指定,dbcc
shrinkfile
將文件大小減少到默認文件大小
兩個dbcc都可以帶上參數notruncate或truncateonly,具體意思看幫助。
方法2
(這個方法在sqlserver2000的環境下做一般能成功,在sqlserver7及以下版本就不一定了):
第一步:
先備份整個資料庫以備不測
第二步:
備份結束後,在query
analyzer中執行如下的語句:
exec
sp_detach_db
yourdbname,true
--卸除這個db在mssql中的注冊信息
第三步:
到日誌的物理文件所在的目錄中去刪除該日誌文件或者將該日誌文件移出該目錄
第四步:
在query
analyzer中執行如下的語句:
exec
sp_attach_single_file_db
yourdbname,'d:\mssql7\data\yourdbname_data.mdf'
--以單文件的方式注冊該db,如果成功則mssql將自動為這個db生成一個500k的日誌文件。
以上方法在清除log日誌中均有效。
但,能否讓sql
server
不產生log日誌呢?以上方法好像均無效。
我這兒正好有個case:
我客戶的sql
server每天都會產生4,500m的log日誌,每天都清除一下,非常不便。有沒有辦法實現不產生log日誌呢?
我分析了一下客戶產生log日誌的原因,並且做了相應測試。
客戶是每天將資料庫清空,從總系統中將數據導入到sql
server里。我感決sqlserver在插入時產生log不大,在delete整個庫時產生log極大。
比如:
select
*
into
test_2
from
b_bgxx
共45000條記錄,產生十幾m
log,如果
delete
from
test_2
產生80多m
log
,這明顯存在問題。
雖然可以換成:
truncate
table
test_2
但我還是希望能找到不產生log的方法。就如oracle不產生歸檔一樣。
❽ 如何限定SQL SERVER資料庫的日誌為固定大小
打開資料庫名稱上的右鍵菜單項【屬性】,在【屬性】窗口的【文件】選項卡中設置資料庫日誌文件的【初始大小】值,並通過取消勾選【啟用自動增長】關閉資料庫日誌文件的自動增長功能,步驟如下圖:
❾ 如何查看資料庫日誌
1、首先,打開計算機上的sqlserver軟體,進入軟體載入界面。