Oracle 11G R2 数据库在 Redhat 6 系统上安装,是甲骨文公司的一款关


Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。到目前仍在数据库市场上占有主要份额。劳伦斯·埃里森和他的朋友,之前的同事Bob Miner和ed Oates在1977年建立了软件开发实验室咨询公司(SDL,Software Development Laboratories)

Oracle 数据库 11g(构建在 Oracle 独有的网格计算能力上)使 Oracle 客户能够更快地响应不断变化的业务状况,通过技术创新获得竞争优势,同时降低成本。

使用 Oracle 数据库 11g,您可以:

利用 Real Application Testing 使得新技术更快得以采用先进的 Oracle 数据压缩和分区技术(Partitioning) 能够以更少存储空间管理更多的数据利用 Oracle SecureFiles 将所有数据存储在 Oracle 数据库中从而简化系统利用 Oracle Active Data Guard 使灾难资源恢复的投资回报率 (ROI) 最大化通过管理自动化使关键人员能将精力投入到战略性任务中等等.. 

在 Linux 系统上部署 Oracle

我们选用 Redhat 企业版来作为 Oracle 的操作系统。目前最新的版本是 RedHat 6.1,你可以根据 CPU 的架构选择32位或者64位的 Linux,通常来说64位版本可以管理更大的内存和硬盘空间,应该作为企业应用的首选。

Oracle 11g R2数据库安装硬件配置要求:

至少要有 1GB 以上的内存。企业版要求 3.95 GB 的硬盘空间,同时需预留至少 1.7G 的空间来保存数据文件。

根据系统内存的大小,你需要合理设置交换分区的大小:内存为256-512M的时候 交换分区大小应该为内存2倍; 512-2G的时候, 交换分区大小应该为内存1.5倍;2-8G时, 交换分区大小和内存相同;8G以上,交换分区是内存大小的0.75倍。此外还需预留 10GB 左右的硬盘空间给操作系统,建议硬盘空间至少有 20GB 以上的剩余空间。

安装 RedHat 可以依照图形化的安装向导来进行 (需要 1GB 以上内存),安装过程中特别需注意两点:

显示语言选择英文,不要选择中文,以免后续的 Oracle 安装向导出现乱码选择定制安装,并确保”compatibility libraries”、“JAVA Platform”和“Development”里工具被选中,如图:

定制化安装 Redhat 6.1

勾选”compatibility libraries”可以保证 Oracle 安装和工作所需的大部分软件包都得到安装,否则很可能 Oracle 安装过程中,会出现一些链接错误,比如 ins_ctx.mk 报错。现在你可以去Oracle 官方站点下载 Oracle 数据库包了。在下载的同时,我们需要对 Redhat 的一些配置文件做修改。

设置静态ip

安装 Oracle 的机器需要配置静态 IP 地址,你可以用下面的命令来设置:

# system-config-network

这个步骤非常重要。让 DHCP 给机器分配动态 IP 地址会导致 Oracle 服务(比如监听器)无法启动。

修改内核参数

编辑 /etc/sysctl.conf 并做如下修改:

# Controls the maximum shared segment size, in bytes
#kernel.shmmax = 68719476736
# Controls the maximum number of shared memory segments, in pages
#kernel.shmall = 4294967296
kernel.shmall = 2097152
kernel.shmmax = 536870912
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 6553600
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default=4194304
net.core.wmem_default=262144
net.core.rmem_max=4194304
net.core.wmem_max=262144

保存之后,需要运行:

# sysctl -p

来使参数生效。

如果你觉得麻烦的话,Oracle 安装过程中,也会生成内核参数的修改脚本,并提示你运行。

配置 Pam.d

PAM (可插拔验证模块)可以让程序自由选择使用的验证方式。常见 PAM 模块有:

pam_access.so 控制访问者地址与账号名称pam_listfile.so 控制访问者的账号名称或登录位置pam_limits.so 控制为用户分配的资源pam_rootok.so 对管理员(uid=0)无条件允许通过pam_userdb.so 设定独立用户账号数据库认证

编辑 /etc/pam.d/login 并增加下面内容:

session required /lib/security/pam_limits.so

配置 Limits

编辑 /etc/security/limits.conf 文件,并增加下面几行:

oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536

limits.conf 文件实际是前面提到的 pam_limits.so 的配置文件,而且只针对于单个会话, 需要在/etc/pam.d/login文件中加入下行:

session required /lib/security/pam_limits.so
session required pam_limits.so

创建 Oracle 组和帐号

接下来我们要创建 Linux 的组和用户账号,用来安装和维护 Oracle 数据库。

# groupadd oinstall
# groupadd dba
# useradd -m -g oinstall -G dba oracle
# id oracle
# passwd oracle (set password for oracle user)

现在可以用 Oracle 帐号登录继续后续的操作。

创建安装目录

现在我们来创建 Oracle 数据库的安装目录。 通常这些目录被在独立的文件系统上创建。

# mkdir -p /home/oracle/app/
# chown -R oracle:oinstall /home/oracle/app/
# chmod -R 775 /home/oracle/app/

之后把这些路径加入配置oracle用户的环境文件中。

# vim .bash_profile

添加的内容如下

export ORACLE_SID=orcl
export ORACLE_BASE=/home/oracle/app
export ORACLE_HOME=$ORACLE_BASE/dbhome
export NLS_LANG=AMERICAN_AMERICA.UTF8
export PATH=$PATH:/usr/bin:/usr/sbin:/usr/local/bin:$ORACLE_HOME/bin:

安装 Oracle

现在可以开始安装应用了,解开 Oracle 的源代码,并执行 ./runInstaller。如果你按上述要求正确配置了系统参数,安装过程应该不会有太多问题。如果遇到错误的话,你可以查看安装的日志文件以获得详细的错误信息。在安装的过程中,系统会询问你 SYSMAN 的密码,请把它记下来,后续我们会用它来登录到 Web Console。

在安装接近尾声的时候,会要求你以 root 权限运行一到两个脚本,你只需要打开一个终端,运行 su – ,然后根据系统提示的路径去运行脚本。

启动或停止 Oracle

有时候你可能需要启动或者停止 Oracle 的运行,你可以运行下面的命令

emctl start dbconsole
lsnrctl start
dbstart

要停止 Oracle 数据库,则运行:

emctl stop dbconsole
lsnrctl stop
dbstop

自动启动 Oracle 服务

每次输入命令行来启动或停止 Oracle 数据库总是不方便,最简单的办法还是在操作系统启动的时候自动启动 Oracle服务。具体办法如下:

1. 首先编辑 /etc/oratab 文件,将:

orcl:/home/oracle/app/dbhome:N

修改为:

orcl:/home/oracle/app/dbhome:Y

2. 创建启动脚本:

vi /etc/init.d/dbora

其内容如下:

#!/bin/sh
# chkconfig: 345 99 10
# description: Oracle auto start-stop script.
#
# Set ORA_HOME to be equivalent to the $ORACLE_HOME
# from which you wish to execute dbstart and dbshut;
#
# Set ORA_OWNER to the user id of the owner of the
# Oracle database in ORA_HOME.

ORA_HOME=/home/oracle/app/dbhome
ORA_OWNER=oracle

if [ ! -f $ORA_HOME/bin/dbstart ]
then
echo "Oracle startup: cannot start"
exit
fi

case "$1" in
‘start’)
# Start the Oracle databases:
# The following command assumes that the oracle login
# will not prompt the user for any value
su – $ORA_OWNER -c "$ORA_HOME/bin/emctl start dbconsole"
su – $ORA_OWNER -c "$ORA_HOME/bin/lsnrctl start"
su – $ORA_OWNER -c $ORA_HOME/bin/dbstart
;;
‘stop’)
# Stop the Oracle databases:
# The following command assumes that the oracle login
# will not prompt the user for any values
su – $ORA_OWNER -c "$ORA_HOME/bin/emctl stop dbconsole"
su – $ORA_OWNER -c "$ORA_HOME/bin/lsnrctl stop"
su – $ORA_OWNER -c $ORA_HOME/bin/dbshut
;;
esac

用下面的命令修改权限:

# chmod 750 /etc/init.d/dbora

然后把它添加到 chkconfig中:

# chkconfig –level 345 dbora on

现在可以测试一下是否能按预期工作:

# /etc/init.d/dbora start
# /etc/init.d/dbora stop

现在可以登录到 Web Console,默认URL是 “https://localhost:1158/em”,默认用户名是: sys,你可以查看到数据库各项服务的信息:

Oracle Web Console

Oracle 服务启动或停止时的常见错误

1. 错误信息:

“ORACLE_HOME_LISTNER is not SET, unable to auto-stop Oracle Net Listener”

解决方法 : 编辑文件 “dbstart” & “dbshut”, 找到“ $ORACLE_HOME_LISTNER=$1” 这行,将其改为:

“ $ORACLE_HOME_LISTNER=$ORACLE_HOME”

2. 错误信息:

“Message 1070 not found; No message file for product=NETWORK, facility=TNS
TNS-12538: Message 12538 not found;
No message file for product=NETWORK,facility=TNS TNS-12560: Message 12560 not found; No message file for product=NETWORK, facility=TNS
TNS-00508: Message 508 not found; No message file for product=NETWORK, facility=TNS”

解决方法::配置 ORACLE_HOME,编辑 oracle 用户账号下的 .bash_profile,添加:

export ORACLE_HOME=/home/oracle/app

3. 错误信息:

“Environment variable ORACLE_SID not defined. Please define it”

解决方法:配置 ORACLE_SID,编辑 oracle 用户账号下的 .bash_profile,添加:

export ORACLE_SID=orcl

相关内容