百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 优雅编程 > 正文

Oracle 10g R2 RAC 学习环境搭建教程

sinye56 2024-09-29 22:07 13 浏览 0 评论

大家好!今天有空整理了一下之前学习oracle 10g RAC的安装过程,适合初学者创建学习环境,有利于oracle的学习与实践。。。

后续会更新Oracle 11G RAC学习环境的搭建

1、 相关软件

OS:Oracle Linux 5.8 64bit

SoftWare(oracle 10g R2): cluster(10201_clusterware_linux_x86_64)

Database(10201_database_linux_x86_64)

Patch(p8202632_10205_Linux-x86-64)

相关工具:CRT、Xmanage、VNC

注:安装环境为Windows Server 2012 Hype-V

共享存储为Windows Server 2012(File and Storage Services)——Hype-V

节点物理内存:4G

ASM(3个):60G OCR(2个):1G VOTE(3个):1G

2、 安装OS注意事项【RAC1&RAC2】

分区:简单分区两个/和swap 注:swap分区为物理内存的两倍

软件包安装:

关闭sendmail服务

Service sendmail off chkconfig sendmail off chkconfig –list sendmail

字符界面设置

[root@rac2 ~]# vi /etc/inittab

3、安装rlwrap软件【RAC1&RAC2】

[root@rac1 ~]# tar -zxvf rlwrap-0.42.tar.gz

[root@rac1 ~]# ll

[root@rac1 ~]# cd rlwrap-0.42

[root@rac1 rlwrap-0.42]# ./configure

[root@rac1 rlwrap-0.42]# make

[root@rac1 rlwrap-0.42]# make install

注:rlwrap软件安装后,就可以在sqlplus或者rman中使用上下箭头翻页查找执行过的语句

会在oracle用户下的.bash_profile后面加alias sqlplus=’rlwrap sqlplus’、alias rman=’rlwrap rman’等等

4、安装oracle软件需要的RPM包【RAC1&RAC2】

rpm -q binutils compat-db compat-libstdc++-33 compat-libstdc++-296 compat-gcc-34-c++ compat-gcc-34 control-center elfutils-libelf elfutils-libelf-devel elfutils-libelf-devel-static gcc gcc-c++ glibc glibc-common glibc-devel glibc-headers gnome-screensaver kernel-headers ksh libaio libaio-devel libgcc libgomp libstdc++ libstdc++-devel libXp make numactl-devel openmotif openmotif22 pdksh rsh setarch sysstat unixODBC unixODBC-devel

执行上面命令查看这些RPM包是否都已安装

package compat-db is not installed

package libaio-devel is not installed

package libXp is not installed

package numactl-devel is not installed

package openmotif is not installed

package openmotif22 is not installed

package pdksh is not installed

package sysstat is not installed

package unixODBC is not installed

package unixODBC-devel is not installed

配置官方YUM源,连接外网,安装缺少的RPM包

查看版本:

[root@node1 ~]# cd /etc/yum.repos.d/

[root@node1 yum.repos.d]# lsb_release -a

下载yum源配置文件:

[root@node1 yum.repos.d]# wget http://public-yum.oracle.com/public-yum-el5.repo

[root@node1 yum.repos.d]# ls

public-yum-el5.repo

[root@node1 yum.repos.d]# vi public-yum-el5.repo

注:将oracleasm的RPM包也一起安装【yum install oracleasm 运行三次】

5、设置内核参数和其它参数【RAC1&RAC2】

vi /etc/sysctl.conf

kernel.core_uses_pid = 1

kernel.shmall = 2097152

kernel.shmmax = 2147483648

kernel.shmmni = 4096

kernel.sem = 250 32000 100 128

fs.file-max = 101365

net.ipv4.ip_local_port_range = 1024 65000

net.core.rmem_default = 1048576

net.core.rmem_max = 1048576

net.core.wmem_default = 262144

net.core.wmem_max = 262144

sysctl –p 执行该命令使内核参数立即生效

vi /etc/security/limits.conf

oracle soft nproc 2047

oracle hard nproc 16384

oracle soft nofile 1024

oracle hard nofile 65536

vi /etc/pam.d/login

session required /lib64/security/pam_limits.so

session required pam_limits.so

注意:因为是64位的系统,所以一定要写/lib64/security/pam_limits.so

如果写成/lib/security/pam_limits.so(这是32位系统的设置)

Vi /etc/profile 添加oracle环境变量

if [ $USER = "oracle" ]; then

if [ $SHELL = "/bin/ksh" ]; then

ulimit -p 16384

ulimit -n 65536

else

ulimit -u 16384 -n 65536

fi

fi

执行source /etc/profile命令使配置生效

设置hangcheck内核模块参数

[root@rac1 ~]# vi /etc/modprobe.conf

options hangcheck-timer hangcheck_tick=30 hangcheck_margin=180

执行‘[root@rac1 ~]# modprobe -v hangcheck-timer’使得上面的更改生效

查看tmfs大小

Vi /etc/fstab

配置NTP服务,实现网络时间同步

配置windows server 2008为NTP server

默认情况下,独立服务器WINDOWS SERVER 2008是作为NTP客户端工作的 ,所以必须通过修改注册表,以使系统作为NTP服务器运行。工作之前请先备份注册表文件。

1.修改以下选项的键值HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpServer内的[Enabled]设定为1。

打开NTP服务器功能(默认是不开启NTP Server服务,除非电脑升级成为域控制站)。

2.修改以下键值HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config\AnnounceFlags设定为5.

该设定强制主机将它自身宣布为可靠的时间源,从而使用内置的互补金属氧化物半导体 (CMOS) 时钟。如果要采用外面的时间服务器就用默认的a值即可.

3.修改以下键值HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters\Type内的[Type]设定为NTP。

4.重启Win32Time服务:先关闭 windows time 服务,再开启该服务。可以在“管理工具”的“服务”界面下完成,也可以以 DOS 方式输入“net stop w32time”、“net start w32time”。

至此,已完成服务器端设定.

配置节点

[root@rac1 ~]# service ntpd status

ntpd is stopped

[root@rac1 ~]# ntpdate 192.168.75.1

30 Aug 19:40:31 ntpdate[12102]: step time server 192.168.75.1 offset -28799.377040 sec

[root@rac1 ~]# crontab –e

* * * * * ntpdate 192.168.75.1

这个脚本表示每分钟同步一次,crontab脚本间隔最短时间只能设置为1分钟

[root@rac1 ~]# crontab -l

* * * * * ntpdate 192.168.75.1

[root@rac1 ~]# service crond restart

Stopping crond: [ OK ]

Starting crond: [ OK ]

查看crontab的运行日志

[root@rac1 ~]# tail -10f /var/log/cron

确认物理内存和交换内存信息

[root@rac1 yum.repos.d]# grep MemTotal /proc/meminfo

MemTotal: 4043808 kB

[root@rac1 yum.repos.d]# grep SwapTotal /proc/meminfo

SwapTotal: 8385920 kB

设置Hosts的IP地址,最好用三段式

Vi /etc/hosts

127.0.0.1 localhost.localdomain localhost

::1 localhost6.localdomain localhost6

192.168.75.11 rac1.localdomain rac1

192.168.75.12 rac2.localdomain rac2

192.168.80.11 rac1-priv.localdomain rac1-priv

192.168.80.12 rac2-priv.localdomain rac2-priv

192.168.75.21 rac1-vip.localdomain rac1-vip

192.168.75.22 rac2-vip.localdomain rac2-vip

Vip和public的IP在同一个网段,私有IP是另一个网段

测试一下

Ping rac1.localdomain

Ping rac2.localdomain

Ping rac1-priv.localmain

Ping rac2-priv.localdomain

创建oracle用户组和用户

[root@rac1 yum.repos.d]# groupadd dba

[root@rac1 yum.repos.d]# groupadd oinstall

[root@rac1 yum.repos.d]# useradd -c oracle -g oinstall -G dba oracle

[root@rac2 yum.repos.d]# passwd oracle

[root@rac1 yum.repos.d]# mkdir -p /u01/oracle

[root@rac1 yum.repos.d]# chown -R oracle:oinstall /u01

6、配置共享存储【RAC1&RAC2】

[root@rac1 yum.repos.d]# cd /etc/iscsi

[root@rac1 iscsi]# ll

total 24

-rw-r--r-- 1 root root 49 Aug 30 21:56 initiatorname.iscsi

-rw------- 1 root root 10694 Feb 24 2012 iscsid.conf

[root@rac1 iscsi]# cd /etc/init.d/

[root@rac1 init.d]# ./iscsi start

iscsid (pid 1672) is running...

Setting up iSCSI targets: iscsiadm: No records found

[ OK ]

[root@rac1 init.d]# iscsiadm --mode discovery --type sendtargets --portal 192.168.75.75

192.168.75.75:3260,1 iqn.1991-05.com.microsoft:win-3ee80mhproo-rac-target

[root@rac1 init.d]# iscsiadm --mode node

192.168.75.75:3260,1 iqn.1991-05.com.microsoft:win-3ee80mhproo-rac-target

[root@rac1 init.d]# iscsiadm --mode node --targetname iqn.1991-05.com.microsoft:win-3ee80mhproo-rac-target --portal 192.168.75.75:3260 --login

Logging in to [iface: default, target: iqn.1991-05.com.microsoft:win-3ee80mhproo-rac-target, portal: 192.168.75.75,3260] (multiple)

Login to [iface: default, target: iqn.1991-05.com.microsoft:win-3ee80mhproo-rac-target, portal: 192.168.75.75,3260] successful.

[root@rac1 init.d]# vi /etc/iscsi/iscsid.conf 在第一行添加

iscsiadm --mode node --targetname iqn.1991-05.com.microsoft:win-3ee80mhproo-rac-target --portal 192.168.75.75:3260 --login

[root@rac1 init.d]# chkconfig iscsid on

[root@rac1 init.d]# chkconfig --list iscsid

iscsid 0:off 1:off 2:on 3:on 4:on 5:on 6:off

[root@rac1 init.d]# fdisk -l

重启一下,测试共享硬盘的挂载,在RAC2执行以上操作

将所有磁盘进行分区fdisk /dev/sdg

查看主机名及更正

[root@rac2 ~]# vi /etc/sysconfig/network

[root@rac2 ~]# hostname

7、配置ASM磁盘和裸设备【RAC1&RAC2】

上面命令在节点2也要执行一下

以上两部分节点2不用执行

节点2同样执行一下,查看是否正常

注意:asm磁盘如果使用了asmlib就不能再设置成裸设备,否则在创建asm磁盘组的时候rac2的实例挂载磁盘会失败,要么用裸设备,不用asmlib

其它2块OCR磁盘和3块表决磁盘配置成裸设备

Vi /etc/sysconfig/rawdevices

/dev/raw/raw1 /dev/sde1

/dev/raw/raw2 /dev/sdf1

/dev/raw/raw3 /dev/sdg1

/dev/raw/raw4 /dev/sdh1

/dev/raw/raw5 /dev/sdi1

配置裸设备开机权限

vi /etc/udev/rules.d/60-raw.rules

ACTION=="add", KERNEL=="sde1", RUN+="/bin/raw /dev/raw/raw1 %N"

ACTION=="add", KERNEL=="sdf1", RUN+="/bin/raw /dev/raw/raw2 %N"

ACTION=="add", KERNEL=="sdg1", RUN+="/bin/raw /dev/raw/raw3 %N"

ACTION=="add", KERNEL=="sdh1", RUN+="/bin/raw /dev/raw/raw4 %N"

ACTION=="add", KERNEL=="sdi1", RUN+="/bin/raw /dev/raw/raw5 %N"

ACTION=="add", KERNEL=="raw[1-2]", OWNER="root", GROUP="oinstall", MODE="660"

ACTION=="add", KERNEL=="raw[3-5]", OWNER="oracle", GROUP="oinstall", MODE="660"

重启一下服务 [root@rac1 ~]# service rawdevices restart

查看裸设备状态

8、配置oracle用户环境变量【RAC1&RAC2】

su - oracle

vi .bash_profile

export TMP=/tmp

export TMPDIR=$TMP

export ORACLE_BASE=/u01

export ORACLE_SID=racdb1 ####节点2 ORACLE_SID=racdb2

export ORACLE_HOME=/u01/oracle/db_1

export ORA_CRS_HOME=/u01/oracle/crs_1

export ORACLE_TERM=xterm

export PATH=$PATH:$ORACLE_HOME/bin:$ORA_CRS_HOME/bin:$HOME/bin

export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$ORA_CRS_HOME/lib:/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin

export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib

export DISPLAY=192.168.75.1:0.0

stty erase ^h

参数立即生效[oracle@rac1 ~]$ . .bash_profile

查看环境变量已经生效

9、两个节点建立信任关系

【RAC1】

[root@rac1 ~]# su - oracle

[oracle@rac1 ~]$ pwd

[oracle@rac1 ~]$ mkdir .ssh

[oracle@rac1 ~]$ chmod 700 .ssh

[oracle@rac1 ~]$ ssh-keygen -t rsa

[oracle@rac1 ~]$ ssh-keygen -t dsa

【RAC2】

[root@rac1 ~]# su - oracle

[oracle@rac1 ~]$ pwd

[oracle@rac1 ~]$ mkdir .ssh

[oracle@rac1 ~]$ chmod 700 .ssh

[oracle@rac1 ~]$ ssh-keygen -t rsa

[oracle@rac1 ~]$ ssh-keygen -t dsa

【RAC1】注意是在rac1执行

[oracle@rac1 ~]$ cat .ssh/id_rsa.pub >> .ssh/authorized_keys

[oracle@rac1 ~]$ cat .ssh/id_dsa.pub >> .ssh/authorized_keys

[oracle@rac1 ~]$ ssh rac2 cat .ssh/id_rsa.pub >> .ssh/authorized_keys

[oracle@rac1 ~]$ ssh rac2 cat .ssh/id_dsa.pub >> .ssh/authorized_keys

[oracle@rac1 ~]$ scp .ssh/authorized_keys rac2:/home/oracle/.ssh/authorized_keys

验证

以上八条命令在节点2也要执行一下

10、拷贝软件,设置权限【RAC1】

11、安装clusterware软件

解压clusterware软件

[oracle@rac1 u01]# zcat 10201_clusterware_linux_x86_64.cpio.gz | cpio –idmv

安装前,检查安装环境

[oracle@rac1 u01]# /u01/clusterware/cluvfy/runcluvfy.sh stage -pre crsinst -n rac1,rac2 -verbose

以上错误是正常的,因为还没配置VIP

用root用户更改Linux的版本号,用oracle用户安装

改成版本4,不然runInstaller运行不了

开始安装clusterware

RAC1另起一个会话

RAC2另起一个会话

接着,第二个脚本执行前,先用root用户修改一下参数(两个节点都要修改)

root@rac1 ~]# vi /u01/oracle/crs_1/bin/vipca

[root@rac1 ~]# vi /u01/oracle/crs_1/bin/srvctl

RAC2也同样用root执行

RAC1先执行:[root@rac1 ~]# /u01/oracle/crs_1/root.sh

RAC2执行[root@rac2 ~]# /u01/oracle/crs_1/root.sh

接下来,查看两个节点的ocr是否一致

在RAC2上执行

[root@rac2 ~]# /u01/oracle/crs_1/bin/oifcfg getif

[root@rac2 ~]# /u01/oracle/crs_1/bin/oifcfg iflist

eth0 192.168.75.0

eth1 192.168.80.0

[root@rac2 ~]# /u01/oracle/crs_1/bin/oifcfg setif -global eth0/192.168.75.0:public

[root@rac2 ~]# /u01/oracle/crs_1/bin/oifcfg setif -global eth1/192.168.80.0:cluster_interconnect

[root@rac2 ~]# /u01/oracle/crs_1/bin/oifcfg getif

eth0 192.168.75.0 global public

eth1 192.168.80.0 global cluster_interconnect

[root@rac2 ~]# export DISPLAY=192.168.75.1:0.0

[root@rac2 ~]# /u01/oracle/crs_1/bin/vipca

检查一下ocr的一致性状态

终于可以点击OK了

CRS安装完毕

检查CRS版本

检查CRS状态

12、安装数据库软件

解压database软件包

[oracle@rac1 u01]$ zcat 10201_database_linux_x86_64.cpio.gz | cpio –idmv

在rac1和rac2分别使用root用户执行

返回去点击OK

再次检查OCR是否一致

12、升级clusterware软件

解压升级包

[oracle@rac1 u01]$ unzip p8202632_10205_Linux-x86-64.zip

开始安装升级包

以上错误,修改参数vi /etc/sysctl.conf,两节点均需要更改,执行sysctl –p,使更改立即生效

重新检查OK

根据提示进行操作,先检查OCR是否一致

【RAC1】

查看rac1的OCR是否一致

Rac1升级完,服务都正常

【RAC2】

检查两节点的OCR信息以及crs_stat状态

查看一下clusterware的版本

点击exit退出

至此,clusterware软件升级完毕

13、升级数据库软件

再次运行[oracle@rac1 Disk1]$ ./runInstaller

在两个节点依次执行

【RAC1】

【RAC2】

返回点击OK,退出即可

数据库至此升级完毕

14、安装ASM实例

检查一下crs服务状态

检查两个节点的ASM磁盘

在RAC1执行,安装ASM实例

点击YES,让其自动配置监听

注意:最好不要自己用netca配置rac的监听,搞不好会导致ASM磁盘组创建失败

此时,检查一下crs,直到全部online

再查看rac2的+ASM的服务名是否动态注册到了listener,用oracle用户检查

然后再创建ASM磁盘组,不然可能会导致rac2的磁盘组mount不了,那就只能删除listener和ASM重装了

因为是学习测试,故选择External模式

点击NO,结束配置,等会要建数据库

检查两个节点的OCR信息是否一致

注意:两个节点的ASM实例都要全部mounted才正确,如果不是,就要删除重装ASM磁盘组

ASM磁盘组创建完,开始创建数据库

在RAC1执行

在刚刚建好的ASM磁盘组上安装数据库

racdb数据库创建完毕

在两个节点oracle用户都添加rlwrap的环境变量

Vi .bash_profile

alias sqlplus='rlwrap sqlplus'

alias rman='rlwrap rman'

alias lsnrctl='rlwrap lsnrctl'

. .bash_profile

最后,为了NAME列能显示完整,需要在root用户下创建一个文件

[root@rac1 ~]# vi /usr/bin/crs_stat

export ORACLE_BASE=/u01

export ORACLE_CRS_HOME=$ORACLE_BASE/oracle/crs_1

export ORACLE_HOME=$ORACLE_BASE/oracle/db_1

RSC_KEY=$1

QSTAT=-u

AWK=/bin/awk # if not available use /usr/bin/awk

# Table header:echo ""

$AWK \

'BEGIN {printf "%-45s %-10s %-18s\n", "HA Resource", "Target", "State";

printf "%-45s\n","--------------------------------------------------------------------------";}'

# Table body:

$ORA_CRS_HOME/bin/crs_stat $QSTAT | $AWK \

'BEGIN { FS="="; state = 0; }

$1~/NAME/ && $2~/'$RSC_KEY'/ {appname = $2; state=1};

state == 0 {next;}

$1~/TARGET/ && state == 1 {apptarget = $2; state=2;}

$1~/STATE/ && state == 2 {appstate = $2; state=3;}

state == 3 {printf "%-45s %-10s %-18s\n", appname, apptarget, appstate; state=0;}'

[root@rac1 ~]# chmod 775 /usr/bin/crs_stat

至此,RAC环境搭建完成!!!

相关推荐

程序员:JDK的安装与配置(完整版)_jdk的安装方法

对于Java程序员来说,jdk是必不陌生的一个词。但怎么安装配置jdk,对新手来说确实头疼的一件事情。我这里以jdk10为例,详细的说明讲解了jdk的安装和配置,如果有不明白的小伙伴可以评论区留言哦下...

Linux中安装jdk并配置环境变量_linux jdk安装教程及环境变量配置

一、通过连接工具登录到Linux(我这里使用的Centos7.6版本)服务器连接工具有很多我就不一一介绍了今天使用比较常用的XShell工具登录成功如下:二、上传jdk安装包到Linux服务器jdk...

麒麟系统安装JAVA JDK教程_麒麟系统配置jdk

检查检查系统是否自带java在麒麟系统桌面空白处,右键“在终端打开”,打开shell对话框输入:java–version查看是否自带java及版本如图所示,系统自带OpenJDK,要先卸载自带JDK...

学习笔记-Linux JDK - 安装&配置

前提条件#检查是否存在JDKrpm-qa|grepjava#删除现存JDKyum-yremovejava*安装OracleJDK不分系统#进入安装文件目...

Linux新手入门系列:Linux下jdk安装配置

本系列文章是把作者刚接触和学习Linux时候的实操记录分享出来,内容主要包括Linux入门的一些理论概念知识、Web程序、mysql数据库的简单安装部署,希望能够帮到一些初学者,少走一些弯路。注意:L...

测试员必备:Linux下安装JDK 1.8你必须知道的那些事

1.简介在Oracle收购Sun后,Java的一系列产品就被整合到Oracle官网中,打开官网乍眼一看也不知道去哪里下载,还得一个一个的摸索尝试,而且网上大多数都是一些Oracle收购Sun前,或者就...

Linux 下安装JDK17_linux 安装jdk1.8 yum

一、安装环境操作系统:JDK版本:17二、安装步骤第一步:下载安装包下载Linux环境下的jdk1.8,请去官网(https://www.oracle.com/java/technologies/do...

在Ubuntu系统中安装JDK 17并配置环境变量教程

在Ubuntu系统上安装JDK17并配置环境变量是Java开发环境搭建的重要步骤。JDK17是Oracle提供的长期支持版本,广泛用于开发Java应用程序。以下是详细的步骤,帮助你在Ubuntu系...

如何在 Linux 上安装 Java_linux安装java的步骤

在桌面上拥抱Java应用程序,然后在所有桌面上运行它们。--SethKenlon(作者)无论你运行的是哪种操作系统,通常都有几种安装应用程序的方法。有时你可能会在应用程序商店中找到一个应用程序...

Windows和Linux环境下的JDK安装教程

JavaDevelopmentKit(简称JDK),是Java开发的核心工具包,提供了Java应用程序的编译、运行和开发所需的各类工具和类库。它包括了JRE(JavaRuntimeEnviro...

linux安装jdk_linux安装jdk软连接

JDK是啥就不用多介绍了哈,外行的人也不会进来看我的博文。依然记得读大学那会,第一次实验课就是在机房安装jdk,编写HelloWorld程序。时光飞逝啊,一下过了十多年了,挣了不少钱,买了跑车,娶了富...

linux安装jdk,全局配置,不同用户不同jdk

jdk1.8安装包链接:https://pan.baidu.com/s/14qBrh6ZpLK04QS8ogCepwg提取码:09zs上传文件解压tar-zxvfjdk-8u152-linux-...

运维大神教你在linux下安装jdk8_linux安装jdk1.7

1.到官网下载适合自己机器的版本。楼主下载的是jdk-8u66-linux-i586.tar.gzhttp://www.oracle.com/technetwork/java/javase/downl...

window和linux安装JDK1.8_linux 安装jdk1.8.tar

Windows安装JDK1.8的步骤:步骤1:下载JDK打开浏览器,找到JDK下载页面https://d.injdk.cn/download/oraclejdk/8在页面中找到并点击“下载...

最全的linux下安装JavaJDK的教程(图文详解)不会安装你来打我?

默认已经有了linux服务器,且有root账号首先检查一下是否已经安装过java的jdk任意位置输入命令:whichjava像我这个已经安装过了,就会提示在哪个位置,你的肯定是找不到。一般我们在...

取消回复欢迎 发表评论: