ホームページ > 記事 > コンピューターのチュートリアル > データベースログファイルを圧縮する方法と手順
具体的な方法は3つあります。
方法 1:
###最初の一歩:###no_log を使用してログのデータベース名をバックアップします
または、truncate_only を使用してログのデータベース名をバックアップします
-- no_log と truncate_only はここでは同義であり、任意の文を実行できます。
###ステップ2:###1. 特定のデータベースのすべてのデータとログ ファイルを圧縮し、次を実行します:
dbcc 縮小データベース (データベース名,[,ターゲットパーセント])
--database_name は、圧縮するデータベースの名前です。target_percent は、データベースの圧縮後にデータベース ファイルに必要な残りの空き領域の割合です。
2. 特定のデータベース内のデータまたはログ ファイルを一度に圧縮するには、
を実行します。dbcc 縮小ファイル(file_id,[,target_size])
-- file_id は、圧縮するファイルの識別 (ID) 番号です。ファイル ID を取得するには、FILE_ID 関数を使用するか、現在のデータベースで sysfile を検索します。target_size は、希望するファイル サイズ (MB 単位で表します) です。整数)。指定しない場合、dbcc shrinkfile はファイル サイズをデフォルトのファイル サイズに縮小します。どちらの dbcc にもパラメータ notruncate または truncateonly を指定できます。詳細については、オンライン ヘルプを参照してください。
方法 2:
###最初の一歩:###緊急事態に備えて、まずデータベース全体をバックアップします。
###ステップ2:###バックアップが完了したら、クエリ アナライザーで次のステートメントを実行します。
exec sp_detach_db yourDBName,true--MSSQL でこの DB の登録情報をアンインストールします
3番目のステップ:
物理ログ ファイルが存在するディレクトリに移動して、ログ ファイルを削除するか、ディレクトリの外にログ ファイルを移動します。
4番目のステップ:
クエリ アナライザーで次のステートメントを実行します:
exec sp_attach_single_file_db yourDBName,'
d:\mssql\data\yourDBName_data.mdf '
--DB を単一のファイルとして登録します。成功すると、MSSQL はこの DB に対して 500K のログ ファイルを自動的に生成します。
方法 3:
1. Enterprise Manager に入り、demo
などのデータベースを選択します。2. すべてのタスク -> 個別のデータベース
3. データベース ファイルが保存されているディレクトリに移動し、MuOnline_log.LDF ファイルを削除します。念のためコピーしておいてください
4. Enterprise Manager -> データベースを接続し、muonline を選択します。この時点で、ログ ファイルの項目が×になっていることがわかります。問題なく、続行します。この時点で、データベースを作成するかどうかを確認するメッセージが表示されます。データベースにログがない場合は、新しいログを作成します。
5. データベースを再接続した後、ユーザーはデータベースをリセットする必要があることに注意してください。
将来的にサイズが大きくなるのを望まない場合:
SQL2000 で使用:
データベースを右クリックし、[プロパティ] -> [オプション] -> [障害回復モデル] - [単純なモデル] を選択します。
または SQL ステートメントを使用します:
データベースのデータベース名セットの変更を簡単にリカバリする
SQL データベースが大きすぎる場合の対処方法
--1. 毎日のデータベース圧縮
--ログとデータベースのファイル サイズを圧縮します
###/* - 注意してください###手順に従ってください。前の手順が完了していない場合は、次の手順を実行しないでください。
そうしないと、データベースが損傷する可能性があります。
1. ログをクリアします
DUMP TRANSACTION ライブラリ名 WITH NO_LOG
2. トランザクション ログを切り詰めます:
BACKUP LOG データベース名 WITH NO_LOG
3. データベース ファイルを圧縮します (圧縮しない場合、データベース ファイルは縮小されません)
Enterprise Manager -- 圧縮するデータベースを右クリック -- すべてのタスク -- データベースの圧縮 -- ファイルの圧縮
--ログ ファイルを選択します--縮小モードで、XXM に縮小を選択します。縮小できる最小数 M がここに表示されます。この数値を直接入力して確認します。
--データ ファイルを選択します--縮小モードで、XXM に縮小を選択します。縮小できる最小数は M です。この数値を直接入力して確認します。
SQL ステートメントを使用して完了することもできます
--データベースの縮小
DBCC SHRINKDATABASE(顧客データ)
--指定されたデータ ファイルを圧縮します。1 はファイル番号で、このステートメントでクエリできます: select * from sysfiles
DBCC シュリンクファイル(1)
4. ログ ファイルのサイズを最小限に抑えるには (SQL 7.0 の場合、この手順はクエリ アナライザーでのみ実行できます)
a. 別のデータベース:
Enterprise Manager--サーバー--データベース--右クリック--データベースの切り離し
b. コンピューター上のログ ファイルを削除します
c. 追加のデータベース:
Enterprise Manager--サーバー--データベース--右クリック--データベースの接続
このメソッドは新しいログを生成しますが、サイズは 500K を超えるだけです
またはコードを使用します:
次の例では、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\pubs.mdf'
5. 将来的に自動的に縮小するには、次の設定を行います。
Enterprise Manager -- サーバー -- データベースを右クリック -- プロパティ -- オプション -- [自動圧縮] を選択します。--SQL文の設定方法:
EXEC sp_dboption 'データベース名', '自動圧縮', 'TRUE'
6. 将来的にログが大きくなりすぎないようにしたい場合
Enterprise Manager -- サーバー -- データベースを右クリック -- プロパティ -- トランザクション ログ
--ファイルの増加を xM に制限します (x は、許可する最大データ ファイル サイズです)
--SQL文の設定方法:
データベースデータベース名変更ファイル(name=論理ファイル名、最大サイズ=20)
以上がデータベースログファイルを圧縮する方法と手順の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。