53

削除トランザクションを見つけてロールバックするには、 SQLServer2008上のデータベースのトランザクションログを表示する必要があります。

残念ながら、どこから始めればよいのかわからず、Googleでどれが良い記事かを判断するのが難しいと感じています。

私は何をすべきか?

4

3 に答える 3

52

文書化されていないものを使用できます

DBCC LOG(databasename, typeofoutput)

ここでtypeofoutput:

0: Return only the minimum of information for each operation -- the operation, its context and the transaction ID. (Default)
1: As 0, but also retrieve any flags and the log record length.
2: As 1, but also retrieve the object name, index name, page ID and slot ID.
3: Full informational dump of each operation.
4: As 3 but includes a hex dump of the current transaction log row.

たとえば、DBCC LOG(データベース、1)

fn_dblogを試すこともできます。

トランザクションログを使用してトランザクションをロールバックするには、トランザクションログを使用したロールバック後のスタックオーバーフロートランザクションを確認します。

于 2010-12-22T08:51:16.557 に答える
20

トランザクションログファイルは適切に文書化されていないため、簡単に読み取ることはできません。これを行うには、基本的に2つの方法があります。文書化されていないまたは半文書化されたデータベース機能を使用するか、サードパーティのツールを使用します。

注:これは、データベースが完全復旧モードの場合にのみ意味があります。

SQL関数:

DBCCLOGおよびfn_dblog-詳細はこちらこちら

サードパーティツール:

SQLServerおよびApexSQLログのToad

これが議論された他のいくつかのトピックをチェックすることもできます:

于 2013-02-18T23:14:51.323 に答える
5

間違った環境で誤って大量のデータを削除してしまいました。この投稿は、私が最初に見つけた投稿の1つでした。

私はパニックに陥り、解決策を探していたので、最初に目にしたのはApexSQL Logsで、これは許容できるコストである2000ドルでした。

ただし、Toad for Sql Serverはトランザクションログから元に戻るスクリプトを生成でき、たったの655ドルであることがわかりました。

最後に、さらに安価なオプションSysToolsGroup Log Analyzerを見つけました。これは、たったの300ドルです。

于 2015-10-23T14:06:53.147 に答える