Oralce RAC On ECS(共享云盘)部署方法
1 概述
描述ORACLE RAC架构使用阿里云ECS(IO优化实例、独享型 sn2)、SSD共享云盘配置Oracle RAC方法和步骤。
2 目的
基于阿里云ECS共享SSD磁盘 完成ORACLE RAC的部署。
3 环境准备
环境准备步骤如下:
申请云主机,包括2个RAC节点、supernode节点(同时用作压测机)
购买SSD共享云盘3块
3.3 修改主机名
vi /etc/sysconfig/network
节点1
NETWORKING=yes
HOSTNAME=rac1
NETWORKING_IPV6=no
PEERNTP=no
GATEWAY=47.93.139.247
NOZEROCONF=yes
节点2
NETWORKING=yes
HOSTNAME=rac2
NETWORKING_IPV6=no
PEERNTP=no
GATEWAY=47.93.139.247
NOZEROCONF=yes
3.4 安装n2n软件
在supernode节点安装ntop软件
cd /usr/src
svn co https://svn.ntop.org/svn/ntop/trunk/n2n
cd n2n/n2n_v2
make
make PREFIX=/opt/n2n install
安装完毕后启动supernode服务
/opt/n2n/sbin/supernode -l 65530
/opt/n2n/sbin/edge -d edge0 -a 10.10.10.111 -s 255.255.255.0 -c dtstack -k dtstack -l 10.30.51.64:65530 -E –r #用作压测使用
在RAC节点安装ntop软件(计划加入vpn网络的节点都需要安装ntop)
scp /opt/n2n 10.30.92.237:/opt
运行下面的命令,并写入到/etc/rc.local
节点1
/opt/n2n/sbin/edge -d edge0 -a 10.10.10.101 -s 255.255.255.0 -c dtstack -k dtstack -l 10.30.51.64:65530 -E -r
/opt/n2n/sbin/edge -d edge1 -a 192.168.100.101 -s 255.255.255.0 -c dtstack -k dtstack -l 10.30.51.64:65530 -E -r
节点2
/opt/n2n/sbin/edge -d edge0 -a 10.10.10.102 -s 255.255.255.0 -c dtstack -k dtstack -l 10.30.51.64:65530 -E -r
/opt/n2n/sbin/edge -d edge1 -a 192.168.100.102 -s 255.255.255.0 -c dtstack -k dtstack -l 10.30.51.64:65530 -E -r
3.5 修改/etc/hosts
节点1
10.10.10.101 rac1
10.10.10.102 rac2
10.10.10.103 rac1-vip
10.10.10.104 rac2-vip
192.168.100.101 rac1-priv
192.168.100.102 rac2-priv
10.10.10.105 scan-ip
10.30.92.33 rac1
节点2
10.10.10.101 rac1
10.10.10.102 rac2
10.10.10.103 rac1-vip
10.10.10.104 rac2-vip
192.168.100.101 rac1-priv
192.168.100.102 rac2-priv
10.10.10.105 scan-ip
10.30.92.237 rac2
3.6 修改内核参数
vi /etc/sysctl.conf
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall =7864320 #内存大小/4096分页大小
kernel.shmmax = 52451655680 #内存大小
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
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 = 1048586
vm.nr_hugepages = sga/pagesize #开启hugepage,oracle锁定内存防止换出
sysctl –p
3.7 配置NTP
oracle rac必须进行时钟同步,如果没有时钟同步,按照下面的方式配置,让oracle自身来解决
/sbin/service ntpd stop
chkconfig ntpd off
mv /etc/ntp.conf /etc/ntp.conf.org
3.8 关闭防火墙
chkconfig --list iptables
chkconfig iptables off
chkconfig --list iptables
service iptables stop
service network restart
关闭selinux
/etc/selinux/config
disable
3.9 修改用户限制
vi /etc/security/limits.conf
oracle soft nofile 4096
oracle hard nofile 65536
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft stack 10240
grid soft nofile 4096
grid hard nofile 65536
grid soft nproc 2047
grid hard nproc 16384
grid soft stack 10240
* soft memlock 18874368
* hard memlock 18874368
以上memlock<ram的大小 单位为k
3.10 /etc/pam.d/login
echo "session required pam_limits.so" >>/etc/pam.d/login
3.11 安装OS软件包
rpm -q binutils \
compat-libstdc++-33 \
elfutils-libelf \
elfutils-libelf-devel \
gcc \
gcc-c++ \
glibc \
glibc-common \
glibc-devel \
glibc-headers \
ksh \
libaio \
libaio-devel \
libgcc \
libstdc++ \
libstdc++-devel \
libXp \
make \
numactl-devel \
sysstat \
unixODBC \
unixODBC-devel \
compat-libcap1.x86_64 \
libcap.x86_64|grep not
一般要安装下面的软件包
yum install -y compat-libstdc++-33
yum install -y elfutils-libelf-devel
yum install -y gcc-c++
yum install -y ksh
yum install -y libaio-devel
yum install -y libstdc++-devel
yum install -y libXp
yum install -y numactl-devel
yum install -y unixODBC
yum install -y unixODBC-devel
yum install -y compat-libcap1.x86_64
3.12 格式化共享磁盘
每个磁盘分区成2个,2GB磁盘+剩余空间
Disk /dev/vdb: 322.1 GB, 322122547200 bytes
Disk /dev/vdc: 322.1 GB, 322122547200 bytes
Disk /dev/vdd: 322.1 GB, 322122547200 bytes
3.13 安装oracleasmlib软件包
本次安装使用了oracleasmlib管理asm磁盘
首先从linux-kernel安装Kmod-oracleasm,这是linux源中自带的,是linux支持oracleasm的软件包
然后从oracle官网下载oracleasmlib和oracleasm-support
/usr/sbin/oracleasm configure -i #两个节点
/etc/init.d/oracleasm enable #两个节点
/etc/init.d/oracleasm start #两个节点
/usr/sbin/oracleasm listdisks
/usr/sbin/oracleasm querydisks
/usr/sbin/oracleasm createdisk NAME /path
/usr/sbin/oracleasm scandisks #一个节点创建磁盘后,另一个节点扫描磁盘即可
3.14 准备ASM磁盘
本次创建的磁盘
/etc/init.d/oracleasm createdisk VOLCRS01 /dev/vdb1
/etc/init.d/oracleasm createdisk VOLCRS02 /dev/vdc1
/etc/init.d/oracleasm createdisk VOLCRS03 /dev/vdd1
/etc/init.d/oracleasm createdisk VOLDATA01 /dev/vdb2
/etc/init.d/oracleasm createdisk VOLDATA02 /dev/vdc2
/etc/init.d/oracleasm createdisk VOLDATA03 /dev/vdd2
3.15 创建grid、oracle用户
/usr/sbin/groupadd -g 501 oinstall
/usr/sbin/groupadd -g 502 asmadmin
/usr/sbin/groupadd -g 503 dba
/usr/sbin/groupadd -g 504 oper
/usr/sbin/groupadd -g 505 asmdba
/usr/sbin/groupadd -g 506 asmoper
/usr/sbin/useradd -u 501 -g oinstall -G asmadmin,asmdba,asmoper,oper,dba grid
/usr/sbin/useradd -u 502 -g oinstall -G dba,asmdba,oper oracle
配置环境变量
Grid
Vi .bash_profile
umask 022
export ORACLE_BASE=/u01/app/grid_base
export ORACLE_HOME=/u01/app/grid_home
export ORACLE_SID=+ASM1 #第二个节点+ASM2
export PATH=/usr/sbin:$PATH
export PATH=$ORACLE_HOME/bin:$PATH
Oracle
umask 022
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
export ORA_GRID_HOME=/u01/app/grid_home
export ORACLE_UNQNAME=orcl #第二个节点orcl2
export ORACLE_SID=orcl1
export PATH=/usr/sbin:$PATH
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib:/usr/lib
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
export NLS_DATE_FORMAT="YYYY-MM-DD HH24:MI:SS"
export TNS_ADMIN=$ORACLE_HOME/network/admin
export LANG=en_US
3.16 创建安装目录
mkdir -p /u01/app/
mkdir –p /u01/app/grid_base
mkdir –p /u01/app/grid_home
chown -R grid:oinstall /u01/app/grid_base
chown -R grid:oinstall /u01/app/grid_home
chown -R oracle:oinstall /u01/app
chmod -R 775 /u01/app/
4 安装GRID
4.1 准备软件
软件上传至/u01/software
p13390677_112040_Linux-x86-64_2of7.zip
p13390677_112040_Linux-x86-64_1of7.zip
p13390677_112040_Linux-x86-64_3of7.zip
4.2 配置对等性
准备秘钥
su - grid
mkdir ~/.ssh
ssh-keygen -t rsa
ssh-keygen -t dsa
su - oracle
mkdir ~/.ssh
ssh-keygen -t rsa
ssh-keygen -t dsa
在节点1执行
su - grid
cat ~/.ssh/id_rsa.pub>>./.ssh/authorized_keys --公钥存在authorized_keys文件中,写到本机
cat ~/.ssh/id_dsa.pub>>./.ssh/authorized_keys
ssh testOracle3Z-PRI cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys --第二个节点的公钥写到本机
ssh testOracle3Z-PRI cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
scp ~/.ssh/authorized_keys testOracle3Z-PRI:~/.ssh/authorized_keys
su - oracle
cat ~/.ssh/id_rsa.pub>>./.ssh/authorized_keys --公钥存在authorized_keys文件中,写到本机
cat ~/.ssh/id_dsa.pub>>./.ssh/authorized_keys
ssh testOracle3Z-PRI cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys --第二个节点的公钥写到本机
ssh testOracle3Z-PRI cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
scp ~/.ssh/authorized_keys testOracle3Z-PRI:~/.ssh/authorized_keys
验证
ssh rac1 date (public网卡)
ssh rac2 date
ssh rac1-priv date (private网卡)
ssh rac2-priv date
4.3 安装预检查
su - grid
$cd grid的软件目录
$./runcluvfy.sh stage -pre crsinst -n rac1,rac2 -verbose
4.4 准备响应文件
ORACLE_HOSTNAME=rac1
INVENTORY_LOCATION=/u01/app/oraInventory
oracle.install.option=CRS_CONFIG
ORACLE_BASE=/u01/app/grid_base
ORACLE_HOME=/u01/app/grid_home
oracle.install.asm.OSDBA=asmdba
oracle.install.asm.OSOPER=asmoper
oracle.install.asm.OSASM=asmadmin
oracle.install.crs.config.gpnp.scanPort=1521
oracle.install.crs.config.clusterName=rac-cluster
oracle.install.crs.config.clusterNodes=rac1:rac1-vip,rac2:rac2-vip
oracle.install.crs.config.privateInterconnects=edge1:192.168.100.0:2,edge0:10.10.10.0:1 //1代表public,2代表private,3代表在群集中不使用该网卡
oracle.install.crs.config.storageOption=ASM_STORAGE
oracle.install.asm.SYSASMPassword=Grid123
oracle.install.asm.diskGroup.name=OCR
oracle.install.asm.diskGroup.redundancy=NORMAL
oracle.install.asm.diskGroup.AUSize=1
oracle.install.asm.diskGroup.disks=/dev/oracleasm/disks/VOLCRS01,/dev/oracleasm/disks/VOLCRS02,/dev/oracleasm/disks/VOLCRS03
oracle.install.asm.diskGroup.diskDiscoveryString=/dev/oracleasm/disks
oracle.install.asm.monitorPassword=Grid123
4.5 安装grid
$./runInstaller -silent -responseFile /u01/software/grid/response/crs_install_test.rsp -ignoreSysPrereqs -ignorePrereq
等待一段时间后,会提示在两个节点分别用root用户执行:
/u01/grid/oraInventory/orainstRoot.sh
/u01/crs/11.2.0/root.sh
4.6 创建磁盘组
su – grid
$asmca
或者使用命令行
$ asmca -silent -createDiskGroup -sysAsmPassword Grid123 -diskString '/dev/oracleasm/disks/*' -diskGroupName DATA -diskList '/dev/oracleasm/disks/VOLDATA1' -redundancy NORMAL -compatible.asm 11.2 -compatible.rdbms 11.2
$ asmca -silent -addDisk -sysAsmPassword Grid123 -diskGroupName DATA -diskList '/dev/oracleasm/disks/VOLDATA2'
$ asmca -silent -addDisk -sysAsmPassword Grid123 -diskGroupName DATA -diskList '/dev/oracleasm/disks/VOLDATA3'
5 安装Database
5.1 注册产品列表
/u01/app/oraInventory/ContentsXMLinventory.xml
/u01/app/oraInventory/ContentsXML
5.2 准备响应文件
/u01/soft/oracle/database/response/db_install_test.rsp
oracle.install.option=INSTALL_DB_SWONLY
ORACLE_HOSTNAME=testOracle1Z.com
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/u01/app/oraInventory
SELECTED_LANGUAGES=en
ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1
ORACLE_BASE=/u01/app/oracle
oracle.install.db.InstallEdition=EE
oracle.install.db.isCustomInstall=false
oracle.install.db.optionalComponents=oracle.rdbms.partitioning:11.2.0.4.0,oracle.oraolap:11.2.0.4.0,oracle.rdbms.dm:11.2.0.4.0,oracle.rdbms.dv:11.2.0.4.0,oracle.rdbms.lbac:11.2.0.4.0,oracle.r
dbms.rat:11.2.0.4.0oracle.install.db.DBA_GROUP=dba
oracle.install.db.OPER_GROUP=oinstall
oracle.install.db.CLUSTER_NODES=rac1,rac2
DECLINE_SECURITY_UPDATES=true
5.3 安装
./runInstaller -silent -ignoreSysPrereqs -ignorePrereq -responseFile /u01/software/database/response/db_install_test.rsp
/u01/grid/oraInventory/orainstRoot.sh
/u01/oracle/11.2.0/root.sh
6 创建数据库
创建数据库可以使用dbca交互界面,也可以使用静默创建方式
6.1 准备响应文件
/u01/soft/oracle/database/response/dbca_orcl.rsp
GDBNAME = "orcl"
SID = "orcl"
NODELIST=rac1,rac2
SYSPASSWORD = "Oracle123"
SYSTEMPASSWORD = "Oracle123"
STORAGETYPE=ASM
DISKGROUPNAME=DATA
RECOVERYGROUPNAME=DATA
CHARACTERSET = "ZHS16GBK"
6.2 创建数据库
dbca -silent -responseFile /u01/software/database/response/dbca_orcl.rsp
最后更新:2017-05-26 17:31:13