Linux下Oracle并行 RAC 之前写过在linux下如何安装oracle,现在我们来实现如何在linux下多机并行工作。首先我们讲下他与热备数据库安装的区别。
主要区别:
(1).每个集群点有3个IP 一个是公网真实IP 一个是私有IP 还有一个是集群服务的虚拟IP,而在多机热备的情况下是每个集群节点有两个IP(公网IP+私网IP) 然后所有的集群节点对外在一个虚拟IP
(2).在热备的情况下心跳网卡主要是用来做检测,他的很多功能 协议都可以禁用掉,然而在做并行的情况下,心跳网卡要在的不仅是检测 同步 它还负责各个集群节点之间的高速数据转发。心跳网卡的传输速率要求 千兆、光口(使用尾纤连接两个内网卡)或电口(传输线用定做的,保证传输速率)。
(3).热备的情况下各个集群节点的用户组ID是相互独立的 而在并行的情况下 所有节点的用户和组ID必须一致
(4).并行oracle的安装我们可以用并行推进 就是在一个节点上安装的同时拉动其他节点自动安装。这就需要在各个节点之间建立安全机制SSH。
(5).并行安装下必须保证所有节点之间的时间戳一致(可以有较小的延迟),我们可以用手动调整,也可以用NIS来实现同步。
(6).各个节点下的host文件中必须有localhost、各节点、虚拟IP、群集IP的机器名-IP映射关系
(7).所有节点的公网网卡必须准确指定网关(网关可以随便填个暂时的 又需要安装完后再改 不够一定要填)
------------------------------开始安装---------------------------------
1. 准备两台安装好linux系统的虚拟机 和一个共享磁盘
2. 创建 Oracle 组和用户帐户
户帐户名是‘oracle’,组是‘oinstall’和‘dba’。 仅在一个集群主机上以 root 用户身份执行以下命令:
# /usr/sbin/groupadd oinstall
# /usr/sbin/groupadd dba
# /usr/sbin/useradd -m -g oinstall -G dba oracle
# id oracle
uid=501(oracle) gid=501(oinstall) groups=501(oinstall),502(dba)
用户 ID 和组 ID 在所有集群主机上必须相同。 使用从 id oracle 命令得到的信息,在其余集群主机上创建 Oracle 组和用户帐户:
/usr/sbin/groupadd -g 501 oinstall
/usr/sbin/groupadd -g 502 dba
/usr/sbin/useradd -m -u 501 -g oinstall -G dba oracle
设置 oracle 帐户的口令:
# passwd oracle
Changing password for user oracle.
New password:
Retype new password:
passwd:all authentication tokens updated successfully.
3. 创建安装目录
创建安装目录并把权限赋给oracle用户和oinstall组
mkdir -p /u01/app/oracle/product/10.2.0/db_1
mkdir -p /u01/app/oracle/product/10.2.0/crs
chown -R oracle:oinstall /u01
4. 设置用户环境变量
用户环境变量:
---------------example--------------
[root@localhost ~]# su - oracle
[oracle@localhost ~]$ cd /home/oracle
[oracle@localhost ~]$ vi .bash_profile
添加:
ORACLE_BASE=/u01/app/oracle;
export ORACLE_BASEORACLE_HOME=$ORACLE_BASE/product/10.1.0/db_1;
export ORACLE_HOMEORACLE_SID=orcl;
export ORACLE_SIDPATH=$PATH:$HOME/bin:$ORACLE_HOME/bin;
export PATHLD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib;
export LD_LIBRARY_PATHLC_CTYPE=en_US.UTF-8;
export LC_CTYPEDISPLAY=192.168.1.123:0.0l ---oracle安装界面弹出主机地址 该主机上必须安装有XManager
export DISPLAY
保存退出然后执行:source .bash_profile
运行xhost看有没有链接的主机
5. 系统环境设置:
以ROOT的身份修改内核参数
vi /etc/sysctl.conf
kernel.shmall = 2097152
kernel.shmmax = 536870912 ;最大内存一般为本机的一半
kernel.shmmni = 4096 ;最小内存
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default = 262144
net.core.rmem_max = 262144
net.core.wmem_default = 262144
net.core.wmem_max = 2621447.
生效修改的内核参数
A: 保存后重启系统 B: 使用命令行:sysctl -p
6. 安装必须组件
以root的身份 安装以下程序(注意要按顺序)
a glibc-kernhearder-***************
b glibc-header-2.3.4-2.13
c glibc-devel-2.3.4-***
d gcc-3.4.4.2.i386.rpm
7. 修改Hosts文件
vi /etc/hosts ip地址自己搞定
127.0.0.1 localhost.localdomain localhost
10.133.129.181 OraclusterA.qzga.com OraclusterA
10.133.129.182 OraclusterB.qzga.com OraclusterB
10.133.129.183 OraclusterA-vip.qzga.com OraclusterA-vip
10.133.129.184 OraclusterB-vip.qzga.com OraclusterB-vip
10.10.10.1 OraclusterA-pri.qzga.com OraclusterA-pri
10.10.10.2 OraclusterB-pri.qzga.com OraclusterB-pri
8.验证是否安装所需程序包
rom -qa make gcc compat-db
9. 为 oracle 用户设置 Shell 限制
对于 Red Hat Enterprise Linux 版本,使用以下命令:
cat >> /etc/profile >>EOF
if [ /$USER = "oracle" ]; then
if [ /$SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
umask 022
fi
EOF
cat >> /etc/csh.login >>EOF
if ( /$USER == "oracle" ) then
limit maxproc 16384
limit descriptors 65536
umask 022
endif
EOF
10.为用户等效性配置 SSH
用 SSH 建立用户等效性就提供了一种在集群中其他主机上复制文件和执行程序时不需要口令提示的安全方式。
待续.............
主要区别:
(1).每个集群点有3个IP 一个是公网真实IP 一个是私有IP 还有一个是集群服务的虚拟IP,而在多机热备的情况下是每个集群节点有两个IP(公网IP+私网IP) 然后所有的集群节点对外在一个虚拟IP
(2).在热备的情况下心跳网卡主要是用来做检测,他的很多功能 协议都可以禁用掉,然而在做并行的情况下,心跳网卡要在的不仅是检测 同步 它还负责各个集群节点之间的高速数据转发。心跳网卡的传输速率要求 千兆、光口(使用尾纤连接两个内网卡)或电口(传输线用定做的,保证传输速率)。
(3).热备的情况下各个集群节点的用户组ID是相互独立的 而在并行的情况下 所有节点的用户和组ID必须一致
(4).并行oracle的安装我们可以用并行推进 就是在一个节点上安装的同时拉动其他节点自动安装。这就需要在各个节点之间建立安全机制SSH。
(5).并行安装下必须保证所有节点之间的时间戳一致(可以有较小的延迟),我们可以用手动调整,也可以用NIS来实现同步。
(6).各个节点下的host文件中必须有localhost、各节点、虚拟IP、群集IP的机器名-IP映射关系
(7).所有节点的公网网卡必须准确指定网关(网关可以随便填个暂时的 又需要安装完后再改 不够一定要填)
------------------------------开始安装---------------------------------
1. 准备两台安装好linux系统的虚拟机 和一个共享磁盘
2. 创建 Oracle 组和用户帐户
户帐户名是‘oracle’,组是‘oinstall’和‘dba’。 仅在一个集群主机上以 root 用户身份执行以下命令:
# /usr/sbin/groupadd oinstall
# /usr/sbin/groupadd dba
# /usr/sbin/useradd -m -g oinstall -G dba oracle
# id oracle
uid=501(oracle) gid=501(oinstall) groups=501(oinstall),502(dba)
用户 ID 和组 ID 在所有集群主机上必须相同。 使用从 id oracle 命令得到的信息,在其余集群主机上创建 Oracle 组和用户帐户:
/usr/sbin/groupadd -g 501 oinstall
/usr/sbin/groupadd -g 502 dba
/usr/sbin/useradd -m -u 501 -g oinstall -G dba oracle
设置 oracle 帐户的口令:
# passwd oracle
Changing password for user oracle.
New password:
Retype new password:
passwd:all authentication tokens updated successfully.
3. 创建安装目录
创建安装目录并把权限赋给oracle用户和oinstall组
mkdir -p /u01/app/oracle/product/10.2.0/db_1
mkdir -p /u01/app/oracle/product/10.2.0/crs
chown -R oracle:oinstall /u01
4. 设置用户环境变量
用户环境变量:
---------------example--------------
[root@localhost ~]# su - oracle
[oracle@localhost ~]$ cd /home/oracle
[oracle@localhost ~]$ vi .bash_profile
添加:
ORACLE_BASE=/u01/app/oracle;
export ORACLE_BASEORACLE_HOME=$ORACLE_BASE/product/10.1.0/db_1;
export ORACLE_HOMEORACLE_SID=orcl;
export ORACLE_SIDPATH=$PATH:$HOME/bin:$ORACLE_HOME/bin;
export PATHLD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib;
export LD_LIBRARY_PATHLC_CTYPE=en_US.UTF-8;
export LC_CTYPEDISPLAY=192.168.1.123:0.0l ---oracle安装界面弹出主机地址 该主机上必须安装有XManager
export DISPLAY
保存退出然后执行:source .bash_profile
运行xhost看有没有链接的主机
5. 系统环境设置:
以ROOT的身份修改内核参数
vi /etc/sysctl.conf
kernel.shmall = 2097152
kernel.shmmax = 536870912 ;最大内存一般为本机的一半
kernel.shmmni = 4096 ;最小内存
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default = 262144
net.core.rmem_max = 262144
net.core.wmem_default = 262144
net.core.wmem_max = 2621447.
生效修改的内核参数
A: 保存后重启系统 B: 使用命令行:sysctl -p
6. 安装必须组件
以root的身份 安装以下程序(注意要按顺序)
a glibc-kernhearder-***************
b glibc-header-2.3.4-2.13
c glibc-devel-2.3.4-***
d gcc-3.4.4.2.i386.rpm
7. 修改Hosts文件
vi /etc/hosts ip地址自己搞定
127.0.0.1 localhost.localdomain localhost
10.133.129.181 OraclusterA.qzga.com OraclusterA
10.133.129.182 OraclusterB.qzga.com OraclusterB
10.133.129.183 OraclusterA-vip.qzga.com OraclusterA-vip
10.133.129.184 OraclusterB-vip.qzga.com OraclusterB-vip
10.10.10.1 OraclusterA-pri.qzga.com OraclusterA-pri
10.10.10.2 OraclusterB-pri.qzga.com OraclusterB-pri
8.验证是否安装所需程序包
rom -qa make gcc compat-db
9. 为 oracle 用户设置 Shell 限制
对于 Red Hat Enterprise Linux 版本,使用以下命令:
cat >> /etc/profile >>EOF
if [ /$USER = "oracle" ]; then
if [ /$SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
umask 022
fi
EOF
cat >> /etc/csh.login >>EOF
if ( /$USER == "oracle" ) then
limit maxproc 16384
limit descriptors 65536
umask 022
endif
EOF
10.为用户等效性配置 SSH
用 SSH 建立用户等效性就提供了一种在集群中其他主机上复制文件和执行程序时不需要口令提示的安全方式。
待续.............