Windows system >> Windowsの知識 >  >> コンピュータソフトウェアのチュートリアル >> サーバー技術 >> サーバーについて >> SQL Serverのログファイルが消失した回復方法

SQL Serverのログファイルが消失した回復方法

  

以下の記事では、主にSQL Serverのログファイルの消失に対する正しい回復方法を紹介します。実際の運用では、SQL Serverのログファイルが失われることは非常に難しいことですが、主にこの質問の回答を参考にしてください。

I.概要

アプリケーションシステムでは、データベースが中核部分となることが多く、データベースが破壊されたり損傷を受けたりすると、多大な損失が発生するため、データベースの管理はますます重要になります。 。本稿では、データベースのSQL Serverログファイルが失われた場合にMDFファイルを使用してデータベースを回復する方法について説明します。

第二に、データベースの回復

データベースのメインデータのMDFファイルがそのままの状態で、LDFファイルが見つからない場合にMDFファイルを使用してデータベースを回復する方法。 SQL Serverのログファイルは、アクティブなトランザクションがないログとアクティブなトランザクションがあるログの2つのカテゴリに分類されます。

1.アクティブなトランザクションがないログの回復

アクティブなトランザクションがないログが失われた場合、次のようにMDFファイルを使用してデータベースを直接簡単に回復できます。疑わしいデータベースを分離するか、エンタープライズマネージャで「データベースの分離ツール」を使用するか、ストアドプロシージャsp_detach_dbを使用してデータベースを分離します。

2 MDFファイルを使用してデータベースを接続し、新しいログファイルを生成します。 「データベース接続」ツール、またはストアドプロシージャsp_attach_single_file_dbを使用してデータベースを接続します。

データベースログファイルにアクティブなトランザクションが含まれている場合、この方法ではSQL Serverログファイルの損失からデータベースを回復できません。

2.アクティブなトランザクションを含むログの回復

アクティブなトランザクションを含むログが失われると、「データベースとログファイルが一致しません。データベースをアタッチできません」というメッセージが表示されます。この場合は、次の方法を使用します。

1同名AAAのデータベースを作成し、緊急モードに設定します。

SQL Serverサーバーを停止します。

データベースマスタデータのMDFファイルを移動します。

SQL Serverサーバーを起動し、同じ名前のAAAで新しいデータベースを作成します。

SQL Serverサーバーを停止し、削除したMDFファイルを上書きします。

SQL Serverを起動します。サーバーでAAAを緊急モードに設定していますが、デフォルトでシステムテーブルを変更することはできません。最初に変更するように設定する必要があります。次のステートメントを実行します。

次はコードスニペットです。 Br>

マスターを使う

Go

sp_configure 'allow updates'、1

上書きして再設定

Go

次の文を実行してAAAデータベースを設定します。緊急モードは、つまり、ステータス属性のsysdatabases AAAデータベーステーブルが「37268」に設定され、それがAAAデータベースが緊急モードであると言います。

update sysdatabases set status = 32768ここで、hame = 'AAA'

エラーが報告されない場合は、次の手順を実行します。

2データベースAAAをシングルユーザーモードに設定し、データベースを確認します。

SQL Serverサーバーを再起動します。

データベースAAAをシングルユーザーモードに設定します。

Sp_dboption 'AAA'、 'シングルユーザー'、 'true'

データベースAAAをチェックするには、次の命令を実行します。

DBCC CHECKDB( 'AAA')

大きな問題がない場合データベースの状態を元に戻すことができます。

3データベースの状態を復元する

データベースの状態を復元するには、次の文を実行します。

次はコードスニペットです。

update sysdatabases set status = 28 where name = 'AAA'

sp_configure '更新を許可'、0

上書きして再設定

移動

大きな問題がなければ、データベースを更新すると、データベースAAAがあなたの目の前に表示されますが、復旧作業はまだ完了していない、データベースはまだ作業することはできませんが、また次の処理は、本当に復旧するために。

4 DTSインポート/エクスポートウィザードを使用して、データベースAAAを新しいデータベースBBBにインポートします。

新しいデータベースBBBを作成します。

[BBB]を右クリックし、[インポート]機能を選択して開きます。インポートウィザード、

ターゲットソーステーブル構造、データビュー、およびストアドプロシージャをBBBにインポートできるように、[SQL Serverデータベース間でオブジェクトとデータベースをコピー]を選択します。

BBBライブラリを元のAAAライブラリに置き換えます。

これまでのところ、データベースAAAは完全に復元されています。

SQL Serverのログファイルの損失は非常に危険なことです。データベースが完全に破壊されている可能性が非常に高いです。 SQL Serverデータベースの回復はログファイルによって行われるため、とにかくログファイルの存在を確認することが重要です。私たちのデータベースを確実にするためには、さまざまなバックアップ方法を使用するのが最善ですので、データベースの管理と保守に注意を払う必要があります。

Copyright © Windowsの知識 All Rights Reserved