Linux 下ORACLE10g rac的安装及配置:
第 1 部分:确认 Linux 软硬件环境
资源需要:
至少1024 MB物理内存
1024-2048 需1.5倍的交互空间
2048-8192 需1倍的交互空间
8192- 需0.75倍的交互空间
至少400 MB /tmp 临时目录空间
oracle软件需要1.5 GB 到 3.5 GB 磁盘空间
默认数据库需要1.2 GB
要求内核2.6.9-42以上(as4update4)
查看系统资源相关语句:
cat /etc/issue
uname -r
grep MemTotal /proc/meminfo
grep SwapTotal /proc/meminfo
grep "model name" /proc/cpuinfo
free
df -k /tmp
df -k
disable follow service:
chkconfig --level 2345 pcmcia off
chkconfig --level 2345 kudzu off
chkconfig --level 2345 isdn off
chkconfig --level 2345 sendmail off
chkconfig --level 2345 rhnsd off
chkconfig --level 2345 cups off
chkconfig --level 2345 cups-config-daemon off
chkconfig --level 2345 cpuspeed off
chkconfig --level 2345 gpm off
chkconfig --level 2345 apmd off
chkconfig --level 2345 lm_sensors off
chkconfig --level 2345 mdmonitor off
集中所有计算机上配置时间服务
时间服务器配置:
vi /f,时间服务器用uas两台机器,uas两台机器的f中server配置:
server p.org
server p.org
server p.org
p.org
service ntpd start
chkconfig --level 2345 ntpd on
确认:ntpq -p
安装前的检查和准备工作:
rpm -q make gcc compat-db
make-3.80-5
gcc-3.4.3-9.EL4
compat-db-4.1.25-9
p4198954_21_linux.zip 在运行 runInstaller 之前打.
rpm -ivh compat-oracle-rhel4-1.0-5.i386.rpm (p4198954_21_linux.zip)
compat-oracle-rhel4-1.0-5.i386.rpm需要安装的组件:
rpm -ivh /mnt/cdrom3/RedHat/RPMS/glibc-kernheaders-2.4-9.1.87.i386.rpm
rpm -ivh /mnt/cdrom3/RedHat/RPMS/glibc-headers-2.3.4-2.i386.rpm
rpm -ivh /mnt/cdrom3/RedHat/RPMS/glibc-devel-2.3.4-2.i386.rpm
rpm -ivh /mnt/cdrom4/RedHat/RPMS/compat-gcc-32-3.2.3-47.3.i386.rpm
rpm -ivh /mnt/cdrom2/RedHat/RPMS/compat-libstdc++-33-3.2.3-47.3.i386.rpm
rpm -ivh /mnt/cdrom4/RedHat/RPMS/compat-gcc-32-c++-3.2.3-47.3.i386.rpm
rpm -ivh /mnt/cdrom3/RedHat/RPMS/compat-libgcc-296-2.96-132.7.2.i386.rpm
rpm -ivh /mnt/cdrom3/RedHat/RPMS/compat-libstdc++-296-2.96-132.7.2.i386.rpm
rpm -ivh /mnt/cdrom3/RedHat/RPMS/gcc-3.4.3-9.EL4.i386.rpm
rpm -ivh /mnt/cdrom3/RedHat/RPMS/gcc-c++-3.4.3-9.EL4.i386.rpm
rpm -ivh /mnt/cdrom2/RedHat/RPMS/libstdc++-3.4.3-9.EL4.i386.rpm
rpm -ivh /mnt/cdrom3/RedHat/RPMS/libstdc++-devel-3.4.3-9.EL4.i386.rpm
rpm -ivh /mnt/cdrom2/RedHat/RPMS/libstdc++-3.4.3-9.EL4.i386.rpm
rpm -ivh /mnt/cdrom3/RedHat/RPMS/gcc-c++-3.4.3-9.EL4.i386.rpm
rpm -ivh /mnt/cdrom3/RedHat/RPMS/libaio-0.3.102-1.i386.rpm
rpm -ivh /mnt/cdrom3/RedHat/RPMS/libaio-devel-0.3.102-1.i386.rpm
oracle登录命令rpm -ivh /mnt/cdrom3/RedHat/RPMS/openmotif21-2.1.30-11.RHEL4.2.i386.rpm
rpm -ivh /mnt/cdrom3/RedHat/RPMS/zlib-devel-1.2.1.2-1.i386.rpm
rpm -ivh /mnt/cdrom3/RedHat/RPMS/freetype-devel-
2.1.9-1.i386.rpm
rpm -ivh /mnt/cdrom3/RedHat/RPMS/fontconfig-devel-2.2.3-7.i386.rpm
rpm -ivh /mnt/cdrom3/RedHat/RPMS/pkgconfig-0.15.0-3.i386.rpm
rpm -ivh /mnt/cdrom3/RedHat/RPMS/xorg-x11-devel-6.8.1-23.EL.i386.rpm
rpm -ivh /mnt/cdrom3/RedHat/RPMS/xorg-x11-deprecated-libs-devel-6.8.1-23.EL.i386.rpm
备用命令:
mkdir /mnt/200
mkdir /mnt/cdrom1
mkdir /mnt/cdrom2
mkdir /mnt/cdrom3
mkdir /mnt/cdrom4
mount -t smbfs -o username=dist,password=dist123456 //172.16.66.200/public /mnt/200
mount -o loop /mnt/200/Company/RHEL4-i386-AS-disc4/RHEL4-i386-AS-disc1.iso /mnt/cdrom1
mount -o loop /mnt/200/Company/RHEL4-i386-AS-disc4/RHEL4-i386-AS-disc2.iso /mnt/cdrom2
mount -o loop /mnt/200/Company/RHEL4-i386-AS-disc4/RHEL4-i386-AS-disc3.iso /mnt/cdrom3
mount -o loop /mnt/200/Company/RHEL4-i386-AS-disc4/RHEL4-i386-AS-disc4.iso /mnt/cdrom4
--------------------------------------------------------------------------------
第 2 部分: 为 Oracle 配置 Linux
创建 Oracle 组和用户帐户
接下来我们将创建用于安装和维护 Oracle 10g 软件的 Linux 组和用户帐户。
用户帐户名是‘oracle’,组是‘oinstall’和‘dba’。
仅在一个集主机上以 root 用户身份执行以下命令:
1,创建user/group;
groupadd oinstall
groupadd dba
useradd -m -g oinstall -G dba oracle
passwd oracle
如果nobody用户不存在(id nobody命令查看),则创建:
useradd nobody
id oracle
示例输出:
uid=501(oracle) gid=501(oinstall) groups=501(oinstall),502(dba)
用户 ID 和组 ID 在所有集主机上必须相同。 使用从 id oracle 命令得到的信息,
在其余集主机上创建 Oracle 组和用户帐户:
groupadd -g 501 oinstall
groupadd -g 502 dba
useradd -m -u 501 -g oinstall -G dba oracle
2,建立oracle安装文件夹:
mkdir -p /u01/app/oracle
chown -R oracle:dba /u01/app/oracle
chmod -R 775 /u01/app/oracle
3, 配置环境变量;
vi /etc/profile
增加下面行:
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
使用Oracle用户登陆:
su oracle
vi ~/.bash_profile
以下是配置文件的内容
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
alias ls="ls -FA"
# User specific environment and startup programs
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1
export ORA_CRS_HOME=$ORACLE_BASE/product/crs
export ORACLE_PATH=$ORACLE_BASE/common/oracle/sql:.:$ORACLE_HOME/rdbms/admin
# Each RAC node must have a unique ORACLE_SID.(i.e. orcl1, orcl2,...)
export ORACLE_SID=orcl1
export PATH=.:${PATH}:$HOME/bin:$ORACLE_HOME/bin
export PATH=${PATH}:/usr/bin:/bin:/usr/bin/X11:/usr/local/bin
export PATH=${PATH}:$ORACLE_BASE/common/oracle/bin
export ORACLE_TERM=xterm
export TNS_A
DMIN=$ORACLE_HOME/network/admin
export ORA_NLS10=$ORACLE_HOME/nls/data
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/oracm/lib
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/lib:/usr/lib:/usr/local/lib
export CLASSPATH=$ORACLE_HOME/JRE
export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/jlib
export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/rdbms/jlib
export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/network/jlib
export THREADS_FLAG=native
export TEMP=/tmp
export TMPDIR=/tmp
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
export LANG=AMERICAN_AMERICA.ZHS16GBK
echo ".bash_profile executed"
4, 设置系统参数;
切换到root用户:
su root
a) 修改/f(vi /f), 添加:
# Shmmax 最大共享内存,官方文档建议是内存的1/2,
# 2G/2=1073741824,1G/2=536870912=512 * 1024 * 1024,268435456,以此类推。
# shmmni系统范围内共享内存段的最大数量
# shmall系统一次可以使用的共享内存总量(以页为单位)。该参数的值始终应至少为:
# ceil(SHMMAX/PAGE_SIZE)
kernel.shmmax = 1073741824
kernel.shmmni = 4096
kernel.shmall = 2097152
# sem 4个参数依次为:
# SEMMSL每个信号集合的最大信号数,Oracle 建议将 SEMMSL 设置为 a 文件
# (适用于 Linux 系统上所有数据库)中的最大 PROCESS 实例参数设置再加上 10。
# 此外,Oracle 建议将 SEMMSL 设置为不小于 100。
# SEMMNS 整个 Linux 系统中的信号(而非信号集)的最大数量。
# Oracle 建议将 SEMMNS 设置为系统上每个数据库的 PROCESSES 实例参数设置之和,
# 加上最大的 PROCESSES 的两倍,最后为系统上的每个 Oracle 数据库加上 10。
# 使用以下计算式确定可以在 Linux 系统上分配的信号的最大数量。它将是以下两者中较小的一个值:
# SEMMNS — 或 — (SEMMSL * SEMMNI) 。
# SEMOPM 控制每个 semop 系统调用可以执行的信号操作数。
# semop 系统调用(函数)能够使用一个 semop 系统调用完成多个信号的操作。
# 一个信号集可以拥有每个信号集中最大数量的 SEMMSL,因此建议将 SEMOPM 设置为等于 SEMMSL。
# Oracle 建议将 SEMOPM 设置为不小于 100。
# SEMMNI 整个 Linux 系统中信号集的最大数量。Oracle 建议将 SEMMNI 设置为不小于 100。
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000
# Default setting in bytes of the socket receive buffer
# Maximum socket receive buffer size which may be set by using
# the SO_RCVBUF socket option
# Default setting in bytes of the socket send buffer
# Maximum socket send buffer size which may be set by using
# the SO_SNDBUF socket option
修改后运行"/sbin/sysctl -p"命令使得内核改变立即生效;
为 oracle 用
户设置 Shell 限制:
编辑文件:vi /etc/f 加入以下语句:
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
编辑文件:vi /etc/pam.d/login 加入以下语句:
session required /lib/security/pam_limits.so
(注意:根据最后一条session规则的注释,应该加在最后一条规则之前)
5.配置 Hangcheck 内核模块参数
vi /f 加入以下语句:
options hangcheck-timer hangcheck_tick=30 hangcheck_margin=180
通过下面语句可以检测配置是否正确;
modprobe hangcheck-timer
grep Hangcheck /var/log/messages | tail -2
6.编辑/etc/hosts文件
vi /etc/hosts 确保与下面类似:
127.0.0.1 localhost.localdomain localhost
# Public Network - (recommend eth0)
172.16.62.101 rac1 rac1
172.16.62.104 rac2 rac2
# Public Virtual IP (VIP) addresses for rac- (recommend eth0)
172.16.62.11 rac1-vip rac1-vip
172.16.62.14 rac2-vip rac2-vip
# Private Interconnect - (recommend eth1,Private Interconnect using isolation network)
192.168.2.101 rac1-priv rac1-priv
192.168.2.104 rac2-priv rac2-priv
#iscsi connect - (recommend eth2,iscsi using isolation network)
192.168.3.101 rac1-iscsi rac1-iscsi
192.168.3.104 rac2-iscsi rac2-iscsi
您需要为每台服务器提供三个 IP 地址: 一个用于专用网络,一个用于公共网络,
一个用于虚拟 IP 地址。 使用操作系统的网络配置工具来分配专用的和公共的网
络地址。 不要使用操作系统的网络配置工具来分配虚拟 IP 地址;这项工作将会
在 Oracle RAC 软件安装期间由 Oracle 虚拟 IP 配置助手 (VIPCA) 来完成。
关闭iptables
service iptables stop
chkconfig --level 2345 iptables off
--------------------------------------------------------------------------------
第 3 部分: 准备共享磁盘
安装iscsi软驱动
rpm -ivh sysfsu~1.rpm
rpm -ivh sysfsu~2.rpm
rpm -ivh iscsi-~1.rpm
vi /f编辑每个节点
节点一:
# iscsi服务器的服务地址和iscsi用户管理中分配的端口
DiscoveryAddress=172.16.62.100:3266
# TargetName=iqn.1987-05.nanwang:101
Continuous=no
HeaderDigest=never
DataDigest=never
ImmediateData=yes
MaxDiskCommandTimeout=180
ConnFailTimeout=180
节点儿:
# iscsi服务器的服务地址和iscsi用户管理中分配的端口
DiscoveryAddress=172.16.62.100:3266
# TargetName=iqn.1987-05.nanwang:104
Continuous=no
HeaderDigest=never
DataDigest=never
ImmediateData=yes
MaxDiskCommandTimeout=180
ConnFailTimeout=180
启动iscsi:
service iscsi start
设置iscsi自启动:
chkconfig --level 345 iscsi on
确定安装和配置正确:
ls -l /dev/sd*
dmesg
分区举例:
fdisk -l
Oracle 共享驱动器
配置
文件系统类型 分区 大小 挂载点 ASM 磁盘组名称 文件类型
OCFS2 /dev/sda1 1GB /u02/oradata/orcl Oracle集注册表文件 — (~100MB)/CRS 表决磁盘 — (~20MB)
ASM /dev/sda2 50GB ORCL:VOL1 +ORCL_DATA1 Oracle 数据库文件
ASM /dev/sda3 50GB ORCL:VOL2 +ORCL_DATA1 Oracle 数据库文件
ASM /dev/sda4 100GB ORCL:VOL3 +FLASH_RECOVERY_AREA Oracle 闪回恢复区
总计 201GB
# fdisk /dev/sda
Command (m for help):p
Disk /dev/sda:300.0 GB, 300090728448 bytes
255 heads, 63 sectors/track, 36483 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sda1 1 36483 293049666 c W95 FAT32 (LBA)
Command (m for help):d
Selected partition 1
Command (m for help):p
Disk /dev/sda:300.0 GB, 300090728448 bytes
255 heads, 63 sectors/track, 36483 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
Command (m for help):n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-36483, default 1): 1
Last cylinder or +size or +sizeM or +sizeK (1-36483, default 36483):+1G
Command (m for help):n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 2
First cylinder (124-36483, default 124): 124
Last cylinder or +size or +sizeM or +sizeK (124-36483, default 36483):+50G
Command (m for help):n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 3
First cylinder (6204-36483, default 6204): 6204
Last cylinder or +size or +sizeM or +sizeK (6204-36483, default 36483):+50G
Command (m for help):n
Command action
e extended
p primary partition (1-4)
p
Selected partition 4
First cylinder (12284-36483, default 12284): 12284
Last cylinder or +size or +sizeM or +sizeK (12284-36483, default 36483):+100G
Command (m for help):p
Disk /dev/sda:300.0 GB, 300090728448 bytes
255 heads, 63 sectors/track, 36483 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sda1 1 123 987966 83 Linux
/dev/sda2 124 6203 48837600 83 Linux
/dev/sda3 6204 12283 48837600 83 Linux
/dev/sda4 12284 24442 97667167+ 83 Linux
Command (m for help):w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
在创建了所有必要分区后,现在应以 root 用户帐户使用以下语法将分区的更改情况通知给内核:
# partprobe
# fdisk -l /dev/sda
Disk /dev/sda:300.0 GB, 300090728448 bytes
255 heads, 63 sectors/track, 36483 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sda1 1 123 987966 83 Linux
/dev/
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论