ホームページ  >  記事  >  コンピューターのチュートリアル  >  データベースログファイルを圧縮する方法と手順

データベースログファイルを圧縮する方法と手順

WBOY
WBOY転載
2024-01-15 12:51:27990ブラウズ

データベースログファイルを圧縮する方法と手順

データベース ログ ファイルを圧縮する方法

具体的な方法は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 サイトの他の関連記事を参照してください。

声明:
この記事はdocexcel.netで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。