データベース サーバのトラブルシューティング
データベース サーバまたはデータベース サーバ上のジオデータベースの操作中に発生する問題を解決するためのヒントを、以下に紹介します。
エラーをログに記録するには、ArcGIS のインストール ディレクトリに etc という名前のフォルダを作成してください。作成した etc フォルダ内に、ログ ファイルが自動的に生成されます。たとえば、ArcGIS Desktop を c:\Program Files\ArcGIS にインストールした場合は、このディレクトリに etc という名前のフォルダを作成します(c:\Program Files\ArcGIS\etc)。ログ ファイルから必要な情報を取得した後、または ArcGIS サポートにコピーを送付した後、etc フォルダを削除してください。etc フォルダに作成されるエラー ログは累積的にログを記録するため、放っておくと数メガバイトのファイルになることがあります。ログ ファイルを削除しただけの場合は、etc フォルダにログ ファイルが自動的に再作成されます。
エラー: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 環境変数が、システム環境変数として、または dbinit.sde ファイルに設定されていると、ArcSDE ジオデータベースへの接続時の Windows ログインよりも優先されます。データベース サーバ上の ArcSDE ジオデータベースに接続する、または ArcGIS Server Enterprise でライセンスされる ArcSDE ジオデータベースへの接続にオペレーティング システム認証を使用するコンピュータでは、これらの環境変数を設定しないでください。
解決策:
接続元のクライアント コンピュータで 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 に設定して、ArcSDE ジオデータベースにデータをインポートしようとすると、インポートに失敗し、データセットが load-only 入出力(I/O)モードに切り替わる場合があります。空間インデックスのグリッド サイズを再計算すると、フィーチャクラスが通常の入出力(I/O)モードに戻り、操作できる状態になります。
解決策/対処法:
フィーチャクラスで空間インデックスのグリッド サイズを再計算します。
- カタログ ツリーで、load-only モードのフィーチャクラスを右クリックし、[プロパティ] を選択します。[フィーチャクラス プロパティ] ダイアログ ボックスで、[インデックス] タブをクリックします。
- [空間インデックス] セクションで、[再計算] をクリックします。
- [インデックス] タブで [OK] をクリックします。
問題:接続中のユーザをサーバ マシン上の Windows 管理者グループに追加しても、データベース サーバ管理タスク([新規ジオデータベース]、[復元]、[権限])にアクセスできない
原因:Windows 管理者がサーバ管理者タスクを実行できない原因
Windows Vista、Windows 7、および Windows 2008 Server コンピュータでは、デフォルトで UAC が有効になります。UAC により、厳重なセキュリティ モデルが適用されるので、Windows 管理者は自動的には SQL Server データベース内の sysadmin になれません。Windows XP/Windows 2003 Server マシン上の ArcSDE データベース サーバや SQL Server のインスタンスへのアクセスを使用してきたユーザは、これらのオペレーティング システム上のデフォルト動作に慣れているために、サーバ管理者ユーザをデータベース サーバに追加するうえで必要な手順を実行し忘れることがあります。
解決策:
サーバ マシン上で UAC(ユーザ アクセス制御)を無効にするか、ジオデータベースを格納できるように SQL Server Express インスタンスをセットアップした際に ArcSDE データベース サーバに追加しておいた管理者ユーザとしてログインし、任意のユーザをデータベース サーバに追加してサーバ管理者権限を付与します。
エラー:バージョンが見つかりません [sde.DEFAULT]
エラー メッセージが表示される原因
空間データベース接続を行う際に、sde.DEFAULT を他のバージョンに変更し忘れると、このエラー メッセージが表示されます。
解決策:
データベース サーバ上に作成されたシステム テーブルおよび DEFAULT バージョンのジオデータベースは常に、dbo ユーザによって所有されます。そのため、接続のバージョンを sde.DEFAULT から dbo.DEFAULT に変更するか、別の使用可能なトランザクション バージョンまたは履歴バージョンに変更する必要があります。
エラー: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 Native Client アプリケーションをインストールしてください。SQL Server 2005 Express データベースに接続する場合は、少なくとも SQL 2005 Native Client が必要です。SQL Server 2008 Express データベースに接続するには、SQL 2008 Native Client をインストールする必要があります。