Openfiler + Redhat 5.4 Oracle 11gR2 RAC 安装文档

 

 

Oracle 11gR2 RAC 的安装。 这个实验采用的架构:

虚拟机VMServer 2.0 + REDHAT 5.4 +Oracle 11gR2+openfiler存储 + DNS server (scan)openfiler通过iscsi 连接到虚拟机上,作为共享设备。

 

参考Oracle 官方文档:

       Oracle Enterprise Linux iSCSI 上构建您自己的 Oracle RAC 11g 集群

       http://www.oracle.com/technology/global/cn/pub/articles/hunter-rac11gr2-iscsi.html

 

 

一. 准备工作

 

1. 存储的分配:

 

这里对在openfiler上划分了3target CRS, FRA Data 然后在服务器上通过multipath进行绑定。虚拟机的安装和openfiler 的安装及配置, 具体参考Blog

       openfiler 搭建虚拟存储 配置服务端

http://blog.csdn.net/tianlesoftware/archive/2010/10/29/5973222.aspx

 

       Multipath实现LUN设备名称的持久化

      http://blog.csdn.net/tianlesoftware/archive/2010/11/01/5979061.aspx

 

       Oracle 11gR2 RAC 新特性说明

       http://blog.csdn.net/tianlesoftware/archive/2010/11/02/5982972.aspx

 

 

配置完之后的信息如下:

 

[root@rac1 ~]# multipath -ll

crs (14f504e46494c4500315a6b5774512d4c5136482d6a424447) dm-0 OPNFILER,VIRTUAL-DISK

[size=2.0G][features=1 queue_if_no_path][hwhandler=0][rw]

/_ round-robin 0 [prio=2][active]

 /_ 9:0:0:0  sdb 8:16  [active][ready]

 /_ 10:0:0:0 sde 8:64  [active][ready]

fra (14f504e46494c450039396b35564d2d643574372d33414c4a) dm-1 OPNFILER,VIRTUAL-DISK

[size=3.0G][features=1 queue_if_no_path][hwhandler=0][rw]

/_ round-robin 0 [prio=2][active]

 /_ 7:0:0:0  sdc 8:32  [active][ready]

 /_ 8:0:0:0  sdd 8:48  [active][ready]

data (14f504e46494c45004d574c6870432d756654352d33347766) dm-2 OPNFILER,VIRTUAL-DISK

[size=9.6G][features=1 queue_if_no_path][hwhandler=0][rw]

/_ round-robin 0 [prio=2][active]

 /_ 11:0:0:0 sdf 8:80  [active][ready]

 /_ 12:0:0:0 sdg 8:96  [active][ready]

 

 

[root@rac1 mapper]# ls -lrt /dev/mapper/*

crw------- 1 root root  10, 62 Nov 12 04:42 /dev/mapper/control

brw-rw---- 1 root disk 253,  0 Nov 12 05:24 /dev/mapper/crs

brw-rw---- 1 root disk 253,  1 Nov 12 05:24 /dev/mapper/fra

brw-rw---- 1 root disk 253,  2 Nov 12 05:24 /dev/mapper/data

 

 

2. 安装所需要的安装包:

binutils-2.17.50.0.6

compat-libstdc++-33-3.2.3

elfutils-libelf-0.125

elfutils-libelf-devel-0.125

elfutils-libelf-devel-static-0.125

gcc-4.1.2

gcc-c++-4.1.2

glibc-2.5-24

glibc-common-2.5

glibc-devel-2.52

glibc-headers-2.5

kernel-headers-2.6.18

ksh-20060214

libaio-0.3.106

libaio-devel-0.3.106

libgcc-4.1.2

libgomp-4.1.2

libstdc++-4.1.2

libstdc++-devel-4.1.2

make-3.81

sysstat-7.0.2

unixODBC-2.2.11

unixODBC-devel-2.2.11

 

rpm -q  命令检查一下,如果没有,到系统安装盘里查找并安装一下

 

. 设备进行格式化:

 

[root@rac1 mapper]# fdisk /dev/mapper/crs

Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel

Building a new DOS disklabel. Changes will remain in memory only,

until you decide to write them. After that, of course, the previous

content won't be recoverable.

 

Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)

 

Command (m for help): n

Command action

   e   extended

   p   primary partition (1-4)

p

Partition number (1-4): 1

First cylinder (1-257, default 1):  --直接敲回车,用默认值

Using default value 1

Last cylinder or +size or +sizeM or +sizeK (1-257, default 257):  --直接敲回车,用默认值

Using default value 257

 

Command (m for help): w

The partition table has been altered!

 

Calling ioctl() to re-read partition table.

 

WARNING: Re-reading the partition table failed with error 22: Invalid argument.

The kernel still uses the old table.

The new table will be used at the next reboot.

Syncing disks.

[root@rac1 mapper]# fdisk /dev/mapper/fra

Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel

Building a new DOS disklabel. Changes will remain in memory only,

until you decide to write them. After that, of course, the previous

content won't be recoverable.

 

Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)

 

Command (m for help): n

Command action

   e   extended

   p   primary partition (1-4)

p

Partition number (1-4): 1

First cylinder (1-387, default 1):

Using default value 1

Last cylinder or +size or +sizeM or +sizeK (1-387, default 387):

Using default value 387

 

Command (m for help): w

The partition table has been altered!

 

Calling ioctl() to re-read partition table.

 

WARNING: Re-reading the partition table failed with error 22: Invalid argument.

The kernel still uses the old table.

The new table will be used at the next reboot.

Syncing disks.

[root@rac1 mapper]# fdisk /dev/mapper/data

Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel

Building a new DOS disklabel. Changes will remain in memory only,

until you decide to write them. After that, of course, the previous

content won't be recoverable.

 

 

The number of cylinders for this disk is set to 1248.

There is nothing wrong with that, but this is larger than 1024,

and could in certain setups cause problems with:

1) software that runs at boot time (e.g., old versions of LILO)

2) booting and partitioning software from other OSs

   (e.g., DOS FDISK, OS/2 FDISK)

Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)

 

Command (m for help): n

Command action

   e   extended

   p   primary partition (1-4)

p

Partition number (1-4): 1

First cylinder (1-1248, default 1):

Using default value 1

Last cylinder or +size or +sizeM or +sizeK (1-1248, default 1248):

Using default value 1248

 

Command (m for help): w

The partition table has been altered!

 

Calling ioctl() to re-read partition table.

 

WARNING: Re-reading the partition table failed with error 22: Invalid argument.

The kernel still uses the old table.

The new table will be used at the next reboot.

Syncing disks.

[root@rac1 mapper]# multipath -F  -- 刷新一下multipath ,不然信息不能更新

[root@rac1 mapper]# ls -lrt /dev/mapper/*

crw------- 1 root root  10, 62 Nov 12 04:42 /dev/mapper/control

brw-rw---- 1 root disk 253,  0 Nov 12 05:33 /dev/mapper/crs

brw-rw---- 1 root disk 253,  1 Nov 12 05:33 /dev/mapper/fra

brw-rw---- 1 root disk 253,  2 Nov 12 05:33 /dev/mapper/data

brw-rw---- 1 root disk 253,  3 Nov 12 05:33 /dev/mapper/crsp1

brw-rw---- 1 root disk 253,  4 Nov 12 05:33 /dev/mapper/datap1

brw-rw---- 1 root disk 253,  5 Nov 12 05:33 /dev/mapper/frap1

 

这里多了一下/dev/mapper/frap1datap1 crsp1 的分区,这些就是已经格式化之后的磁盘。 我们可以直接使用。 下面我来看安装ASM,并将上面创建的几个分区创建成ASM 磁盘组。

 

这里要注意一个问题,权限问题。 现在看到的用户是root 我们需要在Oracle 用户。修改rc.local. 让系统每次在启动时修改文件属性:

 

[root@rac1 mapper]# cat /etc/rc.d/rc.local

#!/bin/sh

#

# This script will be executed *after* all the other init scripts.

# You can put your own initialization stuff in here if you don't

# want to do the full Sys V style init stuff.

 

touch /var/lock/subsys/local

 

chown oracle:oinstall /dev/mapper/fra*

chown oracle:oinstall /dev/mapper/data*

chown oracle:oinstall /dev/mapper/crs*

 

执行下脚本:

[root@rac1 mapper]# sh /etc/rc.d/rc.local

[root@rac1 mapper]# ll

total 0

crw------- 1 root   root      10, 62 Nov 13 08:47 control

brw-rw---- 1 oracle oinstall 253,  0 Nov 13 08:50 crs

brw-rw---- 1 oracle oinstall 253,  3 Nov 13 08:50 crsp1

brw-rw---- 1 oracle oinstall 253,  2 Nov 13 08:50 data

brw-rw---- 1 oracle oinstall 253,  4 Nov 13 08:50 datap1

brw-rw---- 1 oracle oinstall 253,  1 Nov 13 08:50 fra

brw-rw---- 1 oracle oinstall 253,  5 Nov 13 08:50 frap1

 

 

. 创建用户和目录

 

1. 在所有节点上创建用户、组、目录结构和权限的建立

 

描述

OS 组名

分配给该组的 OS 用户

Oracle 权限

Oracle 组名

Oracle 清单和软件所有者

oinstall

gridoracle

 

 

Oracle 自动存储管理组

asmadmin

grid

SYSASM

OSASM

ASM 数据库管理员组

asmdba

gridoracle

ASM SYSDBA

OSDBA for ASM

ASM 操作员组

asmoper

grid

ASM SYSOPER

OSOPER for ASM

数据库管理员

dba

oracle

SYSDBA

OSDBA

数据库操作员

oper

oracle

SYSOPER

OSOPER

 

GRID 用户:

#groupadd -g 1000 oinstall

#groupadd -g 1200 asmadmin

#groupadd -g 1201 asmdba

#groupadd -g 1202 asmoper

#useradd -m -u 1100 -g oinstall -G asmadmin,asmdba,asmoper -d /home/grid -s /bin/bash -c "Grid Infrastructure Owner" grid

# id grid

 

Oracle 用户:

# groupadd -g 1300 dba

# groupadd -g 1301 oper

# useradd -m -u 1101 -g oinstall -G dba,oper,asmdba -d /home/oracle -s /bin/bash -c "Oracle Software Owner" oracle

# id oracle

 

 

修改密码:

passwd oracle

passwd grid

 

 

在所有节点上验证用户 nobody 存在

       安装软件之前,执行以下过程,以验证在两个 Oracle RAC 节点上存在用户 nobody,要确定该用户是否存在,输入以下命令:

# id nobody

uid=99(nobody) gid=99(nobody) groups=99(nobody)

 

如果该命令显示了 nobody 用户的信息,则无需创建该用户。如果用户 nobody 不存在,则输入以下命令进行创建:

# /usr/sbin/useradd nobody

 

 

 

 

2. 在所有节点上创建安装目录

 

mkdir -p /u01/app/grid

mkdir -p /u01/app/11.2.0/grid

chown -R grid:oinstall /u01

 

mkdir -p /u01/app/oracle

chown -R oracle:oinstall /u01/app/oracle

chmod -R 775 /u01

 

chown -R oracle:oinstall /u01

chmod -R 775 /u01/

 

 

3. 修改grid Oracle 用户的登陆脚本:bash_profile 文件

 

 

Grid 用户:

 

grid 用户帐户分别登录到两个 Oracle RAC 节点并创建以下登录脚本 (.bash_profile)。在为每个 Oracle RAC 节点设置 Oracle 环境变量时,确保为每个 RAC 节点指定唯一的 Oracle SID。如:

       racnode1ORACLE_SID=+ASM1

       racnode2ORACLE_SID=+ASM2

 

# su - grid

#vi ~/.bash_profile

# ---------------------------------------------------

# .bash_profile

# ---------------------------------------------------

# OS User:      grid

# Application:  Oracle Grid Infrastructure

# Version:      Oracle 11g release 2

# ---------------------------------------------------

 

# Get the aliases and functions

if [ -f ~/.bashrc ]; then

      . ~/.bashrc

fi

 

ORACLE_SID=+ASM1; export ORACLE_SID

JAVA_HOME=/usr/local/java; export JAVA_HOME

ORACLE_BASE=/u01/app/grid; export ORACLE_BASE

ORACLE_HOME=/u01/app/11.2.0/grid; export ORACLE_HOME

ORACLE_PATH=/u01/app/oracle/common/oracle/sql; export ORACLE_PATH

# SQLPATH=/u01/app/common/oracle/sql; export SQLPATH

ORACLE_TERM=xterm; export ORACLE_TERM

NLS_DATE_FORMAT="DD-MON-YYYY HH24:MI:SS"; export NLS_DATE_FORMAT

TNS_ADMIN=$ORACLE_HOME/network/admin; export TNS_ADMIN

ORA_NLS11=$ORACLE_HOME/nls/data; export ORA_NLS11

PATH=.:${JAVA_HOME}/bin:${PATH}:$HOME/bin:$ORACLE_HOME/bin

PATH=${PATH}:/usr/bin:/bin:/usr/bin/X11:/usr/local/bin

PATH=${PATH}:/u01/app/common/oracle/bin

export PATH

LD_LIBRARY_PATH=$ORACLE_HOME/lib

LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/oracm/lib

LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/lib:/usr/lib:/usr/local/lib

export LD_LIBRARY_PATH

CLASSPATH=$ORACLE_HOME/JRE

CLASSPATH=${CLASSPATH}:$ORACLE_HOME/jlib

CLASSPATH=${CLASSPATH}:$ORACLE_HOME/rdbms/jlib

CLASSPATH=${CLASSPATH}:$ORACLE_HOME/network/jlib

export CLASSPATH

THREADS_FLAG=native; export THREADS_FLAG

export TEMP=/tmp

export TMPDIR=/tmp

# ---------------------------------------------------

# Set the default file mode creation mask

# (umask) to 022 to ensure that the user performing

# the Oracle software installation creates files

# with 644 permissions.

# ---------------------------------------------------

umask 022

 

 

Oracle 用户:

 

oracle 用户帐户分别登录到两个 Oracle RAC 节点并创建以下登录脚本 (.bash_profile),在为每个 Oracle RAC 节点设置 Oracle 环境变量时,确保为每个 RAC 节点指定唯一的 Oracle SID。如:

       racnode1ORACLE_SID=racdb1

       racnode2ORACLE_SID=racdb2

 

# su - oracle

#vi ~/.bash_profile

 

# ---------------------------------------------------

# .bash_profile

# ---------------------------------------------------

# OS User:      oracle

# Application:  Oracle Database Software Owner

# Version:      Oracle 11g release 2

# ---------------------------------------------------

 

# Get the aliases and functions

if [ -f ~/.bashrc ]; then

      . ~/.bashrc

fi

 

ORACLE_SID=racdb1; export ORACLE_SID

ORACLE_UNQNAME=racdb; export ORACLE_UNQNAME

JAVA_HOME=/usr/local/java; export JAVA_HOME

ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE

ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1; export ORACLE_HOME

ORACLE_PATH=/u01/app/common/oracle/sql; export ORACLE_PATH

ORACLE_TERM=xterm; export ORACLE_TERM

NLS_DATE_FORMAT="DD-MON-YYYY HH24:MI:SS"; export NLS_DATE_FORMAT

TNS_ADMIN=$ORACLE_HOME/network/admin; export TNS_ADMIN

ORA_NLS11=$ORACLE_HOME/nls/data; export ORA_NLS11

PATH=.:${JAVA_HOME}/bin:${PATH}:$HOME/bin:$ORACLE_HOME/bin

PATH=${PATH}:/usr/bin:/bin:/usr/bin/X11:/usr/local/bin

PATH=${PATH}:/u01/app/common/oracle/bin

export PATH

LD_LIBRARY_PATH=$ORACLE_HOME/lib

LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/oracm/lib

LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/lib:/usr/lib:/usr/local/lib

export LD_LIBRARY_PATH

CLASSPATH=$ORACLE_HOME/JRE

CLASSPATH=${CLASSPATH}:$ORACLE_HOME/jlib

CLASSPATH=${CLASSPATH}:$ORACLE_HOME/rdbms/jlib

CLASSPATH=${CLASSPATH}:$ORACLE_HOME/network/jlib

export CLASSPATH

THREADS_FLAG=native; export THREADS_FLAG

export TEMP=/tmp

export TMPDIR=/tmp

# ---------------------------------------------------

# UMASK

# ---------------------------------------------------

# Set the default file mode creation mask

# (umask) to 022 to ensure that the user performing

# the Oracle software installation creates files

# with 644 permissions.

# ---------------------------------------------------

umask 022

 

 

4. Oracle 软件安装用户设置资源限制

 

要改善 Linux 系统上的软件性能,必须对 Oracle 软件所有者用户(gridoracle)增加以下资源限制:

Shell 限制

limits.conf 中的条目

硬限制

打开文件描述符的最大数

nofile

65536

可用于单个用户的最大进程数

nproc

16384

进程堆栈段的最大大小

stack

10240

 

root 用户身份,在每个 Oracle RAC 节点上,在 /etc/security/limits.conf 文件中添加以下几行代码:

[root@rac1 ~]# cat >> /etc/security/limits.conf <<EOF

grid soft nproc 2047

grid hard nproc 16384

grid soft nofile 1024

grid hard nofile 65536

oracle soft nproc 2047

oracle hard nproc 16384

oracle soft nofile 1024

oracle hard nofile 65536

EOF

-- 说明,绿色部分一起执行

 

在每个 Oracle RAC 节点上,在 /etc/pam.d/login 文件中添加或编辑下面一行内容:

[root@rac1 ~]# cat >> /etc/pam.d/login <<EOF

session    required     pam_limits.so

EOF

-- 说明,绿色部分一起执行

 

 

对默认的 shell 启动文件进行以下更改,以便更改所有 Oracle 安装所有者的 ulimit 设置:

 

1)对于 BourneBash Korn shell,通过运行以下命令将以下行添加到 /etc/profile 文件:

[root@racnode1 ~]# cat >> /etc/profile <<EOF

if [ /$USER = "oracle" ] || [ /$USER = "grid" ]; then

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

        ulimit -p 16384

        ulimit -n 65536

    else

        ulimit -u 16384 -n 65536

    fi

    umask 022

fi

EOF

-- 说明,绿色部分一起执行

 

对于 C shellcsh tcsh),通过运行以下命令将以下行添加到 /etc/csh.login 文件:

[root@racnode1 ~]# cat >> /etc/csh.login <<EOF

if ( /$USER == "oracle" || /$USER == "grid" ) then

    limit maxproc 16384

    limit descriptors 65536

endif

EOF

-- 说明,绿色部分一起执行

 

 

. 安装配置 ASM

1. 安装ASM

先安装ASM 包,这个几个包可以从Oracle 官网下载:

http://www.oracle.com/technology/tech/linux/asmlib/index.html

 

[root@rac1 mapper]# uname -rm

2.6.18-164.el5xen i686

[root@rac2 mnt]# ls -lrt

total 223

-rwxrwSrwx 1 root root 127565 Aug  8 23:38 oracleasm-2.6.18-164.el5xen-2.0.5-1.el5.i686.rpm

-rwxrwSrwx 1 root root  85382 Aug  8 23:38 oracleasm-support-2.1.3-1.el5.i386.rpm

-rwxrwSrwx 1 root root  13929 Aug  8 23:39 oracleasmlib-2.0.4-1.el5.i386.rpm

[root@rac2 mnt]# rpm -Uvh *.rpm

warning: oracleasm-2.6.18-164.el5xen-2.0.5-1.el5.i686.rpm: Header V3 DSA signature: NOKEY, key ID 1e5e0159

Preparing...                ########################################### [100%]

   1:oracleasm-support      ########################################### [ 33%]

   2:oracleasm-2.6.18-164.el########################################### [ 67%]

   3:oracleasmlib           ########################################### [100%]

 

 

2. 配置ASM

 

oracleasm 命令的默认路径为 /usr/sbin。以前版本中使用的 /etc/init.d 路径并未被弃用,但该路径下的 oracleasm 二进制文件现在一般用于内部命令。如果输入 oracleasm configure 命令时不带 -i 标志,则显示当前配置。

 

[root@rac1 mnt]# oracleasm configure

ORACLEASM_ENABLED=false

ORACLEASM_UID=

ORACLEASM_GID=

ORACLEASM_SCANBOOT=true

ORACLEASM_SCANORDER=""

ORACLEASM_SCANEXCLUDE=""

 

[root@rac2 mnt]# oracleasm configure -i   -- 在所有节点都要执行。

Configuring the Oracle ASM library driver.

 

This will configure the on-boot properties of the Oracle ASM library

driver.  The following questions will determine whether the driver is

loaded on boot and what permissions it will have.  The current values

will be shown in brackets ('[]').  Hitting <ENTER> without typing an

answer will keep that current value.  Ctrl-C will abort.

 

Default user to own the driver interface []: grid

Default group to own the driver interface []: asmadmin

Start Oracle ASM library driver on boot (y/n) [n]: y

Scan for Oracle ASM disks on boot (y/n) [y]: y

Writing Oracle ASM library driver configuration: done

You have new mail in /var/spool/mail/root

 

该脚本完成以下任务:

       创建 /etc/sysconfig/oracleasm 配置文件

       创建 /dev/oracleasm 挂载点

       挂载 ASMLib 驱动程序文件系统

 

 

输入以下命令以加载 oracleasm 内核模块:  

[root@rac1 mnt]# oracleasm init  -- 在所有节点都要执行。

Creating /dev/oracleasm mount point: /dev/oracleasm

Loading module "oracleasm": oracleasm

Mounting ASMlib driver filesystem: /dev/oracleasm

 

如果这里没有配置,在安裝Clusterware后执行root.sh脚本时可能会触发错误,具体参考Blog

       oracle 11gR2 RAC root.sh 错误 ORA-15072 ORA-15018

       http://blog.csdn.net/tianlesoftware/archive/2010/11/11/6001696.aspx

 

 

3. 创建ASM磁盘

 

创建过程在一个节点执行即可。 另一个节点扫描一下就可以识别到了。

 

node1

oracleasm createdisk CRS /dev/mapper/crsp1

oracleasm createdisk DATA /dev/mapper/datap1

oracleasm createdisk FRA /dev/mapper/frap1

 

 

node2

 

[root@rac2 mnt]# oracleasm scandisks

Reloading disk partitions: done

Cleaning any stale ASM disks...

Scanning system for ASM disks...

Instantiating disk "CRS"

Instantiating disk "FRA"

Instantiating disk "DATA"

[root@rac2 mnt]# oracleasm listdisks

CRS

DATA

FRA

 

如果创建错误,可以用deletedisk参数,如:oracleasm deletedisk DATA

 

[root@rac2 mnt]# oracleasm querydisk DATA

Disk "DATA" is a valid ASM disk

 

到此,ASM的安装配置结束。

 

 

. 配置时间同步

 

       在集群中的两个 Oracle RAC 节点上执行以下集群时间同步服务配置。 Oracle Clusterware 11g 2 版及更高版本要求在部署了 Oracle RAC 的集群的所有节点上实现时间同步。

       Oracle 提供了两种方法来实现时间同步:

       一种方法是配置了网络时间协议 (NTP) 的操作系统,

       另一种方法是新的 Oracle 集群时间同步服务 (CTSS)Oracle 集群时间同步服务 (ctssd) 旨在为那些 Oracle RAC 数据库无法访问 NTP 服务的组织提供服务。

 

1. 配置集群时间同步服务 — (CTSS)

       使用集群时间同步服务在集群中提供同步服务,需要卸载网络时间协议 (NTP) 及其配置。

要停用 NTP 服务,必须停止当前的 ntpd 服务,从初始化序列中禁用该服务,并删除 ntp.conf 文件。要在 Oracle Enterprise Linux 上完成这些步骤,以 root 用户身份在两个 Oracle RAC 节点上运行以下命令:

[root@racnode1 ~]# /sbin/service ntpd stop

[root@racnode1 ~]# chkconfig ntpd off

[root@racnode1 ~]# mv /etc/ntp.conf /etc/ntp.conf.original

 

还要删除以下文件:

[root@racnode1 ~]# rm /var/run/ntpd.pid

此文件保存了 NTP 后台程序的 pid

 

当安装程序发现 NTP 协议处于非活动状态时,安装集群时间同步服务将以活动模式自动进行安装并通过所有节点的时间。如果发现配置了 NTP,则以观察者模式启动集群时间同步服务,Oracle Clusterware 不会在集群中进行活动的时间同步。

 

在安装后,要确认 ctssd 处于活动状态,请作为网格安装所有者 (grid) 输入以下命令:

[grid@racnode1 ~]$ crsctl check ctss

CRS-4701: The Cluster Time Synchronization Service is in Active mode.

CRS-4702: Offset (in msec): 0

 

2. 配置网络时间协议(仅当不按如上所述使用 CTSS 时)

       如果正在使用 NTP,并且愿意继续使用它而不是集群时间同步服务,那么您需要修改 NTP 初始化文件,在其中设置 -x 标志,这样可避免向后调整时间。完成此任务后,重启网络时间协议后台程序。

 

为了在 Oracle Enterprise LinuxRed Hat Linux Asianux 系统上完成此任务,编辑 /etc/sysconfig/ntpd 文件,添加 -x 标志,如下例所示:

 

[root@rac1 mapper]# cat /etc/sysconfig/ntpd

# Drop root to id 'ntp:ntp' by default.

OPTIONS="-x -u ntp:ntp -p /var/run/ntpd.pid"

 

# Set to 'yes' to sync hw clock after successful ntpdate

SYNC_HWCLOCK=no

 

# Additional options for ntpdate

NTPDATE_OPTIONS=""

 

然后,重启 NTP 服务。

# /sbin/service ntp restart

 

 

 

. 修改内核参数和Hosts 文件

6.1 内核参数:

     RHEL/OEL 5 上的 Oracle Database 11g 2 版需要如下所示的内核参数设置。给出的值都是最小值,因此如果您的系统使用更大的值,则不要更改。

 

 

#vi /etc/sysctl.conf

 

kernel.shmmax = 4294967295

kernel.shmall = 2097152

kernel.shmmni = 4096

kernel.sem = 250 32000 100 128

fs.file-max = 6815744

net.ipv4.ip_local_port_range = 9000 65500

net.core.rmem_default=262144

net.core.rmem_max=4194304

net.core.wmem_default=262144

net.core.wmem_max=1048576

fs.aio-max-nr=1048576

 

RHEL/OEL 5 已经配置了为以下内核参数定义的默认值:

       kernel.shmall

       kernel.shmmax

如果这些默认值等于或大于必需值,则使用这些默认值。

 

 

使修改的参数生效:

[root@rac1 ~]# sysctl -p

net.ipv4.ip_forward = 0

net.ipv4.conf.default.rp_filter = 1

net.ipv4.conf.default.accept_source_route = 0

kernel.sysrq = 0

kernel.core_uses_pid = 1

net.ipv4.tcp_syncookies = 1

kernel.msgmnb = 65536

kernel.msgmax = 65536

kernel.shmmax = 4294967295

kernel.shmall = 268435456

kernel.shmmni = 4096

kernel.sem = 250 32000 100 128

fs.file-max = 6815744

net.ipv4.ip_local_port_range = 9000 65500

net.core.rmem_default = 262144

net.core.rmem_max = 4194304

net.core.wmem_default = 262144

net.core.wmem_max = 1048576

fs.aio-max-nr = 1048576

 

6.2 修改hosts文件

 

[root@rac2 ~]# cat /etc/hosts

# Do not remove the following line, or various programs

# that require network functionality will fail.

127.0.0.1        localhost

 

# Public Network - (eth0)

192.168.6.223    rac1

192.168.6.226    rac2

 

# Private Interconnect - (eth1)

192.168.6.224    rac1-priv

192.168.6.227    rac2-priv

 

# Public Virtual IP (VIP) addresses - (eth0:1)

192.168.6.225    rac1-vip

192.168.6.228    rac2-vip

6.3 配置SCAN IP

 

这里我们配置2SCAN IP

192.168.6.233    rac-scan.tianlesoftware.com

192.168.6.232    rac-scan.tianlesoftware.com

 

 

关于Linux DNS Server 的配置参考:

Linux DNS Server 配置 -- for Oracle 11gR2 RAC SCAN IP

http://blog.csdn.net/tianlesoftware/archive/2010/11/13/6006247.aspx

 

配置完后,我们修改每个节点的dns

[root@rac1 named]# vim /etc/resolv.conf

nameserver 192.168.6.223

 

 

. 安装Clusterware

 

mount命令将安装文件挂载到linux系统上:

mount -o username=administrator,password=888  //192.168.6.80/Software /mnt

 

NoMachine 工具连接上节点1.  关于Nomachine工具的使用,参考blog      

       远程桌面工具 -- NoMachine

       http://blog.csdn.net/tianlesoftware/archive/2010/11/11/6003610.aspx

 

11gGrid用户管理cluster ocr 所以这两个也是用grid用户来安装的。 运行./runInstaller命令,弹出安装界面。

 

 

开始安装:

1. Install and Configure Grid infrastructure a Cluster

2. Advanced Installation

3. 配置SCAN 我们选择在DNS中定义域名的方式来解决,不配置GNS

       SCAN Name: rac-scan.tianlesoftware.com

       SCAN Port : 1521

4. 添加Hostname Virtual IP Name

5. 设置SSH 连接。 10g里我们需要手工的去配置。 11g中集成到安装中。 点击ssh connectivety. 然后输入密码,在设置一下,最后测试成功即可。设置的过程要等一会。

6. 选择网卡类型:eth0 public eth1 private

7.  选择ASM 来存放OCR

8.  创建一个ASM 磁盘组来存放OCR

9. 设置ASM 实例密码。 这个密码设置后会在$ORACLE_HOME/dbs/ 下生成一个orcl_+ASM的口令文件,如果忘记密码,可以用orapwd命令来修改。

10. 下一步,在安装之前会有个检测,如果有条件失败,就修改它,在检测。完全通过之后,进入安装。

       这里物理内存提示至少需要1.5G 我的虚拟机给了1G 报错,忽略,继续安装。

       还有要注意的, 对于交换区, 在安装操作系统的时候,最好设置在3G 以上。 不然也会有警告。

 

11. 安装技术提示执行2个脚本。 如果在第二个节点出现错误,用命令:

              [root@rac2 ~]# /u01/app/11.2.0/grid/crs/install/roothas.pl -delete -force -verbose

       删除相关信息,在执行,具体参考我的Blog

              oracle 11gR2 RAC root.sh 错误 ORA-15072 ORA-15018

              http://blog.csdn.net/tianlesoftware/archive/2010/11/11/6001696.aspx

12. 执行完,点ok 结束Clusterware的安装

 

 

. 创建ASM 磁盘组

       在安装Clusterware 的时候,会创建ASM 实例,但是它只创建了一个CRS 组来安装OCR Voting Disk 在我们继续安装Oracle 数据库之前,我们需要创建一个DATA FRA ASM 磁盘组来存放这些文件。 创建过程很简单。

       运行asmcaASM Configuration Assistant)命令就可以弹出创建窗口。

      

       在窗口中创建完DATA FRA 组后,退出窗口即可。

 

. 安装数据库软件

       1. Oracle 用户运行安装软件

      2. 选择只安装软件

       3. 选择集群安装,并选中所有节点。

      4. 验证SSH

       5. 选择语言。

       6. 选择数据库版本: 企业版

       7. 选择数据库安装的位置

       8. 选择用户组。

       9. 开始安装, 安装结束之后提示运行一个脚本。

       10. 脚本运行完, 结束安装。

 

 

 

. 创建实例

       1. Oracle用户运行dbca命令

       2. 选择Oracle 集群

       3. 选择数据库类型: custom database

       4. 选择配置类型:admin-Managed 实例名,最后选中所有节点, 下一步

       5. 设置密码

       6. 选择存储类型,Database Area 选我们刚才在ASM 实例中创建的DATA组。

       7. 指定ASM 实例的 ASMSNMP 口令,就是我们在安装Clusterware时指定的ASM密码。

       8. 创建FRA,指定位置,ASM实例中的FRA组,指定FRA 大小。

       9. 设置内存和字符集等参数。

       10. 开始创建实例。 创建结束后退出。 安装结束。

 

 

到此安装已经结束。

 

关于11gR2 RAC进程的说明,参考我的Blog

       Oracle 11gR2 RAC 进程说明

       http://blog.csdn.net/tianlesoftware/archive/2010/11/15/6009962.aspx

 

 

Linux 下,Oracle 11gR2 多了一个MEMORY_TARGET 参数。 该参数用来管理SGAPGA 但是当设置超过一定值的时候,Oracle 实例就不能启动。 我之前设置的是12G 就报错了。 解决方法如下:

       Oracle 11gR2 RAC ORA-00845 MEMORY_TARGET not supported on this system 解决方法

       http://blog.csdn.net/tianlesoftware/archive/2010/11/17/6013777.aspx

 

 

在客户端连接实例的使用,监听配置中使用SCAN IP 就可以了。 因为这个IP是固定的。 所以维护起来要简单一点。

 

 

 

 

 

------------------------------------------------------------------------------

Blog http://blog.csdn.net/tianlesoftware

网上资源: http://tianlesoftware.download.csdn.net

相关视频:http://blog.csdn.net/tianlesoftware/archive/2009/11/27/4886500.aspx

DBA1 群:62697716(); DBA2 群:62697977()

DBA3 群:62697850   DBA 超级群:63306533;    

聊天 群:40132017

--加群需要在备注说明Oracle表空间和数据文件的关系,否则拒绝申请

转载于:https://www.cnblogs.com/Hiberniane/archive/2010/11/25/2488556.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/297669.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

兄弟,就你这智商就别出轨了吧?

1 这智商就别出轨了吧&#xff08;没有聪明人就能出轨的意思&#xff09;▼2 “俗话说得好”上一句是什么&#xff1f;▼3 这是什么诡异的老年运动&#xff1f;▼4 搞不懂时尚趋势在哪里.....▼5 聚餐的时候千万别拿着包去厕所▼6 一看就会一学就废▼7 聪明的狗子能有多…

【CSS基础】实现 div 里的内容垂直水平居中

方案一&#xff1a; 所有内容垂直水平居中 兼容性&#xff1a;IE8。 条件&#xff1a;内容宽度和高度可以未知&#xff0c;可以是多行文字、图片、div。 描述&#xff1a;使用table-cell vertical-align &#xff0c; html代码见文末。 .centerDiv {width: 800px;height: 350p…

一些有意思的算法代码[转载]

转载自&#xff1a;http://coolshell.cn/articles/6010.html Keith Schwarz是一个斯坦福大学计算机科学系的讲师。他对编程充满了热情。他的主页上他自己正在实现各种各样的有意思的算法和数据结构&#xff0c;http://www.keithschwarz.com/interesting/&#xff0c; 目前这个网…

python web前端开发面试_面试前端,听听别人怎么说!

分享一个人的面试经验&#xff1a;一年半经验&#xff0c;百度、有赞、阿里面试总结前言人家都说&#xff0c;前端需要每年定期出来面面试&#xff0c;衡量一下自己当前的技术水平以及价值&#xff0c;本人17年7月份&#xff0c;毕业到现在都没出来试过&#xff0c;也没很想换工…

requestmapping注解访问404_【框架】127:几个非常重要的注解

今天是刘小爱自学Java的第127天。感谢你的观看&#xff0c;谢谢你。今天的知识点有点多&#xff0c;有点记不过来了。学习内容安排如下&#xff1a;使用注解优化昨天写的springMVC入门程序。映射路径各种风格的学习&#xff0c;也就对应了注解RequestMapping中的参数。各种类型…

Dapr + .NET Core实战(二) 服务调用

服务调用是什么在分布式应用程序中的服务之间进行调用会涉及到许多挑战。例如&#xff1a;维护其他服务的地址。如何安全地调用服务。在发生短暂的 暂时性错误 时如何处理重试。分布式应用程序调用链路追踪。服务调用构建块通过使用 Dapr 挎斗作为服务的 反向代理 来解决这些难…

华为新员工入职时信息安全保密手册

一、新员工入职信息安全须知 新员工入职后&#xff0c;在信息安全方面有哪些注意事项&#xff1f; 接受“信息安全与保密意识”培训&#xff1b; 每年应至少参加一次信息安全网上考试&#xff1b; 办理员工卡&#xff1b; 签署劳动合同&#xff08;含保密职责&#xff09;&…

第五周项目2-对象作为数据成员

回想Engineer类的数据成员&#xff0c;有眼镜、背包等。某Engineer的眼镜、背包&#xff0c;是Glass、Bag类的对象。类中的数据成员&#xff0c;其类型可以是简单类型&#xff0c;也可以是类。通过这种方式&#xff0c;将某些类组合到另外的类中&#xff0c;当作其中的一个“部…

谷歌排名第一的编程语言,死磕它这两点,小白也能学的会!不信你看!

全世界只有3.14 % 的人关注了爆炸吧知识谷歌排名第一的编程语言时什么&#xff1f;毫无疑问&#xff1a;肯定是 Python。也难怪&#xff0c;作为大数据时代和人工智能时代的必备语言&#xff0c;Python 的优点太多了&#xff0c;语言简洁、易学、开发效率高、可移植性强......另…

android主动显示流程,Activity加载显示基本流程

本文章是基于Android源码6.0讲解Activity加载显示基本流程首先上一张图给大家一个直观的了解首先一个布局页面的加载是在Activity中的setContentView(R.layout.res)开始;我们就从Acitvity源码中的setContentView方法入手public void setContentView(LayoutRes int layoutResID)…

VIM之Project 项目管理工具

VIM是Linux和Unix下常用的文本编辑工具&#xff0c;在编写代码和阅读代码中经常使用。但VIM进行代码项目管理时&#xff0c;没有IDE集成开发工具方便&#xff0c;现在提供一个VIM插件Project&#xff0c;可以对代码项目进行简单的集中管理一、 下载安装1、 在 Vim 网站上下载最…

vue数组刷新_Vue数组更新方法

Vue的核心是数据与视图的双向绑定&#xff0c;当我们修改数组时&#xff0c;Vue会检测到数据变化&#xff0c;所以用v-for渲染的视图也会立即更新。Vue包含了一组观察数组变异的方法&#xff0c;使用他们改变数组也会触发视图更新。push()pop()shift()unshift()splice()sort()r…

python提供什么机制处理程序运行错误_浅谈Python异常处理机制

异常机制己经成为衡量一门编程语言是否成熟的标准之一&#xff0c;使用异常处理机制的 Python 程序有更好的容错性&#xff0c;更加健壮。 对于计算机程序而言&#xff0c;情况就更复杂了一一没有人能保证自己写的程序永远不会出辛苦&#xff01;就算程序没有错误&#xff0c;你…

WPF DataGrid 通过自定义表头模拟首行固定

WPF DataGrid 通过自定义表头模拟首行固定独立观察员 2021 年 9 月 25 日最近工作中要在 WPF 中做个表格&#xff0c;自然首选就是 DataGrid 控件了。问题是&#xff0c;UI 设计的表格是在首行有一个新增按钮&#xff0c;那一行样式和其它数据行是一样的&#xff0c;就在表头下…

python和C语言分别实现插入排序

python语言代码&#xff1a;代码1 defInsertSort(numbers,n):2 fori inrange(1,n):3 j i-14 tem numbers[i]5 whilenumbers[j]>tem andj>0:6 numbers[j1] numbers[j]7 j -18 else:9 numbers[j1] tem10 print"Onthe sort:",numbers11 12 a [9,8,7,6,5,4,3,2,1,0…

Windows用户安全小技巧

本文适用于具有管理员用户和标准用户的所有Windows系统&#xff0c;如Windows 2000以上的操作系统&#xff0c;UAC是Windows Vista以上版本的具有功能。新安装的Windows系统或者新购买的含有Windows系统计算机一开始都需要安装许多软件并需要设置较多的含有Windows安全或用户控…

根据url获取html源码,通过URL访问和获取html源代码

Uniform Resource Locator ,在Internet的WWW服务程序上用于指定信息位置的表示方法指定互联网或本地上(web服务中)的文件、对象资源 等&#xff0c;或者说它相当于一个互联网上资源的一个指针协议 主机 路径 资源http://www.itfuture.org/forum/index.jsp …

从网恋到失恋只需要一秒...

1 原来放下一个人如此简单...▼2 而且到现在衣服都没找到▼3 这东西叫糖醋液&#xff0c;实验室比例是&#xff1a;糖&#xff1a;醋&#xff1a;酒&#xff1a;水1&#xff1a;2&#xff1a;3&#xff1a;4▼4 老师&#xff1a;这孩子真有原则▼5 呵&#xff0c;绝交吧▼…

Log4net数据表

USE [ASPNETDB] GO /****** 对象: Table [dbo].[Log] 脚本日期: 12/21/2011 22:41:53 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO SET ANSI_PADDING ON GO CREATE TABLE [dbo].[Log]([ID] [int] IDENTITY(1,1) NOT NULL,[Date] [datetime] NOT NULL,[Threa…

go float64 比较_Go 每日一库之 plot

Go 每日一库之 plot简介本文介绍 Go 语言的一个非常强大、好用的绘图库——plot。plot内置了很多常用的组件&#xff0c;基本满足日常需求。同时&#xff0c;它也提供了定制化的接口&#xff0c;可以实现我们的个性化需求。plot主要用于将数据可视化&#xff0c;便于我们观察、…