sql >> データベース >  >> RDS >> Sqlserver

バックアップなしでSQLServer2012で削除されたテーブルを回復する方法を知っている

    概要:バックアップなしでSQLServer2012で削除されたテーブルを回復する方法を知りたいですか。この記事を読んで、効率的で迅速なソリューションを使用して、削除されたデータベースオブジェクトを復元します。

    場合によっては、クライアントが UPDATEを実行することがあります 操作または削除 WHEREを適用せずにSQLServerデータベースで操作する 調子。これは、SQLServerテーブルからのデータの損失の背後にある典型的な説明です。 SQL Serverデータベースは、企業の部門や組織の間で非常に主流のリレーショナルDBMSであるため、データ損失の問題はさらに増幅します。したがって、クライアントは、災害が発生した場合にSQLServerテーブルから削除されたデータを回復するための戦略について知っておく必要があります。

    削除時刻がわかっている場合は、LSNを使用して削除された行を復元できます。これは、ログシーケンス番号(LSN)を使用して可能にする必要があります。 LSNは、SQLServerトランザクションログに存在する各レコードに与えられる特別な識別子です。トランザクションログとLSNを使用して、削除されたSQLServerデータとテーブルを回復する手順について説明します。

    推奨: SQLデータベース回復ツールなどの推進されたサードパーティツールを使用して、SQLテーブルから削除されたレコードを回復するための長くて正しくない手動LSN方法を回避するため 。

    バックアップなしでSQLServer2012で削除されたテーブルを回復する方法を知る手順

    SQLテーブルから削除されたデータを回復する手順を開始する前に、満たす必要のある要件がいくつかあります。 SQL Serverデータベースのテーブルから削除された行を効果的に回復するには、削除が最初に行われたときにBULK-LOGGEDまたはFULL回復モデルが必要です。データの回復を実行するためにログにまだアクセスできるように、いくつかの活発な活動が必要です。

    トランザクションログを使用してSQLServer2005、2008、2012、2014、および2016から削除されたデータを回復するには、以下の手順に従ってください。

    ステップ1

    下の参照された質問を使用して、データが誤って削除されたテーブルに存在する行数を確認してください:

    SELECT * FROM Table_name

    ステップ2

    以下に示すクエリを使用して、データベースのトランザクションログバックアップを作成します。

    データベース名を使用

    GO

    バックアップログ[データベース名]

    TO DISK =N’D:\ Databasename \ RDDTrLog.trn’

    NOFORMAT、NOINIT、

    NAME =N’Databasename-Transaction Log Backup’、

    SKIP、NOREWIND、NOUNLOAD、STATS =10

    GO

    ステップ3

    SQL Serverテーブルから削除されたデータを回復するには、削除された行に関するデータを収集する必要があります。この理由を達成するために、下に提供されているクエリを実行してください

    データベース名を使用

    GO

    [現在のLSN]、[トランザクションID]、操作、コンテキスト、AllocUnitNameを選択します

    FROM

    fn_dblog(NULL、NULL)

    WHERE Operation =‘LOP_DELETE_ROWS’

    上記のクエリから、削除された行のトランザクションID(たとえば000:000001f3)を取得します。現在、これらの行が削除された場合、このIDを使用するように解決されます。

    ステップ4

    この進行では、トランザクションID 0000:00001f3を使用して、行が削除された特定の時刻を特定します。これは、次のように与えられた照会を実行することによって終了します:

    データベース名を使用

    GO

    SELECT

    [現在のLSN]、操作、[トランザクションID]、[開始時刻]、[トランザクション名]、[トランザクションSID]

    FROM

    fn_dblog(NULL、NULL)

    どこで

    [トランザクションID]=‘0000:000001f3’

    および

    [操作]=‘LOP_BEGIN_XACT’

    この照会を実行すると、現在のログシーケンス番号(LSN)の推定値が取得されます(00000020:000001d0:0001と仮定します)。

    ステップ5

    現在、失われたSQLServerテーブルの行から削除されたデータを回復するための復元手順を開始します。これは、下のクエリを使用して終了します:

    データベース名を使用

    GO

    DATABASEDatabasename_COPYFROMを復元します

    Plate =‘D:\ Databasename \ RDDFull.bak’

    WITH

    「Databasename」を「D:\ RecoveryDB \ Databasename.mdf」に移動、

    「Databasename_log」を「D:\ RecoveryDB \ Databasename_log.ldf」に移動します、

    REPLACE、NORECOVERY;

    GO

    ステップ6

    現在、トランザクションログを適用して、LSN 00000020:000001d0:0001を利用して削除された行を復元します:

    データベース名を使用

    GO

    LOG Databasename_COPY FROM DISK =N'D:\ Databasename \ RDOTrLog.trn' WITH STOPBEFOREMARK ='lsn:0x00000020:000001d0:0001'を復元します注:LSN値は16進構造であり、これを利用してテーブルを復元するためLSN、10進構造に変更する必要があります。このため、以前に表示されたLSNの少し前に0xを含めます。

    ステップ7

    SQLテーブルから削除されたレコードを回復する手順は効果的に終了します。現在、削除されたレコードがDatabasename_Copyという名前のデータベースに戻っているかどうかを確認してください。

    USE Databasename_Copy GO Select * from Table_name

    トランザクションログアプローチの制限

    • 実行する広範なクエリがいくつか含まれているため、SQLServerテーブルから削除されたデータを回復するための非常に面倒な戦略。
    • 十分な専門データを持っていないクライアントのために実現するのは驚くほど気が遠くなるようなことです。
    • クエリの適用および実行中のミスが原因でデータが失われる可能性がより高くなります。

    知っておくべき選択的な解決策 バックアップなしでSQLServer2012で削除されたテーブルを回復する方法

    最良の選択的ソリューションは、SQLServer2019/2017/2016/2014/2012/2008/2005から行を回復するためにアクセスできます。ここで説明する選択的なソリューションは、SQLServerで発生するあらゆる種類の問題を解決できます。 SQLエラーを修正し、SQLMDFおよびNDFファイルを修正できます。 FreeViewerSQLリカバリツール は、トリガー、ルール、関数、テーブルの回復を可能にするビジネスツールです。さらに、データを失うことなく、SQLServerのストアドプロシージャを効果的に復元します。重要な部分は、破損したSQL Serverデータベースファイルを修正しながら、アプリケーションが多くの推進オプションを提供することです。さらに、このアプリケーションは、削除されたSQLテーブルレコードを赤色で表示します。この製品は、MicrosoftOutlook2019およびその下のすべてのバージョンに適しています。

    無料のデモリリースをダウンロードして、アプリケーションの可能な限り最高の容量を理解してください。

    削除されたデータベースオブジェクトを簡単に復元する手順

    1. SQL Recoveryをダウンロードしてディスパッチします ツールをクリックして、MDFファイルを開きます。
    2. アドバンススキャンの代替を選択し、検出 SQLServerのバージョン SQLServerで削除されたレコードを回復します。
    3. ツールはスキャンを開始します プライマリデータベースファイル(MDF)の手順
    4. SQLデータベースコンポーネントを参照してください。ツールは、削除されたSQLテーブルレコードを赤色で表示します。その後、エクスポートをクリックします
    5. 次のセグメントでデータベース認証の詳細を提供する必要があります。
    6. 新しいデータベースの作成」を確認してください オプションを選択し、データベース名を指定します。
    7. データベースの運賃「スキーマとデータを使用」 SQLServerで削除された行のデータを回復するため。 ([削除されたレコードをエクスポートする]チェックボックスもオンにします)
    8. 現在レポートを保存し、リカバリされたレコードを含む最近作成されたデータベースを開きます。

    結論

    また読む:ユーザーは、MicrosoftSQLServerのディザスタリカバリのベストプラクティスを知るために別の同様の投稿を読むこともできます。

    LSN戦略は、SQLテーブルから削除されたレコードを復元できますが、その多面的な性質と反復性のために、クライアントにとって規定された選択ではありません。むしろ、自動化されたソリューションを使用して、バックアップなしでSQLServer2012で削除されたテーブルを回復する方法を知ることをお勧めします。


    1. Windows732ビットへのOracle11gRelease 2EnterpriseEditionのインストール

    2. PG列をNULLABLETRUEに変更するにはどうすればよいですか?

    3. INNER JOIN、LEFT JOIN、RIGHT JOIN、FULL JOINの違いは何ですか?

    4. MariaDBの監査ログを使用するためのヒントとコツ