技术标签: Oracle RAC
小整理了一下Oracle Linux 下6.1 + Oracle 11.2.0.1 RAC 的安装。中间有些贴图,blog里就不贴了。完成版可以下载pdf格式的文档,看的更清楚。
下载地址:
http://download.csdn.net/detail/tianlesoftware/4797570
1.5.2 配置NTP(Network Time Protocol)6
1.8.1 修改/etc/security/limits.conf8
6.3 在node1和node2的 tnsnames.ora 文件添加如下内容... 33
服务器主机名 |
rac1 |
rac2 |
公共IP地址(eth0) |
192.168.1.61 |
192.168.1.71 |
虚拟IP地址(eth0) |
192.168.1.63 |
192.168.1.73 |
私有IP地址(eth1) |
192.168.1.62 |
192.168.1.72 |
ORACLE RAC SID |
dave1 |
dave2 |
集群实例名称 |
dave |
|
SCAN IP |
192.168.1.9 |
|
操作系统 |
Oracle Linux 6.1 |
|
存储 |
OpenFiler |
|
Oracle |
11.2.0.1 |
注:
这里选择11.2.0.1 是因为从Oracle 11.2.0.2之后安装grid的public IP 和privateIP必须是不同网段的,我在虚拟机上配置不同网段比较蛮烦。所以降低版本使用11.2.0.1了。
127.0.0.1 localhost
192.168.1.61 rac1rac1-public
192.168.1.62 rac1-priv
192.168.1.63 rac1-vip
192.168.1.71 rac2rac2-public
192.168.1.72 rac2-priv
192.168.1.73 rac2-vip
192.168.1.9 rac-scan
#groupadd -g 1000oinstall
#groupadd -g 1200 asmadmin
#groupadd -g 1201asmdba
#groupadd -g 1202asmoper
#groupadd -g 1300dba
#groupadd -g 1301 oper
# useradd -m -u 1100 -g oinstall -Gasmadmin,asmdba,asmoper -d /home/grid -s /bin/bash grid
#useradd -m -u 1101 -g oinstall -Gdba,oper,asmdba -d /home/oracle -s /bin/bash oracle
确认用户信息:
[root@rac1 ~]# id oracle
uid=502(oracle) gid=507(oinstall)groups=507(oinstall),502(dba),503(oper),506(asmdba)
[root@rac1 ~]# id grid
uid=1100(grid) gid=507(oinstall)groups=507(oinstall),504(asmadmin),506(asmdba),505(asmoper)
修改密码:
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
关闭防火墙:
Service iptables status
Service iptables stop
chkconfig iptables off
chkconfig iptables –list
设置/etc/selinux/config 文件,将SELINUX设置为disabled。
[root@rac1 ~]# cat /etc/selinux/config
# This file controls the state of SELinux onthe system.
# SELINUX= can take one of these threevalues:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of these twovalues:
# targeted - Targeted processes are protected,
# mls - Multi Level Security protection.
SELINUXTYPE=targeted
在11gR2中,RAC在安装的时候,时间同步可以用两种方式来实现:
(1) NTP
(2) CTSS。
当安装程序发现 NTP 协议处于非活动状态时,安装集群时间同步服务将以活动模式自动进行安装并通过所有节点的时间。如果发现配置了 NTP,则以观察者模式启动集群时间同步服务,OracleClusterware 不会在集群中进行活动的时间同步。
Oracle 集群时间同步服务 (ctssd) 旨在为那些 OracleRAC 数据库无法访问 NTP 服务的组织提供服务。目前建议配置NTP。
使用集群时间同步服务在集群中提供同步服务,需要卸载网络时间协议 (NTP) 及其配置。
要停用 NTP 服务,必须停止当前的 ntpd 服务,从初始化序列中禁用该服务,并删除 ntp.conf 文件。
要在Linux 上完成这些步骤,以 root 用户身份在两个 Oracle RAC 节点上运行以下命令:
[root@rac1 ~]# /sbin/service ntpd stop
Shutting down ntpd: [ OK ]
[root@rac1 ~]# chkconfig ntpd off
[root@rac1 ~]# mv /etc/ntp.conf/etc/ntp.conf.original
[root@rac1 ~]# chkconfig ntpd --list
ntpd 0:off 1:off 2:off 3:off 4:off 5:off 6:off
[root@rac2 ~]# /sbin/service ntpd stop
Shutting down ntpd: [ OK ]
[root@rac2 ~]# chkconfig ntpd off
[root@rac2 ~]# mv /etc/ntp.conf/etc/ntp.conf.original
[root@rac2 ~]# chkconfig ntpd --list
ntpd 0:off 1:off 2:off 3:off 4:off 5:off 6:off
还要删除以下文件:
rm /var/run/ntpd.pid
此文件保存了 NTP 后台程序的 pid。
在安装后,要确认 ctssd 处于活动状态,用grid所有者输入以下命令:
[grid@racnode1 ~]$ crsctl check ctss
CRS-4701: The Cluster Time Synchronization Serviceis in Active mode.
CRS-4702: Offset (in msec): 0
具体参考:
http://www.cndba.cn/Dave/article/702
这里测试使用CTSS来配置同步。
mkdir -p /u01/app/grid/11.2.0
chown -R grid:oinstall /u01
mkdir -p /u01/app/oracle/11.2.0/db_1
chown -R oracle:oinstall /u01/app/oracle
chmod -R 775 /u01
修改grid用户的.bash_profile.注意每个节点的不同内容:
export ORACLE_SID=+ASM1
#export ORACLE_SID=+ASM2
export ORACLE_BASE=/u01/app/grid
export ORACLE_HOME=/u01/app/grid/11.2.0
exportPATH=$ORACLE_HOME/bin:$PATH:/usr/local/bin/:.
export TEMP=/tmp
export TMP=/tmp
export TMPDIR=/tmp
umask 022
修改oracle 用户的.bash_profile,注意每个节点的不同内容:
ORACLE_SID=dave1;export ORACLE_SID
#ORACLE_SID=dave2;export ORACLE_SID
ORACLE_UNQNAME=dave;export ORACLE_UNQNAME
JAVA_HOME=/usr/local/java; export JAVA_HOME
ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/11.2.0/db_1;export ORACLE_HOME
ORACLE_TERM=xterm; export ORACLE_TERM
NLS_DATE_FORMAT="YYYY:MM:DD HH24:MI:SS";export NLS_DATE_FORMAT
NLS_LANG=american_america.ZHS16GBK; exportNLS_LANG
TNS_ADMIN=$ORACLE_HOME/network/admin; exportTNS_ADMIN
ORA_NLS11=$ORACLE_HOME/nls/data; exportORA_NLS11
PATH=.:${JAVA_HOME}/bin:${PATH}:$HOME/bin:$ORACLE_HOME/bin:$ORA_CRS_HOME/bin
PATH=${PATH}:/usr/bin:/bin:/usr/bin/X11:/usr/local/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 userperforming
# the Oracle software installation createsfiles
# with 644 permissions.
#---------------------------------------------------
umask 022
要改善 Linux 系统上的软件性能,必须对 Oracle 软件所有者用户(grid、oracle)增加以下资源限制:
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
注:红色部分一起执行
在每个 OracleRAC 节点上,在 /etc/pam.d/login 文件中添加或编辑下面一行内容:
[root@rac1 ~]# cat >> /etc/pam.d/login <<EOF
session required pam_limits.so
EOF
注:红色部分一起执行
对默认的 shell 启动文件进行以下更改,以便更改所有 Oracle 安装所有者的 ulimit 设置:
(1)对于 Bourne、Bash 或 Korn shell,通过运行以下命令将以下行添加到 /etc/profile 文件:
[root@rac1 ~]# 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
umask022
fi
EOF
注:红色部分一起执行
(2)对于 C shell(csh 或 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
注:红色部分一起执行
Dave备注:
在Oracle Linux 6平台下安装Oracle,可以使用Preinstal包,该包会完成相关的参数修改等操作,会大大简化我们安装数据库的时间,详细内容参考:
Oracle Linux6 下 Oracle RDBMS Server 11gR2 Preinstall RPM 包说明
http://www.cndba.cn/Dave/article/1316
使用Openfiler 作为共享,使用iscsi进行连接,使用udev 进行映射。
冗余策略 |
卷划分及大小说明 |
|
1G |
||
Ocrvoting02 |
1G |
|
Ocrvoting03 |
1G |
|
ARCH |
5G |
|
Arch02 |
5G |
|
DATAFILE |
5G |
|
5G |
||
5G |
||
5G |
||
5G |
||
FRA |
5G |
|
Fra02 |
5G |
|
5G |
注意这里需要在存储上进行划分,每个分区一个映射。所以这里需要在存储上划分13个分区。 这样是为了保证scsi_id的唯一性。
根据官网的要求,11g中每个OCR和vote disk 至少需要300M空间。在ASM 的冗余级别中:
external >= 1
normal >=3
high >=5
所以如果我们选择normal,那么至少需要3个设备,每个设备至少600M。
[root@rac1 etc]# iscsiadm -m discovery-t sendtargets -p 192.168.1.2
192.168.1.2:3260,1 asm.tianlesoftware.com
192.168.1.3:3260,1 asm.tianlesoftware.com
192.168.1.2:3260,1 filesystem
192.168.1.3:3260,1 filesystem
--手工登陆:
[root@rac1 etc]# iscsiadm -m node -Tasm.tianlesoftware.com -p 192.168.1.2 -l
Logging in to [iface: default, target:asm.tianlesoftware.com, portal: 192.168.1.2,3260]
Login to [iface: default, target:asm.tianlesoftware.com, portal: 192.168.1.2,3260] successful.
--配置自动登陆:
[root@rac1 etc]# iscsiadm -m node -Tasm.tianlesoftware.com -p 192.168.1.2 --op update -n node.startup -v automatic
--停止ISCSI
[root@rac2 /]# service iscsi stop
[root@rac2 /]# service iscsid stop
--验证:
[root@rac1 etc]# netstat -anp |grep 3260
tcp 0 0 192.168.1.62:33454 192.168.1.2:3260 ESTABLISHED 6702/iscsid
对分区进行格式化:
[root@rac2 ~]# fdisk /dev/sdq
Device contains neither a valid DOSpartition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel with diskidentifier 0xd5a3f562.
Changes will remain in memory only, untilyou decide to write them.
After that, of course, the previous contentwon't be recoverable.
Warning: invalid flag 0x0000 of partitiontable 4 will be corrected by w(rite)
WARNING: DOS-compatible mode is deprecated.It's strongly recommended to
switch off the mode (command 'c') and change display units to
sectors (command 'u').
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-1018, default 1):
Using default value 1
Last cylinder, +cylinders or +size{K,M,G}(1-1018, default 1018):
Using default value 1018
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
[root@rac2 ~]#
参考MOS:
How To Setup UDEV Rules For RAC OCR AndVoting Devices On SLES10, RHEL5, OEL5, OL5 [ID 414897.1]
Oracle Linux配置 UDEV SCSI Rules 说明
http://www.cndba.cn/Dave/article/934
How to use udev for Oracle ASM in OracleLinux 6
http://www.dbform.com/html/2011/1708.html
--使用如下shell脚本获取scsi id:
[root@rac1 u01]# cat get_scsiid.sh
#!/bin/sh
echo "---------begining------------"
echo "---echo 4194MB---"
echo "/dev/sdb:"
/sbin/scsi_id -g -u /dev/sdb
echo "/dev/sdc:"
/sbin/scsi_id -g -u /dev/sdc
echo "/dev/sdd:"
/sbin/scsi_id -g -u /dev/sdd
echo "/dev/sde:"
/sbin/scsi_id -g -u /dev/sde
echo "/dev/sdf:"
/sbin/scsi_id -g -u /dev/sdf
echo "/dev/sdh:"
/sbin/scsi_id -g -u /dev/sdh
echo "---echo 5268MB---"
echo "/dev/sdk:"
/sbin/scsi_id -g -u /dev/sdk
echo "/dev/sdl:"
/sbin/scsi_id -g -u /dev/sdl
echo "/dev/sdm:"
/sbin/scsi_id -g -u /dev/sdm
echo "/dev/sdj:"
/sbin/scsi_id -g -u /dev/sdj
echo "/dev/sdn:"
/sbin/scsi_id -g -u /dev/sdn
echo "/dev/sdp:"
/sbin/scsi_id -g -u /dev/sdp
echo "/dev/sdr:"
/sbin/scsi_id -g -u /dev/sdr
echo "/dev/sdq:"
/sbin/scsi_id -g -u /dev/sdq
echo "/dev/sdo:"
/sbin/scsi_id -g -u /dev/sdo
echo "/dev/sds:"
/sbin/scsi_id -g -u /dev/sds
echo "/dev/sdg:"
/sbin/scsi_id -g -u /dev/sdg
echo "/dev/sdi:"
/sbin/scsi_id -g -u /dev/sdi
echo "/dev/sdu:"
/sbin/scsi_id -g -u /dev/sdu
echo "/dev/sdw:"
/sbin/scsi_id -g -u /dev/sdw
echo "---echo 234MB---"
echo "/dev/sdt:"
/sbin/scsi_id -g -u /dev/sdt
echo "/dev/sdv:"
/sbin/scsi_id -g -u /dev/sdv
echo "/dev/sdx:"
/sbin/scsi_id -g -u /dev/sdx
echo "/dev/sdy:"
/sbin/scsi_id -g -u /dev/sdy
echo "/dev/sdz:"
/sbin/scsi_id -g -u /dev/sdz
echo "/dev/sdaa:"
/sbin/scsi_id -g -u /dev/sdaa
echo"----------end------------"
[root@rac1 u01]#
for iin c d e f g h i j k l m n o p ;
do
echo"sd$i" "`scsi_id -g -u -s /block/sd$i` ";
done
for iin b c d e f g h i j k ;
do
echo"KERNEL==\"sd*\", BUS==\"scsi\",PROGRAM==\"/sbin/scsi_id -g -u -s %p\", RESULT==\"`scsi_id -g -u-s /block/sd$i`\", NAME=\"asm-disk$i\", OWNER=\"grid\",GROUP=\"asmadmin\", MODE=\"0660\""
done
从输出结果中过滤后需要的结果如下:
/dev/sdb:
14f504e46494c45527634436445432d567646522d70667244
/dev/sdc:
14f504e46494c45526852356f6c6c2d4241306e2d4f303739
/dev/sde:
14f504e46494c455238767444364e2d7530454f2d574a324d
---ARCH5268MB---
/dev/sdk:
14f504e46494c45523369626957672d734941712d31515456
/dev/sdl:
14f504e46494c455272427a76586a2d756647582d6d524252
---DATAFILE5268MB---
/dev/sdm:
14f504e46494c45526e5a445a74332d4273346f2d71357243
/dev/sdr:
14f504e46494c45524f6c386759382d4635314f2d4c336965
/dev/sdq:
14f504e46494c45524d62483162502d6c4738562d78793269
/dev/sds:
14f504e46494c45525862523154342d717754332d38696b4e
/dev/sdg:
14f504e46494c4552623872364b662d756d7a4d2d6641746c
/dev/sdt:
14f504e46494c455234664f31577a2d4d4c59622d58536a48
/dev/sdv:
14f504e46494c45523473564a4d6f2d445a6a652d5471414e
/dev/sdx:
14f504e46494c45524570393234322d717064522d4656397a
#添加记录到/etc/scsi_id.config
编辑/etc/scsi_id.config文件,如果该文件不存在,则创建该文件,添加如下行:
[root@rac1 dev]#echo "options=--whitelisted --replace-whitespace" >> /etc/scsi_id.config
创建rules文件:
/etc/udev/rules.d/99-oracle-asmdevices.rules
添加如下内容:
#for ocrvoting
KERNEL=="sd*",BUS=="scsi", PROGRAM=="/sbin/scsi_id --whitelisted--replace-whitespace --device=/dev/$name",RESULT=="14f504e46494c455234664f31577a2d4d4c59622d58536a48",NAME="ocrvoting1", OWNER="grid",GROUP="asmadmin", MODE="0660"
KERNEL=="sd*",BUS=="scsi", PROGRAM=="/sbin/scsi_id --whitelisted--replace-whitespace --device=/dev/$name",RESULT=="14f504e46494c45523473564a4d6f2d445a6a652d5471414e",NAME="ocrvoting2", OWNER="grid",GROUP="asmadmin", MODE="0660"
KERNEL=="sd*",BUS=="scsi", PROGRAM=="/sbin/scsi_id --whitelisted--replace-whitespace --device=/dev/$name", RESULT=="14f504e46494c45524570393234322d717064522d4656397a",NAME="ocrvoting3", OWNER="grid",GROUP="asmadmin", MODE="0660"
#for datafile
KERNEL=="sd*",BUS=="scsi", PROGRAM=="/sbin/scsi_id --whitelisted--replace-whitespace --device=/dev/$name",RESULT=="14f504e46494c45526e5a445a74332d4273346f2d71357243",NAME="data01", OWNER="grid", GROUP="asmadmin",MODE="0660"
KERNEL=="sd*",BUS=="scsi", PROGRAM=="/sbin/scsi_id --whitelisted--replace-whitespace --device=/dev/$name", RESULT=="14f504e46494c45524f6c386759382d4635314f2d4c336965",NAME="data02", OWNER="grid", GROUP="asmadmin",MODE="0660"
KERNEL=="sd*",BUS=="scsi", PROGRAM=="/sbin/scsi_id --whitelisted--replace-whitespace --device=/dev/$name",RESULT=="14f504e46494c45524d62483162502d6c4738562d78793269",NAME="data03", OWNER="grid", GROUP="asmadmin",MODE="0660"
KERNEL=="sd*",BUS=="scsi", PROGRAM=="/sbin/scsi_id --whitelisted--replace-whitespace --device=/dev/$name",RESULT=="14f504e46494c45525862523154342d717754332d38696b4e",NAME="data04", OWNER="grid", GROUP="asmadmin",MODE="0660"
KERNEL=="sd*",BUS=="scsi", PROGRAM=="/sbin/scsi_id --whitelisted--replace-whitespace --device=/dev/$name",RESULT=="14f504e46494c4552623872364b662d756d7a4d2d6641746c",NAME="data05", OWNER="grid", GROUP="asmadmin",MODE="0660"
#for fra
KERNEL=="sd*",BUS=="scsi", PROGRAM=="/sbin/scsi_id --whitelisted--replace-whitespace --device=/dev/$name",RESULT=="14f504e46494c45527634436445432d567646522d70667244",NAME="fra01", OWNER="grid", GROUP="asmadmin",MODE="0660"
KERNEL=="sd*",BUS=="scsi", PROGRAM=="/sbin/scsi_id --whitelisted--replace-whitespace --device=/dev/$name",RESULT=="14f504e46494c45526852356f6c6c2d4241306e2d4f303739",NAME="fra02", OWNER="grid", GROUP="asmadmin",MODE="0660"
KERNEL=="sd*", BUS=="scsi",PROGRAM=="/sbin/scsi_id --whitelisted --replace-whitespace--device=/dev/$name",RESULT=="14f504e46494c455238767444364e2d7530454f2d574a324d",NAME="fra03", OWNER="grid", GROUP="asmadmin",MODE="0660"
#for arch
KERNEL=="sd*",BUS=="scsi", PROGRAM=="/sbin/scsi_id --whitelisted--replace-whitespace --device=/dev/$name",RESULT=="14f504e46494c45523369626957672d734941712d31515456",NAME="arch01", OWNER="grid", GROUP="asmadmin",MODE="0660"
KERNEL=="sd*",BUS=="scsi", PROGRAM=="/sbin/scsi_id --whitelisted --replace-whitespace--device=/dev/$name",RESULT=="14f504e46494c455272427a76586a2d756647582d6d524252",NAME="arch02", OWNER="grid", GROUP="asmadmin",MODE="0660"
重启UDEV:
# /sbin/start_udev
验证:
[root@rac1 dev]# ls -l /dev/arch*
brw-rw---- 1 grid asmadmin 8, 177 Oct 1010:22 /dev/arch01
brw-rw---- 1 grid asmadmin 8, 145 Oct 1010:22 /dev/arch02
[root@rac1 dev]# ls -l /dev/fra*
brw-rw---- 1 grid asmadmin 8, 33 Oct 1010:19 /dev/fra01
brw-rw---- 1 grid asmadmin 8, 65 Oct 1010:19 /dev/fra02
[root@rac1 dev]# ls -l /dev/data*
brw-rw---- 1 grid asmadmin 8, 225 Oct 10 10:19 /dev/data01
brw-rw---- 1 grid asmadmin 65, 1 Oct 10 10:19 /dev/data02
brw-rw---- 1 grid asmadmin 65, 17 Oct 10 10:19 /dev/data03
brw-rw---- 1 grid asmadmin 65, 49 Oct 10 10:19 /dev/data04
brw-rw---- 1 grid asmadmin 8, 113 Oct 10 10:19 /dev/data05
[root@rac1 dev]# ls -l /dev/ocr*
brw-rw---- 1 grid asmadmin 65, 97 Oct 10 10:19 /dev/ocrvoting1
brw-rw---- 1 grid asmadmin 65, 129 Oct 1010:19 /dev/ocrvoting2
brw-rw---- 1 grid asmadmin 65, 145 Oct 1010:19 /dev/ocrvoting3
使用X manager 连接到节点1上,设置DISPLAY。
注:
这里强调顺序是节点1,因为在节点2上执行,最后生成的服务名看起来会很别扭,当然服务名最后也是可以修改的,具体怎么别扭,好奇的同学可以自己实验一下。
Export DISPLAT=192.168.1.1:0.0
切到grid用户,然后开始安装clusterware:
注意:在11gr2中
external >= 1
normal >=3
high >=5
指定$ORACLE_BASE 和 $GRID_BASE
解决依赖包后重新安装:
在65%的地方很容易卡住,等很长时间。注意检查防火墙状态。
提示运行root.sh,11.2.0.1 版有个bug,解决方法如下:
Oracle 11g RAC ohasd failed tostart at /u01/app/11.2.0/grid/crs/install/rootcrs.pl line 443 解决方法
http://www.cndba.cn/Dave/article/464
遇到一点小插曲:
Oracle RAC 第二节点 root.sh 报错 Timed out waiting for the CRS stack to start
http://blog.csdn.net/tianlesoftware/article/details/8095122
安装完成后验证:
[grid@rac1 u01]$ crs_stat.sh
Name Target State Host
------------------------------ ------------------- -------
ora.LISTENER.lsnr ONLINE ONLINE rac1
ora.LISTENER_SCAN1.lsnr ONLINE ONLINE rac1
ora.OCRVOTING.dg ONLINE ONLINE rac1
ora.asm ONLINE ONLINE rac1
ora.eons ONLINE ONLINE rac1
ora.gsd OFFLINE OFFLINE
ora.net1.network ONLINE ONLINE rac1
ora.oc4j OFFLINE OFFLINE
ora.ons ONLINE ONLINE rac1
ora.rac1.ASM1.asm ONLINE ONLINE rac1
ora.rac1.LISTENER_RAC1.lsnr ONLINE ONLINE rac1
ora.rac1.gsd OFFLINE OFFLINE
ora.rac1.ons ONLINE ONLINE rac1
ora.rac1.vip ONLINE ONLINE rac1
ora.rac2.ASM2.asm ONLINE ONLINE rac2
ora.rac2.LISTENER_RAC2.lsnr ONLINE ONLINE rac2
ora.rac2.gsd OFFLINE OFFLINE
ora.rac2.ons ONLINE ONLINE rac2
ora.rac2.vip ONLINE ONLINE rac2
ora.scan1.vip ONLINE ONLINE rac1
因为我们使用CTSS来同步的,验证CTSS:
[grid@rac1 u01]$ crsctl check ctss
CRS-4701: The Cluster Time SynchronizationService is in Active mode.
CRS-4702: Offset (in msec): 0
至此,GI 安装结束。
用oracle 用户,连上节点1,进入Oracle 的安装目录,安装Oracle软件,注意这里只安装软件。
1. Install databae software only
2. Select all RAC nodes
3. 设置SSH
4. 选择语言
5. 选择Enterprise Edition
6. 选择Oracle 安装目录
7. 选择用户组
8. 开始安装
9. 执行root
10.执行脚本,执行完安装结束。
在安装Clusterware 的时候,会创建ASM 实例,但是它只创建了一个CRS 组来安装OCR 和Voting Disk。 在我们继续安装Oracle 数据库之前,我们需要创建一个DATA 和FRA 的ASM 磁盘组来存放这些文件。
用grid用户运行asmca(ASMConfiguration Assistant)命令就可以弹出创建窗口。
在窗口中创建完DATA 和 FRA 组后,退出窗口即可。
在节点1用Oracle 用户运行dbca,创建实例。
1. 选择RAC 集群
2. Create a database
3. 选择类型:事务还是数据仓库
4. 选择Configuration Type:Admin-Managed
5. 设置实例名: dave
6. 选择所有节点
7. 配置Enterprise Manager 和 Automatic MaintenanceTasks
8. 设置用户密码
9. 设置数据文件存放位置: DATA
10.设置FRA 和归档
11.设置内存,字符集等
12.开始安装
LISTENER_NODE1=
(DESCRIPTION=
(ADDRESS_LIST=
(ADDRESS= (PROTOCOL = TCP)(HOST = rac1-vip)(PORT = 1521)(IP=FIRST))
(ADDRESS= (PROTOCOL = TCP)(HOST = rac1-public)(PORT = 1521)(IP=FIRST))
)
)
也可以使用netca工具来配置。
$ lsnrctl startLISTENER_NODE1
NODE1_LOCAL=
(ADDRESS =(PROTOCOL = TCP)(HOST= rac1-vip)(PORT = 1521))
测试:
$ tnsping node1_local
6.1.4 设置node1的local_listener参数
sql > alter systemset LOCAL_LISTENER='node1_local' scope=both sid='dave1';
LISTENER_NODE2=
(DESCRIPTION=
(ADDRESS_LIST =
(ADDRESS=(PROTOCOL=TCP)(HOST= rac2-public)(PORT=1521)(IP=FIRST))
(ADDRESS=(PROTOCOL=TCP)(HOST= rac2-vip)(PORT=1521)(IP=FIRST))
)
)
$ lsnrctl startLISTENER_NODE2
NODE2_LOCAL=
(ADDRESS= (PROTOCOL = TCP)(HOST = rac2-vip)(PORT = 1521))
验证:
$ tnsping node2_local
6.2.4设置local_listener 参数
sql > alter systemset LOCAL_LISTENER='node2_local' scope=both sid='dave2' ;
NODE_REMOTE =
(DESCRIPTION=
(ADDRESS_LIST=
(ADDRESS= (PROTOCOL = TCP)(HOST=vip-node1)(PORT = 1521))
(ADDRESS= (PROTOCOL = TCP)(HOST=vip-node2)(PORT = 1521))
)
)
测试:
$ tnsping node_remote
sql> alter systemset REMOTE_LISTENER='node_remote' scope=both;
在客户端设置的tnsnames.ora 设置TAF
RACTAF=
(DESCRIPTION =
(ADDRESS_LIST =
(LOAD_BALANCE= yes)
(FAILOVER=ON)
(ADDRESS= (PROTOCOL = TCP)(HOST = rac1-vip)(PORT = 1521))
(ADDRESS= (PROTOCOL = TCP)(HOST = rac2-vip)(PORT = 1521))
)
(CONNECT_DATA=
(SERVICE_NAME= dave)
(failover_mode=(type=select)(method=basic))
)
)
local_listener与 remote_listener 参数说明
http://www.cndba.cn/Dave/article/1434
---------------------------------------------------------------------
版权所有,文章允许转载,但必须以链接方式注明源地址,否则追究法律责任!
QQ:492913789
Email:[email protected]
Blog: http://www.cndba.cn/dave
Weibo: http://weibo.com/tianlesoftware
Twitter: http://twitter.com/tianlesoftware
文章浏览阅读355次。一 、SVN操作> 1. svn import> 2. svn checkout : 将服务器所有代码下载到本地> 3. svn commit : 提交本地最新代码到服务器> 4. svn update : 从服务器更新最新被修改的代码一、. 了解-SVN服务器配置服务器环境搭建Mac 下直接配置(Mac 下安装SVN), (Mac下配置SVN 服务器)Windo_svn 代码管理工具资源
文章浏览阅读472次。离线语音识别方案,有别于网络WIFI的AI语音识别,AI识别需要和APP相配合,或者需要拿到某猫和某度的版权,并且AI控制的产品受限于WIFI无线网,受WIFI的连接不稳定性影响明显,如果网速不稳定会直接导致语音控制不到位或者失灵的情况。而CK6855M1则不需要连接WIFI,也不存在控制不灵的情况。...
文章浏览阅读207次。Jvm面试考点总结:jvm的知识点汇总共6个大方向:内存模型、类加载机制、GC垃圾回收是比较重点的内容。性能调优部分偏重实际应用,重点突出实践能力。编译器优化和执行模式部分偏重理论基础,主要掌握知识点。各个部分的内容如下:内存模型部分:程序计数器、方法区、堆、栈、本地方法栈的作用,保存哪些数据;类加载部分:双亲委派的加载机制以及常用类加载器分别加载哪种类型的类;GC部分:分代回收的思想和..._java面试汇总点
文章浏览阅读331次,点赞8次,收藏8次。有句话是这样说的:这两年中国的市场,钱就像无头苍蝇一样,哪里有shi就一窝蜂地扑过去,然后砰的一声,那坨shi炸了,无头苍蝇四散而去,继续寻找下一坨shi。
文章浏览阅读744次,点赞6次,收藏7次。Rust的并发模型结合了线程和异步I/O的优势,通过独特的所有权系统和借用检查器保证了内存安全,无需复杂的运行时垃圾回收机制。Rust作为一种内存安全性的系统编程语言,其并发模型具有独特的特点,与其他语言相比显示出其鲜明的优势。Go语言的并发模型主要基于轻量级的goroutines和channels,非常适合处理高并发的I/O密集型任务。随着异步编程的普及和硬件技术的不断进步,Rust有望在并发编程领域发挥更大的作用。另一方面,Rust的线程是真正的操作系统级线程,可以充分利用多核处理器的优势。
文章浏览阅读2.1k次。目录后台接口自动化(基于QT4S)一、背景:二、技术方案2.1项目目录:2.2接口定义2.3测试用例实现2.4测试数据构造三、复杂场景测试后台接口自动化(基于QT4S)导语 根据测试金字塔理论,自动化收益由高到低依次是单元测试,API接口测试和UI测试。其中单元测试的主体一般是开发人员,API接口测试和UI测试的主体是测试人员。相比迭代变化快、编写成本高而且运行耗时长的UI测试,API接口测试..._qt4s
文章浏览阅读323次,点赞2次,收藏3次。一、背景前后端分离已经成为互联网项目开发标准,它会为以后的大型分布式架构打下基础。SpringBoot使编码配置部署都变得简单,越来越多的互联网公司已经选择SpringBoot作为微服务的入门级微框架。Mybatis-Plus是一个 Mybatis 的增强工具,有代码生成器,并且提供了类似hibernate的单表CRUD操作,又保留了mybatis的特性支持定制化 SQL。Apache Shiro是一款强大易用的Java安全框架,Java官方推荐使用Shiro,它比Spring Security_springboot jwt 脚手架
文章浏览阅读295次。原作者:yeyan1996原文链接:https://url.cn/5h66afn前言这段时间面试官都挺忙的,频频出现在博客文章标题,虽然我不是特别想蹭热度,但是实在想不到好的标题..._如果公司让你做大文件上传系统 你会考虑到哪些?并且你会如何实施?
文章浏览阅读4.3k次。八大学报1.计算机学报2.软件学报3.计算机科学与技术学报(JCST)4.计算机研究与发展5.自动化学报6.电子学报7.通信学报8.中国科学被SCI检索的国外期刊(顶级会议)新排名2004部分核心期刊名单(自动化、计算机部分与无线电、电信部分)自动化、计算机部分1 计算机学报 北京 中国计算机学会等2 软件学报 北京 中国科学院软件研究所3 计算机研究与发展 北京 中国科学院计算技术研究所等4 自动化学报 北京 中国科学院等5 计算机科学 重庆 国家科技部西南信息中心6 _智能计算机与应用期刊和软件学报哪个更厉害
文章浏览阅读145次。沙箱技术本质上是将不信任的程序隔离在沙箱内进行运行操作,防止影响其它应用和服务。_kuasar
文章浏览阅读4.7k次。String 和 int 是两种不同的数据类型。int 是一种整数类型,代表一个整数值,它可以是正数、负数或零。int 在计算机中的存储空间是固定的,通常是 32 位(4 个字节)或 64 位(8 个字节)。String 是一种字符串类型,代表一个文本字符串,可以包含任意字符。String 在计算机中的存储空间是动态的,它根据字符串的长度来分配存储空间。在 Java 中,String 是一个类..._string int
文章浏览阅读847次,点赞15次,收藏16次。这是因为自行设计的密码算法可能存在未知的漏洞或弱点,而公认的标准算法经过了大量的安全分析和测试。密码算法是一种特殊的算法,它通过数学和计算机科学的技术手段,实现对信息的加密和解密,确保信息在传输过程中不被未经授权的人员读取、篡改或伪造。在互联网的通信中,数据是通过很多计算机或者通信设备相互转发,才能够到达目的地,所以在这个转发的过程中,如果通信包被其他人捕获到,那么数据就不再安全了。密钥就相当于是钥匙,如果要是丢了那么数据必然是不安全的,任何形式的密码,如果密钥丢了,数据的安全性就无法保证了。