2.4.3 接続
SQL Anywhereに接続するには、ユーザ名とパスワードが必要だ。接続先にデータベースサーバやデータベースが複数ある場合は、データベースサーバ名やデータベース名も指定しなければならない。これらのパラメータは、GUIツールであれば[接続]ダイアログボックスに入力し、コマンドラインでは接続パラメータを用いる。
ユーザIDとパスワード
Sybase CentralやInteractive SQLでデータベースに接続しようとすると、まず[接続]ダイアログボックスが表示されるので、接続先やユーザID・パスワードを指定する(図2.10)。あらかじめ作成されているユーザは、ユーザID「DBA」・パスワード「SQL」で、DBA権限(すべての権限)を持つ(注1)。
接続先の指定
接続先となるデータベースを指定する方法はいくつかある。
- ODBCデータソース名を指定する
- データベースファイル名を指定する
- サーバ名を指定する
1. ODBCデータソース名による指定
「ASA 9.0 Sample」というデータソースがデフォルトでサンプルとしてインストールされるので、これを利用してみよう。[接続]ダイアログボックスのIDタブにおいて、[ODBCデータ・ソース名]に「ASA 9.0 Sample」と入力する。データソースのほうにユーザID・パスワードが指定されているので、このダイアログボックスで入力する必要はない。
2. データベースファイル名による指定
サンプルデータベースのファイルは%ASANY9%¥asademo.dbなので、このパスを、[接続]ダイアログボックスの[データベース]タブにある[データベース・ファイル]に入力する。[ID]タブでは、ユーザID・パスワードとして「DBA」「SQL」をそれぞれ入力する。なお、[ODBCデータ・ソース名]では[なし]が選択されていることを確認しておく。なお、SQL AnywhereのODBCドライバの機能により、デフォルトでは接続時にデータベースが起動していればそこに接続し、起動していなければ自動起動後に接続する。また、切断時に接続しているクライアントがなくなれば、自動的にデータベースが停止する。「1. ODBCデータソース名による指定」の場合でも、データソースの設定でデータベースファイル名が指定されていれば、この機能が働く。
3. サーバ名による指定
あらかじめデータベースサーバが起動していれば、サーバ名(とデータベース名)で接続先を指定できる。
接続をテストするため、あらかじめデータベースを起動する。スタートメニューから[SQL Anywhere 9]-[SQL Anywhere]-[パーソナル・サーバのサンプル]を選択すると、サンプルデータベースが起動する。
[接続]ダイアログボックスの[ID]タブでは、ユーザID・パスワードとして「DBA」「SQL」をそれぞれ入力する。なお、[ODBCデータ・ソース名]では[なし]が選択されていることを確認しておく。[データベース]タブのサーバ名で、「asademo9」を入力すると、起動しているデータベースに接続する(注2)。もし、データベースサーバに複数のデータベースが起動している場合は、データベース名も入力する必要がある。
ネットーワークドメインを超えた接続
接続にあたって、SQL AnywhereのODBCドライバは、ブロードキャストパケットをUDPでネットワークに送信して、データベースサーバやサーバ名を探そうとする。ファイアウォールを超えて接続するような場合、このパケットが遮断されてしまい、うまく接続できない場合がある。そのようなときは、ブロードキャストを抑制すればよい。dbisqlコマンドを使う場合は、-cで接続パラメータを与える。
$ dbisql -c "eng=test;uid=dba;pwd=sql;CommLinks=tcpip( HOST=192.168.1.10;DOBROADCAST=NONE)"
主な接続パラメータは次のとおり。
接続パラメータ | 説明 |
eng | データベースサーバ名 |
dbn | データベース名 |
dsn | ODBCのデータソース名 |
dbf | データベースファイルのパス |
uid | ユーザ名 |
pwd | パスワード |
CommLinks | 接続プロトコルの詳細設定。CommLinksパラメータにさらにパラメータを指定できる |
2.4.4 停止
データベースサーバを停止するには、Sybase Centralから切断するか、dbstopコマンドで行う。dbstopコマンドでは、以下のように接続パラメータを指定する。
$ dbstop -c "eng=asademo9;uid=dba;pwd=sql"
2.4.5 削除
データベースの削除はdberaseコマンドで行う。
$ dberase test.db
この例では、データベースファイルtest.dbと使用されていたトランザクションファイルが削除される。なお、データベースファイルとトランザクションログファイルを手動で(つまり、OSのファイル操作で)削除してもよい。
2.4.6 Windowsサービスに登録する方法
データベースサーバをWindowsサービスに登録するには、Sybase Centralから行うか、dbsvcコマンドで行う。
Sybase Centralから行う方法
左ペインで[SQL Anywhere 9]を選択してから、右ペインの[サービス]タブを選択すると、サービスの管理が行える。
dbsvcコマンドによる方法
たとえば、ネットワークサーバを自動起動するようにサービスに登録するには、次のようにする。
$ dbsvc -as -s auto -t network -w mynetworkserv "C:\Program Files\Sybase\SQL Anywhere 9\win32\dbsrv9.exe" -x tcpip -c 8m "C:\Program Files\Sybase\SQL Anywhere 9\sample.db"
2.4.7 ODBCデータソースの作成
ODBCデータソースの登録は、スタートメニューの[SQL Anywhere 9]内にある[ODBCアドミニストレータ]から行うか、dbdsnコマンドで行う。
dbdsnコマンドを使って、サンプルデータベースを「test」というデータソース名で登録するには、次のように行う。
$ dbdsn -w test -y -c "uid=dba;pwd=sql;dbf=%ASANY9%\asademo.db"
ODBCによるデータベースの自動起動・自動停止
デフォルトでは接続時にデータベースが起動していなければ自動起動し、切断時にほかの接続がなければ自動終了する。これを抑制するには、接続パラメータで調整する。次に実行例を示す。
$ dbdsn -w test -y -c "uid=dba;pwd=sql;dbf=%ASANY9%\asademo.db;AutoStart=NO;AutoStop=NO"
ODBCドライバによるログの保存
ODBCマネージャを使えば、ODBCのログを取得できる。デバッグ時などに利用するとよい。ODBCアドミニストレータの[トレース]タブで、トレースの開始・終了を操作する。トレース結果はファイルに保存される(図2.11)。
なお、クライアントアプリケーションから送信されたSQLのログをとる別の方法として、SQL Anywhereのログ機能を利用する方法もある(通常の使用であれば、こちらを推奨する)。