SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

SQL Anywhereの魅力を探る

SQL Anywhereのデータベース管理の基礎

SQL Anywhereの魅力を探る 3


  • このエントリーをはてなブックマークに追加

2.4.3 接続

 SQL Anywhereに接続するには、ユーザ名とパスワードが必要だ。接続先にデータベースサーバやデータベースが複数ある場合は、データベースサーバ名やデータベース名も指定しなければならない。これらのパラメータは、GUIツールであれば[接続]ダイアログボックスに入力し、コマンドラインでは接続パラメータを用いる。

ユーザIDとパスワード

 Sybase CentralやInteractive SQLでデータベースに接続しようとすると、まず[接続]ダイアログボックスが表示されるので、接続先やユーザID・パスワードを指定する(図2.10)。あらかじめ作成されているユーザは、ユーザID「DBA」・パスワード「SQL」で、DBA権限(すべての権限)を持つ(注1)。

図2.10 :[接続]ダイアログボックス
図2.10 :[接続]ダイアログボックス
注1
 IDやパスワードの文字列は、デフォルトでは大文字と小文字が区別されない。パスワードについては、大文字と小文字を区別するように設定可能で、CREATE DATABASE文のPASSWORD CASEキーワードで指定する。
SQL Anywhere 10での変更点2
 SQL Anywhere 10からは、パスワードの大文字小文字が常に区別されるようになった。そのため、SQL Anywhere 9から10へアップグレードした後で、パスワードが合致しなくなったという事態が起こりやすい。アップグレード前に、パスワードを再確認(もしくは再設定)するとよい。

接続先の指定

 接続先となるデータベースを指定する方法はいくつかある。

  1. ODBCデータソース名を指定する
  2. データソース作成時に接続設定をあらかじめ定義しておく。
  3. データベースファイル名を指定する
  4. サーバ名を指定する
  5. ただし、同一ネットワークドメイン内にサーバがない場合は、IPやホスト名も指定する必要がある。また、1つのサーバに複数のデータベースがある場合は、サーバ名だけでなくデータベース名もあわせて指定する。
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)。もし、データベースサーバに複数のデータベースが起動している場合は、データベース名も入力する必要がある。

注2
 サーバ名を知るには、[パーソナル・サーバのサンプル]のプロパティから、リンク先に書かれている起動コマンドを読めばわかる。あるいは、起動後にシステムトレイに現れるアイコンをマウスで指すと、サーバ名が表示される。

ネットーワークドメインを超えた接続

 接続にあたって、SQL AnywhereのODBCドライバは、ブロードキャストパケットをUDPでネットワークに送信して、データベースサーバやサーバ名を探そうとする。ファイアウォールを超えて接続するような場合、このパケットが遮断されてしまい、うまく接続できない場合がある。そのようなときは、ブロードキャストを抑制すればよい。dbisqlコマンドを使う場合は、-cで接続パラメータを与える。

$ dbisql -c "eng=test;uid=dba;pwd=sql;CommLinks=tcpip(
HOST=192.168.1.10;DOBROADCAST=NONE)"

 主な接続パラメータは次のとおり。

表2.2 : 主な接続パラメータ
接続パラメータ 説明
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)。

図2.11 : ODBCアドミニストレータの[トレース]タブ
図2.11 : ODBCアドミニストレータの[トレース]タブ

 なお、クライアントアプリケーションから送信されたSQLのログをとる別の方法として、SQL Anywhereのログ機能を利用する方法もある(通常の使用であれば、こちらを推奨する)。

次のページ
2.5 動的キャッシュ割り当て

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加
SQL Anywhereの魅力を探る連載記事一覧

もっと読む

この記事の著者

森脇 大悟(モリワキ ダイゴ)

1974年生まれ。神奈川県川崎市出身。京都大学理学部物理学科卒業。同大学院 修士課程中退後、有限会社グルージェント(現・株式会社グルージェント)入社。SIとして金融や物流システムを手がける。2003年アイエニウェア・ソリューションズ株式会社入社。エンジニアとして製品の導入支援やコンサルティング業務に...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/1279 2008/09/03 13:49

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング