當前位置:首頁 » 編程語言 » 重啟sql服務日誌
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

重啟sql服務日誌

發布時間: 2022-08-04 11:59:41

sql2008R2重啟電腦後無法開啟SQL服務

這個原因可能是SQL服務的依懶組件或服務被停止,你可以通過查看服務屬性,依存關系查看哪些服務停止了.相應啟動即可.

Ⅱ 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資料庫日誌文件

麻煩了,很多DBA不太清楚,資料庫的日誌裝的其實是真正的數據(歸檔前改變的數據),所以日誌文件也是非常重要的。

至於有些資料庫的日誌文件過大,主要是DBA沒有正確的對資料庫進行調優設置造成的。

下面的方法也許對你是有用的。

0.備份數據文件'xxzx_discuz_Log.MDF'
1.新建一個同名的資料庫'xxzx_discuz'
2.再停掉sqlserver服務(注意不要分離資料庫)
3.用原資料庫的數據文件'xxzx_discuz_Log.MDF' 覆蓋掉新建的資料庫

4.再重啟sqlserver服務
5.此時打開企業管理器時會出現置疑,先不管,執行下面的語句(注意修改其中的資料庫名)
6.完成後一般就可以訪問資料庫中的數據了。這時,資料庫本身一般還有問題,解決辦法是:利用資料庫的腳本創建一個新的資料庫,然後通過DTS將數據導進去就行了.
SQL代碼
use master
go
sp_configure 'allow updates',1 reconfigure with override
go
update sysdatabases set status =32768 where name='置疑的資料庫名'
go
sp_dboption '置疑的資料庫名', 'single user', 'true'
go
dbcc checkdb('置疑的資料庫名')
go
update sysdatabases set status =28 where name='置疑的資料庫名'
go
sp_configure 'allow updates', 0 reconfigure with override
go
sp_dboption '置疑的資料庫名', 'single user', 'false'
go

特別注意最後一步中的說明「這時,資料庫本身一般還有問題,解決辦法是:利用資料庫的腳本創建一個新的資料庫,然後通過DTS將數據導進去就行

Ⅳ SQL Server(MSSQLSERVER)服務為什麼會啟動不了時在哪裡看日誌信息

我知道啦,真的像網上那個網友說說的那樣,其實很多事情都必須自己去琢磨的,我也遇到過此類問題,我還弄了還久大概就一天把,上網找答案,據多時同一個網友的他說只要把SQL的文件解壓就還,還有貼圖一開始不清不楚,後來自己研究才發現原來真的是這樣。我們發現SQL
Server安裝目錄下的文件夾里的文件大多數是藍色名字的這說明他們被壓縮了,其實我們可以點擊整個文件夾右擊屬性-高級選項點下面的壓縮-確定-再回來把那個勾給去掉就把所有的文件一起解壓了,可以看到解壓回來的文件的文件名字是黑色的這是我們就可以啟動服務了。

Ⅳ 如何恢復丟失的SQL Server日誌文件

在實際操作中SQLServer日誌文件丟失是一件令人十分頭疼的事情,以下的文章主要是針對這一問題給出的答案,以下就是正文的主要內容描述。 一、 概述 在應用系統中,資料庫往往是最核心的部分,一旦資料庫毀壞或損壞,將會帶來巨大的損失,所以資料庫的管理越來越重要。我們在做資料庫管理與維護工作中,不可避免會出現各種各樣的錯誤,本文針對資料庫的SQLServer日誌文件丟失時如何利用MDF文件恢復資料庫的方法進行了研究。 二、 資料庫的恢復 當資料庫的主數據MDF文件完好無損時,在丟失了LDF文件的情況下,如何利用MDF文件恢復資料庫?我們把SQL Server的日誌文件分為兩類:一類是無活動事務的日誌,另一類是含活動事務的日誌,根據不同的日誌,採取不同的方法來恢復資料庫。 1. 無活動事務的日誌恢復 無活動事務的日誌丟失時,我們很容易利用MDF文件直接恢復資料庫,具體方法如下: ①.分離被質疑的資料庫,可用企業管理器中的"分離資料庫工具",或者用存儲過程sp_detach_db分離資料庫; ②利用MDF文件附加資料庫生成新的日誌文件,可用企業管理器中的"附加資料庫"的工具,或者用存儲過程sp_attach_single_file_db附加資料庫。 如果資料庫的日誌文件中含有活動事務,利用此方法就不能SQLServer日誌文件丟失的恢復資料庫。 2. 含活動事務的日誌恢復 含有活動事務的日誌丟失時,利用上述方法就會出現"資料庫和日誌文件不符合,不能附加資料庫"。對於這種情況下,我們採用如下方法: ①新建同名資料庫AAA,並設它為緊急模式 停止SQL Server伺服器; 把資料庫主數據MDF文件移走; 啟SQL Server伺服器,新建一個同名的資料庫AAA; 停止SQL Server伺服器,把移走的MDF文件再覆蓋回來; 啟動SQL Server伺服器,把AAA設為緊急模式,不過默認情況下,系統表是不能隨便修改的,必須首先設置一下使其能被修改,運行以下語句即可: Use MasterGosp_configure 』allow updates』,1 reconfigure with override Go 接著運行以下語句,把AAA資料庫設為緊急模式,即把Sysdatabases表中AAA資料庫的status屬性設為』37268』,就表示把AAA資料庫處於緊急模式。 update sysdatabases set status=32768 where hame=』AAA』 如果沒有報告什麼錯誤,就可以進行以下操作。 ②設置資料庫AAA為單用戶模式,並檢查資料庫 重啟SQL Server伺服器; 把資料庫AAA設為單用戶模式 Sp_dboption 』AAA』, 』single user』, 』true』 運行以下語句,檢查資料庫AAA DBCC CHECKDB(』AAA』) 如果沒有什麼大的問題就可以把資料庫的狀態改回去。 ③還原資料庫的狀態 運行以下語句,就可以把資料庫的狀態還原: update sysdatabases set status=28 where name=』AAA』 sp_configure 』allow updates』,0 Go 如果沒有什麼大的問題,刷新一下資料庫,資料庫AAA又會出現在你面前,但目前恢復工作還沒有做完,此時的資料庫仍不能工作,還要進行下面的處理,才能真正恢復。 ④利用DTS的導入導出向導,把資料庫AAA導入到一個新建資料庫BBB中 新建一個資料庫BBB; 右擊BBB,選擇IMPORT功能,打開導入向導; 目標源選擇"在SQL Server資料庫之間復制對象和資料庫",這樣可以把表結構,數據視圖和存儲過程導入到BBB中 再用此功能把BBB庫替換成原來的AAA庫即可。 到此為止,資料庫AAA就完全恢復。 SQLServer日誌文件丟失是一件非常危險的事情,很有可能你的資料庫徹底毀壞。SQL Server資料庫的恢復都是靠日誌文件來完成,所以無論如何都要保證日誌文件的存在,它至關重要。為了使我們的資料庫萬無一失,最好採用多種備份方式相結合,所以我們要從心裡重視資料庫的管理與維護工作。

Ⅵ sql server的日誌文件能不能刪除

資料庫在使用過程中會使日誌文件不斷增加,使得資料庫的性能下降,並且佔用大量的磁碟空間。SQL Server資料庫都有log文件,log文件記錄用戶對資料庫修改的操作。可以通過直接刪除log文件和清空日誌在清除資料庫日誌。

一、刪除LOG

1、分離資料庫。分離資料庫之前一定要做好資料庫的全備份,選擇資料庫——右鍵——任務——分離。

勾選刪除連接

分離後在資料庫列表將看不到已分離的資料庫。
2、刪除LOG文件
3、附加資料庫,附加的時候會提醒找不到log文件。

刪除資料庫信息信息的ldf文件:

附加資料庫之後將生成新的日誌文件log,新的日誌文件的大小事504K。
也可以通過命令才完成以上的操作:
use master;
exec sp_detach_db @dbname='TestDB';
exec sp_attach_single_file_db @dbname='TestDB',@physname='D:\Program Files\Microsoft SQL Server\MSSQL10.SQL2008\MSSQL\DATA\TestDB.mdf'

二、清空日誌
該命令在SQL Server 2005和2000支持,SQL Server 2008不支持該命令。
DUMP TRANSACTION TestDB WITH NO_LOG

三、收縮資料庫文件
DBCC SHRINKFILE ('TestDB_log',1)

四、截斷事務日誌
BACKUP LOG TestDB WITH NO_LOG

該命令在SQL Server 2008也是不支持,在SQL Server 2005和2000可以使用。

清除SQLServer2005的LOG文件
--最好備份日誌,以後可通過日誌恢復數據。。。
以下為日誌處理方法
一般不建議做第4,6兩步
第4步不安全,有可能損壞資料庫或丟失數據
第6步如果日誌達到上限,則以後的資料庫處理會失敗,在清理日誌後才能恢復.
--*/

--下面的所有庫名都指你要處理的資料庫的庫名

1.清空日誌
DUMPTRANSACTION 庫名 WITH NO_LOG

2.截斷事務日誌:
BACKUPLOG 庫名 WITH NO_LOG

3.收縮資料庫文件(如果不壓縮,資料庫的文件不會減小
企業管理器--右鍵你要壓縮的資料庫--所有任務--收縮資料庫--收縮文件
--選擇日誌文件--在收縮方式里選擇收縮至XXM,這里會給出一個允許收縮到的最小M數,直接輸入這個數,確定就可以了
--選擇數據文件--在收縮方式里選擇收縮至XXM,這里會給出一個允許收縮到的最小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.分離
EXEC sp_detach_db @dbname='庫名'

b.刪除日誌文件

c.再附加
EXEC sp_attach_single_file_db @dbname='庫名',
@physname='c:\Program Files\Microsoft SQL Server\MSSQL\Data\庫名.mdf'

5.為了以後能自動收縮,做如下設置:
企業管理器--伺服器--右鍵資料庫--屬性--選項--選擇"自動收縮"

--SQL語句設置方式:
EXEC sp_dboption '庫名', 'autoshrink', 'TRUE'

6.如果想以後不讓它日誌增長得太大
企業管理器--伺服器--右鍵資料庫--屬性--事務日誌
--將文件增長限制為xM(x是你允許的最大數據文件大小)

--SQL語句的設置方式:
alterdatabase 庫名 modify file(name=邏輯文件名,maxsize=20)

SQL Server 資料庫使用時間一長就會導致Log文件逐漸變的龐大, 想備份一下資料庫, 想發給誰都很困難
運行下面的語句就可以 清到Log文件只剩下1M左右的空間.
DUMP TRANSACTION 資料庫名 WITH NO_LOG
DBCC SHRINKDATABASE('資料庫名',TRUNCATEONLY)

不重啟SQL服務,刪除SQLServer系統日誌
SQLServer的系統日誌過大,就會引起SQLServer伺服器無法啟動等一系列問題。今天我遇到了這個問題,在網上搜索了一下,解決方法是刪除就 可以了,可是當前的ErrorLog正在被SQL使用無法刪除啊,要刪除只能停止SQL伺服器,難道就沒有別得辦法了嗎?

回答是肯定的:使用以下存儲過程:EXEC sp_cycle_errorlog

注釋
每次啟動 SQL Server時,當前錯誤日誌重新命名為 errorlog.1;errorlog.1 成為 errorlog.2,errorlog.2 成為 errorlog.3,依次類推。sp_cycle_errorlog 使您得以循環錯誤日誌文件,而不必停止而後再啟動伺服器。

Ⅶ SQL不小心刪除日誌文後如何恢復SQLSERVER服務

如果你之前的日誌文件沒有刪除,把服務停止,把原來的日誌文件拷貝回來然後重啟服務。

Ⅷ SQL Server服務啟動後自動停止了,並沒有報錯,查看日誌後以下內容,請問該如何恢復

解決方法:
a. 我的電腦--控制面板--管理工具--服務--右鍵 MSSQLSERVER--屬性--登陸--登陸身份--選擇"本地系統帳戶"。
或:
b.我的電腦--控制面板--管理工具--服務--右鍵 MSSQLSERVER--屬性--登陸--登陸身份--選擇"此帳戶"--選擇 administrator ,密碼和確認密碼中輸入你的administrator密碼。

Ⅸ 如何查看sqlserver的啟動/停止日誌

您好,很高興為您解答。

預設情況下,在Program FilesMicrosoft SQL ServerMSSQLLog目錄下。最近的錯誤日誌名稱是ERRORLOG,如果停止並重啟SQL Server,舊的日誌將被壓縮和新建一個文件。此外,也可以通過DBCC ERRORLOG 命令或者sp_cycle_errorlog 系統存儲過程回收錯誤日誌。
[@more@]
以下是一些沒有寫在文檔中但是眾所周知的系統存儲過程,這些存儲過程可以從SQL Server自身讀取錯誤日誌。
exec xp_enumerrorlogs 1 will list SQL Engine errorlog file numbers
exec xp_readerrorlog <errorlognumber>, 1 will return the content of the requested Engine errorlog file.
exec xp_enumerrorlogs 2 will list the Agent error log file numbers
exec xp_readerrorlog <errorlognumber>, 2 will return the content of the requested Agent error log file.
舉例:
exec xp_enumerrorlogs 2
存檔# 日期 日誌文件大小(位元組)
1 08/06/2012 10:52 11399188
2 07/13/2012 00:58 1048
3 07/13/2012 00:55 1048
4 07/13/2012 00:55 12682508
5 06/16/2012 09:53 12869230
6 05/20/2012 05:38 10492
7 05/20/2012 05:25 11766
8 05/20/2012 05:08 10012278
9 04/29/2012 00:41 15371150
0 08/08/2012 11:30 939606
exec xp_readerrorlog 1, 2
時間 錯誤級別 內容
2012-07-13 01:07:03.0 3 [393] 正在等待 SQL Server 恢復資料庫...
2012-07-13 01:18:29.0 3 [100] Microsoft SQLServerAgent 版本 9.00.1399.06 (內部版本號 x86 unicode 零售): 進程 ID 1996
2012-07-13 01:18:29.0 3 [101] SQL Server SVCTAG-4GCYY2X 版本 9.00.1399 (連接限制: 0)
2012-07-13 01:18:29.0 3 [102] SQL Server ODBC 驅動程序版本 9.00.1399
2012-07-13 01:18:29.0 3 [103] 驅動程序使用的 NetLib 是 DBNETLIB.DLL;本地主機伺服器是
2012-07-13 01:18:29.0 3 [310] 檢測到 8 個處理器和 4096 MB RAM
2012-07-13 01:18:29.0 3 [339] 本地計算機是 SVCTAG-4GCYY2X,運行的是 Windows NT 5.2 (3790) Service Pack 2
2012-07-13 01:18:29.0 3 [431] 正在填充子系統緩存...
2012-07-13 01:18:36.0 3 [432] 子系統緩存中有 11 個子系統
2012-07-13 01:18:36.0 3 [124] 已成功載入子系統「TSQL」(最大並發數: 160)
2012-07-13 01:18:37.0 3 [124] 已成功載入子系統「ActiveScripting」(最大並發數: 80)
2012-07-13 01:18:37.0 3 [124] 已成功載入子系統「CmdExec」(最大並發數: 80)
2012-07-13 01:18:38.0 3 [124] 已成功載入子系統「Snapshot」(最大並發數: 800)
2012-07-13 01:18:38.0 3 [124] 已成功載入子系統「LogReader」(最大並發數: 200)

~ O(∩_∩)O~