検索

如何创建自己的InstantClient包

Jun 07, 2016 pm 04:10 PM
導入作成するどうやって私自身の

IC介绍 许多人正在使用Oracle Instant Client,它提供一个部署基于OCI、OCCI、JDBC OCI应用容易和快速的方法。 通过添加更多的工具,Instant Client可以变成一个更加强大的工具,如下: 1. tnsping 2. sqlldr 3. tkprf 4. exp/imp 5. OCM 6. 你自己的工具 这

 

IC介绍

许多人正在使用Oracle Instant Client,它提供一个部署基于OCI、OCCI、JDBC OCI应用容易和快速的方法。

通过添加更多的工具,Instant Client可以变成一个更加强大的工具,如下:

1. tnsping

2. sqlldr

3. tkprf

4. exp/imp

5. OCM

6. 你自己的工具

这样做的主要优点是:

1. 安装是一件轻而易举的事情,只要解压即可完成。

2. 体积小,未压缩100MB到150MB或压缩50MB,它可以安装在USB盘上

3. 不涉及到SA(软件架构)

比较一个完整的Oracle安装需要大量的磁盘空间,而且还涉及到SA。

IC需求

1. 一个带有150MB+磁盘空间的Unix/Linux账号:

hadoop@192.168.8.162:/home/hadoop/oracle

2. 安装Oracle 11gR2的相同平台,一个具有读访问权限的账号:

root@192.168.8.192:/u01/product/oracle/11.2.0/db_1

IC安装

从Oracle官方网址下载安装包,下载网址: http://www.oracle.com/technetwork/cn/database/features/instant-client/index-097480.html

注:请根据操作系统版本下载相应的安装包,这里下载Linux X86-64安装包。

instantclient-basic-linux.x64-11.2.0.4.0.zip

instantclient-jdbc-linux.x64-11.2.0.4.0.zip

instantclient-sdk-linux.x64-11.2.0.4.0.zip

instantclient-sqlplus-linux.x64-11.2.0.4.0.zip

注:下载Instant Client时需要创建一个Oracle账号才能下载。

使用SSH客户端使用安装账号登录到服务器,在根目录下创建一个oracle目录:

$mkdir /home/hadoop/oracle

上传所有压缩包或至少basic和sqlplus两个包到你账号的根目录下oracle中。

解压到当前目录下完成安装。

$ cd /home/hadoop/oracle

$ unzipinstantclient-basic-linux.x64-11.2.0.4.0.zip

$ unzipinstantclient-sqlplus-linux.x64-11.2.0.4.0.zip

$ unzip instantclient-sdk-linux.x64-11.2.0.4.0.zip

$ unzip instantclient-jdbc-linux.x64-11.2.0.4.0.zip

解压完毕后会在当前目录下生成一个instantclient_11_2目录。

$ ll /home/hadoop/oracle/instantclient_11_2

IC配置

配置下面的环境变量到你的Shell配置文件中。

$ vi ~/.bashrc

跳到文件的末尾,添加下面这些环境变量:

export RACLE_IC_HOME=/home/hadoop/oracle/instantclient_11_2

exportORACLE_HOME=$ORACLE_IC_HOME

exportTNS_ADMIN=$ORACLE_IC_HOME

exportPATH=$PATH:$ORACLE_IC_HOME

exportLD_LIBRARY_PATH=$ORACLE_IC_HOME

exportCLASSPATH=$ORACLE_IC_HOME/ojdbc6.jar:./

$ source ~/. bashrc

或 $ . ~/.bashrc

注:如果需要让所有用户都能使用,需要把上面的配置添加/etc/profile中。

在$ORACLE_IC_HOME目录下创建一个tnsnames.ora文件:

$ vi /home/hadoop/oracle/instantclient_11_2/tnsnames.ora

orcl=(description=(address=(protocol=tcp)(host=192.168.8.161)(port=1521))(connect_data=(server=dedicated)(service_name=wcdma)))

ora =(DESCRIPTION =(ADDRESS_LIST =(ADDRESS =(PROTOCOL = TCP)(HOST = 192.168.8.161)(PORT = 1521)))(CONNECT_DATA =(SERVER =DEDICATED)(SERVICE_NAME = wcdma)))

SQL*Plus

$ sqlplus kqi/kqi@192.168.8.161:1521/wcdma

$ sqlplus kqi/kqi@orcl

 

SQL*Plus: Release 11.2.0.4.0 Production onThu Nov 20 14:01:49 2014

 

Copyright (c) 1982, 2013, Oracle. All rights reserved.

 

 

Connected to:

Oracle Database 11g Enterprise EditionRelease 11.2.0.2.0 - 64bit Production

With the Partitioning, OLAP, Data Miningand Real Application Testing options

 

SQL>

ERROR:

ORA-12154: TNS:could not resolve theconnect identifier specified

对于这种问题,排除添加的配置格式错误后。可能原因是读取的tnsnames.ora路径根本就不是$ORACLE_HOME/network/admin下。

注:tnsnames.ora文件的查找路径顺序为:

$HOME => $TNS_ADMIN => /etc =>$ORACLE_HOME/network/admin/。

 

现在我们已经有一个构建自己的Instant Client包的基础了。下面是Instant Client的核心文件(位于/home/hadoop/oracle/instantclient_11_2中):

1. libclntsh.so.11.1:客户端代码库

2. libociei.so:OCI InstantClient数据共享库

3. libnnz11.so:安全库

4. libocci.so.11.1:Oracle C++调用接口库

5. libocijdbc11.so:JDBC OCI库

6. ojdbc6/5.jar:JDBC驱动(OCI和Thin)

7. orai18n.jar:字符集转换和本地支持库

Tnsping

从安装Oracle的服务器上拷贝tnsping过来,执行命令:

$ cd /home/hadoop/oracle/instantclient_11_2

$ scp root@192.168.8.192:/u01/product/oracle/11.2.0/db_1/bin/tnsping./

 

现在让在IC安装服务器上尝试运行下它:

$ tnsping ora

 

TNS Ping Utility for Linux: Version11.2.0.4.0 - Production on 20-NOV-2014 14:30:21

 

Copyright (c) 1997, 2013, Oracle. All rights reserved.

 

Message 3511 not found; No message file forproduct=network, facility=TNSMessage 3512 not found; No message file forproduct=network, facility=TNSMessage 3513 not found; No message file forproduct=network, facility=TNSMessage 3509 not found; No message file forproduct=network, facility=TNS

运行后tnsping抱怨一些文件丢失,更具体的说一个消息文件丢失。现在,我们把该文件从Oracle安装服务器上拷贝过来,进入到instantclient_11_2目录:

$ mkdir -p network/mesg

$ cd network/mesg/

现在从安装Oracle服务上拷贝tnsus.msb文件到该目录中:

$ scp root@192.168.8.192:/u01/product/oracle/11.2.0/db_1/network/mesg/tnsus.msb ./

让我们再尝试一次tnsping,结果如下:

$ tnsping ora

 

TNS Ping Utility for Linux: Version11.2.0.4.0 - Production on 20-NOV-2014 14:49:54

 

Copyright (c) 1997, 2013, Oracle. All rights reserved.

 

Used parameter files:

 

 

Used TNSNAMES adapter to resolve the alias

Attempting to contact (DESCRIPTION=(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.8.161)(PORT =1521)))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = wcdma)))

OK (0 msec)

Sqlldr

本节将添加另外一个工具sqlldr。

首先,我们从安装Oracle的服务器上拷贝sqlldr到IC安装目录instantclient_11_2下。

$ cd /home/hadoop/oracle/instantclient_11_2

$ scproot@192.168.8.192:/u01/product/oracle/11.2.0/db_1/bin/sqlldr ./

尝试运行它:

$ sqlldr

Message 2100 not found; No message file forproduct=RDBMS, facility=ULMessage 2100 not found; No message file forproduct=RDBMS, facility=UL

首先我们需要在instantclient_11_2下创建rdbms/mesg目录。

$ cd /home/hadoop/oracle/instantclient_11_2

$ mkdir -p rdbms/mesg

$ cd rdbms/mesg

把ORACLE安装目录下rdmsb/mesg/ulus.msb拷贝到当前目录。

$ scp root@192.168.8.192:/u01/product/oracle/11.2.0/db_1/rdbms/mesg/ulus.msb./

现在,让我们再次尝试运行它。

$ sqlldr

 

SQL*Loader: Release 11.2.0.4.0 - Productionon Thu Nov 20 16:40:10 2014

 

Copyright (c) 1982, 2011, Oracle and/or itsaffiliates. All rights reserved.

 

 

Usage: SQLLDR keyword=value[,keyword=value,...]

 

Valid Keywords:

Exp/imp

从安装Oracle服务器上拷贝二进制文件过来。

$ cd /home/hadoop/oracle/instantclient_11_2

$ scp root@192.168.8.192:/u01/product/oracle/11.2.0/db_1/bin/imp ./
$ scp root@192.168.8.192:/u01/product/oracle/11.2.0/db_1/bin/exp ./

尝试运行imp和exp,结果如下:

$ imp

 

Message 100 not found; No message file forproduct=RDBMS, facility=IMP: Release 11.2.0.4.0 - Production on Thu Nov 2017:02:57 2014

 

Copyright (c) 1982, 2011, Orac

 

Invalid format of Import utility name

 

Verify that ORACLE_HOME is properly set

 

Import terminated unsuccessfully

 

IMP-00000: Message 0 not found; No messagefile for product=RDBMS, facility=IMP

$ exp

 

Message 206 not found; No message file forproduct=RDBMS, facility=EXP: Release 11.2.0.4.0 - Production on Thu Nov 20 17:03:392014

 

Copyright (c) 1982, 2011, Orac

 

Invalid format of Export utility name

 

Verify that ORACLE_HOME is properly set

 

Export terminated unsuccessfully

 

EXP-00000: Message 0 not found; No messagefile for product=RDBMS, facility=EXP

再从安装Oracle服务器上拷贝rdbms/mesg下的expus.msb和ipus.msb过来。

$ cd rdbms/mesg/

$ scproot@192.168.8.192:/u01/product/oracle/11.2.0/db_1/rdbms/mesg/impus.msb ./

$ scproot@192.168.8.192:/u01/product/oracle/11.2.0/db_1/rdbms/mesg/expus.msb ./

再次运行imp/exp工具错误提示消失,可以正常运行。

Tkprof

现在我们继续添加我最喜欢的工具tkprof。

从安装Oracle的服务器拷贝tkprof到instantclient_11_2目录下。

$ cd /home/hadoop/oracle/instantclient_11_2

$ scp root@192.168.8.192:/u01/product/oracle/11.2.0/db_1/bin/tkprof ./

$ mkdir -p oracore/mesg/

$ cd oracore/mesg/

$ scproot@192.168.8.192:/u01/product/oracle/11.2.0/db_1/oracore/mesg/lrmus.msb ./

使用示例:

$ tkprof test.trc test.out

Instant Client Bundle

现在,我们已经让所有工具都能正常工作。简单的使用工具压缩打包instantclient_11_2目录,这样你就获得你自己的Instant Client包。例如:

$ cd /home/hadoop/oracle

$ tar zcf instantclient_11_2.tar.gzintantclient_11_2

正如你所看到的,打包成的instant client带有tnsping,sqlldr, exp/imp,tkprof工具,这让IC更加的功能强大。

安装自定义的IC包步骤如下:

1. 上传到服务器上解压缩

2. 修改环境变量

$ vi ~/.bashrc

跳到文件的末尾,添加下面这些环境变量:

export ORACLE_IC_HOME=/instantclient_11_2

export ORACLE_HOME=$ORACLE_IC_HOME

export TNS_ADMIN=$ORACLE_IC_HOME

export PATH=$PATH:$ORACLE_IC_HOME

export LD_LIBRARY_PATH=$ORACLE_IC_HOME

exportCLASSPATH=$ORACLE_IC_HOME/ojdbc6.jar:./

$ source ~/. bashrc

或 $ . ~/.bashrc

3. 添加连接数据库的配置

$ vi $ORACLE_IC_HOME/tnsnames.ora

安装完成,现在就可以使用Instant Client中的工具啦!

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
mysql blob:制限はありますか?mysql blob:制限はありますか?May 08, 2025 am 12:22 AM

mysqlblobshavelimits:tinyblob(255bytes)、blob(65,535bytes)、mediumblob(16,777,215bytes)、andlongblob(4,294,967,295bytes).tousebl難易度:1)PROFFORMANCESANDSTORERGEBLOBSEXTERNALLY;

MySQL:ユーザーの作成を自動化するための最良のツールは何ですか?MySQL:ユーザーの作成を自動化するための最良のツールは何ですか?May 08, 2025 am 12:22 AM

MySQLでユーザーの作成を自動化するための最良のツールとテクノロジーには、次のものがあります。1。MySQLWorkBench、中小サイズの環境に適した、使いやすいがリソース消費量が高い。 2。アンシブル、マルチサーバー環境に適した、シンプルだが急な学習曲線。 3.カスタムPythonスクリプト、柔軟性がありますが、スクリプトセキュリティを確保する必要があります。 4。大規模な環境に適した人形とシェフ、複雑ですがスケーラブル。選択する際には、スケール、学習曲線、統合のニーズを考慮する必要があります。

mysql:blob内で検索できますか?mysql:blob内で検索できますか?May 08, 2025 am 12:20 AM

はい、youcansearchinsideablobinmysqlusingspecifictechniques.1)converttheblobtoautf-8stringwithconvert function andsearchusinglike.2)

MySQL文字列データ型:包括的なガイドMySQL文字列データ型:包括的なガイドMay 08, 2025 am 12:14 AM

mysqloffersvariousstringdatypes:1)charfofixed-lengthstrings、italforconsentlengtalikecountrycodes; 2)varcharforvariable-lengthstrings、適切なForfieldslikenames;

MySQLブロブのマスター:ステップバイステップのチュートリアルMySQLブロブのマスター:ステップバイステップのチュートリアルMay 08, 2025 am 12:01 AM

tomastermysqlblobs、soflowthesesteps:1)shoseetheapsosupturateblobtype(tinyblob、blob、mediumblob、longblob)basedOndatasize.2)insertDatausingload_fileforefficiency.3)storefilereferenceinsinsteadoffilestoimpeperformance.4)

MySQLのBLOBデータ型:開発者の詳細な概要MySQLのBLOBデータ型:開発者の詳細な概要May 07, 2025 pm 05:41 PM

blobdatatypesinmysqlareusedlarginglaredatalikeimagesorudio.1)useblobtypes(tinyblobtolongblob)Basedatasizeneeds。 2)storeblobsin perplate petooptimize performance.3)scondididididididididersxternalストレージBlob Romanaデータベースindimprovebackupe

コマンドラインからMySQLにユーザーを追加する方法コマンドラインからMySQLにユーザーを追加する方法May 07, 2025 pm 05:01 PM

toadduserstomysqlfromthecommandline、loginasroot、thenusecreateuser'username '@' host'ident'ident'identifidedby'password '; tocreateanewuser.grantpermissions with grantpermissions with grantalgegesondatabase

mysqlの文字列データ型は何ですか?詳細な概要mysqlの文字列データ型は何ですか?詳細な概要May 07, 2025 pm 03:33 PM

mysqlofferseightStringDatatypes:char、varchar、binary、varbinary、blob、text、enum、andset.1)charisfixed-length、yealforconsistent datalikecountrycodes.2)varcharisvariable length、efficational forvaryingdatalikenames.3)binaryandvanterbinarydata a similati

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

DVWA

DVWA

Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

mPDF

mPDF

mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

WebStorm Mac版

WebStorm Mac版

便利なJavaScript開発ツール

VSCode Windows 64 ビットのダウンロード

VSCode Windows 64 ビットのダウンロード

Microsoft によって発売された無料で強力な IDE エディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい