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

sqlserverdetach

發布時間: 2022-09-09 15:13:22

如何刪除sqlserver資料庫日誌文件

1、確定SQL資料庫的安裝路徑與所用的SQL資料庫名稱。2、點擊開始--程序--MicrosoftSQLServer--查詢分析器--確定,進入軟體里,點擊菜單幫助--Transact-sql幫助(S)--索引--輸入(sp_attach_single_file_db),在右邊對話框里找到以下的命令或者在空白處直接輸入以下的命令:EXECsp_detach_db@dbname='pubs'returnEXECsp_attach_single_file_db@dbname='pubs',@physname='c:\ProgramFiles\MicrosoftSQLServer\MSSQL\Data\pubs.mdf'注意:return是加入的命令語名,將資料庫(*.LDF與*.MDF)分離,再將資料庫名改回所要選的,即是pubs改為J2002。即是:EXECsp_detach_db@dbname='J2002'returnEXECsp_attach_single_file_db@dbname='J2002',@physname='c:\ProgramFiles\MicrosoftSQLServer\MSSQL\Data\J2002.mdf'3、輸入命令後,點擊菜單查詢--執行,下面對話框出現命令"命令已成功完成"。4、刪除命令(EXECsp_detach_db@dbname='J2002'return),進入安裝SQL資料庫路徑里將J2002.ldf文件重命名。5、接著第3點開始,點擊菜單查詢--執行,下面對話框出現命令"設備激活錯誤。物理文件名'C:\ProgramFiles\MicrosoftSQLServer\MSSQL\Data\J200188.ldf'可能有誤。已創建名為'c:\ProgramFiles\MicrosoftSQLServer\MSSQL\Data\j200188_log.LDF'的新日誌文件"。

㈡ SQLSERVER為什麼分離的時候不要勾選更新統計信息

用命令來分離資料庫
EXEC [sys].[sp_detach_db] @dbname = NULL, -- sysname
@skipchecks = N'', -- nvarchar(10)
@keepfulltextindexfile = N'' -- nvarchar(10)

㈢ sqlserver分離的資料庫在哪

SQL Server分離的資料庫,從SQL Server當前服務脫離,所在位置保持不變,還在安裝SQL Server的目錄位置。

以默認安裝位置為例:

分離的資料庫存在於C:Program FilesMicrosoft SQL ServerMSSQL.1MSSQLData,裡面有多個文件,一般可根據文件名找到對應的資料庫文件。

(3)sqlserverdetach擴展閱讀

分離資料庫:

對於用存儲過程來分離資料庫,如果發現無法終止用戶鏈接,可以使用ALTER DATABASE命令,並利用一個能夠中斷已存在鏈接的終止選項來把資料庫設置為SINGLE_USER模式,設置為SIGLE_USER代碼如下:

ALTER DATABASE [DatabaseName] SET SINGLE_USER WITH ROLLBACK IMMEDIATE

下面是分離資料庫的CMD命令

EXEC sp_detach_db DatabaseName

一旦一個資料庫分離成功,從SQL Server角度來看和刪除這個資料庫沒有什麼區別。

㈣ 如何防止SQLserver伺服器被黑

一、基本安全設定:
(1)文件系統的設定 windows2000server 支持多種文件系統,最安全的要數NTFS文件系統,如果你的windows2000server要用作伺服器,最好將所有的分區都格式化為NTFS文件系統,fat32是不能用的。
(2)補丁(pack) 目前windows2000已經到sp4了,這個大補丁一定要裝的,安裝sp4後再到網路上升級,將微軟提供的各種重要系統安全更新全部都升級,不要怕麻煩,這是防病毒和黑客攻擊的非常重要安全設置步驟。
(3)帳號安全帳號是windows2000server的重要的安全保證,要注意區分一些工作組的許可權: administrators是系統管理員組,administrator是系統默認的管理帳號,administrator最好設置一個復雜的密碼,復雜到什麼程度呢?簡單的說,自己都要記不住這個密碼,這個密碼可以是字元、數字、符號、大小寫的組合(如:AGgF!452KhtUN),密碼不要讓別人猜得到,不要用自己得電話號碼啦之類的東西,最好在筆記本上將密碼設定好後再設置,設好密碼後妥善保管記錄密碼的筆記本,每隔一段時間更改自己的密碼 guest帳號最好禁止使用,如果沒有必要,不要添加其他的系統管理員帳號。
(4)關閉不必要的服務在服務中將一些不常用的服務關閉(比如列印、遠程注冊表操作,信息發送等不必要的服務)。
(5)網路協議如果沒有其他的用途,windows2000server只需要安裝tcp/ip協議,其他不必要的協議統統刪除。(6)如果沒必要,IIS一定不要安裝(如果需要安裝iis,那麼看後面的設置) IIS是windows2000server中最不安全的組件,不裝IIS,windows2000將是很安全的。
(7)默認共享的刪除 windows2000server默認的共享有以下幾種 c$ d$ e$ ..... IPC$ ADMIN$ 這些默認共享一定要關,否者hk利用簡單的Net use命令就可以將你的伺服器黑掉下面提供簡單的關閉這些共享的方法 A、建立一個批處理文件,如a.bat B、在該批處理文件中添加下面的語句 net share c$ /del (這是取消c盤的默認共享,同理 net share d$ /del 是取消d盤的共享,你有多少個盤符,就編多少個以上的語句) net share ipc$/del (刪除ipc默認共享) net share admin$ /del (刪除 admin默認共享) C 、將以上的語句添加完後,將該文件放入開始菜單中程序中啟動文件夾中,讓windows2000server每次啟動都將默認的共享刪除(7)CMD的設置 cmd.exe是windows2000中非常重要的文件,很多漏洞都是要*調用該個文件,該文件在windows2000server所在目錄的system32中,我們需要對其進行設定 A、將該文件從system32中拷貝出來放在其他地方,將原來的文件刪除 B、將拷貝出來的文件進行許可權設定,只允許administrator訪問,不允許其他任何的工作組或用戶訪問該文件。
(8)windows2000server終端服務(默認3389埠) windows2000server提供了遠程終端服務,此服務方便了網路管理員對伺服器的遠程管理,但是,該服務也為黑客提供了非常危險的攻擊,網路黑客口中的所謂跳板(肉雞)絕大部分都是利用該功能進行自我隱蔽的攻擊。一旦系統管理員的密碼被破解,而該伺服器又提供終端服務,黑客就可以完全控制了該伺服器,不但伺服器的各種資料會完全暴露,而且黑客還會利用這台伺服器去攻擊其他的伺服器,因此該服務除非你覺得自己的伺服器足夠安全,否則最好不要打開,特別是暴露在互連網路中的伺服器,打開該功能一定要小心謹慎。 A、如何知道自己的終端服務是否打開?終端服務需要安裝,我們可以通過控制面板中的添加/刪除程序中的添加/刪除windows組件來安裝,在windows組件向導列表中最下面有兩個組件,一個是「終端服務」,一個是「終端服務授權」,我們只需要安裝「終端服務」這個組件就可以將該功能啟用,一旦啟用了該功能,默認的情況下,我們的tcp3389埠就會打開。所以,我們看看這個地方,如果你的組件「終端服務」前面打了勾,就表明你已經打開了該服務。有些黑客手段很高明,一旦控制了你的計算機後,可以遠程打開該服務,這種情況下,我們最好檢查windows2000server啟用了哪些服務,如何檢查呢?打開windows2000server的服務管理(開始菜單——程序——管理工具——服務)。在服務列表中檢查Terminal Services這項服務的狀態,看看如果該服務處於「 禁用」狀態,說明該服務沒打開,如果該服務處於「已啟動」狀態,說明該服務已經打開。 B、如何關閉該服務!第一步,通過控制面板中的添加/刪除程序中的添加/刪除windows組件來將該服務組件刪除第二步,在服務中將Terminal Services服務禁用注意:需要經常檢查該服務是否被非法啟動,如果你在你沒有啟動該服務的情況下你發現它已打開,非常不幸,你的伺服器已經被黑,成為了別人的跳板(肉雞)最好的解決方法是重作伺服器系統,不要以為關閉該服務就行了。
(9)telnet服務(默認23埠)相對於3389來講,telnet服務更不容易引起管理員的注意,該服務以前是UNIX和Linux類系統提供的遠程管理終端服務,windows2000server也提供了,它也是一個終端服務,只不過telnet服務是字元界面,而3389服務是圖形界面,二者都能完全遠程式控制制伺服器的所有功能。我以前在利用肉雞的時候,一般都不用3389,為什麼呢?該服務速度慢,我一般都是打開肉雞的telnet服務,速度非常快,功能也很全面,又不容易被發覺 A、如何知道自己的telnet服務是否打開?在windows2000server控制面板——管理工具中有一項「Telnet 伺服器管理」(對應的文件是system32中的tlntadmn.exe),這就是該服務的開關,我們可以利用該程序配置我們的telnet服務。打開開始菜單——程序——管理工具——服務,在服務列表中有該服務對應的一項「Telnet」,默認的情況下,該服務狀態是「手動」,如果,該服務是「已啟動」狀態,說明該服務已經啟動了,你可以用以下命令連接在windows(98/2000/xp/2003)字元模式下輸入: telnet 伺服器的IP地址如果出現了登陸界面,非常不幸,你的telnet服務真的已開,如果不是你開的,非常不幸,你被黑了,你可能成為了肉雞。 B、如何關閉該服務!打開開始菜單——程序——管理工具——服務,在服務中將telnet服務禁用建議:最好將system32中的tlntadmn.exe拷貝出來放到其他文件夾中並改名,並將該文件從system32中刪除。隨時檢查telnet服務的狀態,如果該服務是「已啟動」狀態,而又不是你啟動的,最好重新安裝伺服器系統。最好隨時掃描你的伺服器所開的埠,如果23埠已開或有一些不知名的埠已開(因為黑客很可能會將提供該服務的埠改為其他的埠來逃避檢查),用telnet命令測試一下,看看能不能連接。附:telnet命令格式 telnet ip地址埠如:telnet 192.168.1.1 (連接伺服器192.168.1.1的默認23埠)如:telnet 192.168.1.1555 (連接伺服器192.168.1.1的555埠) SQL Server 2000的安全配置在進行SQL Server 2000資料庫的安全配置之前,首先你必須對操作系統進行安全配置,保證你的操作系統處於安全狀態。然後對你要使用的操作資料庫軟體(程序)進行必要的安全審核,比如對ASP、PHP等腳本,這是很多基於資料庫的WEB應用常出現的安全隱患,對於腳本主要是一個過濾問題,需要過濾一些類似 , 『 @ / 等字元,防止破壞者構造惡意的SQL語句。接著,安裝SQL Server2000後請打上補丁sp1以及最新的sp2。 1、使用安全的密碼策略我們把密碼策略擺在所有安全配置的第一步,請注意,很多資料庫帳號的密碼過於簡單,這跟系統密碼過於簡單是一個道理。對於sa更應該注意,同時不要讓sa帳號的密碼寫於應用程序或者腳本中。健壯的密碼是安全的第一步!SQL Server2000安裝的時候,如果是使用混合模式,那麼就需要輸入sa的密碼,除非你確認必須使用空密碼。這比以前的版本有所改進。同時養成定期修改密碼的好習慣。資料庫管理員應該定期查看是否有不符合密碼要求的帳號。比如使用下面的SQL語句:Use master Select name,Password from syslogins wherepassword is null
2、使用安全帳號策略:由於SQL Server不能更改sa用戶名稱,也不能刪除這個超級用戶,所以,我們必須對這個帳號進行最強的保護,當然,包括使用一個非常強壯的密碼,最好不要在資料庫應用中使用sa帳號,只有當沒有其它方法登錄到 SQL Server 實例(例如,當其它系統管理員不可用或忘記了密碼)時才使用 sa。建議資料庫管理員新建立個擁有與sa一樣許可權的超級用戶來管理資料庫。安全的帳號策略還包括不要讓管理員許可權的帳號泛濫。SQL Server的認證模式有Windows身份認證和混合身份認證兩種。如果資料庫管理員不希望操作系統管理員來通過操作系統登陸來接觸資料庫的話,可以在帳號管理中把系統帳號「BUILTIN\Administrators」刪除。不過這樣做的結果是一旦sa帳號忘記密碼的話,就沒有辦法來恢復了。很多主機使用資料庫應用只是用來做查詢、修改等簡單功能的,請根據實際需要分配帳號,並賦予僅僅能夠滿足應用要求和需要的許可權。比如,只要查詢功能的,那麼就使用一個簡單的public帳號能夠select就可以了。
3、加強資料庫日誌記錄:審核資料庫登錄事件的「失敗和成功」,在實例屬性中選擇「安全性」,將其中的審核級別選定為全部,這樣在資料庫系統和操作系統日誌裡面,就詳細記錄了所有帳號的登錄事件。請定期查看SQL Server日誌檢查是否有可疑的登錄事件發生,或者使用DOS命令。findstr /C:"登錄" d:\Microsoft SQL Server\MSSQL\LOG\*.*
4、管理擴展存儲過程:對存儲過程進行大手術,並且對帳號調用擴展存儲過程的許可權要慎重。其實在多數應用中根本用不到多少系統的存儲過程,而SQL Server的這么多系統存儲過程只是用來適應廣大用戶需求的,所以請刪除不必要的存儲過程,因為有些系統的存儲過程能很容易地被人利用起來提升許可權或進行破壞。如果你不需要擴展存儲過程xp_cmdshell請把它去掉。使用這個SQL語句:use master sp_dropextendedproc xp_cmdshellxp_cmdshell是進入操作系統的最佳捷徑,是資料庫留給操作系統的一個大後門。如果你需要這個存儲過程,請用這個語句也可以恢復過來。sp_addextendedproc xp_cmdshell, xpsql70.dll 如果你不需要請丟棄OLE自動存儲過程(會造成管理器中的某些特徵不能使用),這些過程包括如下:Sp_OACreateSp_OADestroy Sp_OAGetErrorInfo Sp_OAGetProperty Sp_OAMethod Sp_OASetProperty Sp_OAStop 去掉不需要的注冊表訪問的存儲過程,注冊表存儲過程甚至能夠讀出操作系統管理員的密碼來,如下:Xp_regaddmultistring Xp_regdeletekeyXp_regdeletevalue Xp_regenumvaluesXp_regread Xp_regremovemultistring Xp_regwrite 還有一些其他的擴展存儲過程,你也最好檢查檢查。在處理存儲過程的時候,請確認一下,避免造成對資料庫或應用程序的傷害。
5、使用協議加密:SQL Server 2000使用的Tabular Data Stream協議來進行網路數據交換,如果不加密的話,所有的網路傳輸都是明文的,包括密碼、資料庫內容等等,這是一個很大的安全威脅。能被人在網路中截獲到他們需要的東西,包括資料庫帳號和密碼。所以,在條件容許情況下,最好使用SSL來加密協議,當然,你需要一個證書來支持。
6、不要讓人隨便探測到你的TCP/IP埠:默認情況下,SQL Server使用1433埠監聽,很多人都說SQL Server配置的時候要把這個埠改變,這樣別人就不能很容易地知道使用的什麼埠了。可惜,通過微軟未公開的1434埠的UDP探測可以很容易知道SQL Server使用的什麼TCP/IP埠了。不過微軟還是考慮到了這個問題,畢竟公開而且開放的埠會引起不必要的麻煩。在實例屬性中選擇TCP/IP協議的屬性。選擇隱藏 SQL Server 實例。如果隱藏了 SQL Server 實例,則將禁止對試圖枚舉網路上現有的 SQL Server 實例的客戶端所發出的廣播作出響應。這樣,別人就不能用1434來探測你的TCP/IP埠了(除非用Port Scan)。
7、修改TCP/IP使用的埠:請在上一步配置的基礎上,更改原默認的1433埠。在實例屬性中選擇網路配置中的TCP/IP協議的屬性,將TCP/IP使用的默認埠變為其他埠. 9、拒絕來自1434埠的探測由於1434埠探測沒有限制,能夠被別人探測到一些資料庫信息,而且還可能遭到DOS攻擊讓資料庫伺服器的CPU負荷增大,所以對Windows 2000操作系統來說,在IPSec過濾拒絕掉1434埠的UDP通訊,可以盡可能地隱藏你的SQL Server。10、對網路連接進行IP限制SQL Server 2000資料庫系統本身沒有提供網路連接的安全解決辦法,但是Windows 2000提供了這樣的安全機制。使用操作系統自己的IPSec可以實現IP數據包的安全性。請對IP連接進行限制,只保證自己的IP能夠訪問,也拒絕其他IP進行的埠連接,把來自網路上的安全威脅進行有效的控制。關於IPSec的使用請參看:http://www.microsoft.com/china/technet/security/ipsecloc.asp 上面主要介紹的一些SQL Server的安全配置,經過以上的配置,可以讓SQL Server本身具備足夠的安全防範能力。當然,更主要的還是要加強內部的安全控制和管理員的安全培訓,而且安全性問題是一個長期的解決過程,還需要以後進行更多的安全維護一、概述在應用系統中,資料庫往往是最核心的部分,一旦資料庫毀壞或損壞,將會帶來巨大的損失,所以資料庫的管理越來越重要。我們在做資料庫管理與維護工作中,不可避免會出現各種各樣的錯誤,本文針對資料庫的日誌文件丟失時如何利用MDF文件恢復資料庫的方法進行了研究。二、資料庫的恢復當資料庫的主數據MDF文件完好無損時,在丟失了LDF文件的情況下,如何利用MDF文件恢復資料庫?我們把SQL Server的日誌文件分為兩類:一類是無活動事務的日誌,另一類是含活動事務的日誌,根據不同的日誌,採取不同的方法來恢復資料庫。
1. 無活動事務的日誌恢復:無活動事務的日誌丟失時,我們很容易利用MDF文件直接恢復資料庫,具體方法如下:
①.分離被質疑的資料庫,可用企業管理器中的"分離資料庫工具",或者用存儲過程sp_detach_db分離資料庫;②利用MDF文件附加資料庫生成新的日誌文件,可用企業管理器中的"附加資料庫"的工具,或者用存儲過程sp_attach_single_file_db附加資料庫。如果資料庫的日誌文件中含有活動事務,利用此方法就不能恢復資料庫。
2. 含活動事務的日誌恢復:含有活動事務的日誌丟失時,利用上述方法就會出現"資料庫和日誌文件不符合,不能附加資料庫"。對於這種情況下,我們採用如下方法:
①新建同名資料庫AAA,並設它為緊急模式•停止SQL Server伺服器;•把資料庫主數據MDF文件移走;•啟SQL Server伺服器,新建一個同名的資料庫AAA;•停止SQL Server伺服器,把移走的MDF文件再覆蓋回來;•啟動SQL Server伺服器,把AAA設為緊急模式,不過默認情況下,系統表是不能隨便修改的,必須首先設置一下使其能被修改,運行以下語句即可: Use Master Gosp_configure 』allow updates』,1 reconfigure with override Go 接著運行以下語句,把AAA資料庫設為緊急模式,即把Sysdatabases表中AAA資料庫的status屬性設為』37268』,就表示把AAA資料庫處於緊急模式。 updatesysdatabases set status=32768 where hame=』AAA』如果沒有報告什麼錯誤,就可以進行以下操作。
②設置資料庫AAA為單用戶模式,並檢查資料庫•重啟SQL Server伺服器;•把資料庫AAA設為單用戶模式Sp_dboption 』AAA』, 』single user』, 』true』 •運行以下語句,檢查資料庫AAA DBCCCHECKDB(』AAA』) 如果沒有什麼大的問題就可以把資料庫的狀態改回去。
③還原資料庫的狀態運行以下語句,就可以把資料庫的狀態還原: update sysdatabases set status=28 wherename=』AAA』 sp_configure 』allow updates』,0 reconfigure with override Go 如果沒有什麼大的問題,刷新一下資料庫,資料庫AAA又會出現在你面前,但目前恢復工作還沒有做完,此時的資料庫仍不能工作,還要進行下面的處理,才能真正恢復。④利用DTS的導入導出向導,把資料庫AAA導入到一個新建資料庫BBB中•新建一個資料庫BBB; •右擊BBB,選擇IMPORT功能,打開導入向導;•目標源選擇"在SQL Server資料庫之間復制對象和資料庫",這樣可以把表結構,數據

㈤ 如何分離sqlserver資料庫

方法一

1
首先,打開並連接Sqlserver資料庫。
2
然後找到目標資料庫(需要分離的),右鍵→「任務」→「分離」。
3
在彈出的分離資料庫窗口中進行相應設置後,點擊確定即可分離該資料庫。
方法二

1
連接資料庫後,點擊「新建查詢」,如圖,在分析器中輸入「sp_detach_db database」(其中spdetach為關鍵字,database為資料庫名),然後「右鍵」→「執行」。
2
在下方「消息「或「結果」頁面中就可以看到執行結果了。

㈥ sqlserver 事務日誌沒幾天就滿了

1.清空日誌 DUMP TRANSACTION 庫名 WITH NO_LOG
2.截斷事務日誌: BACKUP LOG 庫名 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語句的設置方式:
alter database 庫名 modify file(name=邏輯文件名,maxsize=20)

㈦ SqlServer的數據同步

方法有很多種:
1. bcp.
2. 行集函數(openrowset等)
3. 資料庫高可用性中的replication功能.
4. linked server

㈧ 如何查看sqlserver日誌的方法

定期分析sqlserver日誌是DBA很重要的任務,那如何才能查看sqlserver日誌呢?
在SQL Server 7.0和SQL Server2000中,可以用下面的命令查看:
DBCC log ( {dbid|dbname}, [, type={0|1|2|3|4}] )
參數:
Dbid or dbname - 任一資料庫的ID或名字
type - 輸出結果的類型:
0 - 最少信息(operation, context, transaction id)
1 - 更多信息(plus flags, tags, row length)
2 - 非常詳細的信息(plus object name, index name,page id, slot id)
3 - 每種操作的全部信息
4 - 每種操作的全部信息加上該事務的16進制信息
默認 type = 0
要查看MSATER資料庫的事務日誌可以用以下命令:
DBCC log (master)
釋放日誌空間
1.清空日誌
DUMP TRANSACTION 庫名 WITH NO_LOG
2.截斷事務日誌:
BACKUP LOG 資料庫名 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.分離
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。右建資料庫屬性窗口--故障還原模型--設為大容量日誌記錄

㈨ 如何清除SQLserver 日誌

打開企業管理器,右鍵單擊你要刪除日誌的資料庫->屬性,選擇事務日誌,選擇你要刪除的日誌文件,點刪除。 記得備份

EXEC sp_detach_db @dbname = '資料庫名'
/*
先執行上面語句,再訪問到那個資料庫目錄下刪除日誌文件後,執行下面語句!
*/
EXEC sp_attach_single_file_db @dbname = '資料庫名',
@physname = 'd:\Microsoft SQL Server\MSSQL\Data\資料庫名'_Data.mdf'