centos 7.6 安装Oracle 11g r2之二-oracle软件安装

centos 7.6 安装Oracle 11g r2之二-oracle软件安装

Scroll Down

本教程的前段部分,安装的环境搭建在下面查看:

《centos 7.6 安装Oracle 11g r2之一-安装环境设置》

本篇文章文章接着上面讲,

1.创建Oracle 安装目录

mkdir -p /data/oracle/                  #在data文件夹下面创建APP文件夹
chown -R oracle:oinstall /data/oracle/  #将文件夹用户组和用户,oinstall组,Oracle用户。
chmod -R 775 /data/oracle/              #修改文件夹权限775 775指的是只有拥有者和组用户能够读写,其他用户只能读

2.上传安装文件

上传文件到centos7 有多种办法:
第一种,使用ftp,建议使用pure-ftpd软件。使用方法如下:

《CentOS 7.6 安装pure-ftp搭建Ftp服务器》

第二种,使用利用ssh使用WinSCP来上传文件,这种方法简单,操作起来也简单。

我们采用第二种方法。

首先,在软件建立连接。完成后点击登陆。

1.JPG

然后,出现添加密钥界面点击是

Snipaste_20200112_224231.JPG

最后,将文件上传至新建文件夹。

3.JPG

这样,文件就传输完成。

3.配置Oracle用户环境变量

在文件/home/oracle/.bash_profile里添加下面内容(具体值根据实际情况修改)

umask 022     #Umask 为022表示默认创建新文件权限为755,也就是 rxwr-xr-x(所有者全部权限,属组读写,其它人读写) 
export ORACLE_HOSTNAME=oracle   #设置主机名
export ORACLE_BASE=/data/oracle  #oracle数据库安装目录

export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/  #oracle数据库路径
export ORACLE_SID=ORCL  #oracle启动数据库实例名
export PATH=.:$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$ORACLE_HOME/jdk/bin:$PATH      #添加系统环境变量
export LC_ALL="en_US"
export LANG="en_US"     #防止安装过程出现乱码

export NLS_LANG="AMERICAN_AMERICA.ZHS16GBK"   #设置Oracle客户端字符集

export NLS_DATE_FORMAT="YYYY-MM-DD HH24:MI:SS"  #设置时间格式

环境变量生效由两种办法:
第一种,重新启动

reboot

第二种,直接生效

source /home/oracle/.bash_profile

4. 解压两个Oracle数据库文件

unzip -q linux.x64_11gR2_database_1of2.zip -d /data #解压到新建的data文件夹
unzip -q linux.x64_11gR2_database_2of2.zip -d /data
mkdir -p /data/etc
cp /data/database/response/* /data/etc/

在/data/etc/db_install.rsp修改以下变量的值

oracle.install.option=INSTALL_DB_SWONLY
DECLINE_SECURITY_UPDATES=true
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/data/oracle/inventory
SELECTED_LANGUAGES=en,zh_CN
ORACLE_HOSTNAME=oracledb
ORACLE_HOME=/data/oracle/product/11.2.0
ORACLE_BASE=/data/oracle
oracle.install.db.InstallEdition=EE
oracle.install.db.isCustomInstall=true
oracle.install.db.DBA_GROUP=dba
oracle.install.db.OPER_GROUP=dba

oracle.install.db.config.starterdb.dbcontrol.emailAddress=zabbx@zabbx.cn

5.开始安装Oracle

使用下面命令安装Oracle。

su - oracle
cd /data/database
./runInstaller -silent -responseFile /data/etc/db_install.rsp -ignorePrereq

在这一步,可能会出现使用su - oracle 切换用户的时候命令提示符变成bash-4.2

可通过下面方法解决:

《centos7.6 安装Oracle切换用户时变成bash-4.2$的解》

安装期间可以使用tail命令监看oracle的安装日志

#日志文件名称根据自己的实际执行时间变更
tail -f /data/oracle/inventory/logs/installActions2020-01-21_09-11-27PM.log

具体的安装日志名称是你Oracle日期,自己气看吧!

如果出现下面信息,就已经正面安装完成。

image.png

6.使用root用户执行脚本

这两条命令是,上一步骤安装完提示操作

image.png

su - root
sh /data/oracle/inventory/orainstRoot.sh
sh /data/oracle/product/11.2.0/root.sh

这个是做什么用的?

/data/oracle/inventory/orainstRoot.sh

  • 添加grid用户及oinstall组对Oracle Central Inventory 目录的读写权限。
  • 删除其它用户组对该目录的读、写、执行权限。
  • 创建/etc/oraInst.loc文件。

/data/oracle/product/11.2.0/root.sh

  • 复制grid用户的$ORACLE_HOME/bin下的oraenv、dbhome、coraenv可执行程序到/usr/local/bin路径下
  • 创建/etc/oratab文件
  • 创建grid用户的OCR keys文件
  • 启动ohasd守护进程,并且将ohasd守护进程的启动文件写入到/etc/inittab文件中,以便于ohasd守护进程随着操作系统的启动而启动。如果是Oracle Enterprise Linux 6及以上版本的操作系统的话,则将该配置信息写入到/etc/init/oracle-ohasd.conf的独立配置文件中。

image.png

7.配置监听程序

su - oracle
netca /silent /responsefile /data/etc/netca.rsp
  • 在这一步,可能执行netca会提示:bash: netca: 未找到命令。
  • 解决办法:进入home/oracle 然后执行:source .bash_profile

image.png

image.png
image.png

查看监听端口

netstat -tnpl | grep 1521

image.png

注:新的电脑不一定能够执行netstat命令,需要自己安装!

安装netstat

yum -y install net-tools

8.静默创建数据库

编辑应答文件/data/etc/dbca.rsp

[GENERAL]
RESPONSEFILE_VERSION = "11.2.0"
OPERATION_TYPE = "createDatabase"
[CREATEDATABASE]
GDBNAME = "orcl"
SID = "orcl"
SYSPASSWORD = "oracle"
SYSTEMPASSWORD = "oracle"
SYSMANPASSWORD = "oracle"
DBSNMPPASSWORD = "oracle"
DATAFILEDESTINATION =/data/oracle/oradata
RECOVERYAREADESTINATION=/data/oracle/fast_recovery_area
CHARACTERSET = "AL32UTF8"
TOTALMEMORY = "1638"

执行静默建库

su - oracle
dbca -silent -responseFile /data/etc/dbca.rsp

执行过程如下

image.png

查看进程

ps -ef | grep ora_ | grep -v grep

执行结果

image.png

查看监听状态

lsnrctl status

#结果

image.png

数据库实例创建成功!

9.登录数据库

su - oracle
sqlplus / as sysdba
select status from v$instance;

执行select时,全出现以下情况

image.png

解决方式:

输入startup,
#startup的输出提示:

image.png

根据提示,将data/oracle/admin/orcl/pfile目录下的init.ora.xxx形式的文件复制改名成报错目录的文件initOracle.ora(根据startup提示)即可

cp /data/oracle/admin/orcl/pfile/init.ora.0222020235110 /data/oracle/product/11.2.0/dbs/initORCL.ora

再次执行startup:

image.png

查看数据库编码

select userenv('language') from dual;

输出结果:

image.png

查看数据库版本

select * from v$version;

输出结果:

image.png

激活scott用户

alter user scott account unlock;
alter user scott identified by tiger;
select username,account_status from dba_users;

10. 设置Oracle开机启动

修改/data/oracle/product/11.2.0/bin/dbstart

ORACLE_HOME_LISTNER=$ORACLE_HOME

修改/data/oracle/product/11.2.0/bin/dbshut

ORACLE_HOME_LISTNER=$ORACLE_HOME

修改vi /etc/oratab

orcl:/data/oracle/product/11.2.0:Y

新建文件/etc/rc.d/init.d/oracle

#! /bin/bash
# oracle: Start/Stop Oracle Database 11g R2
#
# chkconfig: 345 90 10
# description: The Oracle Database is an Object-Relational Database Management System.
#
# processname: oracle
. /etc/rc.d/init.d/functions
LOCKFILE=/var/lock/subsys/oracle
ORACLE_HOME=/data/oracle/product/11.2.0
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

给/etc/init.d/oracle添加执行权限

chmod +x /etc/init.d/oracle

开机启动oracle

systemctl enable oracle
或
chkconfig oracle on

给启动文件加权限

cd /data/oracle/product/11.2.0/bin/
chmod 6751 oracle
cd /var/tmp
chown -R oracle:oinstall .oracle

11. 防火墙配置放开Oracle的端口

firewall-cmd --zone=public --add-port=1521/tcp --permanent
firewall-cmd --reload