一、准备单实例数据库服务器

1、准备操作系统

注:建议安装oracle数据库使用oracle linux操作系统,本实例以oracle linux 6.8做为操作系统。

#关闭iptables

chkconfig iptables off

#关闭selinux

vim /etc/sysconfig/selinux 

SELINUX=disabled

#将主机名添加到hosts文件

vim /etc/hosts

188.188.1.120   oracledb

#重启服务器

reboot

2、初始化操作系统,执行以下脚本

#用户初始化脚本preusers.sh

注:grid用户的ORACLE_SID必须为+ASM,ORACLE_HOSTNAME、ORACLE_SID、ORACLE_UNQNAME做相应的更改

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

#!/bin/bash

#Purpose:Create 6 groups named 'oinstall','dba','asmadmin','asmdba','asmoper','oper', plus 2 users named 'oracle','grid'.

#Also setting the Environment

#variable for oracle user.

#variable for grid user.

#Usage:Log on as the superuser('root'),and then execute the command:#./1preusers.sh

#Author:Asher Huang

  

echo "Now create 6 groups named 'oinstall','dba','asmadmin','asmdba','asmoper','oper'"

echo "Plus 2 users named 'oracle','grid',Also setting the Environment"

  

groupadd -g 1000 oinstall 

groupadd -g 1300 dba 

groupadd -g 1301 oper 

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

echo "oracle" | passwd --stdin oracle

  

#echo 'export PS1="`/bin/hostname -s`-> "'>> /home/oracle/.bash_profile 

echo "export TMP=/tmp">> /home/oracle/.bash_profile  

echo 'export TMPDIR=$TMP'>>/home/oracle/.bash_profile 

echo "export ORACLE_HOSTNAME=dataguard">> /home/oracle/.bash_profile 

echo "export ORACLE_SID=bbdg">> /home/oracle/.bash_profile 

echo "export ORACLE_BASE=/u01/app/oracle">> /home/oracle/.bash_profile

echo 'export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1'>> /home/oracle/.bash_profile

echo "export ORACLE_UNQNAME=bbdg">> /home/oracle/.bash_profile

echo 'export TNS_ADMIN=$ORACLE_HOME/network/admin'  >> /home/oracle/.bash_profile

echo "export ORACLE_TERM=xterm">> /home/oracle/.bash_profile

echo 'export PATH=/usr/sbin:$PATH'>> /home/oracle/.bash_profile

echo 'export PATH=$ORACLE_HOME/bin:$PATH'>> /home/oracle/.bash_profile

echo 'export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib'>> /home/oracle/.bash_profile

echo 'export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib'>> /home/oracle/.bash_profile

echo "export EDITOR=vi" >> /home/oracle/.bash_profile

echo "export" >> /home/oracle/.bash_profile

echo "export NLS_LANG=american_america.AL32UTF8" >> /home/oracle/.bash_profile

echo "export NLS_DATE_FORMAT='yyyy/mm/dd hh24:mi:ss'" >> /home/oracle/.bash_profile

echo "umask 022">> /home/oracle/.bash_profile

  

echo "The Groups and users has been created"

echo "The Environment for grid,oracle also has been set successfully"

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

#创建目录脚本predir.sh

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

#!/bin/bash

#Purpose:Create the necessary directory for oracle,grid users and change the authention to oracle,grid users.

#Usage:Log on as the superuser('root'),and then execute the command:#./2predir.sh

#Author:Asher Huang

  

echo "Now create the necessary directory for oracle,grid users and change the authention to oracle,grid users..."

mkdir -p /u01/app/grid

mkdir -p /u01/app/11.2.0/grid

mkdir -p /u01/app/oracle

chown -R oracle:oinstall /u01

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

chown -R grid:oinstall /u01/app/11.2.0

chmod -R 775 /u01

echo "The necessary directory for oracle,grid users and change the authention to oracle,grid users has been finished"

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

#修改limits脚本prelimits.sh

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

#!/bin/bash

#Purpose:Change the /etc/security/limits.conf.

#Usage:Log on as the superuser('root'),and then execute the command:#./3prelimits.sh

#Author:Asher Huang

  

echo "Now modify the /etc/security/limits.conf,but backup it named /etc/security/limits.conf.bak before"

cp /etc/security/limits.conf /etc/security/limits.conf.bak

echo "oracle soft nproc 2047" >>/etc/security/limits.conf

echo "oracle hard nproc 16384" >>/etc/security/limits.conf

echo "oracle soft nofile 1024" >>/etc/security/limits.conf

echo "oracle hard nofile 65536" >>/etc/security/limits.conf

echo "grid soft nproc 2047" >>/etc/security/limits.conf

echo "grid hard nproc 16384" >>/etc/security/limits.conf

echo "grid soft nofile 1024" >>/etc/security/limits.conf

echo "grid hard nofile 65536" >>/etc/security/limits.conf

echo "Modifing the /etc/security/limits.conf has been succeed."

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

#修改login脚本prelogin.sh

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

#!/bin/bash

#Purpose:Modify the /etc/pam.d/login.

#Usage:Log on as the superuser('root'),and then execute the command:#./4prelimits.sh

#Author:Asher Huang

  

echo "Now modify the /etc/pam.d/login,but with a backup named /etc/pam.d/login.bak"

cp /etc/pam.d/login /etc/pam.d/login.bak

  

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

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

  

echo "Modifing the /etc/pam.d/login has been succeed."

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

#修改profile脚本preprofile.sh

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

#!/bin/bash

#Purpose:Modify the /etc/profile.

#Usage:Log on as the superuser('root'),and then execute the command:#./5preprofile.sh

#Author:Asher Huang

  

echo "Now modify the  /etc/profile,but with a backup named  /etc/profile.bak"

cp /etc/profile /etc/profile.bak

echo 'if [ $USER = "oracle" ]||[ $USER = "grid" ]; then' >>  /etc/profile

echo 'if [ $SHELL = "/bin/ksh" ]; then' >> /etc/profile

echo 'ulimit -p 16384' >> /etc/profile

echo 'ulimit -n 65536' >> /etc/profile

echo 'else' >> /etc/profile

echo 'ulimit -u 16384 -n 65536' >> /etc/profile

echo 'fi' >> /etc/profile

echo 'fi' >> /etc/profile

echo "Modifing the /etc/profile has been succeed."

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

#修改内核参数脚本presysctl.sh

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

#!/bin/bash

#Purpose:Modify the /etc/sysctl.conf.

#Usage:Log on as the superuser('root'),and then execute the command:#./6presysctl.sh

#Author:Asher Huang

  

echo "Now modify the /etc/sysctl.conf,but with a backup named /etc/sysctl.bak"

cp /etc/sysctl.conf /etc/sysctl.conf.bak

  

echo "fs.aio-max-nr = 1048576" >> /etc/sysctl.conf

echo "fs.file-max = 6815744" >> /etc/sysctl.conf

echo "kernel.shmall = 2097152" >> /etc/sysctl.conf

echo "kernel.shmmax = 1054472192" >> /etc/sysctl.conf

echo "kernel.shmmni = 4096" >> /etc/sysctl.conf

echo "kernel.sem = 250 32000 100 128" >> /etc/sysctl.conf

echo "net.ipv4.ip_local_port_range = 9000 65500" >> /etc/sysctl.conf

echo "net.core.rmem_default = 262144" >> /etc/sysctl.conf

echo "net.core.rmem_max = 4194304" >> /etc/sysctl.conf

echo "net.core.wmem_default = 262144" >> /etc/sysctl.conf

echo "net.core.wmem_max = 1048586" >> /etc/sysctl.conf

echo "net.ipv4.tcp_wmem = 262144 262144 262144" >> /etc/sysctl.conf

echo "net.ipv4.tcp_rmem = 4194304 4194304 4194304" >> /etc/sysctl.conf

  

echo "Modifing the /etc/sysctl.conf has been succeed."

echo "Now make the changes take effect....."

sysctl -p

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

3、安装必备rpm

yum install -y binutils elfutils-libelf glibc compat-libstdc++-33.x86_64 libgcc unixODBC  glibc.i686 elfutils-libelf-devel gcc-c++ libaio-devel libstdc++-devel unixODBC-devel pdksh xorg-x11-* compat-libcap1 ksh-20100621

4、安装oracle,只需安装软件,不创建数据库

注:新打开一个未登录xshell窗口,使用oracle账户登录,如果直接从root切换到oracle账户,则xshell无法打开安装oracle图像化界面

ssh oracle@188.188.1.120

cd database/

./runInstaller

#创建数据库

dbca