首页 > 技术文章 > RHEL7.5系统安装Oracle12c数据库

jsxxd 2021-03-07 22:45 原文

RHEL7.5系统安装Oracle12c数据库

 

0 相关软件下载

第一种下载方式:官网下载

  点我下载

第二种下载方式:百度云下载

  点我下载     提取码:i7is

 

1 配置oracle的安装环境

1.1 关闭防火墙、SElinux

systemctl stop firewalld
systemctl disable firewalld
setenforce 0
sed -i '/SELINUX/s/enforcing/disabled/' /etc/selinux/config

 

1.2 修改主机名(永久修改,打开新会话生效)

# 在root用户下执行命令

nmtui

vi /etc/hosts

添加以下内容:

192.168.6.10    ora

 

1.3 配置本地yum源

# 在root用户下执行命令

vi /etc/yum.repos.d/base.repo

添加以下内容:

[bash]
name=bash
baseurl=file:///mnt
enabled=1
gpgcheck=0
mount /dev/sr0 /mnt
yum repolist all

 

1.4 安装数据库所需要的rpm包

# 在root用户下执行命令

# 安装所需软件包

yum install -y compat-libcap1 glibc-devel libaio libaio-devel libgcc-* libstdc++ libstdc++-devel libxcb-* libX11-* libXau-* libXrender libXrender-devel make net-tools-* nfs-utils-* smartmontools-* sysstat-* pam unixODBC* gcc-c++ ksh xorg-x11-apps

# 检查所需软件包是否安装

rpm -qa compat-libcap1 glibc-devel libaio libaio-devel libgcc-* libstdc++ libstdc++-devel libxcb-* libX11-* libXau-* libXrender libXrender-devel make net-tools-* nfs-utils-* smartmontools-* sysstat-* pam unixODBC* gcc-c++ ksh xorg-x11-apps

 

1.5 禁止Transparent Huge Pages

# 在root用户下执行命令

echo never > /sys/kernel/mm/transparent_hugepage/enabled
cat /sys/kernel/mm/redhat_transparent_hugepage/enabled   # 输出结果为[always]表示透明巨页启用、[never]表示透明巨页禁用
grep -i HugePages_Total /proc/meminfo   # HugePages_Total返回0,意味着透明巨页禁用
cat /proc/sys/vm/nr_hugepages   # 返回0也意味着透明巨页禁用

 

1.6 创建oracle所需要的用户组和用户

# 在root用户下执行命令

groupadd -g 54321 oinstall
groupadd -g 54322 dba
groupadd -g 54323 oper
groupadd -g 54324 backupdba
groupadd -g 54325 dgdba
groupadd -g 54326 kmdba
groupadd -g 54330 racdba
useradd -u 54321 -g oinstall -G dba,oper,backupdba,dgdba,kmdba,racdba oracle
passwd oracle

 

1.7 创建oracle所需目录并更新权限

# 在root用户下执行命令

mkdir -p /u01/app/oracle/product/12.2.0/dbhome_1
mkdir -p /u01/oradata
chmod -R 755 /u01
chown -R oracle:oinstall /u01

 

1.8 配置系统参数文件

# 在root用户下执行命令

vi /etc/security/limits.conf

添加以下内容:

# oracle-rdbms-server-12gR2-preinstall setting for nofile soft limit is 1024
oracle soft nofile 1024
# oracle-rdbms-server-12gR2-preinstall setting for nofile hard limit is 65536
oracle hard nofile 65536
# oracle-rdbms-server-12gR2-preinstall setting for nproc soft limit is 2047
oracle soft nproc 2047
# oracle-rdbms-server-12gR2-preinstall setting for nproc hard limit is 16384
oracle hard nproc 16384
# oracle-rdbms-server-12gR2-preinstall setting for stack soft limit is 10240KB
oracle soft stack 10240
# oracle-rdbms-server-12gR2-preinstall setting for stack hard limit is 32768KB
oracle hard stack 32768

 

1.9 配置系统内核参数文件

# 在root用户下执行命令

vi /etc/sysctl.conf

添加以下内容:

fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmmni = 4096
kernel.shmall = 1649192141
kernel.shmmax = 2062561280
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

执行下面命令使配置生效:

sysctl -p

 

1.10 使用root用户将文件上传到服务器/u01目录下

# 在root用户下执行命令

cd /u01

# 修改数据库软件权限

chmod 755 linuxx64_12201_database.zip
chown oracle:oinstall linuxx64_12201_database.zip

 

1.11 配置oracle用户环境变量

# 在oracle用户下执行命令

vi ~/.bash_profile

添加以下内容:

export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=/u01/app/oracle/product/12.2.0/dbhome_1
export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:/sbin:/bin:/usr/sbin:/usr/bin
export ORACLE_SID=orcl

# 使oracle环境变量生效命令:

source ~/.bash_profile

# 解压数据库软件

cd /u01
unzip linuxx64_12201_database.zip

 

2 安装数据库

2.1 安装数据库软件

# 在oracle用户下执行命令

cd /u01/database/
DISPLAY=192.168.6.1:0.0; export DISPLAY
./runInstaller

安装过程中出现上页面,登录root用户执行脚本:

/u01/app/oraInventory/orainstRoot.sh
/u01/app/oracle/product/12.2.0/dbhome_1/root.sh

执行完成之后点击OK

 

2.2 创建数据库监听listener(可选,dbca建库过程中可快捷创建)

监听的作用:便于客户端远程连接

# 在oracle用户下执行命令

netca

 

2.3 dbca建库

# 在oracle用户下执行命令

dbca

创建完成!!!

 

3 测试登录

# 在oracle用户下执行命令

# 开启监听

lsnrctl start

# 登录数据库

sqlplus / as sysdba
SQL*Plus: Release 12.2.0.1.0 Production on Sun Mar 7 07:15:59 2021

Copyright (c) 1982, 2016, Oracle.  All rights reserved.


Connected to:
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production

SQL> show user
USER is "SYS"
SQL>

 

4 安装rlwrap

作用:在oracle命令行可以通过“↑↓”键查找历史语句

# 在root用户下执行命令

cd /soft
rpm -ivh rlwrap-0.42-1.el7.x86_64.rpm

# 在oracle用户下执行命令

vi ~/.bash_profile

添加以下内容:

alias sqlplus='rlwrap sqlplus'
alias rman='rlwrap rman'
export NLS_DATE_FORMAT='yyyy-mm-dd hh24:mi:ss'
source ~/.bash_profile

 

5 添加oracle数据库开机自动启动、关机自动停止

# 在root用户下执行命令

5.1 修改/etc/oratab

vi /etc/oratab

修改为:

orcl:/u01/app/oracle/product/12.2.0/dbhome_1:Y

5.2 创建启动文件dbora

vi /etc/init.d/dbora

添加以下内容:

#! /bin/sh
# description: Oracle auto start-stop script.
#
# Set ORACLE_HOME to be equivalent to the $ORACLE_HOME
# from which you wish to execute dbstart and dbshut;
#
# Set ORACLE_OWNER to the user id of the owner of the
# Oracle database in ORACLE_HOME.

ORACLE_HOME=/u01/app/oracle/product/12.2.0/dbhome_1
ORACLE_OWNER=oracle

case "$1" in
'start')
    # Start the Oracle databases:
    # The following command assumes that the oracle login
    # will not prompt the user for any values
    # Remove "&" if you don't want startup as a background process.
    su - $ORACLE_OWNER -c "$ORACLE_HOME/bin/dbstart $ORACLE_HOME" &
    touch /var/lock/subsys/dbora
    ;;

'stop')
    # Stop the Oracle databases:
    # The following command assumes that the oracle login
    # will not prompt the user for any values
    su - $ORACLE_OWNER -c "$ORACLE_HOME/bin/dbshut $ORACLE_HOME" &
    rm -f /var/lock/subsys/dbora
    ;;
esac

5.3 修改dbora的组和文件权限

chgrp dba /etc/init.d/dbora
chmod 750 /etc/init.d/dbora

5.4 创建符号链接

ln -s /etc/init.d/dbora /etc/rc.d/rc0.d/K01dbora
ln -s /etc/init.d/dbora /etc/rc.d/rc3.d/S99dbora
ln -s /etc/init.d/dbora /etc/rc.d/rc5.d/S99dbora

将机器重启,Oracle数据库开机自动启动

5.5 重启系统测试

 

6 修改数据库连接提示符

# 在oracle用户下执行命令

cd $ORACLE_HOME/sqlplus/admin
vi glogin.sql

添加以下内容:

set linesize 120;
set pagesize 200;
define _editor=vi
set sqlprompt "_user'@'_connect_identifier> "

重新登录即可!!!

 

7 修改shell命令提示符颜色

vi .bash_profile

添加以下内容:

export PS1="\[\e[01;32m\]\u@\h \w \\$\[\e[00m\] "

再使其生效:

source .bash_profile

 

8 ORACLE默认示例scott的脚本

sqlplus / as sysdba
@$ORACLE_HOME/rdbms/admin/utlsampl.sql
conn scott/tiger

推荐阅读