oracle9i RAC + centos4.7
文章目录
环境配置
软件资源:
oracle9.2.0.4 https://download.youkuaiyun.com/download/xwh159753/15580942
centos4.7
链接:https://pan.baidu.com/s/1UfHOM_ly9_WZ0ejIdBauSg
提取码:gggi
操作系统安装及配置centos4.7
- 关闭防火墙
service iptables stop
chkconfig iptables off
- 关闭selinux
修改/etc/selinux/config 文件
将SELINUX=enforcing改为SELINUX=disabled
-
配置yum (略)
-
修改主机名及ip地址规划
/etc/sysconfig/network
/etc/hosts
#PUBLICIP 192.168.5.114 eam1 192.168.5.116 eam2 #PRIVATEIP 10.10.10.1 rac1-priv 10.10.10.2 rac2-priv
-
新建用户(两个节点均操作)
groupadd -g 1000 dba
useradd -g dba -u 1001 oracle
passwd oraacle
- 节点互信
1. ssh互信
eam2操作
su - oracle
ssh-keygen -t rsa
ssh-keygen -t dsa
cd /home/oracle/.ssh/
scp id_rsa.pub 192.168.5.114:/home/oracle/.ssh/id_rsa.pub2
scp id_dsa.pub 192.168.5.114:/home/oracle/.ssh/id_dsa.pub2
eam1操作
cd /home/oracle/.ssh/
cat id_dsa.pub id_dsa.pub2 id_rsa.pub id_rsa.pub2>authorized_keys
scp authorized_keys 192.168.5.116:/home/oracle/.ssh/
验证:
在eam1上
ssh eam2 date
在eam2上
ssh eam1 date
2. rcp配置 #不确定是否非必要(参考网络都是rcp复制文件,自行配置吧
7. 创建目录(连接节点都操作:
[root@eam1 ~]# mkdir /oracle
[root@eam1 ~]# chown -R oracle:dba /oracle/
[root@eam1 ~]# chmod -R 775 /oracle/
8. 修改内核参数
cat >> /etc/sysctl.conf << EOF
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 = 1024 65000
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048586
net.ipv4.tcp_wmem = 262144 262144 262144
net.ipv4.tcp_rmem = 4194304 4194304 4194304
EOF
生效
sysctl -p
9. 环境变量
```shell
ORACLE_BASE=/oracle; export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/ora92; export ORACLE_HOME
ORACLE_OWNER=oracle; export ORACLE_OWNER
ORACLE_SID=orcl1; export ORACLE_SID #两个节点不同
#ORACLE_TERM=xterm; export ORACLE_TERM
#THREADS_FLAG=native; export THREADS_FLAG
#TMP=/tmp; export TMP
#TMPDIR=$TMP; export TMPDIR
#LD_LIBRARY_PATH=$ORACLE_HOME/lib; export LD_LIBRARY_PATH
LD_ASSUME_KERNEL=2.4.1; export LD_ASSUME_KERNEL
#CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib; export CLASSPATH
DBCA_RAW_CONFIG=/home/oracle/datafiles.conf; export DBCA_RAW_CONFIG
PATH=$ORACLE_HOME/bin:$PATH; export PATH
共享磁盘配置:
采用vmware模拟,配置详情:
一个磁盘一个控制器、虚拟模式
磁盘:厚置备置零、独立持久、1:0
裸设备知识:
-
裸设备定义:
一块没有分区的硬盘,称为原始设备(RAW DEVICE)
或者是一个分区,但是没有用EXT3,OCFS等文件系统格式化,称为原始分区(RAW PARTITION)
以上两者都是裸设备 -
清空裸设备
相当于格式化啦bs是快的大小,block size
count是快的数量,这两者相乘大于裸设备的容量即可
dd if=/dev/zero of=/dev/raw/raw1 bs=8192 count=12800
dd if=/dev/zero of=/dev/raw/raw2 bs=8192 count=12800
3.裸设备绑定参考本次操作
注意事项:
1. 一块设备对应一个文件,(需仔细规划空间
2. 一块盘可分15个分区(3个主分区、第4个用拓展分区,再在第4分区的里面分11个分区)
操作:
- 分区 fdisk /sdb 仅在一个节点操作
- 修改 /etc/sysconfig/rawdevices(两个节点),添加下列内容:
/dev/raw/raw11 /dev/sdb1
/dev/raw/raw12 /dev/sdb2
/dev/raw/raw13 /dev/sdb3
/dev/raw/raw15 /dev/sdb5
/dev/raw/raw16 /dev/sdb6
/dev/raw/raw17 /dev/sdb7
/dev/raw/raw18 /dev/sdb8
/dev/raw/raw19 /dev/sdb9
/dev/raw/raw20 /dev/sdb10
/dev/raw/raw21 /dev/sdb11
/dev/raw/raw22 /dev/sdb12
/dev/raw/raw23 /dev/sdb13
/dev/raw/raw24 /dev/sdb14
/dev/raw/raw25 /dev/sdb15
/dev/raw/raw26 /dev/sdc1
/dev/raw/raw27 /dev/sdc2
/dev/raw/raw28 /dev/sdc3
/dev/raw/raw29 /dev/sdc5
/dev/raw/raw30 /dev/sdc6
/dev/raw/raw31 /dev/sdc7
/dev/raw/raw32 /dev/sdc8
/dev/raw/raw33 /dev/sdc9
-
修改配置文件**/etc/udev/permissions.d/50-udev.permissions**编辑113行
注释掉raw/:root:disk:0660
添加新行raw/:oracle:dba:0660 -
重启后验证:
ls -al /dev/raw/*
-
设置裸设备和数据文件的对映关系(不配置的话,在创建数据库时可一个一个输入)
cat > /home/oracle/datafiles.conf <<EOF
spfile=/dev/raw/raw12/
srvconfig_loc=/dev/raw/raw13
control1=/dev/raw/raw15
control2=/dev/raw/raw16
system=/dev/raw/raw17
temp=/dev/raw/raw18
users=/dev/raw/raw19
undotbs1=/dev/raw/raw20
undotbs2=/dev/raw/raw21
redo1_1=/dev/raw/raw22
redo1_2=/dev/raw/raw23
redo2_1=/dev/raw/raw24
redo2_2=/dev/raw/raw25
cwmlite=/dev/raw/raw26
xdb=/dev/raw/raw27
odm=/dev/raw/raw28
indx=/dev/raw/raw29
tools=/dev/raw/raw30
example=/dev/raw/raw31
drsys=/dev/raw/raw32
quorum=/dev/raw/raw33
EOF
7 配置hangcheck-timer,
cat >> /etc/modules.conf << EOF
modprobe hangcheck-timer hangcheck_tick=30 hangcheck_margin=180
EOF
cat >> /etc/rc.local << EOF
modprobe hangcheck-timer hangcheck_tick=30 hangcheck_margin=180
EOF
\#检查是否被正确加载
grep Hangcheck /var/log/messages
lsmod | grep hangcheck
安装各种包
yum install xorg-x11*
yum install gcc
yum install libaio*
yum install gnome-libs
yum install compat*
yum install rsh-server*
yum install libc*
yum -y install make
yum -y install binutils
yum -y install gcc
yum -y install cpp
yum -y install glibc-devel
yum -y install glibc-headers
yum -y install glibc-kernheaders
yum -y install compat-db
yum -y install compat-gcc
yum -y install compat-gcc-c++
yum -y install compat-libstdc++
yum -y install compat-libstdc++-devel
yum -y install gnome-libs
yum -y install openmotif21
yum -y install setarch
安装ocm
图形界面调出,远程的可以安装VNC
在root下
export DISPLAY=:0.0
xhost+
然后去su - oracle
在eam1上以oracle身份登录, 运行Disk1下的runInstaller开始安装oracle
安装时选择Oracle Cluster Manager 9.2.0.4,同时可在Product Language中增加Simplified chinese
输入public node information时在public node1和public node2 中分别输入eam1和eam2
输入private node information时在private node1和private node2中分别输入rac1-priv和rac2-priv
quorum disk information输入/dev/raw/raw11,上面文件配置的会自动识别
注意:
-
两个节点都装(我以为和oracle一样会同步,也可能是
-
启动时root用户操作
-
root用户需要两个环境变量
export LD_ASSUME_KERNEL=2.4.1 ORACLE_BASE=/oracle; export ORACLE_BASE ORACLE_HOME=$ORACLE_BASE/ora92; export ORACLE_HOME
启动OCM
配置文件(有时需要修改):$ORACLE_HOME/oracm/admin/cmcfg.ora
killall oracm #关闭
rm -rf $ORACLE_HOME/oracm/log/*
$ORACLE_HOME/oracm/bin/ocmstart.sh
安装oracle rac
需要将gcc 修改为gcc32
mv /usr/bin/gcc /usr/bin/gccbak
mv /usr/bin/gcc32 /usr/bin/gcc
在rhel1上以oracle身份登录, 运行Disk1下的runInstaller开始安装oracle
选择节点时使用ctrl键选择eam1和eam2, 如果没有出现节点选择的画面, 请检查oracm
是否启动.
安装时选择Oracle Database 9.2.0.4.0, 同时可在Product Language中增加Simplified chinese.
安装类型选择Enterprise Edition
选择不创建数据库.
shared configuration field中输入/dev/raw/raw13
启动GSD
su - oracle
gsdctl start
gsdctl stat
建立监听器配置文件及tnsnames.ora文件
运行netca使用默认值建立监听器
配置文件tnsnames.ora
listener_orcl1=
(DESCRIPTION=
(ADDRESS=(PROTOCOL=tcp)(HOST=rhel1)(PORT=1521)))
listener_orcl2=
(DESCRIPTION=
(ADDRESS=(PROTOCOL=tcp)(HOST=rhel2)(PORT=1521)))
listeners_orcl=
(DESCRIPTION=
(ADDRESS=(PROTOCOL=tcp)(HOST=rhel1)(PORT=1521))
(ADDRESS=(PROTOCOL=tcp)(HOST=rhel2)(PORT=1521)))
orcl=
(description=
(ADDRESS=(PROTOCOL=tcp)(HOST=rhel1)(PORT=1521))
(ADDRESS=(PROTOCOL=tcp)(HOST=rhel2)(PORT=1521))
(connect_data=
(service_name=orcl)
(failover_mode=
(type=select)(method=basic)(retries=20)(delay=15))))
orcl1=
(description=
(ADDRESS=(PROTOCOL=tcp)(HOST=rhel1)(PORT=1521))
(connect_data=
(sid=orcl1)))
orcl2=
(description=
(ADDRESS=(PROTOCOL=tcp)(HOST=rhel2)(PORT=1521))
(connect_data=
(sid=orcl2)))
安装数据库
使用dbca安装数据库,在最后开始安装时,出现空白了的错误弹窗。所以生成了脚本,随后使用脚本生成数据库
Oracle9i RAC启停:
Oracle9i RAC 关闭步骤(习惯用法)
- 关闭监听及数据库
分别登入两个节点,按照原来单实例方式分别关闭监听及实例
$ lsnrctl stop
$ sqlplus “/as sysdba”
SQL>shutdwon immediate
- 关闭GSD
以 Oracle 用户登录系统, 在所有节点运行如下命令:
$ gsdctl stop
-
如果需要关机保养,关闭前端节点 。
-
关闭共享磁盘。
Oracle9i RAC 开启步骤(习惯用法):
-
共享磁盘启动 。
-
共享磁盘启动完成后,对服务器进行开机。
启动OCM
以 root 用户登录系统(保留Oracle环境), 在所有节点运行如下命令:
$ su root (注意root前面没有 - )
$ cd $ORACLE_HOME/oracm/bin
$ ./ocmstart.sh
退出root
$exit
查看OCM是否正常启动
$ ps -ef | grep oracm -
启动GSD
以 Oracle 用户登录系统, 在所有节点运行如下命令:
$ gsdctl start -
启动数据库
分别登入两个节点,按照原来单实例方式分别开启实例及监听
$ sqlplus “/as sysdba”
SQL> startup
$ lsnrctl startsrvctl方式
问题处理
- Bringing up interface eth1: Error, some other host already uses address
vi /etc/sysconfig/network-scripts/ifup
# if ! arping -q -c 2 -w 3 -D -I ${REALDEVICE} ${IPADDR} ; then
# echo $"Error, some other host already uses address ${IPADDR}."
# exit 1
# fi