centos7 静默安装 Oracle18c

1.创建oralce用户以及用户组

groupadd -g 601 oinstall

groupadd -g 602 dba

groupadd -g 603 oper

groupadd -g 604 backupdba

groupadd -g 605 dgdba

groupadd -g 606 kmdba

useradd -u 601 -g oinstall -G dba,backupdba,dgdba,kmdba,oper oracle

echo "oracle" | passwd --stdin oracle

2.创建目录结构

mkdir -p /u01/app/oracle

mkdir -p /u01/app/oraInventory

mkdir -p /u01/app/oracle/product/18.3.0/db_1

chown -R oracle:oinstall /u01/

chmod -R 775 /u01/

3.修改/etc/security/limits.conf

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

echo "oracle soft nproc 16384" >>/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 "oracle soft stack  10240" >>/etc/security/limits.conf

echo "oracle hard stack  32768" >>/etc/security/limits.conf

4.修改20-nproc.conf

cp /etc/security/limits.d/20-nproc.conf /etc/security/limits.d/20-nproc.conf.bak

echo "# Default limit for number of user's processes to prevent" > /etc/security/limits.d/20-nproc.conf

echo "# accidental fork bombs." >> /etc/security/limits.d/20-nproc.conf

echo "# See rhbz #432903 for reasoning." >> /etc/security/limits.d/20-nproc.conf

echo "root soft nproc unlimited" >> /etc/security/limits.d/20-nproc.conf

echo "* - nproc 16384" >> /etc/security/limits.d/20-nproc.conf

5.修改/etc/pam.d/login

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

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

6.修改/etc/sysctl.conf

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

echo "kernel.panic_on_oops = 1" >> /etc/sysctl.conf

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

echo "fs.file-max = 6815744" >> /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 "kernel.shmmax = 4294967296" >> /etc/sysctl.conf

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

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

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

sysctl -p

7.修改oracle用户环境变量

cp /home/oracle/.bash_profile /home/oracle/.bash_profile.bak

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

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

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

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

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

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

echo "export ORACLE_UNQNAME=rac">> /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=.:$PATH:$HOME/bin:$ORACLE_BASE/product/18.3.0/db_1/bin:$ORACLE_HOME/bin'>> /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 THREADS_FLAG=native" >> /home/oracle/.bash_profile

echo "export LANG=en_US" >> /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 'if [ $USER = "oracle" ]||[ $USER = "grid" ]; then' >>  /home/oracle/.bash_profile

echo 'if [ $SHELL = "/bin/ksh" ]; then' >> /home/oracle/.bash_profile

echo 'ulimit -p 16384' >> /home/oracle/.bash_profile

echo 'ulimit -n 65536' >> /home/oracle/.bash_profile

echo 'else' >> /home/oracle/.bash_profile

echo 'ulimit -u 16384 -n 65536' >> /home/oracle/.bash_profile

echo 'fi' >> /home/oracle/.bash_profile

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

echo 'fi' >> /home/oracle/.bash_profile

8、安装依赖包

yum -y install binutils compat-libcap1 compat-libstdc++-33 compat-libstdc++-33*i686 compat-libstdc++-33*.devel compat-libstdc++-33 compat-libstdc++-33*.devel gcc gcc-c++ glibc glibc*.i686 glibc-devel glibc-devel*.i686 ksh libaio libaio*.i686 libaio-devel ibaio-devel*.devel libgcc libgcc*.i686 libstdc++ libstdc++*.i686 libstdc++-devel libstdc++-devel*.devel libXi libXi*.i686 libXtst libXtst*.i686 make sysstat unixODBC unixODBC*.i686 unixODBC-devel unixODBC-devel*.i686

9、关闭安全防护

systemctl stop firewalld

systemctl disable firewalld

echo "NOZEROCONF=yes" >> /etc/sysconfig/network

cp /etc/selinux/config /etc/selinux/config.bak

 

sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config

 setenforce 0

10.修改/etc/hosts

echo "192.168.0.189 centos" >> /etc/hosts

注意修改为自己的ip地址

11.上传包至tmp文件夹并且解压到ORACLE_HOME目录

 unzip /tmp/LINUX.X64_180000_db_home.zip -d /u01/app/oracle/product/18.3.0/db_1/

chown -R oracle:oinstall /u01/

12.静默安装数据库软件

切换至Oracle用户

$ORACLE_HOME/runInstaller -silent  -force -noconfig  -ignorePrereq \

oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v18.0.0 \

oracle.install.option=INSTALL_DB_SWONLY \

UNIX_GROUP_NAME=oinstall \

INVENTORY_LOCATION=/u01/app/oraInventory \

ORACLE_BASE=/u01/app/oracle \

oracle.install.db.InstallEdition=EE \

oracle.install.db.OSDBA_GROUP=dba \

oracle.install.db.OSOPER_GROUP=oper \

oracle.install.db.OSBACKUPDBA_GROUP=backupdba \

oracle.install.db.OSDGDBA_GROUP=dgdba \

oracle.install.db.OSKMDBA_GROUP=kmdba \

oracle.install.db.OSRACDBA_GROUP=dba \

oracle.install.db.config.starterdb.type=GENERAL_PURPOSE

13.使用root用户执行

/u01/app/oraInventory/orainstRoot.sh

/u01/app/oracle/product/18.3.0/db_1/root.sh

14.静默创建监听

cd $ORACLE_HOME/bin

./netca -silent -responsefile $ORACLE_HOME/assistants/netca/netca.rsp

 

15.静默创建实例

/u01/app/oracle/product/18.3.0/db_1/bin/dbca -silent -createDatabase \

-gdbName orcl \

-sid orcl \

-sysPassword oracle -systemPassword oracle \

-databaseConfigType SI \

-createAsContainerDatabase false \

-useLocalUndoForPDBs true \

-templateName /u01/app/oracle/product/18.3.0/db_1/assistants/dbca/templates/General_Purpose.dbc \

-dvConfiguration false \

-olsConfiguration false \

-datafileJarLocation /u01/app/oracle/product/18.3.0/db_1/assistants/dbca/templates/ \

-datafileDestination /u01/app/oracle/oradata/orcl/ \

-storageType FS \

-registerWithDirService false \

-variables ORACLE_BASE_HOME=/u01/app/oracle,DB_UNIQUE_NAME=orcl,ORACLE_BASE=/u01/app/oracle,PDB_NAME=,DB_NAME=orcl,ORACLE_HOME=/u01/app/oracle/product/18.3.0/db_1,SID=orcl \

-initParams undo_tablespace=UNDOTBS1,db_block_size=8KB,diagnostic_dest=/u01/app/oracle,remote_login_passwordfile=EXCLUSIVE,db_create_file_dest=/u01/app/oracle/oradata/orcl/,processes=1000,sga_target=2048MB,pga_aggregate_target=1589M,open_cursors=300,compatible=18.0.0,db_name=orcl,audit_trail=none \

-sampleSchema FALSE \

-emConfiguration NONE

注意修改sga_target大小

16.修改权限版本

  $ORACLE_HOME/network/admin/sqlnet.ora文件下新增以下语句

SQLNET.ALLOWED_LOGON_VER

SQLNET.ALLOWED_LOGON_VERSION_SERVER=8
SQLNET.ALLOWED_LOGON_VERSION_CLIENT=8

SION_SERVER=8 SQLNET.ALLOWED_LOGON_VERSION_CLIENT=8

SQLNET.ALLOWED_LOGON_VERSION_SERVER=8 SQLNET.ALLOWED_LOGON_VERSION_CLIENT=8

17.设置大小写不敏感

Sqlplus中执行

alter system set sec_case_sensitive_logon=false;

18.Oracle开机自启动设置

1.修改/u01/app/oracle/product/18.3.0/db_1/bin/dbstart

[oracle@Centos ~]$ vi /u01/app/oracle/product/18.3.0/db_1/bin/dbstart

将ORACLE_HOME_LISTNER=$1修改为ORACLE_HOME_LISTNER=$ORACLE_HOME

2.修改/u01/app/oracle/product/18.3.0/db_1/bin/dbshut

[oracle@Centos ~]$ vi /u01/app/oracle/product/18.3.0/db_1/bin/dbshut

将ORACLE_HOME_LISTNER=$1修改为ORACLE_HOME_LISTNER=$ORACLE_HOME

3.修改/etc/oratab文件没有此文件可手动创建一个

[oracle@Centos ~]$ vi /etc/oratab

将orcl:/u01/app/oracle/product/18.3.0/db_1:N中最后的N改为Y,成为orcl:/u01/app/oracle/product/18.3.0/db_1:Y

4.切换到root账户建立自启动脚本

[oracle@Centos ~]$ su - root

[root@Centos ~]# vi /etc/rc.d/init.d/oracle

添加以下内容(有些值如ORACLE_HOME和ORACLE_USER等根据实际情况可以修改):

#!/bin/bash

 

# oracle: Start/Stop Oracle Database 11g R2

# chkconfig: 345 90 10

# description: The Oracle Database is an Object-Relational Database Management System.

#

. /etc/rc.d/init.d/functions

LOCKFILE=/var/lock/subsys/oracle

ORACLE_HOME=/u01/app/oracle/product/18.3.0/db_1

ORACLE_USER=oracle

case "$1" in

'start')

if [ -f $LOCKFILE ]; then

      echo $0 already running.

      exit 1

   fi

   echo -n $"Starting Oracle Database:"

   su - $ORACLE_USER -c "$ORACLE_HOME/bin/lsnrctl start"

   su - $ORACLE_USER -c "$ORACLE_HOME/bin/dbstart $ORACLE_HOME"

   su - $ORACLE_USER -c "$ORACLE_HOME/bin/emctl start dbconsole"

   touch $LOCKFILE

   ;;

'stop')

   if [ ! -f $LOCKFILE ]; then

      echo $0 already stopping.

      exit 1

   fi

   echo -n $"Stopping Oracle Database:"

   su - $ORACLE_USER -c "$ORACLE_HOME/bin/lsnrctl stop"

   su - $ORACLE_USER -c "$ORACLE_HOME/bin/dbshut"

   su - $ORACLE_USER -c "$ORACLE_HOME/bin/emctl stop dbconsole"

   rm -f $LOCKFILE

   ;;

'restart')

   $0 stop

   $0 start

   ;;

'status')

   if [ -f $LOCKFILE ]; then

      echo $0 started.

      else

      echo $0 stopped.

   fi

   ;;

*)

   echo "Usage: $0 [start|stop|status]"

   exit 1

esac

exit 0

 

5.修改/etc/init.d/oracle服务文件权限

[root@Centos init.d]# chmod 755 /etc/init.d/oracle

6.设置为开机启动

[root@Centos ~]# chkconfig oracle on

chkconfig --list oracle

 

  1. 进行service oracle start/stop/restart测试

  1. Reboot重启查看Oracle监听和实例进程均能自动启动。

 

 

:如果自启动有问题,可使用dbstart命令手动启动数据库用lsnrctl start启动监听。

[oracle@Centos ~]$ dbstart

[oracle@Centos ~]$ lsnrctl start

word版本下载word版本下载

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值