SQLServerのDBが削除できない

このQ&Aのポイント
  • SQLServerのDBが削除できない原因として、データベースの最高のtimestampを取得している間に出会ったログの論理ページがログの最後のページではないことが挙げられます。
  • 削除を試みた際にはサーバーの再起動やSQLServerの再起動、別のDATからのリストアなどの対策を行いましたが、以前のシステムの終了が不完全にLOAD DATABASEしたままであることにより、データベースはオープンされず削除できませんでした。
  • 導入したベンダーに相談したところ、会社方針によりサポートを打ち切られており、対応できる要員もいないため、どうにも手詰まりになった状況です。
回答を見る
  • ベストアンサー

SQLServerのDB(テーブル?)が削除出来ない

初めて質問させて頂きます。 現在会社でクライアントサーバシステムを構築しています。ベンダーに委託した為分かる範囲で環境を書いておきます。 OS サーバ:NT3.5、クライアント:WIN95が2台 DBMSサーバ:SQLServer4.21、クライアント:ACCESS2.0 サーバのアタッチテーブルを参照する形でクライアントのACCESSmdbの業務システムが稼動しています。 その環境にて先日リストア作業後に突然SQLServerのDBが下記のメッセージにて参照出来なくなりました。 メッセージ933 レベル22  データベースの最高のtimestampを取得している間に出会ったログの論理ページがログの最後のページではありません。データベースを不正に取得しています。 止むを得ずDBとデバイスを削除しようとしたのですが、 同様のメッセージが出てきて削除できません。 対策として、 (1)サーバーの再起動 (2)SQLServerの再起動 (3)(リストアしたデバイスが不良かと)思い別DATからリストアを行った。 を行ったのですが、今度は メッセージ930 レベル14 以前のシステムの終了が、不完全にLOAD DATABASEしたままのため、データベースはオープンできません。データベースをロードしなおすか、システム管理者に報告して下さい。 更に又メッセージ933 レベル22のメッセージが再び表示され 結局DBが削除出来ませんでした。 (現在のバージョンのSQLServerでは DBはテーブル、デバイスはDBと呼ばれているようです。) 色々調べたのですがどうにも手詰まりになってしまいまして非常に困っております。 このシステムを導入したベンダーに相談したのですが会社方針でこちらからサポートを打ち切ってしまっており要員もおらず対応出来ないとの事でした。 どなたか少しでもヒントになる事でも結構ですから何とぞお教え下さい。 長文で失礼しました。

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

  • ベストアンサー
  • driverII
  • ベストアンサー率27% (248/913)
回答No.1

SQL Server 2000の方は詳しいのですが、4.21はどうか?(^^ SQL Server 2000ではデータベースを削除する際は、そのデータベースが使用されていないのが条件です。 したがってデータベースをオフラインにする等して削除するなどしておりました。(正確な表現ではありませんが) 最悪の場合、SQL Server 4.21をインストールし直して、データベースを再構築してあげれば良い様にも思いますが、いろいろ事情があるのでしょうね。 (現在のSQL ServerでもDBはDB デバイスはデバイスだと思いますが)

yuyaku
質問者

お礼

まだ解決は出来ていませんが 良いヒントになりました。 ありがとうございました。

関連するQ&A

  • 別のSQLServerのバックアップを復元で

    2台のPCでSQL Serverのデータベースを別のコンピュータのSQL Serverで 復元しています。 別のWindows Server上のSQLServer2012から別のWindows Server上の SQLServer2012へバックアップファイル(yyyymmdd.bak)でリストアを しようとしております。 作業内容としては、データベース→DB選択→タスク→復元→データベースとし、 デバイスからバックアップファイルを指定しています。 データベースの復元は問題なく行え、DBへのアクセス、参照なども行えるのですが、 復元時に使用したユーザとは別のユーザのデータベースロールのアクセス権が消え てしまうのです。 SQLServerへの接続はでき、エクスプローラーには、データベースの表示はされる のですが、表示されたDBを選択をするとアクセスエラーとなります。 Windows認証で接続しているユーザです。 ユーザは同じですがドメインが異なる。 何故、消えてしまうのか。 消えないようにするにはどうしたらよいのか。 教えて下さい。 また、このような事象の説明があるサイトなどがありましたら教えて下さい。 つたない文面でわかりづらいとは思いますが、宜しくお願い致します。

  • SQLServer2000でのトランザクションログ削除

    SQLServer2000のEnterpriseManagerにて、 「データベース全体+トランザクションログ」バックアップの設定を行ったのですが、 バックアップ時にトランザクションログが削除されていないようで、 ログファイルがみるみる大きくなってしまいまい、 数日で、HDD容量を使い切ってしまいそうです。 設定されたジョブの内容を確認したところ、 BACKUP LOG [DB名] TO [デバイス名] WITH NOINIT, NOUNLOAD, NAME = N'バックアップ名', NOSKIP, STATS = 10, NOFORMAT, NO_TRUNCATE のようになっていたので、NO_TRUNCATEを外してみましたが、ダメでした。 この『教えて!goo』内でも検索したのですが、 http://oshiete1.goo.ne.jp/kotaeru.php3?q=176852 が同内容の質問だったのですが、こちらはSQLServer7.0で、 この方法は、2000では使用できませんでした。 勉強不足でまことに申し訳ございませんが、 何卒、宜しくお願いいたします。 ≪環境≫ OS: Windows2000Server + ServicePack2 SQL: SQLServer2000 + ServicePack2

  • SQLServer の DB を、VB2005 で作成したアプリから作りたい

    こんにちは。 APサーバにVB2005 DBサーバに SQLServer 2005 という環境で動作する自作アプリケーションがあります。 このアプリを新規の環境にセットアップする際には、 1. DBサーバにSQLServer をインストール 2. SQLServer Management Studio で、データベース作成 3. 同じくテーブル作成。 4. APサーバにアプリケーションをインストール 5. 動作確認 という流れになりますが、セットアップの為に 技術者が必要になってしまいます。 そこでエンドユーザが簡単にセットアップできるように 2.と3. を、セットアップ用プログラムから 自動で走らせたく思っています。 APサーバ上で動くプログラムで、 DBサーバ上のSQLServer内に「hogehoge」というデータベースを 作成するにはどのように記述すれば良いのでしょうか。 宜しくお願い致します。

  • DBサーバを再起動したらSQLServerのサービスは自動で起動?

    DBサーバを再起動したらSQLServerのサービスは自動で起動? どなたか御教授ください。 WindowsServer2003 に SQLServer2008をインストールしています。 サーバを再起動すると、SQLServerに対して何もせずにクライアントからDBへ接続できるのですが、 これが仕様なのでしょうか? サービスなど手動で起動する必要がないのでしょうか?

  • SqlServerのユーザー権限

    ずっとOracleを使用してきたのですが、このたびSqlServerの使用を検討することになりました。 Oracleでは、パスワードを知らなければDBの中身を参照することはできないですが、 SqlServerでは、Windows認証、SqlServer認証ともに、サーバー管理者であれば、 DBの管理ができるように思います。 開発時はいいのですが、リリース後は、サーバー管理者(客先のシステム部など)にも DBのデータは見せたくありません。 担当部署と開発担当者のみ参照できるよう設定したいのですが(パスワードを知る人間を限定する)、 SqlServerではそのような設定は可能なのでしょうか?

  • AccessとSqlServerのテーブルリンク

    Access2007とSqlServer2008を使用しています。 Accessで作成したテーブルを「データベースツール」-「データの移動」でSqlServerに移行してリンクする際、 (1)SqlServerに新規にデータベースを作成すると、リンクテーブルマネージャから見てもリンク先DBが正しく表示されますが、 (2)その後、その既存DBに同じAccess内の別のテーブルを、「データベースツール」-「データの移動」してリンクしたものは、リンクテーブルマネージャから見てもリンク先DBが ()となっており表示されていません。 ツールとしてSqlServer Management Studioを使っていますが、そこからでも(1)のテーブルは表示されていますが、(2)のテーブルは表示されません。 でもリンクはできているようなのです。 また、SqlServer Management Studioを使って、SqlServer内に新規テーブルを作成し、 それをAccessからリンクしようとしても、テーブルリンク一覧内に表示されない状態です。 (「外部データ」-「ODBCデータベース」…)にて SqlServerのファイルデータソースを表示しています) (2)のテーブルはSqlServer Management Studioから見ることができないため、更新・削除もできず困っています。 DB、テーブル、リンク方法等、何か問題があるのでしょうか? よろしくお願いします。

  • SQLServer2008のバックアップできない

    具体的にはSQL Server 2008 Expressのデータベースのバックアップで「パスが見つかりません・・」等のエラーメッセージが出てバックアップができないのです。 というのも、Windows Server 2008が来年1月にマイクロソフトのサポート終了になる事から これまでレンタルサーバーで使っていたWindows Server 2008のVPSからレンタルサーバーのプロバイダーの依頼もあり、Windows Server 2019にWEBコンテンツと共に連動していたSQL Server 2008 Expressのデータベース(SQL Server 2008 Expressのデータベース)もWindows Server 2019(SQL Server 2019 Expressのデータベース)に移行する事になり、Windows Server 2008のSQL Server 2008 Expressのデータベースのバックアップを取ろうとしたのですが「サーバー”*****”のバックアップに失敗しました。(Microsoft.SqlServer.SmoExtend)」というエラーメッセージの他に追加情報として 「System.data.SqlClient.SqlError:バックアップデバ:SQL2008_DB_Backup¥XXX(バックアップファイル名)を開けません。オペレーティングシステムエラー3(指定されたパスが見つかりません)Microsoft.SqlServer.Smo)」 というエラーメッセージが出てしまい、 SQL Server 2008 Expressのデータベースのバックアップが取れません。 どんな対処方法が考えられますでしょうか?

  • ODBCでSQLServerテーブルが参照できない

    自宅のパソコンでSQLServerをインストールし、 それにデータベース・テーブルなどを作成し、VisuualStudioでC#/ASP.NETのアプリを開発しています。 今回、データベースのマスタをメンテナンスするツールをAccessで作成したいので ODBC接続の設定を行い、 Access側からリンクテーブルでSQLServerのテーブルを参照したいのですが SQLServverで作成したテーブルが一覧に一切表示できず、何かシステムテーブルのようなものだけが表示されます。 会社では上記のことが問題なく行えました。 会社で違うのは、SQLServerは別のサーバーマシン内にある点です。 自宅の場合、データベースサーバーも同じパソコンのため上手くいかないのでしょうか。 自宅でも効率よく作業したいので同じように環境構築したいのです。 何か、原因等わかる方がおられましたら ご教授願います。

  • システムを作るにあたり、SQLServerのCALの数え方が良くわから

    システムを作るにあたり、SQLServerのCALの数え方が良くわからず困っています。 想定しているシステムは下記のようなものです。 1.2台のサーバと1台のクライアントPCと100台の計測機器があります。 2.1台のサーバにSQLServerをインストールします。 3.もう1台のサーバには自作サーバプログラムをインストールします。 4.クライアントPCには自作クライアントプログラムをインストールします。 5.2台のサーバと1台のクライアントPCはEthernetで接続されており、   自作サーバプログラムと自作クライアントプログラムのみEthernetを経由し   てSQLServerにアクセスします。 6.自作サーバプログラムは定期的に独自の通信方式で計測機器(100台)に   接続し、計測データを回収します。 7.自作サーバプログラムは計測機器から回収した計測データを数値データに   変換しながらSQLServerに蓄積します。 8.SQLServerに蓄積したデータは、クライアントPCの自作クライアントプログ   ラムから参照します。 9.クライアントPCを使用するオペレータは2名です。   このオペレータ2名が自作クライアントプログラムで帳票を作成し5名の   エンドユーザに配布します。 質問1 ここでデバイスCALの場合、デバイスは  自作サーバプログラムがインストールされているサーバ  自作クライアントプログラムがインストールされているサーバ の2つと考えれば良いでしょうか? または、100台の計測機器もSQLSeverにアクセスするデバイスとして カウントされるのでしょうか? 質問2 ここでユーザCALの場合、ユーザは  自作サーバプログラム  オペレータ2名 と考えれば良いでしょうか? またはエンドユーザ5名もユーザとしてカウントされるのでしょうか? 計測機器がカウントされないならデバイスCALにしたいと思っています。 計測機器は増える可能性がありますがサーバ、クライアントPCはそれ程 増えないと考えているため。 上記の質問1、質問2について回答をお願いいたします。

  • SQLserverやOracleなどの導入費用

     システムやデータベースに詳しくなく、ExcelVBAを多少使えるといった程度のレベルの者です。誤った表現等があるかと思いますが、ご容赦ください。  OracleやSQLserverといったデータベースを導入し、できればExcelVBAとADOにより、レコードの抽出や追加、削除等の処理を行いたいと考えています。  費用的にはどの程度かかるのかを当社に出入りしているシステム会社に聞いたところ(私が聞いた訳ではないのですが)、「1千万円まではいかないと思うけど…」といった返事だったようです。私は以前、“教えてgoo”で、「SQLserverならクライアント5台で15万円くらい」ということを聞いていたので、予想外の金額の大きさに驚いてしまいました。  小さな会社なので、システムやデータベース等に詳しい人がいないため、当社とシステム会社の間で、「データベースを導入してやりたいこと」に対する認識が大きく違っていた可能性もありますが、実際にそんなにお金がかかるものなのでしょうか。  実際にやりたいことは、ExcelVBAとADOにより、社内LAN上にあるデータベースとExcelとの間でレコードの抽出や追加・削除を行うといったレベルなのですが・・・。「それぐらいのことであれば、~円くらいでできるはずだよ」なんてことも分かれば有難いです。  よろしくおねがいします。