SQLServer7.0上のエラーについて

このQ&Aのポイント
  • SQLServer7.0上で発生したエラーについての質問です。具体的なエラーメッセージとして『メッセージ 9003、レベル 20、状態 4、行 1 データベース 'new_dts0002' のログ スキャンに渡された LSN (1458:16:1) は不正です』というものが表示されています。このエラーメッセージの意味や原因、対策について知識のある方、教えていただきたいです。
  • Windows2000サーバ上で動作しているMSSQL7.0の環境でクエリアナライザを使用して特定のコードを実行した結果、エラーメッセージが表示されました。具体的なエラーメッセージは『メッセージ 9003、レベル 20、状態 4、行 1 データベース 'new_dts0002' のログ スキャンに渡された LSN (1458:16:1) は不正です』です。このエラーメッセージに対する理解と、原因や対策について教えていただきたいです。
  • SQLServer7.0上のエラーに関する質問です。Windows2000サーバ上でMSSQL7.0を使用していて、クエリアナライザを使って特定のコードを実行したところ、『メッセージ 9003、レベル 20、状態 4、行 1 データベース 'new_dts0002' のログ スキャンに渡された LSN (1458:16:1) は不正です』というエラーメッセージが表示されました。このエラーメッセージの意味と、原因や対策について教えていただけると助かります。
回答を見る
  • ベストアンサー

SQLServer7.0上のエラーについて

 急な復旧作業で困っております。ご回答頂ける方 是非ともよろしくお願い致します。  Windows2000サーバ上で動作しているMSSQL7.0の 環境においてクエリアナライザを使用して下記のコードを 実行しました。 ------------------------------------------ exec sp_attach_db 'new_dts0002', 'D:\dts0002.mdf', 'D:\dts0002.ldf' ------------------------------------------  いくつかのファイルは成功したのですが、 一部のファイルで下記のメッセージが出てきます。 ------------------------------------------ サーバー : メッセージ 9003、レベル 20、状態 4、行 1 データベース 'new_dts0002' のログ スキャンに渡された LSN (1458:16:1) は不正です。 接続が解除されました ------------------------------------------  このメッセージの意味等調べてはいるのですが 今ひとつ分からない状況です。原因や対策など ご存知の方、どうかご助力頂きたく存じ上げます。

  • ADB
  • お礼率0% (0/1)

質問者が選んだベストアンサー

  • ベストアンサー
  • O_cyan
  • ベストアンサー率59% (745/1260)
回答No.1

重大度レベル20 new_dts0002から2つのファイルをアタッチするときにログスキャンに渡されたログシーケンス番号(1458:16:1)が不正である。 データベースサーバーからデタッチされたデータベースに対してだけ実行されていないとか。 プライマリファイルにデータベース内のほかのファイルを指すシステムテーブルが格納されているがデータベースがデタッチされた後で移動されたファイルがこの一覧に指定されていないとか。 サーバーにアタッチするときデタッチしたデータベースのレプリケーションが有効になっていてレプリケーションの削除がされていないとか。

関連するQ&A

  • SQLServer2000から7.0への移行

    SQLServer2000で構築したデータベース(mdfファイルとldfファイル)をSQLServer7.0にアタッチ機能(クエリアナライザで「sp_attach_db」を実行して)で移行させようとしましたが、「ldfファイルのヘッダーが有効でありません。PageAuditプロパティが不正です。」とのエラーメッセージが出て、実行できませんででした(ちなみにPageAuditの意味もわかっていません)。 ご質問なのですが、そもそも2000で構築したデータベースは、7.0のアタッチ機能で7.0への移行は無理なのでしょうか。それとも、当たり前かもしれませんが、2000のldfファイルの構造そのものが違い、7.0で認識させるのは、不可能なのでしょうか。 お忙しいところすいませんが、よろしくお願いします。 教えて下さい。

  • パラメーターエラーで復元できません

    SQLSERVER2005でwindows2003serverで運用しています。 マネージメントスタジオの復元機能で行いました。 どこに間違いがあるのでしょうか? RESTORE DATABASE [test] FROM DISK = N'C:\~.bak' WITH FILE = 1, NOUNLOAD, STATS = 10 GO メッセージ 5133、レベル 16、状態 1、行 1 オペレーティング システム エラー 87(パラメータが間違っています。) により、ファイル "E:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\DATA\~.mdf" のディレクトリ参照に失敗しました。 メッセージ 3156、レベル 16、状態 3、行 1 ファイル '~' を 'E:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\DATA\~.mdf' に復元できません。WITH MOVE を使用して、そのファイルにとって有効な場所を特定してください。 メッセージ 5133、レベル 16、状態 1、行 1 オペレーティング システム エラー 87(パラメータが間違っています。) により、ファイル "E:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\DATA\~.ldf" のディレクトリ参照に失敗しました。 メッセージ 3156、レベル 16、状態 3、行 1 ファイル '~_log' を 'E:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\DATA\~_log.ldf' に復元できません。WITH MOVE を使用して、そのファイルにとって有効な場所を特定してください。 メッセージ 3119、レベル 16、状態 1、行 1 RESTORE ステートメントのプランを作成中に問題が検出されました。詳細については、以前のメッセージを参照してください。 メッセージ 3013、レベル 16、状態 1、行 1 RESTORE DATABASE が異常終了しています。

  • sp_attach_db実行のバッチファイル作成

    同じデータベースをコピーするというルーチンワークを処理するために,Query Ananyserで実行するsp_attach_dbをバッチファイルで処理したいと考えています。 copyコマンドでマスターとなる物理データベースをコピーした後に,osqlコマンドを使用して出来るかと考えたのですが,osql -E を実行するところで止まってしまいます。 現在作成しているバッチファイルには下記のように書いています。 copy D:\Test_xx.mdf D:\Test_00.mdf copy D:\Test_xx.ldf D:\Test_00.ldf osql -E sp_attach_db 'Test_00', 'D:\Test_00.mdf', 'D:\Test_00.ldf' go 何とか自動でデータベースがattachされるようにしたいのですが,どなたか御指南下さい。何卒宜しくお願い申し上げます。

  • 2つのMDFファイルをattachさせたい。

    別々のテーブルが入った二つのMDFファイル(A.mdf,B.mdf)があります。 いまsp_attach_dbを使ってサーバーにアタッチしたいのですが「ファイルを別のデータベースに関連付けることはできません。」と出来ませんでした。 sp_attach_dbのヘルプには「ファイル名は最大 16 個まで指定できます。」と書いてあるので出来ると思ったのですが・・・。初心者なのでもともとの考え方がずれているのでしょうか・・・。 SQLは以下の通りです。 --------------------------------- sp_attach_db @dbname = 'Test', @filename1 = 'C:\aaa\Data\A.mdf', @filename2 = 'C:\aaa\Data\A.ldf', @filename3 = 'C:\aaa\Data\B.mdf', @filename4 = 'C:\aaa\Data\B.ldf' --------------------------------- もし、これが出来ない時はBファイルのテーブルを Aファイルに移動したいのですがどのようにすれば できますでしょうか。 まったく初心者で途方にくれています。ご教授よろしくお願いします。

  • SQLServer7.0のLDF圧縮

    お世話になってます。 あるサーバー(サーバーA)上のSQLServer7.0で作成したバックアップファイルを 復元先のサーバー(サーバーB)に復元したところ、MDFファイルが3GBに対し、 LDFファイルが100GBありました。 LDFファイルのサイズを圧縮しようと、SQLServer7.0のメニューで、    1. フルバックアップ  2. トランザクションログの切り捨て  3. 圧縮  ※以下「1.」、「2.」、「3.」を何度か繰り返し。 を行ってみましたが、300MB程度減っただけで、それ以上は小さくなりませんでした。  SHRINKDATABASE  や  TRUNCATE も試してみましたが、サイズ、変わりませんでした。 他に試すことはありますでしょうか?

  • SQL Server 2000の物理ファイルデータ破損からの復旧について

    こんにちは。アべです。 SQL Server 2000の物理ファイルデータ破損からの復旧について アドバイスを頂きたいと思い、登校させて頂きました。 経緯 データベースサーバがOS毎、緊急停止し、故障しました。 DBサーバのファイルを他のサーバに接続して復旧をかけると 下記のようなエラーになり困っております。 現在は、バックアップもない状態であり、どうしても mdfファイルとldfファイルから復旧をかけたいと考えております。 何か他にやったほうがいい復旧手順や オプションはルのでしょうか? 何かアドバスがあればご教授をお願い致します。 壊れたところ以外のデータでも復旧できると助かります。 存在するファイルは、mdfファイルとldfファイルのみで、 バックアップありません。 すみませんが、宜しくお願い致します。 ↓やって見たこと アタッチを2000、2005(SP3)、2008(SP1)で実施してみましたが、失敗しました。 EXEC sp_attach_db @dbname = N'HOGE', @filename1 = N'F:\SQLData\HOGE\HOGEBACKData.mdf', @filename2 = N'F:\SQLData\HOGE\HOGEBACK_log.LDF' メッセージ 824、レベル 24、状態 6、行 1 SQL Server で、一貫性に基づいた論理 I/O エラーが検出されました: 正しくないページ (必要な署名: 0xaaaaaaaa、実際の署名: 0x3ee6da2a)。このエラーは、ファイル 'F:\SQLData\HOGE\HOGEBACK_log.LDF' のオフセット 0000000000000000 にあるデータベース ID が 0 のページ (0:0) の 読み取り 中に発生しました。SQL Server エラー ログまたはシステム イベント ログ内の別のメッセージで詳細情報が報告されることもあります。このエラー状態は深刻で、データベースの整合性を損なう可能性があるので、すぐに解決する必要があります。完全なデータベース一貫性確認 (DBCC CHECKDB) を実行してください。このエラーには多くの要因があります。詳細については、SQL Server Books Online を参照してください。 ↓ログをリビルドで復旧もやってみましたが、これも駄目でした。 CREATE DATABASE HOGE ON PRIMARY (FILENAME = 'F:\SQLData\HOGE\HOGEBACKData.mdf') FOR ATTACH_REBUILD_LOG ファイル アクティブ化エラー。物理ファイル名 "D:\DATA\SQLDATA\HOGEBACK_log.LDF" が正しくない可能性があります。 データベースが明確にシャットダウンされなかったので、ログを再構築できません。 メッセージ 1813、レベル 16、状態 2、行 1 新しいデータベース 'HOGE' を開けませんでした。CREATE DATABASE は中止されます。 以上

  • SQLServerバックアップ戻せない

    SQL Server2012 Expressで作成したデータベースをUSBメモリにバックアップしました。 最近、マシントラブルでドライブが死んだので、SQL Serverも入れ直し、データベースをリストアしようとしましたが、うまくできません。 具体的には、データベースを右クリックして「タスク」→「復元」→「データベース」として、デバイスを選ぼうとすると、バックアップファイルの拡張子がbakとtrnとなっており、USBメモリに記録されているmdfとldfではありません。 すべてのファイルを表示させ、それらを選択しても、データベースの復元ダイアログのOKボタンがグレーアウトのままです。 「タスク」→「復元」→「ファイルおよびファイルグループ」なのかな?と思って、やってみてもやはり、拡張子が違います。 同じようにmdfとldfを選択してみると、 「デバイス'データベース名.mdf'のメディアファミリが正しい形式ではありません」 「RESTORE HEADERONLYが異常終了しています。(エラー:3241)」 とのダイアログが出て復元できません。 私はバックアップを失敗したのでしょうか? 何とか、一部のデータでも復元できないでしょうか? よろしくお願いいたします。

  • SQLServer2012の復元ができない

    いつも楽しく勉強させていただいております。 環境はSQLServer2012のExpressでOSはWindowsServer2008です。 Test1というデータベースのバックアップを取ってTest2という名前で復元しようとしましたが、なぜか失敗してしまいます。 どなたか原因を教えていただけませんか。 次の手順でバックアップを取り、復元をしています。 ○バックアップのフェーズ 1.データベースのバックアップのダイアログボックスを開く。 2.ソースにTest1、バックアップの種類に完全を指定する。 3.バックアップ先は以下のファイルに  C:\Program Files\Microsoft SQL Server\MSSQL11.SQLEXPRESS\MSSQL\Backup\Test1.bak 4.OKをクリックし、「データベース'Test1'のバックアップが正常に完了しました」を確認。 ○復元のフェーズ 5.データベースの復元のダイアログボックスを開く。 6.ソースはデバイスにする。 7.ファイル名に上記3.のファイル名を指定 8.転送先データベースはTest2とする。 9.OKをクリック(ここでエラーとなる)。 エラーメッセージは以下の通りです。 ------------------------------------------ データベース'Test2'の復元に失敗しました。(Microsoft.SqlServer.Mangement.RelationalEngineTasks) 追加情報: System.Data.SqlClient.SQLError:ファイル'C:\Program Files\Microsoft SQL Server\MSSQL11.SQLEXPRESS\MSSQL\DATA\Test1.mdf'に上書きできません。 データベースTest1が使用中です。(Microsoft.SqlServer.SmoExtended) ------------------------------------------ メッセージの内容で引っかかるのはTest1.mdfに上書きできませんというところです。 上書きでなくTest2という新規データベースに書き込みたいのですが。 ためしにTest2というデータベースを作成しておいて「既存のデータベースに上書きする」をチェックしてやってみましたが、やはり失敗。 メッセージは上と同じです。 SQLServerを再起動して試してもやはり結果は同じです。 何が悪いのでしょう。

  • SQLSrever 2008 R2のエラー

    PC環境が以下ように複数あります A) Win7 32bit 英語版 B) Win7 32bit 英語版 C) Win7 32bit 日本語版 D) Win7 64bit 日本語版 各言語用のインストーラでSQLインストール済み 英語・日本語ではそれぞれ同じインストールファイル使ってセットアップ アカウント名・パスワードは多少異なりますが管理者権限ユーザで作業 Aで作成したデータベースデータをそのまま他の環境(PC)に作成するために 必要な mdf と ldfファイルをコピーして SQL Server Management Studioでアタッチしようとしたところ Dの環境下での作業時だけエラーが出てしまいました 検索したところ状況は以下と同じなんですが対処法として書かれている 管理者で実行してもエラーが改善されません http://hotate1973.seesaa.net/article/295051201.html なおかつ不思議なことに mdf と ldfファイルを C:\Program Files (x86)\Microsoft SQL Server\MSSQL10_50.SQLEXPRESS\MSSQL\DATA にコピーしてアタッチすると正常に処理できています (要は任意のフォルダにおいてアタッチできない) 任意のフォルダへのアクセスは普通にできています    どちらかと言えば    C:\Program Files (x86)\Microsoft SQL Server\MSSQL10_50.SQLEXPRESS\MSSQL\DATA    へのエクスプローラでのアクセスでアクセス権を求められたので許可しました    (これは他のPCでもすべて同じ) Dに限って何か特殊なことを行ったとか言ったことはないはずなのですが (違うところとすればビット数だけだと思うのですが) 何故こういった現象になるのかわからない状態です 特定の所でもアタッチできるならそこ使えばいいという話はあるのですが データの更新などの都合もあり同名データベースを別フォルダにおいて デタッチ・アタッチで切り替えたいのです(B/Cでは特に問題なくできている) 原因・対処方法など思い当たる方いるでしょうか?

  • SQLServerトランザクションログエラー

    SQLServer2008のトランザクションログ書き込みエラーについて 以下のエラーログが出力された後、自動フェールオーバーが発生しました。 ↓ 11/08/2010 13:49:17,spid4s,不明,SQL Server has encountered 1 occurrence(s) of I/O requests taking longer than 15 seconds to complete on file [C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA\MSDBLog.ldf] in database [msdb] (4). The OS file handle is 0x00000608. The offset of the latest long I/O is: 0x00000000703000 ↑ このエラーログを調べていくと、ハードの問題である可能性がある事がわかり、ハードの診断チェック を行ったのですが、特にエラーは無く、何が原因で発生したのか分からず、どんずまり状態です。。。 原因を追及するにあたって、何か手立てはありますでしょうか?