データベース サーバのトラブルシューティング
データベース サーバまたはデータベース サーバ上のジオデータベースの操作中に発生する問題を解決するためのヒントを、以下に紹介します。
エラー:Cannot connect to this Data Server...SQL Server does not exist or access denied.(このデータ サーバに接続できません。SQL Server が存在しないか、アクセスできない状態です。)
エラー メッセージが表示される原因:
- SQL Server Express Edition インスタンスが起動していなければ、リモート クライアントからそれを特定することはできません。
- ユーザ アカウントがデータベース サーバに設定されていない、またはユーザ アカウントがデータベース サーバから削除されている場合、データベースに接続したりデータベースを検索したりすることはできません。
- リモート クライアントには、SQL Server Express Edition インスタンスと通信するための手段が必要です。ネットワーク プロトコルが設定されていない場合、その通信の手段が設定されていないので、ネットワーク経由でインスタンスに接続することはできません。
- SQL Server Browser サービスは、SQL Server クライアントからリクエストを受信したときに、コンピュータ上にインストールされている SQL Server インスタンスに関する情報を提供します。SQL Server Browser サービスが無効である場合、インストールされている SQL Server インスタンスの名前とポート番号がクライアントに提供されないため、クライアントはインスタンスを見つけることができません。
解決策:
まず、接続先のデータベース サーバが起動していることを確認します。データベース サーバが起動している場合は、そのデータベース サーバにリモートからアクセスする権限があることを確認します。データベース サーバが起動していて、接続と検索のための権限がある場合は、データベース サーバでネットワーク プロトコルが有効になっていない可能性があります。ネットワーク プロトコルを有効にするには、次の手順を実行します。
- Microsoft SQL Server Configuration Manager を起動します。起動するには、[スタート] → [すべてのプログラム] → [Microsoft SQL Server] → [Configuration Tools(構成ツール)] → [SQL Server Configuration Manager] の順にクリックします。
- ツリーで [SQL Server Network Configuration(SQL Server ネットワークの構成)] を展開し、[protocols for <SQL Server インスタンス>(<SQL Server インスタンス> のプロトコル)] をクリックします。
- [TCP/IP] を右クリックし、[Enable(有効化)] をクリックします。
次の警告メッセージが表示されます。
Any changes made will be saved; however, they will not take effect until the service is stopped and restarted.
サービスを停止して再開します。ネットワーク プロトコルを有効にしたにもかかわらず、依然としてリモート クライアントからデータベース サーバに接続できない場合は、SQL Server Browser サービスが停止している可能性があります。SQL Server Browser サービスを開始するには、次の手順に従います。
- Microsoft SQL Server Configuration Manager を起動します。
- [SQL Server] アイコンをクリックして、SQL Server Browser サービスを確認します。
- [SQL Server Browser] の状態が [Paused(一時停止)] である場合は、[SQL Server Browser] を右クリックして [Resume(再開)] をクリックします。[SQL Server Browser] の状態が [Stopped(停止)] である場合は、[SQL Server Browser] を右クリックして [Start(開始)] をクリックします。
[SQL Server Browser] を右クリックしたときに表示されるショートカット メニューのオプションが、[プロパティ] と [Help(ヘルプ)] を除いて無効になっている場合は、SQL Server Browser サービスの [開始モード] が [無効] に設定されています。これを変更するには、次の手順を実行します。
- [SQL Server Browser] を右クリックし、[プロパティ] をクリックします。
- [Service(サービス)] タブをクリックします。
- [Start Mode(開始モード)] をクリックします。
- プルダウン メニューから [Automatic(自動)] または [Manual(手動)] を選択します。[Start Mode(開始モード)] を [Automatic(自動)] に設定すると、コンピュータの再起動時に自動的に SQL Server Browser サービスが開始されるようになります。
- [OK] をクリックします。
これで、[SQL Server Browser] を右クリックすると、[Start(開始)] オプションが有効になります。
エラー:Cannot Generate SSPI Context(SSPI コンテキストを生成できません)
エラー メッセージが表示される原因:
このエラーは、ラップトップを使用していて、ドメインのアカウントでログインしているが、実際にはドメインに接続していない、という場合に最もよく発生します。原因としては、(自社のネットワークではなく)客先のサイトに接続している、または現場で作業しているなど、ネットワークに接続していないラップトップを使用していることが考えられます。この問題は TCP/IP ネットワーク プロトコルと Windows 認証に関連しています。Microsoft の Web サイトに掲載されている「"SSPI コンテキストを生成できません" エラー メッセージのトラブルシューティング方法」のサポート技術情報の記事」もご参照ください。
解決策/対処法:
ローカル コンピュータからデータベース サーバへの接続([データベース サーバを追加])に、ドメイン名ではなく TCP/IP ループバック 127.0.0.1(例: 127.0.0.1\sqlexpress)を使用していることを確認してください。
これがうまくいくのは、データベース サーバ(SQL Server Express Edition インスタンス)がローカル コンピュータにインストールされている場合です。
エラー:Failed to connect to database(データベースへの接続に失敗しました)Login failed for user '<username>'. The user is not associated with a trusted SQL Server connection.(ユーザ '<ユーザ名>' のログインに失敗しました。ユーザは信頼された SQL Server 接続に関連付けられていません。)
エラー メッセージが表示される原因:
SDEUSER または SDEPASSWORD 環境変数がシステム環境変数で設定されている場合、これらはジオデータベースへの接続時に Windows ログインよりも優先されます。データベース サーバ上のジオデータベースに接続する、またはエンタープライズ ジオデータベースへの接続にオペレーティング システム認証を使用するコンピュータでは、これらの環境変数を設定しないでください。
解決策:
接続元のクライアント コンピュータで SDEUSER または SDEPASSWORD 環境変数が設定されていないことを確認します。
エラー:Failed to add feature class.(フィーチャクラスの追加に失敗しました。)<feature class name> is in load-only mode and cannot be added as a layer in this state.(<フィーチャクラス名>は load-only モードであり、この状態でレイヤとして追加することはできません。)
エラー メッセージが表示される原因:
データセットの空間グリッド サイズを 0 に設定して、ジオデータベースにデータをインポートしようとすると、インポートに失敗し、データセットが load-only 入出力(I/O)モードに切り替わる場合があります。空間インデックスを再計算するか空間インデックスを削除して再作成すると、フィーチャクラスが通常の入出力(I/O)モードに戻り、操作できる状態になります。
解決策/対処法:
フィーチャクラスの空間インデックスを再計算するか再作成します。
- カタログ ツリーで、load-only モードのフィーチャクラスを右クリックし、[プロパティ] を選択します。[フィーチャクラス プロパティ] ダイアログ ボックスで、[インデックス] タブをクリックします。
- フィーチャクラスがジオメトリ格納に SQL Server の Geometryタイプ を使用している場合、インデックスを再計算できます。[空間インデックス] セクションで、[再計算] をクリックします。フィーチャクラスがジオメトリ格納にバイナリ データ タイプまたは SQL Server の Geography データ タイプを使用している場合、空間インデックスを再作成します。[空間インデックス] セクションで [削除] をクリックしてから [作成] をクリックして、空間インデックスを再作成します。
- [OK] をクリックして [フィーチャクラス プロパティ] ダイアログ ボックスを閉じます。
問題: 接続中のユーザをサーバ マシン上の Windows 管理者グループに追加しても、データベース サーバ管理タスク([新規ジオデータベース]、[復元]、[権限])にアクセスできない
Windows 管理者がサーバ管理者タスクを実行できない原因:
Windows Vista、Windows 7、および Windows 2008 Server コンピュータでは、デフォルトで UAC が有効になります。UAC により、厳重なセキュリティ モデルが適用されるので、Windows 管理者は自動的には SQL Server データベース内の sysadmin になれません。Windows XP/Windows 2003 Server マシン上のデータベース サーバや SQL Server のインスタンスへのアクセスを使用してきたユーザは、これらのオペレーティング システム上のデフォルト動作に慣れているために、サーバ管理者ログインをデータベース サーバに追加するうえで必要な手順を実行し忘れることがあります。
解決策:
サーバ マシン上で UAC(ユーザ アクセス制御)を無効にするか、ジオデータベースを格納できるように SQL Server Express インスタンスをセットアップした際に ArcSDE データベース サーバに追加しておいた管理者ユーザとしてログインし、任意のユーザをデータベース サーバに追加してサーバ管理者権限を付与します。
エラー:Bad login user(不正なログイン ユーザ)
エラー メッセージが表示される原因:
最も考えられる原因は、データベース認証のユーザ名とパスワードで、データベース サーバ上のジオデータベースに接続しようとしたことです。
解決策:
データベース サーバ上のジオデータベースへの接続に使用されるログインは、Windows 認証のログインだけです。したがって、有効な Windows ログインを使用してログインする際は事前に、[空間データベース接続] ダイアログ ボックスの [オペレーティング システム認証] オプションをオンにしておいてください。
エラー:ログインに失敗しました。The login is from an untrusted domain and cannot be used with Windows authentication.(信頼関係のないドメインからログインしたため、Windows 認証では使用できません。)
エラー メッセージが表示される原因:
- ローカルの Windows アカウントでログイン中に、リモート データベース サーバ上のジオデータベースへの接続を試みた可能性があります。
- データベース サーバ上のジオデータベースへの接続に、データベース サーバに追加されていないドメイン アカウントを使用した可能性があります。
解決策:
クライアント コンピュータにログインする際に、サーバ管理者がデータベース サーバに追加したドメイン アカウントを使用してださい。
エラー:Connection was attempted with an older version of SQL Server client communications software that is not compatible with the SQL Server database server(SQL Server データベース サーバと互換性のない古いバージョンの SQL Server クライアント通信ソフトウェアで、接続が試みられました)
エラー メッセージが表示される原因:
ジオデータベースに接続する側のクライアント コンピュータに、サポートされているバージョンの Microsoft SQL Native Client がインストールされていません。
解決策:
ご使用の SQL Server Express バージョンと互換性のある SQL Native Client アプリケーションのバージョンをクライアント コンピュータにインストールします。