熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Oracle >> 正文

如何在你的Linux機器安裝Oracle

2013-11-13 15:55:08  來源: Oracle 

  開始行動
  在RedHat上安裝Oracle可以是相當輕而易舉的但要是完全跟著Oracle公司的文檔走就未必那麼容易了 最快的捷徑是Tom Bisset的主頁
  
  如果您看了Tom的主頁那麼您會注意到他漏了JDBC的安裝如果您准備使用JDBC(對於跨平台的Oracle應用十分方便)只需在安裝屏幕要求您選擇組件(components)時加上該選項即可當然您應該先裝好JDK我個人使用Blackdown的JDK (譯注Redhat包括JDK)然後需要設置oracle
  用戶的ClassPath環境變量最好的辦法是在oracle用戶目錄的bash_profile 或 profile中加上一句
  CLASSPATH=/usr/lib/jdk/lib/classeszip; export CLASSPATH
  然後如果您只需做Web Applet的話在安裝程序Choose JDBC
  Components的時候 選擇JDK JDBC Thin Driver如果您需要做完整的Java應用選擇JDK JDBC OCI Driver
  另外請注意安裝程序讓您輸入各口令時如果口令不符合規范不會警告我第一次安裝時口令裡加了這在UNIX中是允許的Oracle就是另一碼事了直到安裝快結束時程序才告訴我口令有問題當時為保險 起見我從頭做了一次安裝
  安裝程序的另一個問題是試圖往還沒有建立的目錄裡拷貝文件有必要在安裝前
  mkdir p /u/app/oracle/product//doc/server/install這一
  關過後萬事大吉
  安裝成功後必須以ROOT身份登錄運行rootsh我對rootsh作了以下改動
  · LBIN環境變量從/usr/lbin改成了/usr/local/bin
  · 增加環境變量LOG=/tmp/oraclerootshlog
  這樣腳本的運行結果會記錄
  下來
  rootsh裡說到要想數據庫作為一個服務器運行必須先設定TWO_TASK變量但是事實上如果從安裝Oracle的機器上運行rootsh就沒有必要設這個變量
  Python和Oracle
  我配置了一下python(譯注一種強大快速的面向對象的腳本語言)以測試Oracle的編程接口和網絡接口 在python中要連Oracle需要Digital Creation(Zope應用服務器的作者)的DCOracle模塊您只需下載軟件並按照指示照做就行如果是DCOracle 使用
  Setup的配置從ORACLE_LIBS變量中刪去lsocket lnsl lgen
  lelf laiolposix即可那些都是Solaris專用的注意Redhat 中安裝的 python設置不全config目錄和include目錄被省略無法編譯安裝第三方的模塊您必須自己編譯python或者下載一個合適的RPM找python的RPM最好的去處可能是Oliver Andrich的 Python & Linux主頁
  只要rpm e nodeps python 然後 rpm i pythonpythondev和其他RPM即可裝好python後我運行了以下的基本查詢訪問Oracle
  [uche@malatesta uche]$ python
  Python (# Sep ::) [GCC ] on linuxi
  Copyright Stichting Mathematisch Centrum Amsterdam
  >>> import DCOracle
  >>> #connect to DB scott/tiger are the test database username/password
  >>> dbc=DCOracleConnect(scott/tiger@sforza) #sforza is the local
  Oracle
  server
  >>> c = dbccursor()
  >>> cexecute(SELECT * FROM emp WHERE empdeptno = )
  >>> rows = cfetchall()
  >>> print rows
  [( CLARK MANAGER dbiDate( ::)
  None )
  ( KING PRESIDENT None dbiDate( ::)
  None )
  ( MILLER CLERK dbiDate( ::)
  None )]
  開發工作站配置
  我在數據庫服務器以外的一台機器上編譯安裝了python和其他編程接口最初看起來似乎我必須安裝Oracle 的所有PRO*C/C++軟件包但要把Oracle安裝程序運行到那一步也夠麻煩的所以我不想那樣辦於是我找出了寫程序所需要的最小限量的頭文件(include)對象文件(object)和庫文件(library):
  $ORACLE_HOME/lib/*
  $ORACLE_HOME/rdbms/demo/*
  $ORACLE_HOME/rdbms/lib/*
  我的機器上設ORACLE_HOME為/usr/local/oracle
  注意這些文件還不能讓您可以在C程序中直接嵌入SQL語句只有完整安裝PRO*C/C++後才行如果要用JAVA的話還得增加$ORACLE_HOME/jdbc/lib/*
  注意把這個目錄加到ClASSPATH變量中
  JDBC連接
  為測試JDBC連接我作了一個小程序在一個listbox內顯示測試庫中的所有雇員名下面的程序是調用JDBC的java Applet程序是調用JAVA程序的HTML超文本如果您的JDBC已經安裝成功將程序拷貝為 JDBCTestjava將程序拷貝為l然後
  javac JDBCTestjava
  appletviewer l
  您就可以自己看看結果如何了
  程序
  /*
  Applet that reads in several rows from a remote Oracle database
  and presents them in a listbox
  */
  import javasql*;
  import javaawt*;
  import javaapplet*;
  import javalang*;
  public class JDBCTest extends Applet
  {
  //Singleselect ListBox
  private List employee_list = new List( false)
  public void init()
  {
  setLayout(new BorderLayout());
  try {
  //Set up the Oracle JDBC driver
  DriverManagerregisterDriver(new oraclejdbcdriverOracleDriver());
  //Connect to an Oracle database on machine sforza using username
  //scott and password tiger
  Connection DB_conn = DriverManagergetConnection
  (jdbc:oracle:thin:@sforza::ORCL scott tiger);
  //Connection DB_conn = DriverManagergetConnection
  (jdbc:oracle:thin:scott/tiger@sforza::ORCL);
  //Create a JDBC statement object
  Statement statement_obj = DB_conncreateStatement();
  //Execute a query to get the employee names from the test DB
  ResultSet results = statement_objexecuteQuery (select ENAME from
  EMP);
  //Populate the list box with all the employee names
  while (resultsnext ()){
  employee_listadd(resultsgetString());
  }
  } catch (SQLException e) {
  throw new RuntimeException(SQL Exception + egetMessage());
  }
  add(employee_list);
  }
  }
  程序
  //IETF//DTD HTML//EN>
  
  
  程序的大部分都是與具體數據庫無關的JDBC調用依樣畫葫蘆您也可以
  訪問PostgresQL主要和Oracle相
  關的部分是
  Connection DB_conn = DriverManagergetConnection
  (jdbc:oracle:thin:@sforza::ORCL scott tiger);
  注意 Oracle thin JDBC driver中URI的格式
  jdbc:oracle:thin:@::
  如果您想在URI中包括用戶名和口令的話
  jdbc:oracle:thin:username/password@::
  
  同樣的URI還有一個較長的格式
  jdbc:oracle:thin:@(description=(address=(host=  _IP>)(protocol
  =tcp)(port=))(connect_data=(sid=)))
  注意ORCL是系統安裝的缺省SID(System Identifier系統標識符)
  如果您在安裝時使用了其他的SID
  在URI裡也用那個SID$ORACLE_HOME/network/admin/tnsnamesora包括了Oracle服務器的端口和SID設置這是TNS ListenerOracle網絡連接進程的配置文件如果您無法通過網絡連接數據庫的話首先應該檢查端口號和SID是否正確TNS listner是否正常(譯注lsnrctl status或者tnsping)JDBC並不是開發SQL數據庫應用的唯一手段ANSI標准SQLJ允許在JAVA程序中直接嵌入SQL語句Oracle for Linux 並沒有捆綁SQLJ但可以作為另一個獨立產品獲得SQLJ是%的JAVA應該在Linux上運行沒有問題事實上SQLJ在底層使用的就是JDBC因此可以同任何SQL數據庫互聯並不限於Oracle
  希望上面的這些例子能對您的編程有所幫助可惜Oracle for Linux
  的編程文檔相當的少要不就是隱藏得十分深:) 也許在數據庫編程得心應手之前您得先啃它一兩本書
  PL/SQL
  對SQL的過程性語言擴展(PL/SQL)可能是Oracle最著名的特點這種
  強大的專業數據庫管理語言允許您對
  聲明性的SQL加邏輯控制一般PL/SQL的存儲過程(stored procedure)用命令行的sqlplus圖形化
From:http://tw.wingwit.com/Article/program/Oracle/201311/17513.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.