Sqlserver 2005のログファイルが大きすぎる削減する方法
Sqlserver 2005のログファイルが大きすぎるため、減らす方法は以下の通りです。
dbNameをデータベース名として、以下の3行を実行します。
バックアップログ dbName with NO_LOG
バックアップログ dbName with TRUNCATE_ONLY
DBCC SHRINKDATABASE(dbName)
ログファイルを1MBに削減
sql server emptying log files 2011-04-06 23:05
1:LOGを削除する
1: データベースの取り外し Enterprise Manager -> Server -> Database -> 右クリック -> Detach Database
2: LOGファイルを削除する
3: データベースの添付 Enterprise Manager->サーバー->データベース->右クリック->データベースの添付
このメソッドは新しいLOGを生成し、そのサイズは520K強である
次に、このデータベースを自動縮小に設定します。
またはコードを使用してください。
次の例では、77169databaseをデタッチし、77169databaseから現在のサーバーにファイルをアタッチします。
EXEC sp_detach_db @dbname = "77169database"
EXEC sp_attach_single_file_db @dbname = "77169database",
Physname = "c:Program FilesMicrosoft SQL ServerMSSQLData77169database.mdf"。
2:ログを空にする
DUMP TRANSACTION ライブラリ名 WITH NO_LOG
RE.
Enterprise Manager - 圧縮したいデータベースを右クリック - All Tasks - Shrink Database - Shrink File - Select Log File - shrink method で shrink to XXM を選択、ここで縮小できる最小M数が表示されますので、この数字を直接入力してOKです。
3:後で伸びないようにしたい場合
Enterprise Manager->サーバー->データベース->プロパティ->トランザクションログ->ファイルのサイズを2Mに制限する。
ログを自動的に縮小するには、次のような記述も可能です。
ALTER DATABASE データベース名
auto_shrinkをオンに設定します。
フェイルオーバーモデルはシンプルに、ステートメントで
USE MASTER
GO
ALTER DATABASE データベース名 SET RECOVERY SIMPLE
GO
---------------------------------------------------------------------------------
トランザクションログの切り捨て。
BACKUP LOG { database_name | @database_name_var }.
{
[ WITH
{ no_log | truncate_only }] です。
}
-- Hoはhovertree.comを尋ねました。
--ログとデータベースのファイルサイズを圧縮
/* --- 特記事項
前のステップを行わずに次のステップを行わないでください。
そうでない場合は、データベースが破損する可能性があります。
--*/
1. ログを空にする
DUMP TRANSACTION ライブラリ名 WITH NO_LOG
2. トランザクションログを切り捨てる。
BACKUP LOG データベース名 WITH NO_LOG
3. データベースファイルを縮小する (データベースファイルは圧縮されていない場合、縮小されません
Enterprise Manager - 圧縮するデータベースを右クリック - すべてのタスク - データベースの縮小 - ファイルの縮小
--ログファイルを選択--縮小方法で「XXMに縮小」を選択すると、縮小できる最小のM数が表示されるので、この数字を入力してOK。
--縮小モードでshrink to XXMを選択すると、縮小できる最小のM数が表示されますので、この数字を入力してOKです。
これは、SQLステートメントでも可能です
-- データベースを縮小する
DBCC SHRINKDATABASE (顧客プロファイル)
--指定されたデータファイルを縮小します。1 はファイル番号で、次のステートメントで照会できます: select * from sysfiles
dbcc shrinkfile(1)
4. ログファイルのサイズを最大化する(sql 7.0の場合、このステップはクエリ・パーサーのみで行うことができます)。
a. データベースを切り離す。
Enterprise Manager - サーバ - データベース - 右クリック - データベースの切り離し
b.マイコンピュータ内のLOGファイルを削除する
c.データベースをアタッチする。
Enterprise Manager - Server - Database - 右クリック - Append Database
このメソッドは、500K強のサイズの新しいLOGを生成します。
またはコードで。
次の例では、77169databaseをデタッチし、77169databaseから現在のサーバーにファイルをアタッチします。
a.デタッチング
EXEC sp_detach_db @dbname = "77169database"。
b.ログファイルを削除する
c.再適用
EXEC sp_attach_single_file_db @dbname = "77169database"。
Physname = "c:Program FilesMicrosoft SQL ServerMSSQLData77169database.mdf"。
5. 後で自動的に縮小するには、次のようにします。
Enterprise Manager - Server - Databaseを右クリック - Properties - Options - "Auto Shrink"を選択します。
--SQL文の設定方法。
EXEC sp_dboption "データベース名", "autoshrink", "TRUE"。
6. 後でログが大きくなり過ぎないようにしたい場合
Enterprise Manager - Server - データベースを右クリック - Properties - Transaction logs
-- ファイルサイズを xM に制限する(x は許可された最大データファイルサイズ)。
-- SQL文の設定方法です。
alter データベース データベース名 modify file(name=logical file name,maxsize=20)
-------------------------------------------------------------------------------------------
/* - 圧縮データベースの共通ストアドプロシージャ
ログとデータベースのファイルサイズを圧縮
データベースを分離したため
そのため、圧縮されたデータベースではストアドプロシージャを作成することができない
/* - Example call
exec p_compdb "test"
--*/
use master --Note, this procedure should be built in the master database
go
if exists (select * from dbo.sysobjects where id = object_id(N"[dbo]. [p_compdb]") and OBJECTPROPERTY(id, N"IsProcedure") = 1)
drop procedure [dbo]. [p_compdb].
GO
create proc p_compdb
@dbname sysname, - the name of the database to be compressed
@bkdatabase bit=1, -- you can choose whether to automate the database because it may be corrupted during the log separation step
@bkfname nvarchar(260)="" --file name of the backup, if not specified, it will be automatically backed up to the default backup directory, the backup file name is: database name + date and time
as
-1. Clear the log
exec("DUMP TRANSACTION ["+@dbname+"] WITH NO_LOG")
-2. Truncate the transaction log.
exec("BACKUP LOG ["+@dbname+"] WITH NO_LOG")
--Shrink the database file (if not compressed, the database file will not be reduced)
exec("DBCC SHRINKDATABASE(["+@dbname+"])")
--4. Set auto-shrink
exec("EXEC sp_dboption """+@dbname+""","""autoshrink"",""TRUE"& quot;"")
-- The latter steps are somewhat dangerous, you can choose whether you should these steps
--5. Separate the database
if @bkdatabase=1
begin
if isnull(@bkfname,"")=""
set @bkfname=@dbname+"_"+convert(varchar,getdate(),112)
+replace(convert(varchar,getdate(),108),"":","")
select prompt="Backup database to SQL default backup directory,backup file name:"+@bkfname
exec("backup database ["+@dbname+"] to disk=""""+@bkfname+"""")
end
-- for separation processing
create table #t(fname nvarchar(260),type int)
exec("insert into #t select filename,type=status&0x40 from ["+@dbname+"]. .sysfiles")
exec("sp_detach_db """+@dbname+""""")
--delete log file
declare @fname nvarchar(260),@s varchar(8000)
declare tb cursor local for select fname from #t where type=64
open tb
fetch next from tb into @fname
while @@fetch_status=0
begin
set @s="del ""+rtrim(@fname)+"""
exec master..xp_cmdshell @s,no_output
fetch next from tb into @fname
end
close tb
deallocate tb
--append database
set @s=""
declare tb cursor local for select fname from #t where type=0
open tb
fetch next from tb into @fname
while @@fetch_status=0
begin
set @s=@s+","""+rtrim(@fname)+"""""
fetch next from tb into @fname
end
close tb
deallocate tb
exec("sp_attach_single_file_db """"+@dbname+"""""+@s)
go
関連
-
SQL Server 2005のすべてのテーブルで、特定のカラムを検索する方法
-
複数注文の場合の償却額の計算方法について
-
SQL server 2005で自動番号フィールドを設定する方法
-
SQLServer 2005でサーバー名がない場合の2つの解決策
-
SQL server 2005 をインストールすると、32 ビット ASP.NET は既に登録されているので、64 ビットのソリューションを登録する必要があるとの警告が表示される。
-
SQL Server 2005 ミラー構築マニュアル(sql2005 データベース同期ミラーリングソリューション)
-
Sqlサーバーのバックアップとリストア後の制限されたユーザーの問題
-
JDBCからSql Server 2005の概要
-
SQL2005のプロバイダです。名前付きパイププロバイダエラー。40 SQL Server への接続を開くことができません
-
[オリジナル】SQL2005再ビルドインデックスストアドプロシージャ sp_rebuild_index
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
SQL Serverは、SET FMTONLY ONでテーブルのメタデータを取得する
-
Sql server 2005 インストール時に Net バージョン登録要求の警告が表示される。
-
SQL Server 2005 Compact Editionのデータベースを削除する詳細情報
-
SQL Server のテーブルに CSV ファイルをインポートする方法
-
SQL Server 2005 で Try Catch を使って例外を処理する
-
SQL Server 2005のデータベースでtempdbの場所を変更する方法
-
PowerDesignerでSQL Serverデータベースをインポートする方法
-
SQL Server 2005 の SQL 文の時限実行方法について
-
SQL Server モバイルシステムデータベース
-
SQL Server 2005のインストールと設定方法のグラフィックチュートリアルは、Win7のすべてのバージョンと完全に互換性があります。