FAQ-ウィキ

答え:

データを保存するには、Recovery Toolbox for SQL Server でサポートされている 2 つの方法があります:

  1. SQL スクリプトをハード ドライブに保存できます。SQL スクリプトは、たとえばデータベース オブジェクトやテーブルを作成し、これらのテーブルにデータを挿入します。
  2. ユーザーが定義したデータベースでスクリプトを起動することもできます。これらのスクリプトは SQL 言語で記述されています。

データベースの同じファイルに基づいているという事実にもかかわらず、SQL スクリプトは異なる可能性があることに注意してください。 これは、ADO を使用してサーバーに直接接続するために実行されるクエリと、MS SQL Server に付属のクエリ アナライザー環境で実行される SQL クエリ (":"、Go コマンドの使用 の両方で、構文の特殊性が原因で発生します, など )。 最初の方法はより信頼性が高く、2 番目の方法はより便利です。

データをスクリプトに変換してディスクに保存する

1. 保存データのマッピング

データをディスクに保存することを選択した場合、Recovery Toolbox for SQL Server はソース MDF ファイルの名前を含むサブディレクトリを作成します。このサブディレクトリはユーザー定義のディレクトリに作成され、すべてのスクリプトがそこに配置されます。 すべてのスクリプトは規則に従って名前が付けられ、名前は単語と数字で構成されます。 単語 はスクリプトの役割を示し、数字はその番号を示します。 多くのスクリプト タイプがあります。たとえば、次のとおりです。

  • Types*.sql - スクリプトは、ユーザーによって定義されたデータ型を作成します。
  • Tables*.sql - スクリプトはテーブルを作成します。
  • Indexes*.sql - スクリプトは主キーとインデックスを作成します。
  • ForeignKeys*.sql - スクリプトは外部キーを作成します。
  • Procedure*.sql - スクリプトはストアド プロシージャを作成します。
  • Function*.sql - スクリプトは、ユーザーによって定義された関数を作成します。
  • View*.sql - スクリプトはビューを作成します。
  • Triggers*.sql - スクリプトはトリガーを作成します。
  • Data*.sql - スクリプトはデータをテーブルに挿入します。

スクリプトのシーケンス番号には有用なデータは含まれていません。スクリプトの実行シーケンスやその他の情報を指すものではありません。 これらの番号は、データを分割し、1 つの大きなファイルではなく、さまざまな小さなドキュメントに保存するためにのみ使用されます。 ユーザーは、SQL スクリプトを使用してファイルの最大サイズを定義できます。 さらに、ユーザーはデータ ファイルの番号付けに注意する必要があります。 データ型の各ファイルには、1 つのテーブルのデータのみを含めることができることに注意してください。 シーケンス番号を持つファイルには、各テーブルのすべてのデータが含まれています。

ノート: 一部のファイルで番号が欠落している場合は、一部のテーブルにデータが含まれていないことを意味します。

2. スクリプト実行シーケンス

この図では、推奨されるスクリプト実行順序を確認できます:

スクリプトの実行順序は、既存のデータおよびテーブルの構造に対する既存の制限に依存します。 以下の要因に特に注意してください:

  1. セカンダリ キーを作成する場合は、対応するプライマリ キーを指定してください。 このため、これらの操作は別のファイルに保存され、この順序で起動する必要があります。
  2. インデックスとセカンダリ キーを作成する前に、プログラムはテーブルを埋めます。 2 次キーが定義されたテーブルが入力されるときに参照整合性チェックが実行されるため、これは必須です。 対応する主キーを持つテーブルの前に、二次キーを持つテーブルがいっぱいになると、エラーが発生します。 さらに、この方法にはもうひとつの特徴があります。 復元されたデータが主キー、一意のインデックスなどと競合する場合、この場合、テーブルにはデータが入力されますが、制限は作成されません (インデックス、主キーなど)。 ユーザーが別の動作を必要とする場合は、スクリプトの実行シーケンスを自分で選択できます。
  3. Procedures, Functions, Views、および Triggers オブジェクトのデータベースでの作成には、いくつかの問題があります。 洗練されたトリッキーな依存関係がある場合があります。 プロシージャは他のプロシージャを参照でき、ビューは関数を参照でき、トリガはすべてのオブジェクトを参照できます。 そのため、プログラムはもつれを解決するのに役立ちません。 ユーザーはすべての依存関係を手動で見つけ、必要な順序で SQL スクリプトを起動する必要があります。 すべてのエラー メッセージが消えるまで、このグループのすべてのスクリプトを数回実行することもできます。

3. Install.batファイル

Install.bat ファイルが作成され、すべてのスクリプトの自動実行が保証されます。 このファイルは、ツールによって以前に保存されたすべてのスクリプトを実行します。 スクリプトの実行順序は、データベースへの適用時と同じです。 このバッチ ファイルには、MS SQL Server クライアント部分の一部である isqlw ユーティリティをインストールする必要があります。 ファイル install.batServer nameDatabase nameUsername、および Password パラメータを指定してください コマンドラインで。 例: install.bat SQLServer SQLDatabase SQLUser SQLUserPassword

注意:
  1. パラメータはスペースで区切る必要があります。 パラメータにスペース自体が含まれる場合は、二重引用符で囲む必要があります。
  2. パラメータ シーケンスは変更できません。
  3. NEW EMPTY データベースにデータをインポートしてください。 データをインポートする前に、データベースにテーブル、インデックス、ストアド プロシージャなどを含めないでください。
  4. install.bat ファイルがパラメータなしで実行される場合、このファイルを起動する方法についての簡単なガイドが表示されます。

4. InstallTrusted.bat

Windows アカウントを使用して Microsoft SQL Server にログインする場合は、InstallTrusted.bat ファイルを使用します。 InstallTrusted.bat ファイルには、サーバー名、データベース名の 2 つのパラメーターがあります。

使用例: installtrusted.bat SQLServer SQLDatabase Windows アカウントによるログインの詳細については、次を参照してください: https://learn.microsoft.com/ja-jp/sql/relational-databases/security/authentication-access/principals-database-engine?view=sql-server-2017

答え:

複数のソース ファイルから MS SQL Server 形式のデータベースを修復する

MS SQL Server 形式のデータベースには、1 つまたは複数のファイルが含まれています。 ファイルにはいくつかの種類があります: メイン データ ファイル (*.mdf デフォルト拡張子)、セカンダリ データ ファイル (*.ndf デフォルト拡張子)、およびトランザクション ログ ファイル (*.ldf デフォルト拡張子)。 Recovery Toolbox for SQL Server を使用してデータを修復する場合は、すべてのセカンダリ データ ファイルとメイン データ ファイルへのパスを指定する必要があります。 ファイルを開くダイアログボックスで作成できます。

画像.1

破損したデータベースにメイン データ ファイル、セカンダリ データ ファイル、およびトランザクション ログ ファイルが含まれている場合は、*.mdf 形式のメイン データ ファイルと *.ndf 形式のすべてのセカンダリ データ ファイルを選択する必要があります (画像を参照.2)。

画像.2

答え:

Recovery Toolbox for SQL Server は、ランサムウェア ウイルスによって暗号化された Microsoft SQL Server データベース ファイルの .MDF/.NDF ファイルから情報を部分的または完全に復元できます。

Recovery Toolbox for SQL Server はデータを復号化しません。

一般に、データ復号化はこれらのケースには適用されません。

ただし、Recovery Toolbox for SQL Server は、MDF ファイルが部分的に暗号化されている場合に役立ちます。 通常、ウイルスはサイズが大きいため、ファイルのヘッダーや先頭のみを暗号化します。 このような場合、MDF ファイルのヘッダーまたは一部のみが暗号化されていれば、Recovery Toolbox for SQL Server が役立ちます。 プログラムは、ファイル内のすべてのデータ ブロックと収集されたデータ構造を分析します。 次に、可能であれば、元のデータ構造とデータ自体を再作成します。

Microsoft SQL Server MDF ファイル構造

ランサムウェア ウイルスによる攻撃の後、MDF ファイルからデータを回復することは可能ですか?

プログラムを使用して、データの 100% または一部を回復できるという保証はありません。 この質問に対する明確な答えを得るには、Recovery Toolbox for SQL Server のデモ バージョンをダウンロードし、暗号化された MDF ファイルを指定して、ファイルの分析が完了するまで待つ必要があります。

プログラムの DEMO バージョンで .mdf ファイルの分析が完了すると、ファイルから抽出できるデータの完全なプレビューが利用可能になります。

ノート:

Recovery Toolbox のカスタマー サポート部門によると、通常、ランサムウェア プログラムはデータベース ファイルのサイズが大きいため、ヘッダーのみを暗号化します。 その結果、多くの場合、データ構造のほぼ全体と、ソース ファイルからのほぼすべての情報を復元できます。

スクリプトの実行後に次のエラーが表示される場合:

Server: Msg 242, Level 16, State 3, Line 1

[Microsoft][ODBC SQL Server Driver][SQL Server] char データ型を datetime データ型に変換すると、datetime 値が範囲外になりました。

ステートメントは終了されました。

答え:

これは、次のようにしてサーバーの言語設定を変更する必要があることを意味します:

  1. Enterprise Manager を起動します。
  2. 必要なサーバーを選択して接続します。
  3. マウスの右ボタンをクリックして Properties を選択し、プロパティ ウィンドウを開きます。
  4. Server Settings タブを開きます。
  5. Default Language for user ドロップダウン リストで English を選択し、OK を押します。
  6. SQL サーバーを停止します。 これを行うには、コンテキスト メニューで Stop を選択し、確認ウィンドウで Are you sure you wish to stop SQL Server service? という質問に Yes と答えます。
  7. SQL サーバーを起動します。 これを行うには、コンテキスト メニューで Start を選択します。
  8. Recovery Toolbox for SQL Server によってハード ドライブに保存されたスクリプトを実行できるようになりました。 データベース スクリプト実行モードでプログラムを実行することもできます。
  9. ここで、設定を復元する必要があります。 これを行うには、Enterprise Manager で必要なサーバーのプロパティ ウィンドウを開きます。
  10. Default Language for user リストで既定の言語を選択し、OK を押します。
  11. SQL サーバーを停止します。 これを行うには、コンテキスト メニューで Stop を選択し、Are you sure you wish to stop SQL Server service? という質問に Yes と答えてください。 確認ウィンドウ。
  12. SQL サーバーを起動します。 これを行うには、コンテキスト メニューで Start を選択します。

スクリプトの実行後に次のエラーが表示される場合:

サーバー: メッセージ 242、レベル 16、状態 3、行 1

[Microsoft][ODBC SQL Server Driver][SQL Server] char データ型から datetime データ型への変換により、範囲外の datetime 値が発生しました。

ステートメントは終了されました。

答え:

これは、次のようにしてサーバーの言語設定を変更する必要があることを意味します:

  1. Management Studio を開始します。
  2. 必要なサーバーを選択します。
  3. Security\Logins に移動します。
  4. データベースを使用するユーザーを選択し、ユーザーのプロパティ ウィンドウを開きます。
  5. Default Language for user ドロップダウン リストで English を選択し、OK を押します。
  6. これで、Recovery Toolbox for SQL Server によってハード ドライブに保存されたスクリプトを実行できます。 または、データベース スクリプト実行モードでプログラムを起動することもできます。
  7. 次に、設定を復元する必要があります。 これを行うには、必要なユーザー Management Studio のプロパティ ウィンドウを開きます。
  8. Default Language for user リストで既定の言語を選択し、OK を押します。

答え:

  1. SQL Server Management Studio を起動します
  2. Object Explorer で、Databases を右クリックします
  3. Attach をクリックします
  4. Add ボタンをクリックします
  5. mdf ファイルを選択し、OK ボタンをクリックします
  6. OK ボタンをクリックします
  7. 操作が完了するまで待ちます。

答え:

この問題を解決するには、次のことを行う必要があります。:

  1. データをスクリプトとして保存する
  2. コマンドラインから必要なパラメータをすべて指定してファイルinstall.batを実行します。
  3. どのスクリプトが正常に実行されなかったのかを確認するには、応答ファイル (*????.sql.txt) を参照してください。
  4. エラーが発生して実行されたスクリプトをMicrosoft SQL Server からQuery analyzerに読み込み、そこで実行を試みます。 エラー メッセージが表示されたら、どのコマンドがエラーの原因となっているかを検出する必要があります。 このコマンドで価値のないデータが書き込まれた場合は、そのデータをファイルから削除するだけで済みます。 それ以外の場合は、エラーが発生して実行されたスクリプトとQuery analyzerからのスクリーンショットを開発者に送信する必要があります。 さらに、問題を調査するために、後でソース *.mdf ファイルを開発者に送信することが必要になる場合があります。

新しいサーバー上のMSDB データベースからデータ テーブルをコピーまたは復元するだけでは、 DTS パッケージ を復元することはできません。パッケージには、パッケージが配置されているサーバーの実行コンテキストへの内部接続があるためです。 移行前に作成され、使用されていました。 サーバー間で DTS パッケージをコピーするには、VB スクリプトを使用する必要があります。 したがって、Recovery Toolbox for SQL Server プログラムは DTS パッケージの復元には適していません。

ツール isqlw.exe は MS SQL Server パッケージのコンポーネントです。 Microsoft サイトからいつでも MS SQL Server の最新バージョンをダウンロードし、必要なコンポーネントをコンピュータにインストールできます。 Microsoft サイトからダウンロードした MS SQL Server のデモ版では、EULA で指定された期間内でコンポーネントを使用できます。

Microsoft.com で適切なツールが見つかった場合は、Query Analyzer をダウンロードしてインストールできます。 当社のウェブサイトから。 ダウンロード用のリンクは次のとおりです: https://recoverytoolbox.com/download/isqlwInstall.exe

答え:

大規模な MS SQL Server データベースを回復するには、大量の RAM が必要です。 プログラムの開発者は、十分な物理メモリの空きがあるコンピュータで大規模なデータベースを回復することを推奨しています。 プログラムが使用する物理メモリは、回復するファイルのサイズを 500 で割った値に、プログラムを実行するための 20 ~ 100 MB を加えたもの以上でなければなりません。 つまり、100 GB のサイズの .mdf ファイルを回復しようとする場合、コンピュータには少なくとも (100 GB / 500) + 120 MB = 320 MB の空き容量が必要です 空き物理メモリ。

  • 主キー フィールドの値が間違っている場合 (たとえば、負の値であるか、他のすべての値よりも数十倍大きい場合)、ソース データが深刻な損傷を受けており、回復することが不可能であることを意味します。 それは完全に。
  • 重複した値が主キーフィールドに表示される場合は、データベース内で削除対象としてマークされているはずのデータを含むシート (mdf、ndf ファイル) がプログラムによって復元されたことを意味します。 しかし実際には、データが含まれているシートを削除する必要があるというマークはありません。 したがって、プログラムはすべてのシートからデータを回復します。 その結果、過剰なデータが復元され、Recovery Toolbox for SQL Server の開発者は過剰なエントリをフィルタリングして除外する基準を見つけることができませんでした。 この場合、データベース管理者やソフトウェア開発者は、回復されたデータベース内の削除する必要がある過剰なエントリについて最終決定を行います。

答え:

試用から登録までの間に MDF でさらに何かが発生する可能性があります (他のソフトウェアまたは他のものによって回復されます)。 別のコンピュータ上でこのファイルに対してデモ バージョンを実行することで確認できます。

Recovery Toolbox for SQL Server は、データベースが使用されていたサーバーのバージョンを自動的に検出します。 したがって、データベースが MS SQL Server 2000 で使用されていた場合、プログラムは新しいデータベースにインポートするために保存されたスクリプトに isqlw ツールを書き込みます。 データベースが MS SQL Server 2005 以降で使用されている場合は、スクリプトで sqlcmd ツールが使用されます。 元のバージョンとは異なるバージョンのサーバー上のデータベースにデータをインポートする場合は、対応するサーバー用のツールを使用する必要があります:

  • Isqlw - MS SQL Server 2000用
  • Sqlcmd - MS SQL Server 2005以降の場合