oracle 11g rac 搭建

来源:互联网 发布:彩票预测app源码 编辑:程序博客网 时间:2024/04/29 01:42

1.桥接--win无线网相同
192.168.1.1 --默认网关
192.168.1.110
192.168.1.111
hostonly
192.180.100.1
192.180.100.110
192.180.100.111

网络设置如下:


                  RAC1                         RAC2                            openfiler1
public ip      192.168.1.110                 192.168.1.111                   192.168.1.112
private ip     192.180.100.110               192.180.100.111                 192.180.100.112
vip            192.168.1.120                 192.168.1.121
scan           192.168.1.200                 192.168.1.200                   192.168.1.200

 

3.网络配置
cat >> /etc/hosts <<EOF

#public ip:
192.168.1.110 rac1
192.168.1.111 rac2

#private ip:
192.180.100.110 rac1priv
192.180.100.111 rac2priv

#vip:
192.168.1.120  rac1vip
192.168.1.121  rac2vip

#scan:
192.168.1.200  racscan

EOF


# Private Storage Network for Openfiler - (eth1)
192.168.1.112   openfiler1
192.180.100.112   openfiler1priv

4.rpm
rpm -ivh *.rpm --nodeps --force

--注意下面这几个包
pdksh

--oracleasm的版本要和系统的内核一致 uname-r
oracleasm
oracleasm-support
oracleasmlib

5.添加组
groupadd oinstall
groupadd dba
groupadd oper
groupadd asmadmin
groupadd asmdba
groupadd asmoper
--创建用户-g:主组-G:辅助组
useradd -g oinstall -G dba,asmadmin,asmdba,asmoper grid
useradd -g oinstall -G dba,oper,asmdba oracle
passwd grid --stdin
passwd oracle --stdin


mkdir -p /u01/app
cd /u01/app
mkdir gridbase
mkdir grid
mkdir oracle
--设置grid用户,oinstall组的目录
chown -R grid:oinstall /u01
cd /u01/app/
--设置oracle用户,oinstall组的目录
chown -R oracle:oinstal oracle
--设置读写权限
chmod -R 775 /u01

--设置环境变量
--禁止selinux
vi /etc/selinux/config
selinux=disabled

--关闭防火墙
export LANG=C
setup

2.GRID:拥有集群软件,起停cluster
export HOME=/home/grid
export ORACLE_BASE=/u01/app/gridbase
export ORACLE_HOME=/u01/app/grid

vi /home/grid/.bash_profile
 
  # .bash_profile
 
  # Get the aliases and functions
 
  if [ -f ~/.bashrc ]; then
 
          . ~/.bashrc
 
fi
 
# User specific environment and startup programs

export ORACLE_SID=+ASM1
ORACLE_BASE=/u01/app/gridbase
ORACLE_HOME=/u01/app/grid
export ORACLE_BASE ORACLE_HOME
PATH=$PATH:$ORACLE_HOME/bin
LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
export PATH LD_LIBRARY_PATH
export DISPLAY=192.180.100.1:0.0
stty erase ^h
alias sqlplus='rlwrap sqlplus'
alias rman='rlwrap rman'

 
ORACLE:oracle软件, 起停数据库
export HOME=/home/oracle
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1

vi /home/oracle/.bash_profile
 
  # .bash_profile
 
  # Get the aliases and functions
 
  if [ -f ~/.bashrc ]; then
 
          . ~/.bashrc
 
fi
 
# User specific environment and startup programs
 
ORACLE_SID=ghsjdb1
ORACLE_BASE=/u01/app/oracle
ORACLE_HOME=$ORACLE_BASE/product/11.0.2/db_1
export ORACLE_SID ORACLE_BASE ORACLE_HOME
PATH=$PATH:$ORACLE_HOME/bin
LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
export PATH LD_LIBRARY_PATH
export DISPLAY=192.180.100.1:0.0
stty erase ^h
alias sqlplus='rlwrap sqlplus'
alias rman='rlwrap rman'

 
--root 用户敲入
xhost local:oracle non-network local connections being added to access control list
xhost local:grid non-network local connections being added to access control list

 

--设置内核参数

cat >> /etc/security/limits.conf <<EOF

grid soft nproc 2047
grid hard nproc 16384
grid soft nofile 1024
grid hard nofile 65536
grid soft  stack  10240

oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft  stack  10240
 
EOF
 

echo "session required /lib/security/pam_limits.so ">> /etc/pam.d/login
 


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
 

 


cat >>/etc/sysctl.conf <<EOF

kernel.shmmni =4096
fs.aio-max-nr = 1048576
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_max = 1048576
net.core.wmem_default = 262144
kernel.sem = 250  32000  100   128
 
EOF
 
--使内核参数生效
sysctl -p

--查找参数的值
sysctl -a | grep shm

 

--修改共享内存
umount tmpfs
mount -t tmpfs shmfs -o size=3000m /dev/shm
vi /etc/fstab
tmpfs /dev/shm tmpfs size=3000 0 0


---关闭ntp services
service ntpd stop
chkconfig ntpd off
mv /etc/ntp.conf /etc/ntp.conf.original
rm -rf /var/run/ntpd.pid
--关闭sendmail
chkconfig sendmail off

--创建共享磁盘

disk.locking = "FALSE"
diskLib.dataCacheMaxSize = "0"
diskLib.dataCacheMaxReadAheadSize = "0"
diskLib.DataCacheMinReadAheadSize = "0"
diskLib.dataCachePageSize = "4096"
diskLib.maxUnsyncedWrites = "0"

scsi0.sharedBus = "VIRTUAL"
scsi0:1.shared="true"
scsi0:1.redo = ""
scsi0:1.deviceType = "disk"

--创建oracleasm磁盘
fdisk sdb
n--p--1--return-return--w

rpm -qa | grep oracleasm

oracleasm configure -i
oracleasm init

oracleasm createdisk OCR sdb1
oracleasm createdisk RACDATA1 sdc1
oracleasm createdisk RACDATA2 sdd1
oracleasm createdisk FRA sde1

oracleasm scandisks
oracleasm listdisks

--复制rac1所有文件到rac2

修改rac2网络
cd /etc/sysconfig/
vi network --修改hostname
cd network-scripts
vi ifcfg-eth0
DEVICE=eth0
BOOTPROTO=static
IPADDR=192.168.1.111  
NETMASK=255.255.255.0
ONBOOT=yes
GATEWAY=192.168.1.1
TYPE=Ethernet

--cd /etc/sysconfig/network-scripts
--vi ifcfg-eth1
DEVICE=eth1
BOOTPROTO=static
IPADDR=192.180.100.111
NETMASK=255.255.255.0
ONBOOT=yes
GATEWAY=192.180.100.1
TYPE=Ethernet

reboot

--配置ssh
su - grid
--创建隐藏目录
mkdir ~/.ssh
--只能自己看到
chmod 700 .ssh
cd .ssh/
--touch 新建一个空文件
touch authorized_keys
--生成密钥在rac2也同样执行
/usr/bin/ssh-keygen -t dsa
--将id_dsa.pub中的内容添加到authorized_keys尾部
cat id_dsa.pub >> authorized_keys
--将rac2中的公钥添加到authorized_keys尾部
ssh rac2 cat .ssh/id_dsa.pub >> authorized_keys
--拷贝到rac2
scp authorized_keys rac2:~/.ssh

--在双节点手动设置时间

date -s "2014-04-23 9:47:00"

---此处做备份后面安装grid和rac
--安装集群软件
--卸载
cd /u01/app/grid/crs/install/
./rootcrs.pl -verbose -deconfig -force
--ORACLE RAC 重新安装时清空ASM 磁盘命令
dd if=/dev/zero of=/dev/sdb1 bs=4096 count=1


mv grid /u01/app/gridinstall
chown -R grid:oinstall /gridinstall

su - grid
./runcluvfy.sh -help
./runcluvfy.sh stage -pre crsinst -n rac1,rac2 -fixup -verbose
--使用CVU验证硬件和操作系统设置
./runcluvfy.sh stage -post hwos -n rac1,rac2 -verbose
./runInstaller

sh /u01/app/oraInventory/orainstRoot.sh
sh /u01/app/grid/root.sh

--root 用户下
vi /etc/profile  
--添加:
export PATH=$PATH:/u01/app/grid/bin
source /etc/profile


crsctl check crs
crs_stat -t -v
crsctl check ctss --检查时间


--安装数据库软件
unzip linux_11gR2_database_1of2.zip
unzip -o linux_11gR2_database_2of2.zip
 
mv database /u01/app/database

sh /u01/app/oracle/product/11.0.2/db_1/root.sh
不要覆盖之前目录

手工方式对磁盘mount:
su - grid      //因为asm是由grid用户管理的
sqlplus '/as  sysdba'
select group_number,name,state from v$asm_diskgroup;
conn  /as sysasm      //mount需要用sysasm用户
alter diskgroup dg1 mount;
--创建数据库
dbca

--起停集群clusterware
crsctl start cluster -all
crsctl stop cluster -all

--起停数据库
srvctl start database -d ghsjdb
srvctl stop database -d ghsjdb


srvctl config database -d ghsjdb

srvctl status database -d ghsjdb

listener
LISTENER_RAC2 =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS_LIST =
        (ADDRESS = (PROTOCOL = TCP)(HOST = rac2vip)(PORT = 1521)(IP = FIRST))
      )
      (ADDRESS_LIST =
        (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.111)(PORT = 1521)(IP = FIRST))
      )
      (ADDRESS_LIST =
        (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))
      )
    )
  )

LISTENER_RAC1 =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS_LIST =
        (ADDRESS = (PROTOCOL = TCP)(HOST = rac1vip)(PORT = 1521)(IP = FIRST))
      )
      (ADDRESS_LIST =
        (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.100)(PORT = 1521)(IP = FIRST))
      )
      (ADDRESS_LIST =
        (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))
      )
    )
  )

tns
GHSJDB =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = rac2vip)(PORT = 1521))
    (ADDRESS = (PROTOCOL = TCP)(HOST = rac1vip)(PORT = 1521))
    (LOAD_BALANCE = yes)
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = GHSJDB)
    )
  )

LISTENERS_RAC =
  (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = TCP)(HOST = rac2vip)(PORT = 1521))
    (ADDRESS = (PROTOCOL = TCP)(HOST = rac1vip)(PORT = 1521))
  )

GHSJDB2 =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = rac2vip)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = GHSJDB)
      (INSTANCE_NAME = GHSJDB2)
    )
  )

GHSJDB1 =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = rac1vip)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = GHSJDB)
      (INSTANCE_NAME = GHSJDB1)
    )
  )

0 0