HTML5 apache Firefox Android 微软 linux命令 nginx php google 开源 shell Windows 程序员 mysql java wordpress centos Python Ubuntu linux

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数据库安装硬件配置要求:

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

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

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

  1. 显示语言选择英文,不要选择中文,以免后续的 Oracle 安装向导出现乱码
  2. 选择定制安装,并确保”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

延伸阅读

评论