Ⅰ 在window環境和Linux環境下怎麼用PHP連接oracle資料庫,具體的步驟怎麼做怎麼載入模塊載入哪些模塊
windows和Linux都能執行
Oracle Call Interface(OCI)使用戶可以訪問 Oracle 10,Oracle9,Oracle8 和 Oracle7 資料庫。支持將 PHP 變數與 Oracle 佔位符(placeholder)綁定,具有完整的 LOB,FILE 和 ROWID 支持,以及允許使用用戶提供的定義變數。
例子 1. 基本查詢
<?php
$conn = oci_connect('hr', 'hr', 'orcl');
if (!$conn) {
$e = oci_error();
print htmlentities($e['message']);
exit;
}
$query = 'SELECT * FROM DEPARTMENTS';
$stid = oci_parse($conn, $query);
if (!$stid) {
$e = oci_error($conn);
print htmlentities($e['message']);
exit;
}
$r = oci_execute($stid, OCI_DEFAULT);
if(!$r) {
$e = oci_error($stid);
echo htmlentities($e['message']);
exit;
}
print '<table border="1">';
while($row = oci_fetch_array($stid, OCI_RETURN_NULLS)) {
print '<tr>';
foreach($row as $item) {
print '<td>'.($item?htmlentities($item):' ').'</td>';
}
print '</tr>';
}
print '</table>';
oci_close($conn);
?>
例子 2. 用綁定變數插入
<?php
// Before running, create the table:
// CREATE TABLE MYTABLE (mid NUMBER, myd VARCHAR2(20));
$conn = oci_connect('scott', 'tiger', 'orcl');
$query = 'INSERT INTO MYTABLE VALUES(:myid, :mydata)';
$stid = oci_parse($conn, $query);
$id = 60;
$data = 'Some data';
oci_bind_by_name($stid, ':myid', $id);
oci_bind_by_name($stid, ':mydata', $data);
$r = oci_execute($stid);
if($r)
print "One row inserted";
oci_close($conn);
?>
例子 3. 將數據插入到 CLOB 列中
<?php
// Before running, create the table:
// CREATE TABLE MYTABLE (mykey NUMBER, myclob CLOB);
$conn = oci_connect('scott', 'tiger', 'orcl');
$mykey = 12343; // arbitrary key for this example;
$sql = "INSERT INTO mytable (mykey, myclob)
VALUES (:mykey, EMPTY_CLOB())
RETURNING myclob INTO :myclob";
$stid = oci_parse($conn, $sql);
$clob = oci_new_descriptor($conn, OCI_D_LOB);
oci_bind_by_name($stid, ":mykey", $mykey, 5);
oci_bind_by_name($stid, ":myclob", $clob, -1, OCI_B_CLOB);
oci_execute($stid, OCI_DEFAULT);
$clob->save("A very long string");
oci_commit($conn);
// Fetching CLOB data
$query = 'SELECT myclob FROM mytable WHERE mykey = :mykey';
$stid = oci_parse ($conn, $query);
oci_bind_by_name($stid, ":mykey", $mykey, 5);
oci_execute($stid, OCI_DEFAULT);
print '<table border="1">';
while ($row = oci_fetch_array($stid, OCI_ASSOC)) {
$result = $row['MYCLOB']->load();
print '<tr><td>'.$result.'</td></tr>';
}
print '</table>';
?>
可以很容易地訪問存儲過程,就和從命令行訪問一樣。 例子 4. 使用存儲過程
<?php
// by webmaster at remoterealty dot com
$sth = oci_parse($dbh, "begin sp_newaddress( :address_id, '$firstname',
'$lastname', '$company', '$address1', '$address2', '$city', '$state',
'$postalcode', '$country', :error_code );end;");
// This calls stored procere sp_newaddress, with :address_id being an
// in/out variable and :error_code being an out variable.
// Then you do the binding:
oci_bind_by_name($sth, ":address_id", $addr_id, 10);
oci_bind_by_name($sth, ":error_code", $errorcode, 10);
oci_execute($sth);
?>
連接處理
OCI8 擴展提供了 3 個不同函數來連接 Oracle。取決於用戶來使用對自己的應用程序最合適的函數。本節的信息有助於用戶作出合適的選擇。
連接到 Oracle 伺服器從所需的時間上來講是個相當花費的操作。oci_pconnect() 函數使用了一個連接的持久緩沖區,可以被不同的腳本請求重復使用。這意味著通常在每個 PHP 進程(或 Apache 子進程)中只需要連接一次。
如果應用程序連接 Oracle 時對每個 web 用戶都使用了不同的認證信息,則由 oci_pconnect() 使用的持久緩沖區就用處不大了,因為隨著並發用戶的增加,到某個程度後會由於要保持太多的空閑連接而對 Oracle 伺服器的整體性能起到逆反的影響。如果應用程序是這樣的架構,建議要麼用 oci8.max_persistent 和 oci8.persistent_timeout 配置選項(此二者可以使用戶控制持久連接緩沖區的大小和生命周期)來協調應用程序,要麼用 oci_connect() 來連接。
oci_connect() 和 oci_pconnect() 都使用了一個連接緩沖區。如果在某個腳本中用同樣的參數多次調用 oci_connect(),則第二個和之後的調用會返回已有的連接句柄。oci_connect() 使用的連接緩沖區會在腳本執行完畢後或者明確地關閉了連接句柄時被清空。oci_pconnect() 有相似的行為,不過其緩沖區獨立地維持著並在不同請求之間都存活著。
要記住此緩沖特性,因為它使兩個句柄沒有在事務級隔離開來(事實上是同一個連接句柄,因此沒有任何方式的隔離)。如果應用程序需要兩個獨立的,事務級隔離的連接,應該使用 oci_new_connect()。
oci_new_connect() 總是創建一個到 Oracle 伺服器的新連接,不管其它連接是否已經存在。高流量的 web 應用應該避免使用 oci_new_connect(),尤其是在程序最忙的部分。
有關於它的其他函數:
目錄
OCI-Collection->append -- 向 collection 增加單元
OCI-Collection->assign -- 從現有的另一個 collection 向 collection 賦值
OCI-Collection->assignElem -- 給 collection 中的單元賦值
OCI-Collection->free -- 釋放關聯於 collection 的對象的資源
OCI-Collection->getElem -- 返回單元的值
OCI-Collection->max -- 返回 collection 中單元的最大數目
OCI-Collection->size -- 返回 collection 中的單元數目
OCI-Collection->trim -- 從 collection 尾端開始刪除單元
OCI-Lob->append -- Appends data from the large object to another large object
OCI-Lob->close -- 關閉 LOB 描述符
OCI-Lob->eof -- Tests for end-of-file on a large object's descriptor
OCI-Lob->erase -- Erases a specified portion of the internal LOB data
OCI-Lob->export -- 將 LOB 的內容導出到文件中
OCI-Lob->flush -- Flushes/writes buffer of the LOB to the server
OCI-Lob->free -- 釋放與 LOB 描述符所關聯的資源
OCI-Lob->getBuffering -- Returns current state of buffering for the large object
OCI-Lob->import -- 將數據從文件導入 LOB
OCI-Lob->load -- 返回大對象的內容
OCI-Lob->read -- Reads part of the large object
OCI-Lob->rewind -- Moves the internal pointer to the beginning of the large object
OCI-Lob->save -- 將數據保存到大對象中
OCI-Lob->seek -- Sets the internal pointer of the large object
OCI-Lob->setBuffering -- Changes current state of buffering for the large object
OCI-Lob->size -- Returns size of large object
OCI-Lob->tell -- Returns current position of internal pointer of large object
OCI-Lob->truncate -- Truncates large object
OCI-Lob->write -- Writes data to the large object
OCI-Lob->writeTemporary -- 寫入一個臨時的大對象
oci_bind_by_name -- 綁定一個 PHP 變數到一個 Oracle 位置標志符
oci_cancel -- 取消從游標讀取數據
oci_close -- 關閉 Oracle 連接
oci_commit -- 提交未執行的事務處理
oci_connect -- 建立一個到 Oracle 伺服器的連接
oci_define_by_name -- 在 SELECT 中使用 PHP 變數作為定義的步驟
oci_error -- 返回上一個錯誤
oci_execute -- 執行一條語句
oci_fetch_all -- 獲取結果數據的所有行到一個數組
oci_fetch_array -- Returns the next row from the result data as an associative or numeric array, or both
oci_fetch_assoc -- Returns the next row from the result data as an associative array
oci_fetch_object -- Returns the next row from the result data as an object
oci_fetch_row -- Returns the next row from the result data as a numeric array
oci_fetch -- Fetches the next row into result-buffer
oci_field_is_null -- 檢查欄位是否為 NULL
oci_field_name -- 返回欄位名
oci_field_precision -- 返回欄位精度
oci_field_scale -- 返回欄位范圍
oci_field_size -- 返回欄位大小
oci_field_type_raw -- 返回欄位的原始 Oracle 數據類型
oci_field_type -- 返回欄位的數據類型
oci_free_statement -- 釋放關聯於語句或游標的所有資源
oci_internal_debug -- 打開或關閉內部調試輸出
oci_lob_ -- Copies large object
oci_lob_is_equal -- Compares two LOB/FILE locators for equality
oci_new_collection -- 分配新的 collection 對象
oci_new_connect -- 建定一個到 Oracle 伺服器的新連接
oci_new_cursor -- 分配並返回一個新的游標(語句句柄)
oci_new_descriptor -- 初始化一個新的空 LOB 或 FILE 描述符
oci_num_fields -- 返回結果列的數目
oci_num_rows -- 返回語句執行後受影響的行數
oci_parse -- 配置 Oracle 語句預備執行
oci_password_change -- 修改 Oracle 用戶的密碼
oci_pconnect -- 使用一個持久連接連到 Oracle 資料庫
oci_result -- 返回所取得行中欄位的值
oci_rollback -- 回滾未提交的事務
oci_server_version -- 返回伺服器版本信息
oci_set_prefetch -- 設置預提取行數
oci_statement_type -- 返回 OCI 語句的類型
ocibindbyname -- oci_bind_by_name() 的別名
ocicancel -- oci_cancel() 的別名
ocicloselob -- OCI-Lob->close 的別名
ocicollappend -- OCI-Collection->append 的別名
ocicollassign -- OCI-Collection->assign 的別名
ocicollassignelem -- OCI-Collection->assignElem 的別名
ocicollgetelem -- OCI-Collection->getElem 的別名
ocicollmax -- OCI-Collection->max 的別名
ocicollsize -- OCI-Collection->size 的別名
ocicolltrim -- OCI-Collection->trim 的別名
ocicolumnisnull -- oci_field_is_null() 的別名
ocicolumnname -- oci_field_name() 的別名
ocicolumnprecision -- oci_field_precision() 的別名
ocicolumnscale -- oci_field_scale() 的別名
ocicolumnsize -- oci_field_size() 的別名
ocicolumntype -- oci_field_type() 的別名
ocicolumntyperaw -- oci_field_type_raw() 的別名
ocicommit -- oci_commit() 的別名
ocidefinebyname -- oci_define_by_name() 的別名
ocierror -- oci_error() 的別名
ociexecute -- oci_execute() 的別名
ocifetch -- oci_fetch() 的別名
ocifetchinto -- 獲取下一行到一個數組
ocifetchistatement -- oci_fetch_all() 的別名
ocifreecollection -- OCI-Collection->free 的別名
ocifreecursor -- oci_free_statement() 的別名
ocifreedesc -- OCI-Lob->free 的別名
ocifreestatement -- oci_free_statement() 的別名
ociinternaldebug -- oci_internal_debug() 的別名
ociloadlob -- OCI-Lob->load 的別名
ocilogoff -- oci_close() 的別名
ocilogon -- oci_connect() 的別名
ocinewcollection -- oci_new_collection() 的別名
ocinewcursor -- oci_new_cursor() 的別名
ocinewscriptor -- oci_new_descriptor() 的別名
ocinlogon -- oci_new_connect() 的別名
ocinumcols -- oci_num_fields() 的別名
ociparse -- oci_parse() 的別名
ociplogon -- oci_pconnect() 的別名
ociresult -- oci_result() 的別名
ocirollback -- oci_rollback() 別名
ocirowcount -- oci_num_rows() 的別名
ocisavelob -- OCI-Lob->save 的別名
ocisavelobfile -- OCI-Lob->import 的別名
ociserverversion -- oci_server_version() 的別名
ocisetprefetch -- oci_set_prefetch() 的別名
ocistatementtype -- oci_statement_type() 的別名
ociwritelobtofile -- OCI-Lob->export 的別名
ociwritetemporarylob -- OCI-Lob->writeTemporary 的別名
Ⅱ 怎樣在Linux系統下 安裝Oracle
RedHat AS4下安裝oracle 10g 系統要求: 1、物理內存:512M 2、交換空間2G 3、禁用secure Linux 一、下載軟體 Oracle Database 10g Release 2 (10.2.0.1) Software下載位置: http://otn.oracle.com/software/pro...10g/index.html 解壓軟體 1.解壓命令:unzip 10201_database_linux32.zip 2.為了安裝和以後使用方便,可以把database目錄的內容做成iso光碟映象文件. 3.安裝的時候用mount命令的 -o loop參數掛載在/mnt/cdrom目錄下面,執行安裝。 二、參數修改 2、修改host文件 在/etc/hosts文件中添加一個全限定域名,如: 127.0.0.1 linuxas linuxas.domain.com linuxas 3、設置核心參數 1、在/etc/sysctl.conf文件中加入下列行: kernel.shmall = 2097152 kernel.shmmax = 2147483648 kernel.shmmni = 4096 kernel.sem = 250 32000 100 128 fs.file-max = 65536 net.ipv4.ip_local_port_range = 1024 65000 net.core.rmem_default=262144 net.core.rmem_max=262144 net.core.wmem_default=262144 net.core.wmem_max=262144 2、運行下列命令改變核心參數: /sbin/sysctl -p 3、在/etc/security/limits.conf文件中加入下列行: * soft nproc 2047 * hard nproc 16384 * soft nofile 1024 * hard nofile 65536 4、在/etc/pam.d/login文件中加入下列行: session required /lib/security/pam_limits.so 5、通過編輯/etc/selinux/config 文件禁用secure linux,確認其中的SELINUX標記如下:SELINUX=disabled。 也可以通過GUI工具(Applications > System Settings > Security Level),選擇SELinux禁用該屬性。 這個選項在安裝系統的時候,如果一經設置就不需要修改。 6、檢查下列包是否安裝,若未安裝則要先安裝: # From RedHat AS4 Disk 2 setarch-1.6-1.i386.rpm compat-libstdc++-33-3.2.3-47.3.i386.rpm make-3.80-5.i386.rpm glibc-2.3.4-2.i386.rpm # From RedHat AS4 Disk 3 openmotif-2.2.3-6.RHEL4.2.i386.rpm compat-db-4.1.25-9.i386.rpm lio-0.3.102-1.i386.rpm gcc-3.4.3-9.EL4.i386.rpm # From RedHat AS4 Disk 4 compat-gcc-32-3.2.3-47.3.i386.rpm compat-gcc-32-c++-3.2.3-47.3.i386.rpm 你可以使用rpm命令查看系統中是否已經安裝上述軟體包 例如你想查看所有以compat開頭的軟體包,可以執行命令:rpm -qa|grep compat 三、創建下列組和用戶 groupadd oinstall groupadd dba groupadd oper useradd -g oinstall -G dba oracle passwd oracle 3.創建安裝oracle的目錄 mkdir -p /u01/app/oracle/proct/10.2.0/db_1 mkdir -p /u02/oradata chown -R oracle.oinstall /u01 /u02/oradata 說明:/u01/app/oracle/proct/10.2.0/db_1目錄是用於放置程序文件的位置。 /u02/oradata目錄用於放置資料庫文件的位置,在安裝的時候一定要確認安裝的位置正確。 四、設置oracle用戶的環境變數 用oracle登錄把下列行加在.bash_profile文件末尾,注意把其中ORACLE_SID換成自己的實例名: # Oracle Settings TMP=/tmp; export TMP TMPDIR=$TMP; export TMPDIR ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE ORACLE_HOME=$ORACLE_BASE/proct/10.2.0/db_1; export ORACLE_HOME ORACLE_SID=TEST; export ORACLE_SID ORACLE_TERM=xterm; export ORACLE_TERM PATH=/usr/sbin:$PATH; export PATH PATH=$ORACLE_HOME/bin:$PATH; export PATH LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib; export LD_LIBRARY_PATH CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib; export CLASSPATH #LD_ASSUME_KERNEL=2.4.1; export LD_ASSUME_KERNEL if [ $USER = "oracle" ]; then if [ $SHELL = "/bin/ksh" ]; then ulimit -p 16384 ulimit -n 65536 else ulimit -u 16384 -n 65536 fi fi 五、安裝 用mount -o loop /.../oracle10.2.0.iso /mnt/cdrom/ 命令掛載光碟映象文件到光碟機 運行:/mnt/cdrom/runInstaller 在安裝過程中輸入合適的ORACLE_HOME和實例名。 例如: ORACLE_HOME(oracle主目錄):/u01/app/oracle/proct/10.2.0/db_1 實例名:test 數據文件位置:/u02/oradata 完成後的畫面中會有管理端入口地址和sqlplus入口地址。 安裝後配置 修改oratab文件,在/etc/oratab文件中添加下面的一行, TEST:/u01/app/oracle/proct/10.2.0/db_1:Y 六、配置: 安裝完成後,第一次啟動是沒有問題的,但是,重啟動計算機後,你必需通過手工或者腳本啟動資料庫。 1、手工啟動資料庫:以oracle用戶執行dbstart,這個命令在我安裝完成後,出現錯誤,我就把這個腳本修改了一下, 利用文本編輯器打開dbstart, 把78行的 ORACLE_HOME_LISTNER=/ade/vikrkuma_new/oracle換成你自己的路徑。 ORACLE_HOME_LISTNER=/u01/app/oracle/proct/10.2.0/db_1/ 關閉資料庫用dbshut就可以了。 如果你需要使用isqlplus管理資料庫,就要啟動isqlplus,運行命令:isqlplusctl start | stop 要使用基於web的企業管理器,就要運行命令:emctl start | stop dbconsole
Ⅲ windows中的web應用jdbc連接Linux中的oracle,linux防火牆如何限定只有這台伺服器可以連接1521埠
可以讓Oracle的listener只允許Windows的IP連接,例如:
cd $ORACLE_HOME/network/admin
vi sqlnet.ora
# sqlnet.ora Network Configuration File: /oracle/app/10g/network/admin/sqlnet.ora
# Generated by Oracle configuration tools.
SQLNET.RECV_TIMEOUT = 0
SQLNET.EXPIRE_TIME = 0
SQLNET.SEND_TIMEOUT = 0
SQLNET.INBOUND_CONNECT_TIMEOUT = 0
tcp.validnode_checking = yes
tcp.invited_nodes=(192.168.1.1)
tcp.excluded_nodes=()
重啟listener
Ⅳ 如何使用Linux+Oracle+tomcat搭建web伺服器
安裝linux操作系統,安裝jdk,安裝tomcat配置環境變數,更改tomcat配置文件,寫入資料庫連接信息,比如:
通過tomcat連接192.168.1.100上的oracle資料庫,其中sid為orcl
[tomcat@localhost classes]# pwd
/home/tomcat/apache-tomcat-6.0.1/webapps/***/WEB-INF/classes
[tomcat@localhost classes]# vim hibernate.properties
jdbc.url=jdbc:oracle:thin:@192.168.1.100:1521:orcl
Ⅳ Oracle Linux 是什麼
是Oracle基於red hat enterprise linux推出的一個發行版,重點強調對他自己的oracle資料庫性能提升。
還有類似的vmware linux,也是基於red hat的,同樣重點強調自己的VMWARE性能提升。
Ⅵ 我在linux下裝了個oracle 10G,進入WEB頁面的企業管理器里,按鈕的字變成了方塊,怎麼辦
internet 選項裡面,把語言改成英語或者同時有中文和英文,英文在前。這個是最簡單的方法
Ⅶ 虛擬機裡面裝linux,然後怎麼在linux下裝oracle或者webService
在虛擬機Linux里安裝Oracle與在真實Linux系統上安裝步驟是一樣的。
安裝Oracle之前需要做很多准備工作,准備工作做完了,執行Oracle的安裝程序就是圖形界面了,那反而簡單了。給你個文檔參考以下吧
http://user.qzone.qq.com/112462748/infocenter#!app=2&pos=catalog_list
Ⅷ 如何把oracle服務加到linux啟動項
Linux下建立Oracle服務及其開機自啟動
說明:以下操作環境在CentOS 6.4 + Oracle 11gR2(Oracle安裝在ORACLE_BASE=/opt/oracle中,其ORACLE_HOME=/opt/oracle/11g)
用OUI安裝並配置Oracle資料庫後,Oracle就開啟了(包括:資料庫實例、監聽器、EM)。在重啟操作系統之後,Oracle默認是沒有啟動的。使用如下命令查看Oracle相關服務是否已啟動:
ps aux | grep ora_ #若無ora_**_**相關的進程,則oracle資料庫實例未啟動
netstat -tlnup | grep 1521 #若無任何顯示,則監聽器未啟動
lsnrctl status #查看監聽器狀態
netstat -tlnup | grep 1158 #若無任何顯示,則EM未啟動
emctl status dbconsole #查看EM狀態
手工啟動Oracle實例,可用sqlplus建立一個idle instance,然後再用startup啟動,如下:
資料庫實例啟動之後,需啟動監聽器,才能讓遠程用戶建立連接。可使用如下命令啟動監聽器:
lsnrctl start
Oracle還提供網頁版的管理器,要使用該管理器需啟動相關服務,使用如下命令啟動:
emctl start dbconsole
至此,可在web瀏覽器中輸入:https://{主機IP 或 主機名 或 本地localhost}:1158/em,打開管理器,使用相關帳號登錄進行資料庫查看和管理。
如果每次重啟操作系統都要進行以上操作好麻煩,那麼如何讓Oracle作為系統服務在開機的時候自動啟動呢?
Oracle在$ORACLE_HOME/bin下提供許多對資料庫進行操作的腳本,其中dbstart和dbshut可分別用來啟動和關閉資料庫。注意,這兩個腳本已包含監聽器的啟動或關閉,但並未對EM進行相關的操作。使用如下命令:
/opt/oracle/11g/bin/dbstart /opt/oracle/11g #啟動資料庫實例(包含監聽器)
/opt/oracle/11g/bin/dbshut /opt/oracle/11g #關閉資料庫實例(包括監聽器)
以上命令要成功啟動資料庫實例還得打開Oracle設置的一個關卡:vi /etc/oratab,修改行:
orcl:/opt/oracle/11g:Y #默認為orcl:/opt/oracle/11g:N
以root身份建立開機啟動oracle服務的腳本:vi /etc/init.d/oracle,添加如下腳本:
復制代碼
#!/bin/sh
#chkconfig: 2345 20 80
#description: Oracle dbstart / dbshut
#以上兩行為chkconfig所需
ORA_HOME=/opt/oracle/11g
ORA_OWNER=oracle
LOGFILE=/var/log/oracle.log
echo "#################################" >> ${LOGFILE}
date +"### %T %a %D: Run Oracle" >> ${LOGFILE}
if [ ! -f ${ORA_HOME}/bin/dbstart ] || [ ! -f ${ORA_HOME}/bin/dbshut ]; then
echo "Error: Missing the script file ${ORA_HOME}/bin/dbstart or ${ORA_HOME}/bin/dbshut!" >> ${LOGFILE}
echo "#################################" >> ${LOGFILE}
exit
fi
start(){
echo "###Startup Database..."
su - ${ORA_OWNER} -c "${ORA_HOME}/bin/dbstart ${ORA_HOME}"
echo "###Done."
echo "###Run database control..."
su - ${ORA_OWNER} -c "${ORA_HOME}/bin/emctl start dbconsole"
echo "###Done."
}
stop(){
echo "###Stop database control..."
su - ${ORA_OWNER} -c "${ORA_HOME}/bin/emctl stop dbconsole"
echo "###Done."
echo "###Shutdown Database..."
su - ${ORA_OWNER} -c "${ORA_HOME}/bin/dbshut ${ORA_HOME}"
echo "###Done."
}
case "$1" in
'start')
start >> ${LOGFILE}
;;
'stop')
stop >> ${LOGFILE}
;;
'restart')
stop >> ${LOGFILE}
start >> ${LOGFILE}
;;
esac
date +"### %T %a %D: Finished." >> ${LOGFILE}
echo "#################################" >> ${LOGFILE}
echo ""
復制代碼
使用如下命令將 /etc/init.d/oracle 置為可執行文件:
chmod a+x /etc/init.d/oracle
至此,可使用如下命令對oracle進行啟動和關閉
/etc/init.d/oracle start #啟動oracle(包括資料庫實例、監聽器、EM)
/etc/init.d/oracle stop #關閉oracle
/etc/init.d/oracle restart #重啟oracle
將 oracle 添加到 chkconfig中:
chkconfig --add oracle
可使用如下命令查看和設置oracle服務的開機啟動級別:
chkconfig | grep oracle #查看oracle服務的開機啟動級別
chkconfig --level 24 oracle off #修改oracle服務的開機啟動級別
chkconfig --level 35 oracle on
至此可使用如下命令對oracle的啟動或關閉進行管理
service oracle start #啟動
service oracle stop #關閉
service oracle restart #重啟
建立連接:
ln -s /etc/init.d/oracle /etc/rc0.d/K01oracle #關機執行
ln -s /etc/init.d/oracle /etc/rc6.d/K01oracle #重啟執行
Ⅸ linux下怎麼安裝oracle
參考oracle網站
第 1 部分:安裝 Linux
本指南採用具有以下硬體配置的伺服器:
兩個 800MHz Pentium III CPU
512MB RAM
兩個 SCSI 主機適配器 (Ultra SCSI 160)
八個 SCSI 磁碟驅動器 (2 x 9GB + 6 x 36GB)
一個 100Base-T 乙太網適配器
一個 1000Base-T 乙太網適配器
對磁碟進行配置,使每個 SCSI 主機適配器連接到一個 9GB 磁碟和三個 36GB 磁碟。
請注意,盡管這根本算不上是一個「強大」的設置,但即便是使用再低的設置也可以完成本指南介紹的大部分任務。基本資料庫安裝只需要一個 CPU、512MB 內存和一個可用空間至少為 6.5GB 的磁碟驅動器(IDE、SCSI 或 FireWire)。
現在,我們將逐步演示在伺服器上安裝 Linux 操作系統的過程。本文假設進行 Linux 系統全新安裝(有別於升級),並假設伺服器為 Oracle 所專用,且伺服器上沒有其他操作系統或數據。
Red Hat Enterprise Linux 2.1
Oracle 10g 經認證可以在 Red Hat Enterprise Linux 2.1(Advanced Server 和 Enterprise Server)(Update 3) 或更高版本上運行。Red Hat Network (RHN) 提供更新,這些更新可以作為用於創建 CD 的 ISO 文件或作為單個程序包更新下載。
要對全新 Linux 安裝應用更新,最簡單、最快速的方法是使用更新 CD 執行安裝。如果 Linux 已經安裝或 CD 上沒有更新,則可以通過 RHN 應用這些更新。由於本指南針對的是全新 Linux 安裝,因此您將使用更新 CD。
使用更新 CD 集中的第一張 CD 啟動伺服器。
您可能需要更改 BIOS 設置,以允許從 CD 啟動。
啟動屏幕上出現時在底部顯示 boot:。
選擇 Enter,從控制台上執行圖形安裝。(對於其他安裝方法和選項,請參閱 Red Hat 安裝指南。)
安裝程序掃描硬體,短暫顯示 Red Hat 閃屏,然後開始顯示一系列屏幕提示。
選擇語言
接受默認值。
配置鍵盤
接受默認值。
配置滑鼠
接受默認值。
安裝類型
接受默認值。
設置磁碟分區
本文不介紹磁碟分區的詳細方法,而是假設您熟悉磁碟分區方法。
(警告:對磁碟進行錯誤分區是刪除硬碟上所有內容的最可靠、最快捷的方法之一。如果不確定如何分區,請先停下來,找人幫幫您,否則您將冒丟失數據的危險!)
本文使用以下分區方案(文件系統均為 ext3):
第一個控制器 (/dev/sda) 上的 9GB 磁碟包含以下分區,用於存放所有 Linux 和 Oracle 軟體:
- 100MB /boot 分區(對於 RHEL 2.1,最小為 50MB)
-1,500MB 交換分區 — 將此分區大小至少設置為系統 RAM 的兩倍,但不要超過 2GB(32 位系統不支持大於 2GB 的交換文件)。如果需要大於 2GB 的交換空間,則創建多個交換分區。
-7,150MB 根分區 — 該分區將用於所有目錄,包括 /usr、/tmp、/var、/opt、/home 等。這樣做純粹是為了講解本指南而簡化安裝。更可靠的分區方案是將這些目錄劃分到單獨的文件系統。
配置啟動載入程序
接受默認值。
配置啟動載入程序口令
如果要為 GRUB 設置口令,請在此處輸入。對於評估系統,無需設置該項。
配置網路
通常情況下,最好使用靜態 IP 地址配置資料庫伺服器。為此,取消選中 Configure using DHCP 並輸入伺服器的網路配置。確保輸入了主機名且已選中 Activate on boot。
配置防火牆
出於本演示的需要,將不配置防火牆。選擇 No firewall(安全管理員,請不要生氣)。
其他語言支持
接受默認值。
選擇時區
選擇適合您區域的時間設置。將系統時鍾設置為 UTC 對伺服器而言通常是一個很好的做法。為此,單擊 System clock uses UTC。
配置帳戶
為 root 用戶選擇一個口令,並將其輸入所給的域中。為自己創建一個帳戶。(不要在此時創建 oracle 帳戶;我們將在稍後創建它。)
選擇程序包組
選擇 Gnome 或 KDE(或兩者都選擇)圖形用戶界面(默認為 Gnome)。注意:這兩個 GUI 都非常受歡迎,其中 Gnome 在美國使用更普遍。我個人偏愛 KDE,這是因為它的終端模擬器可輕松實現剪切和粘貼,從而可將輸入復制到多個連接(例如,當您在多個節點上配置 RAC 時,這將節省鍵入操作)。
選擇 Software Development
未解決的相關性
如果看到此屏幕,只需選擇 Install packages to satisfy dependencies(默認值)並繼續操作。
配置圖形界面 (X)
接受默認值,除非安裝程序無法識別您的視頻卡。如果您的視頻卡無法被識別,則將無法繼續操作。
准備安裝
單擊 Next
安裝程序包
軟體將被復制到硬碟並被安裝。根據提示更改磁碟,然後在安裝完成時單擊 Next。
創建啟動磁碟
如果需要,創建一張啟動磁碟,或選擇 Skip boot disk creation。
配置監視器
如果安裝程序正確識別了您的監視器,則接受默認值。否則,從列表中選擇一個兼容的監視器。
恭喜
從系統中取出安裝介質,然後單擊 Next。
系統自動重新啟動,並顯示一個圖形登錄屏幕。如果您是使用基本產品 CD 而非更新 CD 執行的安裝,則在繼續操作前必須通過 RHN 應用更新。
驗證您的安裝
如果完成了以上步驟,您應該具備 Oracle 10g 所需的所有程序包和更新。您可以執行以下步驟驗證您的安裝。
所需內核版本:2.4.9-e.25(或更高版本)
通過運行以下命令檢查內核版本:
uname -r
例如:
# uname -r
2.4.9-e.27smp
其他所需程序包的版本(或更高版本):
gcc-2.96-124
make-3.79
binutils-2.11
openmotif-2.1.30-11
glibc-2.2.4-31
要查看系統上安裝了這些程序包的哪些版本,運行以下命令:
rpm -q gcc make binutils openmotif glibc
例如:
# rpm -q gcc make binutils openmotif glibc
gcc-2.96-118.7.2
make-3.79.1-8
binutils-2.11.90.0.8-12
openmotif-2.1.30-11
glibc-2.2.4-32.8
如果系統上缺少任何程序包版本,或版本比以上指定的版本舊,則可以從 Red Hat Network 下載並安裝更新。
Red Hat Enterprise Linux 3
Oracle 10g 經認證可以在不需要更新的情況下運行 Red Hat Enterprise Linux 3(Advanced Server 和 Enterprise Server)的基本版本。如果擁有更新 CD,則可以使用更新版本中的啟動 CD 而非基本版本中的啟動 CD 在安裝過程中自動應用所有更新。Oracle 支持 Red Hat 的所有更新。
使用第一張 CD 啟動伺服器。
您可能需要更改 BIOS 設置,以允許從 CD 啟動。
啟動屏幕上出現時在底部顯示 boot:。
選擇 Enter,從控制台上執行圖形安裝。(對於其他安裝方法和選項,請參閱 Red Hat 安裝指南。)
安裝程序掃描硬體,短暫顯示 Red Hat 閃屏,然後開始顯示一系列屏幕提示。
選擇語言
接受默認值。
配置鍵盤
接受默認值。
歡迎屏幕
單擊 Next。
配置滑鼠
接受默認值。
安裝類型
選擇 Custom。
設置磁碟分區
本文不介紹磁碟分區的詳細方法,而是假設您熟悉磁碟分區方法。
(警告:對磁碟進行錯誤分區是刪除硬碟上所有內容的最可靠、最快捷的方法之一。如果不確定如何分區,請先停下來,找人幫幫您,否則您將冒丟失數據的危險!)
本文使用以下分區方案(文件系統均為 ext3):
第一個控制器 (/dev/sda) 上的 9GB 磁碟包含以下分區,用於存放所有 Linux 和 Oracle 軟體:
- 100MB /boot 分區
-1,500MB 交換分區 — 將此分區大小至少設置為系統 RAM 的兩倍,但不要超過 2GB(32 位系統不支持大於 2GB 的交換文件)。如果需要大於 2GB 的交換空間,則創建多個交換分區。
-7,150MB 根分區 — 該分區將用於所有目錄,包括 /usr、/tmp、/var、/opt、/home 等。這樣做純粹是為了講解本指南而簡化安裝。更可靠的分區方案是將這些目錄劃分到單獨的文件系統。
配置啟動載入程序
接受默認值。
配置網路
通常情況下,最好使用靜態 IP 地址配置資料庫伺服器。為此,單擊 Edit。
出現一個彈出窗口。取消選中 Configure using DHCP 復選框,並輸入伺服器的 IP 地址和網路掩碼。確保選中 Activate on boot,然後單擊 OK。
在 Hostname 框中,選擇 manually 並輸入主機名。
在 Miscellaneous Settings 框中,輸入其他網路設置。
配置防火牆
出於本演示的需要,將不配置防火牆。選擇 No firewall。
其他語言支持
接受默認值。
選擇時區
選擇適合您區域的時間設置。將系統時鍾設置為 UTC 對伺服器而言通常是一個很好的做法。為此,單擊 System clock uses UTC。
設置 Root 口令
輸入 root 的口令,並再次輸入以進行確認。
選擇程序包組
只選擇此處顯示的程序包集,其他選項不要選。
桌面
- X Window 系統
- Gnome
- KDE
- 請參閱我在 RHES 2.1 部分中提供的有關 GUI 選擇的意見。
應用程序
- 編輯器
- 圖形網際網路
伺服器
- 不要選擇該組中的任何選項。
開發
- 開發工具
系統
- 管理工具
Red Hat Enterprise Linux
- 不要選擇該組中的任何選項。
雜項
- 原有軟體開發
單擊 Next 繼續操作。
准備安裝
單擊 Next。
安裝程序包
軟體將被復制到硬碟並被安裝。根據提示更改磁碟,然後在安裝完成時單擊 Next。
配置圖形界面 (X)
接受默認值,除非安裝程序無法識別您的視頻卡。如果您的視頻卡無法被識別,則將無法繼續操作。
配置監視器
如果安裝程序正確識別了您的監視器,則接受默認值。否則,從列表中選擇一個兼容的監視器。
定製圖形配置
接受默認值。
恭喜
從系統中取出安裝介質,然後單擊 Next。
系統自動重新啟動並顯示一個新的歡迎屏幕。
單擊 Next。
許可協議
閱讀許可協議。如果同意其中的條款,則選擇 Yes, I agree to the License Agreement 並單擊 Next。
日期和時間
設置日期和時間。
如果要使用 NTP 伺服器(推薦),則選擇 Enable Network Time Protocol 並輸入 NTP 伺服器的名稱。
用戶帳戶
為自己創建一個帳戶。
此時不要為 oracle 創建帳戶。本部分稍後將介紹如何創建 oracle 帳戶。
Red Hat Network
如果要立即使用或激活 Red Hat Network 帳戶,則接受默認值,單擊 Next 並遵循 Red Hat 產品附帶的產品激活說明。
其他 CD
單擊 Next。
完成設置
單擊 Next。
出現一個圖形登錄屏幕。
恭喜!您的 Linux 軟體現已安裝完畢。
驗證您的安裝
如果完成了以上步驟,您應該具備 Oracle 10g 所需的所有程序包和更新。您可以執行以下步驟驗證您的安裝。
所需內核版本:2.4.21-4.EL(這是 RHEL 3 的基本版本附帶的內核版本。此內核或更新中提供的任何版本的內核均適用於 Oracle 10g。)
通過運行以下命令檢查內核版本:
uname -r
例如:
# uname -r
2.4.21-4.0.1.ELsmp
其他所需程序包的版本(或更高版本):
gcc-3.2.3-2
make-3.79
binutils-2.11
openmotif-2.2.2-16
setarch-1.3-1
compat-gcc-7.3-2.96.122
compat-gcc-c++-7.3-2.96.122
compat-libstdc++-7.3-2.96.122
compat-libstdc++-devel-7.3-2.96.122
compat-db-4.0.14.5(Oracle 10g 資料庫安裝指南 中將其列為是必需的,但此處並不需要)
要查看系統上安裝了這些程序包的哪些版本,以 root 用戶身份運行以下命令:
rpm -q gcc make binutils openmotif setarch compat-db compat-gcc \
compat-gcc-c++ compat-libstdc++ compat-libstdc++-devel
例如:
# rpm -q gcc make binutils openmotif setarch compat-db compat-gcc \
> openmotif compat-gcc-c++ compat-libstdc++ compat-libstdc++-devel
gcc-3.2.3-20
make-3.79.1-17
binutils-2.14.90.0.4-26
openmotif-2.2.2-16
setarch-1.3-1
package compat-db is not installed
compat-gcc-7.3-2.96.122
compat-gcc-c++-7.3-2.96.122
compat-libstdc++-7.3-2.96.122
compat-libstdc++-devel-7.3-2.96.122
請注意,尚未安裝 compat-db 程序包。安裝過程中可用的任何程序包組均不包含此程序包,因此必須在單獨的步驟中安裝。如果系統上缺少任何其他程序包版本,或版本比以上指定的版本舊(compat-db 除外),則可以從 Red Hat Network 下載並安裝更新。
安裝 compat-db
插入原始 Red Hat Enterprise Linux 介質的第二張 CD。(Update 2 中未包含該程序包,它僅存在於原始介質中。)
此 CD 自動掛載。
以 root 用戶身份運行以下命令:
rpm -ivh /mnt/cdrom/RedHat/RPMS/compat-db-4.0.14-5.i386.rpm
例如:
# rpm -ivh /mnt/cdrom/RedHat/RPMS/compat-db-4.0.14-5.i386.rpm
Preparing... ########################################### [100%]
1:compat-db ########################################### [100%]
SUSE Linux Enterprise Server 8
Oracle 10g 經認證可以在 Novell SUSE Linux Enterprise Server (SLES) 8 上運行。Novell 通過 CD 或通過其支持門戶在線提供 Service Pack 和程序包更新。在本指南中,我們將從 CD 安裝 SLES 8 (Service Pack 3)。
使用 SLES 8 CD 啟動伺服器。
您可能需要更改 BIOS 設置,以允許從 CD 啟動。
出現 SUSE Linux Enterprise Server 安裝屏幕。
選擇 Installation。
安裝程序掃描您的硬體並顯示 YaST 界面。
選擇語言
接受許可協議。
接受默認值 English (US)。
安裝設置
選擇 New Installation。
分區
本文不介紹磁碟分區的詳細方法,而是假設您熟悉磁碟分區方法。
(警告:對磁碟進行錯誤分區是刪除硬碟上所有內容的最可靠、最快捷的方法之一。如果不確定如何分區,請先停下來,找人幫幫您,否則您將冒丟失數據的危險!)
本文使用以下分區方案(文件系統均為 ext3):
第一個控制器 (/dev/sda) 上的 9GB 磁碟包含以下分區,用於存放所有 Linux 和 Oracle 軟體:
- 100MB /boot 分區
-1,500MB 交換分區 — 將此分區大小至少設置為系統 RAM 的兩倍,但不要超過 2GB(32 位系統不支持大於 2GB 的交換文件)。如果需要大於 2GB 的交換空間,則創建多個交換分區。
-7,150MB 根分區 — 該分區將用於所有目錄,包括 /usr、/tmp、/var、/opt、/home 等。這樣做純粹是為了講解本指南而簡化安裝。更可靠的分區方案是將這些目錄劃分到單獨的文件系統。
軟體
單擊 Software 的鏈接。
出現 Software Selection 屏幕。
單擊 Detailed Selection。
左側窗口顯示軟體選擇列表。單擊每個選項旁的復選框以將其選中/取消選中。
選擇以下軟體(這是推薦的軟體集;不要選中其他軟體):
- C/C++ 編譯器和工具
- KDE(或 Gnome)
- LSB 運行時環境
- 幫助與支持文檔
- 圖形基本系統
- YaST2 配置模塊
- SLES 管理工具
建議不要安裝以下項,因為它們可能與提供相同服務的 Oracle 產品沖突:
- 簡單 Web 伺服器
- 身份驗證伺服器(NIS、LDAP、Kerberos)
時區
設置您的時區。
單擊 Accept。
出現一個警告對話框。准備好繼續操作時,單擊 Yes, install。
根據安裝程序的提示更換 CD。
安裝此軟體後,將顯示一個窗口,提示基本系統已經安裝成功。
取出安裝 CD,然後單擊 OK。
系統重新啟動。
輸入 root 用戶的口令,並再次輸入以進行確認。
為自己創建一個帳戶。不要在此時創建 oracle 帳戶;我們將在稍後創建它。
桌面設置
接受默認值。
出現一個有關自動檢測本地列印機的警告窗口。
單擊 Skip detection。
配置網路介面,並在准備好繼續操作後單擊 Next。
建議為伺服器設置靜態 IP 地址。
構建資料庫無需配置列印機、數據機、ISDN 適配器或音效卡。
出現一個圖形登錄屏幕。
現在,您需要安裝 Service Pack 3。以您自己的身份登錄。
插入更新 CD,然後單擊 Patch CD Update。
啟動 YaST2(SUSE 的系統管理工具)。
選擇 SUSE > System > YaST2。(SUSE 是位於屏幕左下部帶微笑蜥蜴側臉的綠色圓按鈕。它相當於「開始」。)
出現一個窗口,提示輸入 root 用戶口令。輸入口令,然後單擊 OK。
出現 YaST Control Center。
出現 YaST Online Update 窗口。
接受默認值,然後單擊 Next。
出現一個窗口,顯示一個補丁更新列表。
YaST 在更新系統其他部分之前需要先對自身進行更新。所需程序包已被選中。此時不要選擇任何其他程序包。
單擊 Accept。
出現一個窗口,提示重新啟動在線更新。
單擊 OK。
出現一個窗口,提示安裝已成功。
單擊 OK。
在 YaST Online Update 窗口中,單擊 Finish。
在 YaST Control Center 窗口中,單擊 Close。
重復步驟 21 和 22。
出現一個窗口,顯示一個補丁更新列表。
單擊 Accept 接受默認值。
可能出現包含各種提示(如「Make sure you update sendmail」)的小彈出窗口。單擊 OK 關閉它們。
此步驟需要一些時間。將游標懸停在 Next 按鈕上。如果更新仍在運行,則顯示一個時鍾圖標。
出現一個窗口,提示安裝已成功。
單擊 OK。
在 YaST Online Update 屏幕上,單擊 Next。
安裝程序寫系統配置。
在 YaST Control Center 中,單擊 Close。
注銷。
SUSE > Logout。
取出更新 CD。
重新啟動系統。
在圖形登錄屏幕上,單擊 Menu。
選擇 Shutdown。
選擇 Restart computer。
輸入 root 口令。
單擊 OK。
恭喜!您的 Linux 軟體現已安裝完畢。
驗證您的安裝
如果完成了以上步驟,您應該具備 Oracle 10g 所需的所有程序包和更新。您可以執行以下步驟驗證您的安裝。
所需內核版本:2.4.21-138(或更高版本)
通過運行以下命令檢查內核版本:
uname -r
例如:
# uname -r
k_smp-2.4.21-138
其他所需程序包的版本(或更高版本):
gcc-3.2.2-38
make-3.79
binutils-2.12
openmotif-2.2.2-124
要查看系統上安裝了這些程序包的哪些版本,以 root 用戶身份運行以下命令:
rpm -q gcc make binutils openmotif
例如:
# rpm rpm -q gcc make binutils openmotif
gcc-3.2.2-38
make-3.79.1-407
binutils-2.12.90.0.15-50
openmotif-2.2.2-124
如果系統上缺少任何程序包版本,或版本比以上指定的版本舊,則可以從 SUSE Linux Portal 下載和安裝更新。
--------------------------------------------------------------------------------
第 2 部分:針對 Oracle 配置 Linux
Linux 軟體現已安裝完畢,您需要針對 Oracle 對其進行配置。本部分將逐步講解針對 Oracle 資料庫 10g 配置 Linux 的過程。
驗證系統要求
要驗證系統是否滿足 Oracle 10g 資料庫的最低要求,以 root 用戶身份登錄並運行以下命令。
要查看可用 RAM 和交換空間大小,運行以下命令:
grep MemTotal /proc/meminfo
grep SwapTotal /proc/meminfo
例如:
# grep MemTotal /proc/meminfo
MemTotal:512236 kB
# grep SwapTotal /proc/meminfo
SwapTotal:1574360 kB
所需最小 RAM 為 512MB,而所需最小交換空間為 1GB。對於 RAM 小於或等於 2GB 的系統,交換空間應為 RAM 數量的兩倍;對於 RAM 大於 2GB 的系統,交換空間應為 RAM 數量的一到兩倍。
Oracle 10g 軟體還需要 2.5GB 的可用磁碟空間,而資料庫則另需 1.2GB 的可用磁碟空間。/tmp 目錄至少需要 400MB 的可用空間。要檢查系統上的可用磁碟空間,運行以下命令:
df -h
例如:
# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 6.8G 1.3G 5.2G 20% /
/dev/sda1 99M 17M 77M 18% /boot
Ⅹ linux伺服器上的websphere8無法訪問本機的Oracle資料庫
websphere訪問其他linux上的Oracle沒有問題
真是如此的話 還是你本地的oracle有問題(或者是你寫錯了連接串),從其他主機上連你本地的oracle試試。