SQL SERVER 2008のデータベースログファイルの縮小方法
最近、業務量の増加に伴い、会社のデータベースが巨大化(300G以上)し、ディスク容量が不足し、その結果、データベースのリクエストにアクセスできなくなることがあります。
Web上には似たような方法がたくさんあるが、うまくいかない。ここでは、ログファイルを任意の指定サイズに縮小する方法を紹介します。
ステップ1. SQL SERVER Management Studioでデータベースを右クリックし、[プロパティ] --- [オプション]を選択し、リカバリモードをデフォルトの[フル]から[シンプル]に変更します。
ステップ2. データベースを再度右クリックし、[タスク]-[縮小]-[ファイル]メニューを選択して、縮小ファイルのページに入り、ファイルの種類(縮小されるもの)を"として選択し、ページの下の"縮小操作"のラジオボックスを選択して、[未使用領域を解放する前にページを再構成してファイルを縮小する:"を選んで、適切な縮小ログファイルのサイズを記入します。
最後に、このページの下にある「OK」ボタンをクリックすると、シュリンクファイル(ログ)操作が実行されます。
そうすると、ログファイルが指定したサイズに縮小されたことが確認できます。
ファイルを0に縮小して終了です。即座にOK、コマンドを使うよりずっと早いし、36gのログならこれも早い。
ステップ3 ステップ3: SQL SERVER Management Studioでデータベースを右クリックし、[プロパティ] --- [オプション]を選択し、リカバリモードをデフォルトの[シンプル]から[フル]に変更します。
ここでは、最もよく使われる方法の1つを紹介します。
USE [master]
GO
ALTER DATABASE library name SET RECOVERY SIMPLE WITH NO_WAIT
GO
ALTER DATABASE library name SET RECOVERY SIMPLE --simple mode
GO
USE library name
GO
DBCC SHRINKFILE (N'library_log' , 11, TRUNCATEONLY)
GO
--> here DNName_Log If you don't know the name in sys.database_files, you can use the following commented statement to query it
--USE library name
--GO
--SELECT file_id,name FROM sys.database_files;
--GO
USE [master]
GO
ALTER DATABASE SCDMS SET RECOVERY FULL WITH NO_WAIT
GO
ALTER DATABASE SCDMS SET RECOVERY FULL --restore to full mode
GO
一般的に言って、上記のSQLは、2Gの速度でログを記録するために大丈夫ですが、そうでない場合は、次の手順を参照してください。
1: 次に、ウェブでコマンドを調べ、リリース状況であるログファイルのタイプREPLICATIONを見つけます。
2: そして、executeコマンドを見つける , ステータス2、つまりコミットされていないログがたくさん表示されます。
DBCC LOGINFO('データベース名')
3: 先ほど作成したリリースを直接選択すると、以下のエラーが表示されます。
sqlserver は、ボディ "dbo" が存在しないため、データベース本体として実行できません...。
次のコマンドを検索して、ユーザーのデータベースロールを追加するときに、このアカウントはすでに存在していることを求めるプロンプトが表示されます。
USE ライブラリ名
EXEC sp_changedbowner 'sa'
4: その後、パブリッシュを削除し、成功したものを再度サブスクライブします。最後に、最初のステップのSQLコマンドを再度実行すると、ログファイルが正常に削減されます。
方法2:まずリカバリーモードを"シンプルリカバリー"に設定し、シュリンクします。
USE BigData ;
GO
ALTER DATABASE BigData
SET RECOVERY SIMPLE;--set simple recovery mode
GO
DBCC SHRINKFILE (BigData_Log, 1);
GO
ALTER DATABASE BigData
SET RECOVERY FULL;--Restore to original mode
GO
方法3
USE BigData;
GO
BACKUP LOG DATABASENAME TO DISK='d:\test.bak'
-- Shrink the truncated log file to 1 MB.
DBCC SHRINKFILE (Bigdata_Log, 1);
GO
以上、本記事の全内容をご紹介しましたが、皆様の学習のお役に立てれば幸いです。また、Script Houseをより一層応援していただければ幸いです。
関連
-
SQL Server 2008 データベース分散クエリの知識
-
SQLServer 2008 データ挿入・更新用ストアドプロシージャ
-
SQL Server 2008のデータベースを復元する方法
-
SQL Server 2008 R2のCPUとメモリ使用量の増加に対する2つの解決策
-
SQL server 2008で変更を保存できない場合の完璧な解決策(図解入り)
-
SQL Server 2008r2 データベースサービスにおける各種起動不能の解決方法 (詳細)
-
vueベースの兄弟コンポーネント間のイベントトリガー(詳細)
-
SQL Server 2012 クラスタのインストール方法
-
Sql Server 2008データベースで新しい割り当てユーザーを作成する詳細な手順
-
Javaファイルの操作のオブジェクトは、いくつかのメソッドが一般的に使用される(推奨)ファイル
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
SQLServer 2008は、評価期間が終了したソリューションであることを確認しました。
-
sql server 2008のレジストリ書き込み失敗、vs2013のコア機能のインストール失敗を解決する。
-
SQL Server 2008でSQLクエリ文のフィールド値の大文字と小文字が区別されない問題の解決
-
空白の値を他の値に置き換えるSQL
-
解決 SQL Server 2008は、". "ローカルローカル接続データベースを使用することはできません問題
-
sql server 2008データベース移行の2つの方法
-
SQLServer2008 新規インスタンスのリモートデータベース連携問題(sp_addlinkedserver)
-
SQL2008 復元 SQL2005 バックアップファイル 不成功の解決法
-
sql server 2008のインストールに失敗したときの解決策 旧バージョンを完全にアンインストールしてください。
-
SQL Server 2008データベースの定期的な自動バックアップを設定する方法