1.查看系统环境及版本
uname -a cat /etc/redhat-release
复制
2.修改主机名
永久修改主机名:
# hostnamectl set-hostname centos7 # su # hostname centos7
复制
3.配置hosts
确保 RAC 节点名没有出现在环回地址中
确保/etc/hosts?文件的环回地址中不包含节点名(racnode1或racnode2)。 如果计算机名出现在环回地址条目中,
如下所示:
127.0.0.1 racnode1 localhost.localdomain localhost
需要将其删除,
如下所示:
127.0.0.1 localhost.localdomain localhost
echo "192.168.56.101 rac1 192.168.56.201 rac1-vip 192.168.56.102 rac2 192.168.56.202 rac2-vip 89.89.89.101 rac1-priv 89.89.89.102 rac2-priv 192.168.56.150 rac-scan" >> /etc/hosts cat /etc/hosts
复制
4.关闭防火墙
chkconfig NetworkManager off systemctl stop firewalld.service systemctl disable firewalld.service setenforce 0 vi /etc/selinux/config SELINUX=disabled
复制
5.创建用户和组
groupadd -g 5000 asmadmin groupadd -g 5001 asmdba groupadd -g 5002 asmoper groupadd -g 6000 oinstall groupadd -g 6001 dba groupadd -g 6002 oper useradd -g oinstall -u 501 -G dba,asmadmin,asmdba,asmoper grid useradd -g oinstall -u 502 -G dba,asmdba oracle passwd oracle passwd grid
复制
6.配置本地yum源
6.1挂载镜像
mkdir /media mount /dev/cdrom /media/
复制
6.2备份原yum源配置
cd /etc/yum.repos.d/ mkdir bak mv *repo bak
复制
6.3创建本地yum源配置文件
vi red.repo [service] name=service baseurl=file:///media enabled=1 gpgcheck=1 gpgkey=file:///media/rhel/RPM-GPG-KEY-CentOS-7
复制
6.4 更新yum源配置
yum clean all yum makecache
复制
6.5安装GUI图形界面
yum groupinstall "Server with GUI"
复制
6.6启动图形界面
startx
复制
7. 配置网络
配置enp0s3 ,enp0s8 ip
/etc/sysconfig/network-scripts/ifcfg-enp0s3
8. 安装必要的rmp包
Oracle官方文档中确定要安装的包如下:
binutils-2.17.50.0.6
cvudisk-1.0.9 --在grid安装目录的rpm目录下
compat-libstdc+±33-3.2.3
compat-libstdc+±33-3.2.3 (32 bit)
elfutils-libelf-0.125
elfutils-libelf-devel-0.125
gcc-4.1.2
gcc-c+±4.1.2
glibc-2.5-24
glibc-2.5-24 (32 bit)
glibc-common-2.5
glibc-devel-2.5
glibc-devel-2.5 (32 bit)
glibc-headers-2.5
ksh-20060214
libaio-0.3.106
libaio-0.3.106 (32 bit)
libaio-devel-0.3.106
libaio-devel-0.3.106 (32 bit)
libgcc-4.1.2
libgcc-4.1.2 (32 bit)
libstdc+±4.1.2
libstdc+±4.1.2 (32 bit)
libstdc+±devel 4.1.2
make-3.81
numactl-devel-0.9.8.x86_64
pdksh-5.2.14
sysstat-7.0.2
unixODBC-2.2.11
unixODBC-2.2.11 (32 bit) unixODBC-devel-2.2.11
unixODBC-devel-2.2.11 (32 bit)
检查安装的包:
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 make numactl-devel pdksh sysstat unixODBC unixODBC-devel | sort
复制
yum install xxx -y
不用输入y后再安装
yum install compat* elfutils-libe* gcc* glibc* libaio* libgcc* libstdc* make* numactl-* sysstat* unixODBC* -y yum install compat*i686.rpm elfutils-libe*i686.rpm gcc*i686.rpm glibc*i686.rpm libaio*i686.rpm libgcc*i686.rpm libstdc*i686.rpm make*i686.rpm numactl-*i686.rpm sysstat*i686.rpm unixODBC*i686.rpm -y
复制
rpm -ivh compati686.rpm
rpm -ivh elfutils-libei686.rpm
rpm -ivh gcci686.rpm
rpm -ivh glibci686.rpm
rpm -ivh libaioi686.rpm
rpm -ivh libgcci686.rpm
rpm -ivh libstdci686.rpm
rpm -ivh makei686.rpm
rpm -ivh numactl-i686.rpm
rpm -ivh sysstati686.rpm
rpm -ivh unixODBC*i686.rpm
rpm -ivh compat-libstdc+±33-3.2.3-69.el6.i686.rpm
rpm -ivh glibc-devel-2.12-1.80.el6.i686.rpm
rpm -ivh unixODBC-devel-2.2.14-11.el6.i686.rpm
yum install unixODBC-devel-2.2.14-11.el6.i686.rpm -y
卸载rpm
rpm -e
注:在Oracle数据库软件安装时,ksh实际是用的pdksh,但ksh也是可以使用的,只是安装时会有警告,pdksh是一个早期的软件包,可以在以下网站找到.
http://rpm.pbone.net/
9. 配置oracle,grid用户的环境变量
grid用户:
cat >>/home/grid/.bash_profile <<EOF ##########2014-01-01############ ORACLE_SID=+ASM1; export ORACLE_SID #ORACLE_SID=+ASM2; export ORACLE_SID JAVA_HOME=/usr/bin/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 #NLS_DATE_FORMAT="DD-MON-YYYY HH24:MI:SS"; export NLS_DATE_FORMAT 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 export PATH=\${JAVA_HOME}/bin:\${PATH}:\$HOME/bin:\$ORACLE_HOME/bin:\$PATH umask 022 export DISPLAY=192.168.56.1:0.0 EOF clear cat /home/grid/.bash_profile
复制
oracle用户:
cat >>/home/oracle/.bash_profile <<EOF ##########2014-01-01############ ORACLE_SID=racdb1; export ORACLE_SID #ORACLE_SID=racdb2; 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 #NLS_DATE_FORMAT="DD-MON-YYYY HH24:MI:SS"; export NLS_DATE_FORMAT 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 export PATH=\${JAVA_HOME}/bin:\${PATH}:\$HOME/bin:\$ORACLE_HOME/bin export DISPLAY=192.168.56.1:0.0 EOF clear cat /home/oracle/.bash_profile
复制
10.创建oracle基目录
mkdir -p /u01/app/grid mkdir -p /u01/app/11.2.0/grid chown -R grid:oinstall /u01 mkdir -p /u01/app/oracle chown oracle:oinstall /u01/app/oracle chown -R grid:oinstall /u01/app/11.2.0/grid chmod -R 775 /u01
复制
11.对oracle软件安装用户设置资源限制
1,
cp /etc/security/limits.conf /etc/security/limits.conf.bak 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
复制
2,
echo "session required pam_limits.so" >>/etc/pam.d/login
复制
3,
echo "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">> /root/.bash_profile
复制
12. 配置内核参数
cat >> /etc/sysctl.conf <<EOF #2013-12-18 fs.aio-max-nr = 1048576 fs.file-max = 6815744 kernel.shmall = 2097152 kernel.shmmax = 1052125184 kernel.shmmni = 4096 # semaphores: semmsl, semmns, semopm, semmni 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 EOF
复制
激活内核参数:
sysctl -p
复制
13. 绕过DNS配置
mv /usr/bin/nslookup /usr/bin/nslookup.original
复制
cat >> /usr/bin/nslookup <<EOF #!/bin/bash HOSTNAME=\${1} if [[ \$HOSTNAME = "rac-scan" ]]; then echo "Server: 24.154.1.34" echo "Address: 24.154.1.34#53" echo "Non-authoritative answer:" echo "Name: rac-scan" echo "Address: 192.168.56.150" else /usr/bin/nslookup.original \$HOSTNAME fi EOF
复制
chmod 775 /usr/bin/nslookup
复制
14. 配置共享存储
14.1 查看没有分区的磁盘
fdisk -l
复制
14.2 查找scsi_id 路径
find / -name scsi_id
复制
14.3 没有对sdb进行分区,执行如下shell脚本
for i in b c d ; do echo "KERNEL==\"sd*\", SUBSYSTEM==\"block\", PROGRAM==\"/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/\$name\", RESULT==\"`/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/sd$i`\", SYMLINK+=\"asm-disk$i\", OWNER=\"grid\", GROUP=\"asmadmin\", MODE=\"0660\"" done
复制
14.4将结果复制到99-oracle-asmdevices.rules
cd /etc/udev/rules.d/ vi 99-oracle-asmdevices.rules KERNEL=="sd*", SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name", RESULT=="36000c2948ef9d9e4a7937bfc65888bc8", NAME="asm-diskb", OWNER="grid", GROUP="asmadmin", MODE="0660"
复制
14.5 启动udev
/usr/sbin/udevadm control --reload-rules systemctl status systemd-udevd.service systemctl enable systemd-udevd.service
复制
14.6检查设备是否正确绑定
# ls -l /dev/asm* /dev/sdb
复制
15. 上传介质到grid的目录,并安装grid
用root用户解压grid包,用grid用户安装图形界面
unzip /media/p13390677_112040_Linux-x86-64_3of7.zip ./runInstaller
复制
15.1 报错
安装grid提示:Package:cvuqdisk-1.0.9-1 filed
解决办法:(grid 按装包的rpm目录下有此包。)
1.执行#cd grid/rpm
2.执行rpm -ivh cvuqdisk-1.0.9-1.rpm (所有节点都要执行)
15.2 执行root脚本
RHEL 7 安装oracle rac 11.2.0.4执行root.sh报错ohasd failed to start
报错原因:
因为RHEL 7使用systemd而不是initd运行进程和重启进程,而root.sh通过传统的initd运行ohasd进程。
解决方法:
在RHEL 7中ohasd需要被设置为一个服务,在运行脚本root.sh之前。
步骤如下:
-
以root用户创建服务文件
#touch /usr/lib/systemd/system/ohas.service
#chmod 777 /usr/lib/systemd/system/ohas.service
-
将以下内容添加到新创建的ohas.service文件中
[root@rac1 init.d]# cat /usr/lib/systemd/system/ohas.service [Unit] Description=Oracle High Availability Services After=syslog.target [Service] ExecStart=/etc/init.d/init.ohasd run >/dev/null 2>&1 Type=simple Restart=always [Install] WantedBy=multi-user.target
复制
- 以root用户运行下面的命令
systemctl daemon-reload systemctl enable ohas.service systemctl start ohas.service
复制
- 查看运行状态
[root@rac1 init.d]# systemctl status ohas.service ohas.service - Oracle High Availability Services Loaded: loaded (/usr/lib/systemd/system/ohas.service; enabled) Active: failed (Result: start-limit) since Fri 2015-09-11 16:07:32 CST; 1s ago Process: 5734 ExecStart=/etc/init.d/init.ohasd run >/dev/null 2>&1 Type=simple (code=exited, status=203/EXEC) Main PID: 5734 (code=exited, status=203/EXEC)
复制
16. oracle 用户安装database软件
su - oracle cd /u01/tmp/database/ ./runInstall
复制
16.1 创建数据库的时候报错
RHRL7.0安装RAC11.2.0.4----Error in invoking target ‘agent nmhs’ of makefile '/u01/app/oracle/product/1
vi $ORACLE_HOME/sysman/lib/ins_emagent.mk Search for the line $(MK_EMAGENT_NMECTL) Change it to: $(MK_EMAGENT_NMECTL) -lnnz11
复制