OS X Lion にアップグレードして Instant Client 10.2.0.4 が利用できなくなってからしばらく経ち、結局何にも困らないことに気づきましたが、せっかく正式対応版が出たので遅ればせながらインストールしてみました。
- OS X Users! 11gR2 Oracle Instant Client 32 & 64-bit is now available (PHP and Oracle: Christopher Jones)
- Mac De Oracle: Instant Client v11.2.0.3.0 for Mac OS X (Intel x86) のセットアップ
インストール
と言っても Instant Client なので zip ファイルをダウンロードして解凍するだけです。
場所はどこでもいいのですが /usr/local は Homebrew で使っているので、いつもの ~/local 以下にします。面倒なので basiclite もまとめて解凍します。% for f in ~/Downloads/instantclient-*-macos.x64-11.2.0.3.0.zip; do unzip -o $f -d ~/local; doneあとは DYLD_FALLBACK_LIBRARY_PATH 環境変数に ~/local/instantclient_11_2 を設定すれば使えますね。
% cd ~/local/instantclient_11_2 % env DYLD_FALLBACK_LIBRARY_PATH=$PWD ./sqlplus scott/tiger@//ol64.vbox/xe SQL*Plus: Release 11.2.0.3.0 Production on Mon Feb 11 13:20:39 2013 Copyright (c) 1982, 2012, Oracle. All rights reserved. Connected to: Oracle Database 11g Express Edition Release 11.2.0.2.0 - 64bit Production (2013-02-11 13:20:44) SCOTT >労力に見合う効果が見込めそうにないのでやりませんが OFA に準拠させる配置もありですね。 そのあたりはマニュアルを見て思案するのもいいかも?
- Oracle Database Client Preinstallation Tasks
Oracle® Database Client Installation Guide 11g Release 2 (11.2) for Apple Mac OS X (Intel) E38228-01 - Optimal Flexible Architecture
Oracle® Databaseインストレーション・ガイド 11gリリース2 (11.2) for Linux B56273-05
% otool -L ./sqlplus ./sqlplus: /ade/b/2649109290/oracle/sqlplus/lib/libsqlplus.dylib (compatibility version 0.0.0, current version 0.0.0) /ade/b/2649109290/oracle/rdbms/lib/libclntsh.dylib.11.1 (compatibility version 0.0.0, current version 0.0.0) /ade/b/2649109290/oracle/ldap/lib/libnnz11.dylib (compatibility version 0.0.0, current version 0.0.0) /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 159.1.0)
% otool -L ../instantclient_10_2/sqlplus ../instantclient_10_2/sqlplus: /b/227/sqlplus/lib/libsqlplus.dylib (compatibility version 0.0.0, current version 0.0.0) /b/227/rdbms/lib/libclntsh.dylib.10.1 (compatibility version 0.0.0, current version 0.0.0) /b/227/network/lib/libnnz10.dylib (compatibility version 0.0.0, current version 0.0.0) /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 111.1.1) /usr/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current version 1.0.0)
アーカイブ内のファイル一覧
タイムスタンプで並べてみると /sdk/demo/demo.mk が README と同じです。やはりビルドに必要な Makefile を最後まで修正していたんでしょうか。
% for f in ~/Downloads/instantclient-*-macos.x64-11.2.0.3.0.zip; do unzip -l $f; done | grep instantclient_11_2 | perl -pe 's/( *\d+) +(\d+-\d+)-(\d+) (.{5}) +/20$3-$2 $4 $1 /' | sort -u 2001-04-25 02:04 60 instantclient_11_2/sdk/demo/occiobj.typ 2002-10-15 18:19 2115 instantclient_11_2/sdk/include/occi.h 2003-03-06 15:45 1868 instantclient_11_2/sdk/demo/occidemod.sql 2003-06-10 05:40 42626 instantclient_11_2/sdk/include/oro.h 2004-08-05 14:16 7202 instantclient_11_2/sdk/demo/occidemo.sql 2005-07-07 19:38 4048 instantclient_11_2/sdk/include/ocidem.h 2005-07-07 19:38 8953 instantclient_11_2/sdk/include/ociextp.h 2005-07-07 19:38 116645 instantclient_11_2/sdk/include/ort.h 2005-07-07 19:39 10361 instantclient_11_2/sdk/include/oci8dp.h 2005-08-26 14:04 11586 instantclient_11_2/sdk/include/occiAQ.h 2005-09-26 03:58 6204 instantclient_11_2/sdk/include/ociapr.h 2005-09-26 03:58 6494 instantclient_11_2/sdk/include/ocikpr.h 2005-09-26 03:58 43001 instantclient_11_2/sdk/include/ocidef.h 2005-09-26 03:59 7203 instantclient_11_2/sdk/include/oci1.h 2005-09-26 03:59 11339 instantclient_11_2/sdk/include/ocidfn.h 2006-06-02 21:12 14313 instantclient_11_2/sdk/demo/cdemo81.c 2006-08-02 13:13 15083 instantclient_11_2/sdk/include/orid.h 2006-08-02 13:13 102775 instantclient_11_2/sdk/include/ori.h 2006-08-02 13:13 157901 instantclient_11_2/sdk/include/orl.h 2006-09-06 12:59 9892 instantclient_11_2/sdk/include/xa.h 2006-11-08 13:43 4816 instantclient_11_2/sdk/demo/occiobj.cpp 2007-10-30 12:29 24778 instantclient_11_2/sdk/include/occiObjects.h 2007-12-08 10:50 74787 instantclient_11_2/sdk/include/nzt.h 2008-04-11 09:15 34750 instantclient_11_2/sdk/include/occiCommon.h 2008-05-27 17:35 7564 instantclient_11_2/sdk/demo/occidml.cpp 2008-09-27 08:32 42534 instantclient_11_2/sdk/include/ldap.h 2009-03-20 14:32 70685 instantclient_11_2/sdk/include/occiControl.h 2009-06-04 17:43 869 instantclient_11_2/sdk/ott 2010-02-12 06:14 23384 instantclient_11_2/sdk/include/odci.h 2010-02-16 17:50 39934 instantclient_11_2/sdk/include/occiData.h 2011-04-11 14:57 368 instantclient_11_2/glogin.sql 2011-04-19 01:16 431569 instantclient_11_2/sdk/include/ociap.h 2011-04-30 04:36 34962 instantclient_11_2/sdk/include/nzerror.h 2011-06-11 03:35 101296 instantclient_11_2/sdk/include/ocixstream.h 2011-06-17 01:15 172157 instantclient_11_2/sdk/include/oci.h 2011-06-26 07:29 7506 instantclient_11_2/sdk/include/ocixmldb.h 2012-03-05 20:23 6506 instantclient_11_2/sdk/include/oratypes.h 2012-05-29 19:30 2095661 instantclient_11_2/ojdbc5.jar 2012-05-29 19:30 2714016 instantclient_11_2/ojdbc6.jar 2012-07-21 00:52 2811 instantclient_11_2/orai18n-mapping.jar 2012-07-21 00:52 5975 instantclient_11_2/orai18n.jar 2012-12-19 01:50 2795004 instantclient_11_2/libnnz11.dylib 2012-12-19 19:57 13744 instantclient_11_2/libheteroxa11.dylib 2012-12-19 19:57 158924 instantclient_11_2/libocijdbc11.dylib 2012-12-19 21:12 64771444 instantclient_11_2/libclntsh.dylib.11.1 2012-12-19 21:25 66779 instantclient_11_2/xstreams.jar 2012-12-19 21:26 1897664 instantclient_11_2/libocci.dylib.11.1 2013-01-29 20:17 1385860 instantclient_11_2/libsqlplus.dylib 2013-01-29 21:36 8744 instantclient_11_2/sqlplus 2013-01-29 21:37 1504252 instantclient_11_2/libsqlplusic.dylib 2013-01-29 21:47 116171724 instantclient_11_2/libociei.dylib 2013-01-29 22:40 300666 instantclient_11_2/sdk/ottclasses.zip 2013-01-29 22:43 10252 instantclient_11_2/adrci 2013-01-29 22:43 40768 instantclient_11_2/genezi 2013-01-29 22:43 162324 instantclient_11_2/uidrvci 2013-01-29 22:43 624888 instantclient_11_2/wrc 2013-01-29 22:43 9868260 instantclient_11_2/libociicus.dylib 2013-01-29 22:44 0 instantclient_11_2/sdk/ 2013-01-29 22:44 0 instantclient_11_2/sdk/demo/ 2013-01-29 22:44 0 instantclient_11_2/sdk/include/ 2013-01-29 22:44 480 instantclient_11_2/sdk/SDK_README 2013-01-29 22:44 482 instantclient_11_2/JDBC_README 2013-01-29 22:44 484 instantclient_11_2/BASIC_README 2013-01-29 22:44 484 instantclient_11_2/TOOLS_README 2013-01-29 22:44 488 instantclient_11_2/SQLPLUS_README 2013-01-29 22:44 494 instantclient_11_2/BASIC_LITE_README 2013-01-29 22:44 4109 instantclient_11_2/sdk/demo/demo.mk
SDKはもう少し待つ必要があるかも
2/21 に SDK が更新されました。ここに書いてある情報は古いです。詳しくは次の節に記述しています。
DBD::Oracle を cpanm でサクっと入れようとしたのですが、テスト実行時に Symbol not found: _C_SendHTTPRequest が多数出て失敗。
% cpanm DBD::Oracle --> Working on DBD::Oracle Fetching http://www.cpan.org/authors/id/P/PY/PYTHIAN/DBD-Oracle-1.56.tar.gz ... OK Configuring DBD-Oracle-1.56 ... OK Building and testing DBD-Oracle-1.56 ... FAIL ! Installing DBD::Oracle failed. See /Users/yoshikaw/.cpanm/build.log for details. cpanm DBD::Oracle 6.68s user 0.96s system 64% cpu 11.812 total
t/000-report-versions-tiny.t .. ok Can't load '/Users/yoshikaw/.cpanm/work/1360553499.33852/DBD-Oracle-1.56/blib/arch/auto/DBD/Oracle/Oracle.bundle' for module DBD::Oracle: dlopen(/Users/yoshikaw/.cpanm/work/1360553499.33852/DBD-Oracle-1.56/blib/arch/auto/DBD/Oracle/Oracle.bundle, 2): Symbol not found: _C_SendHTTPRequest Referenced from: /Users/yoshikaw/local/instantclient_11_2/libnnz11.dylib Expected in: flat namespace in /Users/yoshikaw/local/instantclient_11_2/libnnz11.dylib at /System/Library/Perl/5.12/darwin-thread-multi-2level/DynaLoader.pm line 204. at t/00versions.t line 10. Compilation failed in require at t/00versions.t line 10. BEGIN failed--compilation aborted at t/00versions.t line 10. # Looks like your test exited with 2 before it could output anything. t/00versions.t ................ Dubious, test returned 2 (wstat 512, 0x200) Failed 2/2 subtests
% for i in ./*lib; do echo $i; nm $i | grep _C_SendHTTPRequest; done ./libclntsh.dylib ./libheteroxa11.dylib ./libnnz11.dylib U _C_SendHTTPRequest ./libociei.dylib ./libociicus.dylib ./libocijdbc11.dylib ./libsqlplus.dylib ./libsqlplusic.dylibこの件については公式フォーラムにトピックがあり、修正モジュールのテスト中らしいので SDK を利用する場合はもうしばらく待つ必要がありそうです。
- OTN Discussion Forums : OS X Users! 11gR2 Oracle Instant Client ...
cj Posted: 2013/02/06 11:14 in response to: 986557 I've asked Oracle's porting group to look at this. Please give the details of your OS and the configuration options for Perl/Python/PHP etc.
cj Posted: 2013/02/08 12:12 in response to: 833558 To keep you updated, a revised IC bundle is being tested.
(2/21追記) SDKの動作確認(DBD::Oracle)
OTN フォーラムの書き込みを見ると 2/19 に SDK が更新されたようです。
cj Posted: 2013/02/19 17:42 in response to: cj If you had issues, please re-download the bundle. It's been refreshed. Thanks for your patience.さっそく SDK を含むファイルをダウンロードしてみました。ライブラリやそれを利用する一部コマンドのタイムスタンプが更新されています。
% for f in ~/Downloads/instantclient-*-macos.x64-11.2.0.3.0.zip; do unzip -l $f; done | grep instantclient_11_2 | perl -pe 's/( *\d+) +(\d+-\d+)-(\d+) (.{5}) +/20$3-$2 $4 $1 /' | sort -u | tail -n 20 2012-12-19 21:26 1897664 instantclient_11_2/libocci.dylib.11.1 2013-02-12 21:02 1385860 instantclient_11_2/libsqlplus.dylib 2013-02-12 21:10 1504252 instantclient_11_2/libsqlplusic.dylib 2013-02-15 21:16 2808528 instantclient_11_2/libnnz11.dylib 2013-02-15 21:17 40768 instantclient_11_2/genezi 2013-02-15 21:33 10252 instantclient_11_2/adrci 2013-02-15 21:33 162324 instantclient_11_2/uidrvci 2013-02-15 21:33 624888 instantclient_11_2/wrc 2013-02-15 21:33 9868260 instantclient_11_2/libociicus.dylib 2013-02-15 21:33 118379468 instantclient_11_2/libociei.dylib 2013-02-15 21:34 0 instantclient_11_2/sdk/ 2013-02-15 21:34 0 instantclient_11_2/sdk/demo/ 2013-02-15 21:34 0 instantclient_11_2/sdk/include/ 2013-02-15 21:34 480 instantclient_11_2/sdk/SDK_README 2013-02-15 21:34 482 instantclient_11_2/JDBC_README 2013-02-15 21:34 484 instantclient_11_2/BASIC_README 2013-02-15 21:34 484 instantclient_11_2/TOOLS_README 2013-02-15 21:34 488 instantclient_11_2/SQLPLUS_README 2013-02-15 21:34 494 instantclient_11_2/BASIC_LITE_README 2013-02-15 21:34 4109 instantclient_11_2/sdk/demo/demo.mk先日失敗した DBD::Oracle のテストは通りモジュールはインストールできました。
% env DYLD_FALLBACK_LIBRARY_PATH=~/local/instantclient_11_2 cpanm DBD::Oracle --> Working on DBD::Oracle Fetching http://www.cpan.org/authors/id/P/PY/PYTHIAN/DBD-Oracle-1.56.tar.gz ... OK Configuring DBD-Oracle-1.56 ... OK Building and testing DBD-Oracle-1.56 ... OK Successfully installed DBD-Oracle-1.56 1 distribution installed
が、今度はフォーラムで報告されている問題が再現しました。
% env DYLD_FALLBACK_LIBRARY_PATH=~/local/instantclient_11_2 rlwrap ~/local/instantclient_11_2/sqlplus scott/tiger@centos.vbox/xe SQL*Plus: Release 11.2.0.3.0 Production on Thu Feb 21 23:44:49 2013 Copyright (c) 1982, 2012, Oracle. All rights reserved. Connected to: Oracle Database 11g Express Edition Release 11.2.0.2.0 - 64bit Production (2013-02-21 23:44:49) SCOTT > (2013-02-21 23:44:53) SCOTT > CREATE TABLE SOURCE 2 ( 3 SOURCE_ID NUMBER(12,0) NOT NULL, 4 OTHER_ID CHAR(14) NOT NULL 5 ); Table created. Elapsed: 00:00:00.01 (2013-02-21 23:45:07) SCOTT > CREATE TABLE DESTINATION 2 ( 3 SOURCE_ID NUMBER(12,0) NOT NULL, 4 OTHER_ID CHAR(14) NOT NULL, 5 DISPLAY CHAR(1) NOT NULL 6 ); Table created. Elapsed: 00:00:00.01 (2013-02-21 23:45:24) SCOTT > INSERT INTO DESTINATION (SOURCE_ID, OTHER_ID, DISPLAY) 2 SELECT SOURCE_ID, OTHER_ID, 'Y' FROM SOURCE WHERE OTHER_ID IS NOT NULL ORDER BY SOURCE_ID, OTHER_ID ASC; rlwrap: warning: sqlplus killed by SIGABRT. rlwrap has not crashed, but for transparency, it will now kill itself (without dumping core)with the same signal zsh: abort env DYLD_FALLBACK_LIBRARY_PATH=~/local/instantclient_11_2 rlwrap % echo $? 134adrci でトレースファイルを眺めてみましたが、よく分かりません。フォーラムでの続報を待つことにします。OSX で Instant Client 利用の道は険しいですね。。。
% rlwrap adrci ADRCI: Release 11.2.0.3.0 - Production on Thu Feb 21 23:54:18 2013 Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved. No ADR base is set adrci> set base $HOME/oradiag_yoshikaw adrci> show problem ADR Home = /Users/yoshikaw/oradiag_yoshikaw/diag/clients/user_yoshikaw/host_3499915911_80: ************************************************************************* PROBLEM_ID PROBLEM_KEY LAST_INCIDENT LASTINC_TIME -------------------- ----------------------------------------------------------- -------------------- ---------------------------------------- 1 oci 24550 [3] 9 2013-02-21 23:39:54.267000 +09:00 1 rows fetched adrci> show incident -p 'incident_id = 9' -mode detail ADR Home = /Users/yoshikaw/oradiag_yoshikaw/diag/clients/user_yoshikaw/host_3499915911_80: ************************************************************************* ********************************************************** INCIDENT INFO RECORD 1 ********************************************************** INCIDENT_ID 9 STATUS ready CREATE_TIME 2013-02-21 23:39:54.267000 +09:00 PROBLEM_ID 1 CLOSE_TIMEFLOOD_CONTROLLED none ERROR_FACILITY oci ERROR_NUMBER 24550 ERROR_ARG1 3 ERROR_ARG2 [si_signo=3] [si_errno=0] [si_code=0] [si_addr=0x7fff8ac79f96] ERROR_ARG3 ERROR_ARG4 ERROR_ARG5 ERROR_ARG6 ERROR_ARG7 ERROR_ARG8 ERROR_ARG9 ERROR_ARG10 ERROR_ARG11 ERROR_ARG12 SIGNALLING_COMPONENT SIGNALLING_SUBCOMPONENT SUSPECT_COMPONENT SUSPECT_SUBCOMPONENT ECID IMPACTS 0 PROBLEM_KEY oci 24550 [3] FIRST_INCIDENT 1 FIRSTINC_TIME 2013-02-11 13:20:30.421000 +09:00 LAST_INCIDENT 9 LASTINC_TIME 2013-02-21 23:39:54.267000 +09:00 IMPACT1 0 IMPACT2 0 IMPACT3 0 IMPACT4 0 KEY_NAME Client ProcId KEY_VALUE sqlplus@seravee.local (TNS V1-V3).31512_140735156093312 OWNER_ID 1 INCIDENT_FILE /Users/yoshikaw/oradiag_yoshikaw/diag/clients/user_yoshikaw/host_3499915911_80/trace/ora_31512_140735156093312.trc OWNER_ID 1 INCIDENT_FILE /Users/yoshikaw/oradiag_yoshikaw/diag/clients/user_yoshikaw/host_3499915911_80/incident/incdir_9/ora_31512_140735156093312_i9.trc 1 rows fetched adrci> quit
% cat /Users/yoshikaw/oradiag_yoshikaw/diag/clients/user_yoshikaw/host_3499915911_80/trace/ora_31512_140735156093312.trc Trace file /Users/yoshikaw/oradiag_yoshikaw/diag/clients/user_yoshikaw/host_3499915911_80/trace/ora_31512_140735156093312.trc DDE: Flood control is not active Incident 9 created, dump file: /Users/yoshikaw/oradiag_yoshikaw/diag/clients/user_yoshikaw/host_3499915911_80/incident/incdir_9/ora_31512_140735156093312_i9.trcoci-24550 [3] [[si_signo=3] [si_errno=0] [si_code=0] [si_addr=0x7fff8ac79f96]] [] [] [] [] [] [] [] [] [] []
% cat /Users/yoshikaw/oradiag_yoshikaw/diag/clients/user_yoshikaw/host_3499915911_80/incident/incdir_9/ora_31512_140735156093312_i9.trc Dump file /Users/yoshikaw/oradiag_yoshikaw/diag/clients/user_yoshikaw/host_3499915911_80/incident/incdir_9/ora_31512_140735156093312_i9.trc Dump continued from file: /Users/yoshikaw/oradiag_yoshikaw/diag/clients/user_yoshikaw/host_3499915911_80/trace/ora_31512_140735156093312.trc oci-24550 [3] [[si_signo=3] [si_errno=0] [si_code=0] [si_addr=0x7fff8ac79f96]] [] [] [] [] [] [] [] [] [] [] ========= Dump for incident 9 (oci 24550 [3]) ======== Tracing is in restricted mode! ----- Short Call Stack Trace ----- dbgexPhaseII()+1884<-dbgexProcessError()+7641<-dbgeExecuteForError()+90<-dbgePostErrorDirect()+2286<-kpeDbgSignalHandler()+1163<-skgesig_sigactionHandler()+287<-_sigtramp()+26<-0x7fff6ddcccd8()<-ntctst()+2024<-nttwait()+395<-nttcni()+15179<-nttcon()+12279<-ntconn()+1650<-nsopen()+19089<-nscall1()+2052<-nscall()+4909<-niotns()+18542<-nigcall()+230<-osncon()+3699<-kpuadef()+350<-upiini()+2805<-upiah0()+274<-kpuatch()+5794<-OCIServerAttach()+275<-afioci()+183----- START Event Driven Actions Dump ---- ---- END Event Driven Actions Dump ---- ----- START DDE Actions Dump ----- Executing SYNC actions Executing ASYNC actions ----- END DDE Actions Dump (total 0 csec) ----- End of Incident Dump
(12/22追記) SDKの動作確認(SQL*Plus) on OSX Mavericks
久しぶりに確認してみると、sqlplus とそのライブラリが 3/16 の日付で更新されていました。
% for f in ~/Downloads/instantclient-*-macos.x64-11.2.0.3.0.zip; do unzip -l $f; done | grep instantclient_11_2 | perl -pe 's/( *\d+) +(\d+-\d+)-(\d+) (.{5}) +/20$3-$2 $4 $1 /' | sort -u | tail -n 20 2013-02-15 21:16 2808528 instantclient_11_2/libnnz11.dylib 2013-02-15 21:17 40768 instantclient_11_2/genezi 2013-02-15 21:33 10252 instantclient_11_2/adrci 2013-02-15 21:33 162324 instantclient_11_2/uidrvci 2013-02-15 21:33 624888 instantclient_11_2/wrc 2013-02-15 21:33 9868260 instantclient_11_2/libociicus.dylib 2013-02-15 21:33 118379468 instantclient_11_2/libociei.dylib 2013-02-15 21:34 0 instantclient_11_2/sd/k 2013-02-15 21:34 0 instantclient_11_2/sdk/demo/ 2013-02-15 21:34 0 instantclient_11_2/sdk/include/ 2013-02-15 21:34 480 instantclient_11_2/sdk/SDK_README 2013-02-15 21:34 482 instantclient_11_2/JDBC_README 2013-02-15 21:34 484 instantclient_11_2/BASIC_README 2013-02-15 21:34 484 instantclient_11_2/TOOLS_README 2013-02-15 21:34 494 instantclient_11_2/BASIC_LITE_README 2013-02-15 21:34 4109 instantclient_11_2/sdk/demo/demo.mk 2013-03-16 00:03 8744 instantclient_11_2/sqlplus 2013-03-16 00:03 1385860 instantclient_11_2/libsqlplus.dylib 2013-03-16 00:04 1504252 instantclient_11_2/libsqlplusic.dylib 2013-03-16 00:24 488 instantclient_11_2/SQLPLUS_READMEフォーラムで明確なリリース案内は見つけられませんでしたが、前述した問題(SQL*Plus の feedback の処理?)は直っており、OSX Mavericks で DBD::Oracle も問題なくビルドできました。
% export DYLD_LIBRARY_PATH=$HOME/local/instantclient_11_2 % cpanm DBD::Oracle --> Working on DBD::Oracle Fetching http://www.cpan.org/authors/id/P/PY/PYTHIAN/DBD-Oracle-1.68.tar.gz ... OK Configuring DBD-Oracle-1.68 ... OK Building and testing DBD-Oracle-1.68 ... OK Successfully installed DBD-Oracle-1.68 1 distribution installed
おわりに
DBD::Oracle がビルドできないので OS X 環境の perl からの接続確認が出来ませんが、sqlplus 等のコマンドは使えますので rlwrap と組み合わせて何が出来るかいろいろと試す環境が出来ました。OS X である必要は全くありませんが、やる気に関わる重要な要素です。
0 件のコメント:
コメントを投稿