Mac De Oracle Heterogeneous! #10 Tweet
リスナーの構成を反映させるためリスナーの再起動を行った。まずは再起動したリスナーの状態を確認。
各サービスのインスタンスがリストされているのが判るだろうか?
C:¥Documents and Settings¥Administrator>
C:¥Documents and Settings¥Administrator>lsnrctl status
LSNRCTL for 32-bit Windows: Version 10.1.0.2.0 - Production on 09-1月 -2006 15:02:20
Copyright (c) 1991, 2004, Oracle. All rights reserved.
(DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC)))に接続中
リスナーのステータス
------------------------
別名 LISTENER
バージョン TNSLSNR for 32-bit Windows: Version 10.1.0.2.0 - Production
開始日 09-1月 -2006 15:01:33
稼働時間 0 日 0 時間 0 分 51 秒
トレース・レベル off
セキュリティ ON: Local OS Authentication
SNMP OFF
パラメータ・ファイル E:¥oracle¥product¥10.1.0¥catfish¥network¥admin¥listener.ora
ログ・ファイル E:¥oracle¥product¥10.1.0¥catfish¥network¥log¥listener.log
リスニング・エンドポイントのサマリー...
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=¥¥.¥pipe¥EXTPROCipc)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.1.2)(PORT=1521)))
サービスのサマリー...
サービス"PLSExtProc"には、1件のインスタンスがあります。
インスタンス"PLSExtProc"、状態UNKNOWNには、このサービスに対する1件のハンドラがあります...
サービス"PostgreSQL749"には、1件のインスタンスがあります。
インスタンス"PostgreSQL749"、状態UNKNOWNには、このサービスに対する1件のハンドラがあります...
サービス"mysql4025_MacOSX"には、1件のインスタンスがあります。
インスタンス"mysql4025_MacOSX"、状態UNKNOWNには、このサービスに対する1件のハンドラがあります...
サービス"mysqldb4026_windows"には、1件のインスタンスがあります。
インスタンス"mysqldb4026_windows"、状態UNKNOWNには、このサービスに対する1件のハンドラがあります...
サービス"mysqldb4113a_MacOSX_Server"には、1件のインスタンスがあります。
インスタンス"mysqldb4113a_MacOSX_Server"、状態UNKNOWNには、このサービスに対する1件のハンドラがあります...
コマンドは正常に終了しました。
C:¥Documents and Settings¥Administrator>
データベースリンクを作成してリモートデータベースにアクセスするのだが、今回はプライベートデータベースリンクを作成することにし、新たにユーザを作成した。
SQL> conn / as sysdba
SQL> create user discus identified by xxxxxxxx
2 default tablespace users
3 temporary tablespace temp
4 quota unlimited on users;
ユーザーが作成されました。
SQL> grant
2 connect,
3 create synonym,
4 create database link,
5 create table
6 to
7 discus;
権限付与が成功しました。
データベースリンクを作成する前に確認しておくことが1点ある。global_names=falseであることを確認しておくことである。
SQL> conn / as sysdba
SQL> show parameter global_names
NAME TYPE VALUE
------------ -------------- ---------------
global_names boolean FALSE
SQL>
もし、trueならば、falseに変更しておく。動的パラメータなので
で変更可能である。
SQL> alter system set global_names = false scope=both;
システムが変更されました。
SQL>
尚、これはspfile の利用を前提に記述している。pfileを利用している場合には、init_<SID>.oraファイルを変更し、再起動が必要である。(ただし、scope=memoryとしてalter system文を発行し、後日再起動しても同じである。)
さていよいよ、プライベートデータベースリンクを作成し、MySQL及び、PostgreSQLにアクセスしてみる。
これがうまくいけば、Windowsに作成したOracle10g R1がMySQL及び、PostgreSQLのデータを纏めるHUBとしての機能を持つ事になる。MySQLやPostgreSQLにアクセスするデータベースリンクの作成で大切な点は、ユーザ名及び、パスワードを "" で囲むことである。ちなみに、MySQLやPostgreSQLにあるオブジェクトも""で囲む必要がる。ようするにユーザ名やパスワードは大文字小文字を区別させる必要があり、オブジェクト名は小文字で参照させるということを意味している。
Note:
"で囲まれた部分を 引用識別子(quoted identifier)と呼ぶ。逆に囲まれていない場合は非引用識別子(nonquoted identifier)と呼ぶ。
SQL> conn discus
パスワードを入力してください: ************
接続されました。
SQL>
SQL>
SQL>
SQL> create database link mysql4026_win
2 connect to "catfish" identified by "xxxxxxx" using 'MYSQL4026_WIN';
データベース・リンクが作成されました。
SQL> select * from "emp"@mysql4026_win;
empno ename
---------- ------------------------------
1 おらおら
2 ほげ
3 化けないよな〜ー
SQL>
SQL> create database link mysql4113a_mac_sv
2 connect to "discus" identified by "xxxxxxxxx" using 'MYSQL4113A_MAC_SV';
データベース・リンクが作成されました。
SQL> select * from "emp"@mysql4113a_mac_sv;
empno ename
---------- ------------------------------
1 ほげほげ
2 ほげ
3 化けないよな〜ー
SQL>
SQL> create database link mysql4025_mac
2 connect to "jobs" identified by "xxxxxx" using 'MYSQL4025_MAC';
データベース・リンクが作成されました。
SQL> select * from "emp"@mysql4025_mac;
empno ename
---------- ------------------------------
1 おらおら
2 ほげ
3 化けないよねー〜
SQL>
SQL> create database link postgresql749_mac
2 connect to "scott" identified by "xxxxxxx" using 'POSTGRESQL749_MAC';
データベース・リンクが作成されました。
SQL> select * from "emp"@postgresql749_mac;
empno ename
---------- ------------------------------
1 ほげほげ
2 ほげ
3 化けないよね〜ー
SQL>
次回はMacOSX Tiger 10.4.3に作成したOracle10g R1から、Windows XP Professionalに作成したOracle10g R1にデータベースリンクを経由してアクセスしてみる。
WindowsのOracle10g R1を踏み台とし、MacOSX Tiger Server 10.4.3のOracle10gから間接的にMySQL及び、PostgreSQLにアクセスできることを確認する。
| 固定リンク | 0
コメント