在Linux机器上安装运行Oracle

在Linux机器上安装运行Oracle,第1张

摘要 Oracle于去年年底宣布移植Oracle 和Oracle Application Server到Linux 这是一个明确无误的标志 整个世界都应该认识到 Linux已经是一个严肃的 *** 作系统 足以承担企业级的应用 Uche Ogbuji在下文中解释了应该如何安装 配置和初步使用Oracle for Linux 如何在你的Linux机器上安装运行Oracle 一篇实用指导 经过了许多谣传和暗示之后 Oracle于 年 月 日发布了Linux上的Oracle 数据库和Oracle Application Server 这是Linux近期历史中最为耀眼的一幕 无论您个人对Oracle公司的看法如何 该公司在大规模数据应用领域的巨大声誉使这次产品发布成为一个明确 无误的标志 整个世界都应该认识到 Linux已经是一个严肃的 *** 作系统 足以承担企业级的应用 但对于任何真正关心Linux的人来说 各种宣传攻势只是过眼烟云 只有代码才是关键的 (only code matters 译注 事实上 Oracle i 即 for Linux已经开发完成 但其中的JServer模块有问题 所以Oracle还没有发布 ) 开始行动 在RedHat上安装Oracle可以是相当轻而易举的 但要是完全跟着Oracle公司的文档走就未必那么容易了 最快的捷径是Tom Bisset的主页 如果您看了Tom的主页 那么滑尘您会注意到他漏了JDBC的安装 如果您准备使用JDBC(对于跨平台的Oracle应用十分方便) 只需在安装屏幕要求您选择组件(ponents)时 加上该选项即可 当然 您应该先装好JDK 我个人使用Blackdown的JDK (译注 Redhat包括JDK)然后需要设置oracle用户的ClassPath环境变量 最好的办法是在oracle用户目录的 bash_profile 或 profile中加上一句 CLASSPATH=/usr/lib/jdk/lib/classes zipexport 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身份登录 运行root sh 我对root sh作了以下改动 · LBIN环境变量从/usr/lbin改成了/usr/local/bin · 增加环境变量LOG=/tmp/oracle root sh log 这样脚本的运行结果会记录下来 root sh里说到 要想数据库作为一个服务器运行 必须先设定O_TASK变量 但是 事实上如果从安装Oracle的机器上运行root sh 就没有必要设这个变量 Python和Oracle 我配置了一下python(译注 一种强大 快速的面向对象的脚本语言) 以测试Oracle的编程接口和网络接口 在python中要连Oracle 需要Digital Creation(Zope应用服务器的作者)的DCOracle模块 您只需下载软件并按照指示照做就行 如果是DCOracle 使用Setup 的配置 从ORACLE_LIBS变量中删去 lsocket lnsl lgen lelf laio 和 lposix 即可 那些都是Solaris专用的 注姿让困意Redhat 和 中安装的 python设置不全 config目录和include目录被省略 无法编译安装第三方的模块 您必须自己编译python或者下载一个合适的RPM 找python的RPM 最好的去处可能是Oliver Andrich的 Python &Linux主页 只要rpm e nodeps python 然后 rpm i python python dev和其他RPM即可 装好python后 我运行了以下的基本查询 访问Oracle [uche@malatesta uche]$ python Python (# Sep : : ) [GCC ] on linux i Copyright Stichting Mathematisch Centrum Amsterdam >>>import DCOracle >>>#connect to DB scott/tiger are the test database username/password >>>dbc=DCOracle Connect( scott/tiger@sforza ) #sforza is the local Oracle server >>>c = dbc cursor() >>>c execute( SELECT * FROM emp WHERE emp deptno = ) >>>rows = c fetchall() >>>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已经安装成功 将程序 拷贝为 JDBCTest java 将程序 拷贝为l 然后 javac JDBCTest java appletviewer l 您就可以自己看看结果如何了 程序 /* Applet that reads in several rows from a remote Oracle database and presents them in a listbox */ import java sql *import java awt *import java applet *import java lang *public class JDBCTest extends Applet { //Single select ListBox private List employee_list = new List( false) public void init() { setLayout(new BorderLayout())try { //Set up the Oracle JDBC driver DriverManager registerDriver(new oracle jdbc driver OracleDriver())//Connect to an Oracle database on machine sforza using username // scott and password tiger Connection DB_conn = DriverManager getConnection ( jdbc:oracle:thin:@sforza: :ORCL scott tiger )//Connection DB_conn = DriverManager getConnection ( jdbc:oracle:thin:scott/tiger@sforza: :ORCL )//Create a JDBC statement object Statement statement_obj = DB_conn createStatement()//Execute a query to get the employee names from the test DB ResultSet results = statement_obj executeQuery ( select ENAME from EMP )//Populate the list box with all the employee names while (results next ()){ employee_list add(results getString( ))} } catch (SQLException e) { throw new RuntimeException( SQL Exception + e getMessage())} add(employee_list)} }

程序

Oracle JDBC driver testheight= >Your browser doesnt support Java Last modified: Sat Mar : : MST 程序 的大部分都是与具体数据库无关的JDBC调用 依样画葫芦您也可以 访问PostgresQL 主要和Oracle相 关的部分是 Connection DB_conn = DriverManager getConnection ( 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= <server_name_or _IP>)(protocol =tcp)(port=

lishixinzhi/Article/program/Oracle/201311/18188

在linux下安装oracle数据库步骤:

1、下载oracle安装文件

一、检查必要条件

1.1、检查内存及交换分区

Oracle要求2GB以上的内存

#查看内存大小

grep MemTotal /proc/meminfo

#查看交换区大小

grep SwapTotal /proc/meminfo

#也可以使用下面的命令查看内存大小

free -m1234567

交换分区要求

内存大小

交换分派尘薯区要求

1GB~2GB 内存的1.5倍

2GB~16GB 和内存大小相等

大于16GB 16GB

1.2、确认 *** 作系统位数尘者

[root@FSWWOA /]# uname -m

x86_6412

x86_64:表示用的是Intel的处理器,并且 *** 作系统是64位的

i386:表示是32位

1.3、检查硬盘空间

#查看临时目录空间

[root@FSWWOA /]# df -h /tmp

#查看硬盘总空间

[root@FSWWOA /]# df -h1234

Oracle安装是要求/tmp目录要有至少1GB的空间。

以下是Oracle各兄誉个版本安装是所需的空间

版本

所需空间

Enterprise Edition(企业版) 4.7GB

Standard Edition(标准版) 4.6GB

二、安装必要软件

首先需要检查系统版本,然后从Oracle官方文档中找到对应的Linux版本。

[root@FSWWOA /]# cat /proc/version

Linux version 2.6.32-71.el6.x86_64 (root@CentOS6064.localdomain) (gcc version 4.4.4 20110726 (Red Hat 4.4.4-13) (GCC) ) #1 SMP Wed Feb 29 15:21:16 CST 201212

Oracle官方文档中对应的版本如下

On Red Hat Enterprise Linux 6

2.6.32-71.el6.x86_64 or later

然后根据Linux版本找到其必要安装的软件,如下

The following or later version of packages for Oracle Linux 6, Red Hat Enterprise Linux 6, and Asianux Server 4 must be installed:

binutils-2.20.51.0.2-5.11.el6 (x86_64)

compat-libcap1-1.10-1 (x86_64)

compat-libstdc++-33-3.2.3-69.el6 (x86_64)

compat-libstdc++-33-3.2.3-69.el6.i686

gcc-4.4.4-13.el6 (x86_64)

gcc-c++-4.4.4-13.el6 (x86_64)

glibc-2.12-1.7.el6 (i686)

glibc-2.12-1.7.el6 (x86_64)

glibc-devel-2.12-1.7.el6 (x86_64)

glibc-devel-2.12-1.7.el6.i686

ksh

libgcc-4.4.4-13.el6 (i686)

libgcc-4.4.4-13.el6 (x86_64)

libstdc++-4.4.4-13.el6 (x86_64)

libstdc++-4.4.4-13.el6.i686

libstdc++-devel-4.4.4-13.el6 (x86_64)

libstdc++-devel-4.4.4-13.el6.i686

libaio-0.3.107-10.el6 (x86_64)

libaio-0.3.107-10.el6.i686

libaio-devel-0.3.107-10.el6 (x86_64)

libaio-devel-0.3.107-10.el6.i686

make-3.81-19.el6

sysstat-9.0.4-11.el6 (x86_64)1234567891011121314151617181920212223

检查系统是否安装以上的软件,如果没有安装则安装这些软件

yum install -y binutils.x86_64 binutils-devel.x86_64

yum install -y compat-libcap1.x86_64

yum install -y compat-libstdc++-33.x86_64

yum install -y compat-libstdc++-33.i386

yum install -y gcc.x86_64 gcc-c++.x86_64

yum install -y glibc.x86_64 glibc.i686 glibc-devel.x86_64 glibc-devel.i386

yum install -y ksh.x86_64

yum install -y libgcc.i386 libgcc.x86_64

yum install -y libstdc++.i386 libstdc++.x86_64 libstdc++-devel.i386 libstdc++-devel.x86_64

yum install -y libaio libaio-devel

yum install -y make.x86_64

yum install -y sysstat.x86_64

yum install -y pdksh.x86_64

/*-------------------------------------*/

yum install -y unixODBC.x86_64 unixODBC.i386 unixODBC-devel.i386 unixODBC-devel.x86_64123456789101112131415

三、创建Oracle用户和组

[root@FSWWOA /]# groupadd dba

[root@FSWWOA /]# groupadd oinstall

#添加用户

[root@FSWWOA /]# useradd -g oinstall -G dba oracle

#设置Oracle的密码

[root@FSWWOA /]# pwd oracle oracle

#这里密码使用:oracle12345678

四、修改系统参数

4.1、修改用户的SHELL的限制

修改/etc/security/limits.conf文件

vi /etc/security/limits.conf1

然后在文件中添加如下内容

oracle soft nproc 2047

oracle hard nproc 16384

oracle soft nofile 1024

oracle hard nofile 655361234

4.2、修改/etc/pam.d/login 文件

vi /etc/pam.d/login1

然后在文件中添加如下内容

session required /lib/security/pam_limits.so

session required pam_limits.so12

4.3、修改系统核心参数

修改/etc/sysctl.conf文件vi /etc/sysctl.conf,然后在文件中加入

fs.aio-max-nr = 1048576

fs.file-max = 6815744

kernel.shmall = 2097152

kernel.shmmax = 536870912

kernel.shmmni = 4096

kernel.sem = 250 32000 100 128

net.ipv4.ip_local_port_range = 9000 65500

net.core.rmem_default = 262144

net.core.rmem_max = 4194304

net.core.wmem_default = 262144

net.core.wmem_max = 10485761234567891011

执行sysctl -p是配置立刻生效。使用sysctl -a查看所有系统参数。

五、创建Oracle安装目录

5.1创建Oracle安装目录

cd /u01

mkdir -p app/oracle/product/11.2.0/dbhome_1

mkdir app/oradata123

5.2修改目录所有者

[root@FSWWOA u01]# chown -R oracle:oinstall app

[root@FSWWOA u01]# ll

总用量 20

drwxr-xr-x. 4 oracle oinstall 4096 11月 25 08:46 app

drwx------. 2 root root 16384 11月 24 14:29 lost+found12345

六、修改系统环境变量

使用vi ~/.bash_profile打开环境变量配置文件。加入如下内容

export ORACLE_BASE=/u01/app

export ORACLE_HOME=$ORACLE_BASE/oracle/product/11.2.0/dbhome_1

export ORACLE_SID=orcl

export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin

export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib

export NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK 123456

然后使用source ~/.bash_profile是配置立即生效。使用env | grep ORACLE可以查看环境变量配置。

七、安装Oracle

7.1解压Oracle安装文件

将Oracle拷贝至Linux服务器上,然后解压

unzip linux.x64_11gR2_database_1of2.zip

unzip linux.x64_11gR2_database_2of2.zip12

如果使用光盘安装,则使用mount -t iso9660 /dev/dvd /mnt/dvd挂载光盘

7.2设置安装环境

如果Linux系统字符编码是中文的,在安装过程中Oracle安装界面会全部乱码。可使用export LANG=en_US,将会话的字符集改为英文字符集,然后再安装就不会出现乱码。

另外,Oracle安装时需要图形界面的支持。

剩余部分见PDF文档(后续图片太多不再一一上传),剩余部分如下:

7.3开始安装Oracle

八、测试安装结果

九、修改防火墙配置,将Oracle端口添加到例外

十、将Oracle设置自启动

十一、设置Oracle用户名密码不区分大小写

在linux下安装oracle是一件令前雹人生畏的事情 其复杂程度远远超过安装linux *** 作系统本身 如果能够进行成功的安装oracle 那么同时也就顺便掌握了linux一些技术 本文介绍在redhat linux 下安装oracle g 的方法 在这里说明一 Oracle g的g是grid 的缩孙悔销写 意为网格 目前较为前沿的网络计算技术

Oracle g 对软硬件的要求都非常的高 所以要玩转的话的花不少银子 首先来看看它对硬件的要求:内存 兆(建议 G) cpu 主频 G以上 硬盘转速 转以上(建议使用scsi硬盘) 依此条件 我看买台服务器才行 其次是软件要求:在oracle 官方的文档里 对于x 系列支持的 *** 作系统只有 种(radhat ES/AS (x ) redhat ES/AS (x ) unitedlinux (x ) ) 如果只有redhat 也是可以安装的 不过要麻烦一点点 当然oracle g需要更多的软件模块才能进行安装 这些软件模块我将在后面逐一说明 在本例中 使用RedHat ES (x )作为 *** 作平台 并且安装了xwindow

接下来 我们检查是否符合oracle g 的安装要求 以表格的形式列出 首先是硬件情况 以root登录系统 并且启动x window 如果用下表命令输出的值大于或等于建议值 请检查项目 命令/方法 建议值

内存 #grep MemTotal /proc/meminfo MB

交换分区 #grep SwapTotal /proc/meminfo GB

 则游 /tmp目录空闲区 #df –k /tmp MB

硬盘空闲空间 #df k GB

继续往下 检查软件需求 对redhat ES (x ) 需要如下的软件包:

&# Gnu gcc package gcc or 更高

下面的包也必须被安装:

·make ·binutils ·openmotif ·setarch ·pat db ·pat gcc ·pat gcc c++ ·pat libstdc++ ·pat libstdc++ devel

为了保证系统满足需求 执行下面的步骤检查安装的linux版本和安装的套件

检查项目 命令/方法 建议值

Linux 版本 #cat /etc/issue ES

已安装的包 #rpm q package_name 安装所需包(上表所列)

到这里我们已经全面的检查了安装oracle g所要求的软硬件环境 接着我们就要为安装创建组和用户

下面的组和用户必须存在

The oinstall group (the oracle inventory group) The dba group (the OSDBA group) The oracle user (the oracle owner)

如果上面的组和用户不存在 用下面的步骤创建它们

( )先查看这些组和用户是否存在:

#grep oinstall /etc/group

#grep dba /etc/group

( )创建安装oracle 所需的组和用户

#groupadd oinstall

#groupadd dba

#useradd –g oinstall –G dba oracle

检查一下oracle 是否属于组 oinstall 和 dba (#id oracle) 再给oracle 设置一个用户口令 #passwd oracle 输入两次密码

创建安装所需的目录 /u /app/oracle (the oracle base directory) /u /oradata (an optional default directory ) 用下表的命令形式创建它 然后改变它的目录权限

创建目录 更改权限

#mkdir –p /u /app/oracle #chown –R oracle:Oinstall /u /app/oracle /u /oradata

#mkdir –p /u /oradata #chmod –R /u /app/oracle /u /oradata

配置内核参数 下表是oracle 推荐的内核参数值 请参考

Parameter Value File semmsl semmns semopm semmni /proc/sys/kernel/sem shmall /proc/sys/kernel/shmall shmmax Half the size of physical memory /proc/sys/kernel/shmmax shmmni /proc/sys/kernel/shmmni file max /proc/sys/fs/file max ip_local_port_range /proc/sys/net/ipv /ip_local_port_range

确保当前的参数值大于或等于上表所列 那么怎样查看这些参数值呢?用命令 #/ *** in/sysctl –a | grep <参数名>例如查看semmsl 用 #/ *** in/sysctl a | grep sem 余下的与此类似 逐个察看这些参数值 如果参数值不满足要求 就需要修改它们 请完成下面这些步骤

a 用文本编辑器 创建或者编辑/etc/nf文件 添加或修改如下的行

kernel shmall = kernel shmmax = kernel shmmni = kernel sem = fs file max = net ipv ip_local_port_range =

b 改变当前内核参数的值 用命令 #/ *** in/sysctl –p 来实现

为了提高在linux系统上运行软件的性能 必须对oracle用户设置下列shell 限定

Shell Limit Item in nf Hard Limit Maximum number of open file descriptors nofile Maximum number of processes available to a single user nproc

现在创建这些限定:

加入下面的行到文件/etc/security/nf

* soft nproc * hard nproc * soft nofile * hard nofile

加入下面的行到文件/etc/pam d/login 假如它不存在的话

session required /lib/security/pam_limits so

根据oracle 用户的默认shell 对默认 shell start up文件作如下改变 如果是Bourne Bash or Korn shell 修改环境变量/etc/profile文件如下:

if [ $USER = oracle ]then if [ $SHELL = /bin/ksh ]then ulimit p ulimit n else ulimit u n fi fi 如果是c shell 则环境变量文件 /etc/csh login的修改值如下: if ( $USER == oracle ) then limit maxproc limit descriptors endif

接下来挂接光盘 #mount /dev/cdrom /mnt/cdrom

以oracle 用户名登录系统 配置oracle 用户的环境 以oracle 帐号用安装器来安装oracle 但是开始运行安装器之前 还得设定oracle用户的环境变量 因此必须:

●设置shell startup文件的umask 为

●设置DISPLAY ORACLE_BASE and ORACLE_SID 的环境变量 下面这些步骤是对这些环境变量进行设置的方法:

开启一个终端会话

确认xwindow 能正常显示 #xhost +

改变用户为oracle $ su – oracle

检查oracle用户的默认shell $echo $SHELL

用文本编辑器修改oracle用户的环境变量 

●bash shell on redhat

$vi bash_profile

●c shell

%vi login

把下面的行插入上面编辑的文件中

umask

保存文件并退出

运行shell开始脚本:

●Bash shell on Red Hat $ / profile

●C shell % source / login

设置环境变量

●Bash shell

$ ORACLE_BASE=/u /app/oracle

$ ORACLE_SID=sales

$ export ORACLE_BASE ORACLE_SID

●c shell

% setenv ORACLE_BASE /u /app/oracle

% setenv ORACLE_SID sales

确认ORACLE_HOME and TNS_ADMIN 的环境变量不被用户设置

●Bash shell

$ unset ORACLE_HOME

$ unset TNS_ADMIN

●c shell

% unsetenv ORACLE_HOME

% unsetenv TNS_ADMIN

再检验一下上面设定的环境变量是否正确

$ umask

$ env | more

lishixinzhi/Article/program/Oracle/201311/17635


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12443437.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存