Ⅰ 在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试试。