Linux服务器搭建Oracle 12c数据库 详细安装教程

大家好!我是互联网-小啊宇 ~主要从事运维相关工作。喜欢写博客来记录自己学习的点点滴滴,很高兴可以把每篇文章分享给面前的你,如果对你有帮助不妨点个关注。
✨这篇文章主要讲解Linux服务器如何搭建Oracle 12c数据库

在这里插入图片描述

官方文档:https://docs.oracle.com/en/database/oracle/oracle-database/12.2/index.html

Oracle 12C

  • Vmware创建实验所用Linux桌面化虚拟机(如果有机器则跳过)
    • 新建虚拟机
    • 开启虚拟机,引导配置
    • 设置网卡地址信息、联网
  • 安装Oracle 12C数据库
    • 主机信息
    • 1.关闭防火墙,禁止防火墙开机自启
    • 2.关闭selinux
    • 3.yum安装必要安装包
    • 4.创建 swap
    • 5.创建 oracle 分区(可选、我自己跳过了)
    • 6.创建 oracle data 目录(同第5步可选、我自己跳过了)
    • 7.设置时区、升级系统、安装桌面环境
    • 8.创建oracle用户与用户组
    • 9.参数配置
    • 10.重启服务器
    • 11.下载或拷贝oracle文件
    • 12.配置环境变量
    • 13.解压并开始安装
      • 我先选择典型安装做示例:
      • 高级安装如下操作:
    • 14.创建启停脚本
    • 15.启动并测试服务
    • 16.创建Linux服务(可选、我跳过了)

Vmware创建实验所用Linux桌面化虚拟机(如果有机器则跳过)

新建虚拟机

Linux服务器搭建Oracle 12c数据库 详细安装教程_第1张图片

Linux服务器搭建Oracle 12c数据库 详细安装教程_第2张图片
Linux服务器搭建Oracle 12c数据库 详细安装教程_第3张图片
Linux服务器搭建Oracle 12c数据库 详细安装教程_第4张图片
Linux服务器搭建Oracle 12c数据库 详细安装教程_第5张图片
Linux服务器搭建Oracle 12c数据库 详细安装教程_第6张图片
Linux服务器搭建Oracle 12c数据库 详细安装教程_第7张图片
配置完毕后点关闭
Linux服务器搭建Oracle 12c数据库 详细安装教程_第8张图片

开启虚拟机,引导配置

Linux服务器搭建Oracle 12c数据库 详细安装教程_第9张图片
Linux服务器搭建Oracle 12c数据库 详细安装教程_第10张图片
Linux服务器搭建Oracle 12c数据库 详细安装教程_第11张图片
Linux服务器搭建Oracle 12c数据库 详细安装教程_第12张图片
Linux服务器搭建Oracle 12c数据库 详细安装教程_第13张图片
点开以后什么都不需要设置,进来之后就点完成
Linux服务器搭建Oracle 12c数据库 详细安装教程_第14张图片
Linux服务器搭建Oracle 12c数据库 详细安装教程_第15张图片
Linux服务器搭建Oracle 12c数据库 详细安装教程_第16张图片
设置root账号密码
Linux服务器搭建Oracle 12c数据库 详细安装教程_第17张图片

创建普通用户
Linux服务器搭建Oracle 12c数据库 详细安装教程_第18张图片
Linux服务器搭建Oracle 12c数据库 详细安装教程_第19张图片

等待安装。。。
Linux服务器搭建Oracle 12c数据库 详细安装教程_第20张图片
安装完成
Linux服务器搭建Oracle 12c数据库 详细安装教程_第21张图片

Linux服务器搭建Oracle 12c数据库 详细安装教程_第22张图片
Linux服务器搭建Oracle 12c数据库 详细安装教程_第23张图片
Linux服务器搭建Oracle 12c数据库 详细安装教程_第24张图片
用root账户登录



登录后、一直前进
Linux服务器搭建Oracle 12c数据库 详细安装教程_第25张图片

看到如下界面,安装成功完毕!
Linux服务器搭建Oracle 12c数据库 详细安装教程_第26张图片

设置网卡地址信息、联网

Linux服务器搭建Oracle 12c数据库 详细安装教程_第27张图片
配置ip,查看自己网卡名称
Linux服务器搭建Oracle 12c数据库 详细安装教程_第28张图片
在这里插入图片描述

Linux服务器搭建Oracle 12c数据库 详细安装教程_第29张图片
修改完成后:
ESC #退出编辑模式
:wq #保存并退出
Linux服务器搭建Oracle 12c数据库 详细安装教程_第30张图片
重启网络
在这里插入图片描述
测试查看ip、联网情况
Linux服务器搭建Oracle 12c数据库 详细安装教程_第31张图片
成功

此时本机得xshell也可以进行连接虚拟机
Linux服务器搭建Oracle 12c数据库 详细安装教程_第32张图片

安装Oracle 12C数据库

官方安装文档
https://oracle-base.com/articles/12c/oracle-db-12cr2-installation-on-oracle-linux-6-and-7
首先下载安装包

Oracle 12C安装包
链接:https://pan.baidu.com/s/1GYgSF2gPhhHg94hsEfChcw
提取码:p8u4

主机信息

hostname: ol7-122.localdomain
hosts: 192.168.1.10    ol7-122.localdomain  ol7-122
[root@localhost ~]# vi /etc/hosts

在这里插入图片描述

1.关闭防火墙,禁止防火墙开机自启

# 关闭防火墙
systemctl stop firewalld.service 
# 禁止防火墙开机启动
systemctl disable firewalld.service
# 查看防火墙状态
systemctl status firewalld.service

2.关闭selinux

# 编辑文件
vi /etc/selinux/config
# 修改内容
SELINUX=disabled

3.yum安装必要安装包

使用 yum 批量安装依赖包,若执行一遍失败则继续执行第二遍(多次执行不会出现其他问题)

yum install binutils -y
yum install compat-libcap1 -y
yum install compat-libstdc++-33 -y
yum install compat-libstdc++-33.i686 -y
yum install glibc -y
yum install glibc.i686 -y
yum install glibc-devel -y
yum install glibc-devel.i686 -y
yum install ksh -y
yum install libaio -y
yum install libaio.i686 -y
yum install libaio-devel -y
yum install libaio-devel.i686 -y
yum install libX11 -y
yum install libX11.i686 -y
yum install libXau -y
yum install libXau.i686 -y
yum install libXi -y
yum install libXi.i686 -y
yum install libXtst -y
yum install libXtst.i686 -y
yum install libgcc -y
yum install libgcc.i686 -y
yum install libstdc++ -y
yum install libstdc++.i686 -y
yum install libstdc++-devel -y
yum install libstdc++-devel.i686 -y
yum install libxcb -y
yum install libxcb.i686 -y
yum install make -y
yum install nfs-utils -y
yum install net-tools -y
yum install smartmontools -y
yum install sysstat -y
yum install unixODBC -y
yum install unixODBC-devel -y

检查是否安装成功(31个安装包)

rpm -q binutils compat-libcap1 compat-libstdc++-33 gcc gcc-c++ glibc glibc-devel ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel libXi libXtst make sysstat unixODBC unixODBC-devel

4.创建 swap

我建议swap还是要重新创建一下,不然后面oracle典型安装得时候swap空间不足报警;
高级安装可以自定义内存大小;
下面以8G为例操作:(我设置得swap与运行内存相同)
如果你本来就又swap(不是0),也可以直接按下面的步骤进行,重新设置是没有问题的。

1、查看当前内存
[root@localhost ~]# free -h
              total        used        free      shared  buff/cache   available
Mem:           7.6G        733M        5.3G         33M        1.6G        6.5G
Swap:          5.0G          0B        5.0G


2、创建用于交换分区的文件:增加2G大小的交换分区,count等于想要的块大小  (1024000x8)
[root@localhost ~]# dd if=/dev/zero of=/home/swap bs=1024 count=8192000
记录了8192000+0 的读入
记录了8192000+0 的写出
8388608000字节(8.4 GB)已复制,26.9355 秒,311 MB/秒


3、设置交换分区文件
[root@localhost ~]#  mkswap /home/swap
正在设置交换空间版本 1,大小 = 8191996 KiB
无标签,UUID=e4a6e8b2-dedf-4075-a0a4-d96e1d0d8fbf


4、立即启用交换分区文件
[root@localhost ~]# swapon /home/swap
swapon: /home/swap:不安全的权限 0644,建议使用 0600。

5、再查看内存情况,swap就出来了(下方的12G是把原来的5G加上了,都操作完重启之后5G就没了)
[root@localhost ~]# free -h
              total        used        free      shared  buff/cache   available
Mem:           7.6G        740M        126M         31M        6.8G        6.5G
Swap:           12G        2.0M         12G


如果想使得开机自启动,想要修改文件/etc/fastb 修改swap行

#
# /etc/fstab
# Created by anaconda on Mon Dec  6 20:50:25 2021
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/centos-root /                       xfs     defaults        0 0
UUID=e4f255cc-23a0-49be-95a6-e8e80675aa9f /boot                   xfs     defaults        0 0
/home/swap swap                    swap    defaults        0 0
~                                                               

修改完之后重启

[root@localhost ~]# reboot
[root@ol7-122 ~]# free -h
              total        used        free      shared  buff/cache   available
Mem:           7.6G        402M        6.8G         16M        407M        6.9G
Swap:          7.8G          0B        7.8G

5.创建 oracle 分区(可选、我自己跳过了)

如果你操作系统原有分区都合适,这步可以忽略

# 查看硬盘及分区信息(启动Disk开头的就是硬盘,Device开头的就是分区)
fdisk -l
# 创建分区(/dev/sdb 是硬盘,是你需要创建分区的硬盘,创建分区后会生成 /dev/sdb1,如果本来有sdb1,则会出现sdb2)
fdisk /dev/sdb
# 格式化新创建的分区
mkfs.xfs /dev/sdb1
# 将分区添加到 /etc/fstab 文件中,使之开机自动挂载(编辑保存 fstab 文件后不会立即生效)
vim /etc/fstab
/dev/sdb1        /u01     xfs      defaults 0 0

6.创建 oracle data 目录(同第5步可选、我自己跳过了)

# 创建目录
mkdir /u01
# 重新加载文件 /etc/fstab 所有内容。该操作会忽略所有已经完成的操作,所以多次执行,只会有第一次能看到效果。
mount -a
​
df -h
Filesystem               Size  Used Avail Use% Mounted on
/dev/mapper/centos-root   20G   12G  8.7G  57% /
devtmpfs                 3.8G     0  3.8G   0% /dev
tmpfs                    3.9G     0  3.9G   0% /dev/shm
tmpfs                    3.9G   13M  3.8G   1% /run
tmpfs                    3.9G     0  3.9G   0% /sys/fs/cgroup
/dev/sda1                2.0G  179M  1.9G   9% /boot
/dev/mapper/centos-home   10G   33M   10G   1% /home
tmpfs                    781M  4.0K  781M   1% /run/user/42
tmpfs                    781M   52K  781M   1% /run/user/0
/dev/sdb                  20G   33M   20G   1% /u01

7.设置时区、升级系统、安装桌面环境

(我们在上面创建的桌面化虚拟机所以这步跳过;
如果最开始安装的是最小化的则需要安装桌面化)
方式一:针对最小化安装的系统

# 设置时区
timedatectl set-timezone Asia/Shanghai
# 升级系统
yum clean all && yum update -y
# 安装桌面环境(两个组包必须,不然安装oracle会出现卡死现象)
yum groupinstall "GNOME Desktop" "Server with GUI" -y
# 安装完毕设置开机启动桌面环境
systemctl set-default graphical.target

方式2 : 预装系统时勾选桌面环境功能

  • Server with GUI
  • Hardware Monitoring Utilities
  • Large Systems Performance
  • Network file system client
  • Performance Tools
  • Compatibility Libraries
  • Development Tools

8.创建oracle用户与用户组

# 创建oinstall和dba组
groupadd -g 54321 oinstall
groupadd -g 54322 dba
groupadd -g 54323 oper
# 创建oracle用户
useradd -u 54321 -g oinstall -G dba,oper oracle
# 设置oracle密码
passwd oracle
# 查看创建结果
[root@ol7-122 ~]# id oracle
uid=54321(oracle) gid=54321(oinstall)=54321(oinstall),54322(dba),54323(oper)

9.参数配置

配置内核参数(这些参数根据你机器的配置不同,有些参数需要再次修改,在安装oralce过程中的check那一步,会给出提示,按要求逐个修改对应的推荐值即可)

[root@ol7-122 ~]# vi /etc/sysctl.conf 
fs.file-max = 6815744
kernel.sem = 250 32000 100 128
kernel.shmmni = 4096
kernel.shmall = 1073741824
kernel.shmmax = 4398046511104
kernel.panic_on_oops = 1
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
net.ipv4.conf.all.rp_filter = 2
net.ipv4.conf.default.rp_filter = 2
fs.aio-max-nr = 1048576
net.ipv4.ip_local_port_range = 9000 65500

[root@ol7-122 ~]# sysctl -p

# 配置ulimit参数
vi /etc/security/limits.d/oracle-database-server-12cR2-preinstall.conf
oracle   soft   nofile    1024
oracle   hard   nofile    65536
oracle   soft   nproc    16384
oracle   hard   nproc    16384
oracle   soft   stack    10240
oracle   hard   stack    32768
oracle   hard   memlock    134217728
oracle   soft   memlock    134217728
# 设置上面创建的数据目录权限
mkdir -p /u01/app/oracle/product/12.2.0.1/db_1
chown -R oracle:oinstall /u01
chmod -R 775 /u01

10.重启服务器

reboot

11.下载或拷贝oracle文件

Oracle 12C安装包
链接:https://pan.baidu.com/s/1GYgSF2gPhhHg94hsEfChcw
提取码:p8u4

12.配置环境变量

mkdir /home/oracle/scripts
​
cat > /home/oracle/scripts/setEnv.sh <<EOF
# Oracle Settings
export TMP=/tmp
export TMPDIR=\$TMP
export ORACLE_HOSTNAME=ol7-122.localdomain
export ORACLE_UNQNAME=zhufuc
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=\$ORACLE_BASE/product/12.2.0.1/db_1
export ORACLE_SID=zhufuc
export PATH=/usr/sbin:/usr/local/bin:\$PATH
export PATH=\$ORACLE_HOME/bin:\$PATH
export LD_LIBRARY_PATH=\$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=\$ORACLE_HOME/jlib:\$ORACLE_HOME/rdbms/jlib
EOFecho ". /home/oracle/scripts/setEnv.sh" >> /home/oracle/.bash_profile
# 执行命令使环境变量生效
source /home/oracle/.bash_profile

13.解压并开始安装

假设 oracle 文件已经下载到 /opt/linuxx64_12201_database.zip
使用图形化安装方式,你可以直接在原服务器上连接显示器安装,或者使用其他 ssh 远程安装(不带图形化的静默安找找度娘)。 如果使用
Xshell 这种工具安装(需要开启X11,可以参考:Xshell 显示图形化界面)

[root@ol7-122 ~]# cd /opt
[root@ol7-122 opt]# ls
 linuxx64_12201_database.zip  rh
[root@ol7-122 opt]# unzip linuxx64_12201_database.zip 
给oracle用户安装目录的权限
[root@ol7-122 opt]# chown -R oracle:oinstall database/
[root@ol7-122 opt]# chmod -R 775 database/
[root@ol7-122 opt]# ll
总用量 3372752
drwxrwxr-x  7 oracle oinstall        117 127 2017 database
-rw-r--r--  1 root   root     3453696911 126 14:30 linuxx64_12201_database.zip
drwxr-xr-x. 2 root   root              6 1031 2018 rh

准备安装的时候
切记!切记!切记!
如果是虚拟机请切换用户重新登陆
如果是xshell也请切换用户重新连接
不要使用su - oracle 后面执行安装脚本会报错!
虚拟机切换用户:
Linux服务器搭建Oracle 12c数据库 详细安装教程_第33张图片


xshell使用oracle用户连接:Linux服务器搭建Oracle 12c数据库 详细安装教程_第34张图片
执行安装

[oracle@ol7-122 ~]$ cd /opt
[oracle@ol7-122 opt]$ ./database/runInstaller 
正在启动 Oracle Universal Installer...

检查临时空间: 必须大于 500 MB。   实际为 25677 MB    通过
检查交换空间: 必须大于 150 MB。   实际为 7999 MB    通过
检查监视器: 监视器配置至少必须显示 256 种颜色。    实际为 16777216    通过
准备从以下地址启动 Oracle Universal Installer /tmp/OraInstall2021-12-06_02-40-45PM. 请稍候...

会自动弹出安装界面
Linux服务器搭建Oracle 12c数据库 详细安装教程_第35张图片
Linux服务器搭建Oracle 12c数据库 详细安装教程_第36张图片
Linux服务器搭建Oracle 12c数据库 详细安装教程_第37张图片
Linux服务器搭建Oracle 12c数据库 详细安装教程_第38张图片
Linux服务器搭建Oracle 12c数据库 详细安装教程_第39张图片
Linux服务器搭建Oracle 12c数据库 详细安装教程_第40张图片
Linux服务器搭建Oracle 12c数据库 详细安装教程_第41张图片

我先选择典型安装做示例:

Linux服务器搭建Oracle 12c数据库 详细安装教程_第42张图片
Linux服务器搭建Oracle 12c数据库 详细安装教程_第43张图片
Linux服务器搭建Oracle 12c数据库 详细安装教程_第44张图片
会进行检查,如果之前swap跟我一样设置了这里不会报swap空间不足!如果没有其他报错!则成功跳转下个界面。
如果选择典型安装,swap大小是根据你的运行内存大小而定!
如果选择高级安装,swap使用大小可以调整!
Linux服务器搭建Oracle 12c数据库 详细安装教程_第45张图片
到这里就可以进行安装了!安装完就成功了!

高级安装如下操作:

Linux服务器搭建Oracle 12c数据库 详细安装教程_第46张图片
Linux服务器搭建Oracle 12c数据库 详细安装教程_第47张图片
Linux服务器搭建Oracle 12c数据库 详细安装教程_第48张图片
Linux服务器搭建Oracle 12c数据库 详细安装教程_第49张图片
Linux服务器搭建Oracle 12c数据库 详细安装教程_第50张图片
Linux服务器搭建Oracle 12c数据库 详细安装教程_第51张图片
在高级安装里可以自定义内存
Linux服务器搭建Oracle 12c数据库 详细安装教程_第52张图片
Linux服务器搭建Oracle 12c数据库 详细安装教程_第53张图片

Linux服务器搭建Oracle 12c数据库 详细安装教程_第54张图片
Linux服务器搭建Oracle 12c数据库 详细安装教程_第55张图片
我在创建虚拟机的时候磁盘没给够,所以我就不选择恢复区了。直接下一步
Linux服务器搭建Oracle 12c数据库 详细安装教程_第56张图片
Linux服务器搭建Oracle 12c数据库 详细安装教程_第57张图片
Linux服务器搭建Oracle 12c数据库 详细安装教程_第58张图片
Linux服务器搭建Oracle 12c数据库 详细安装教程_第59张图片
Linux服务器搭建Oracle 12c数据库 详细安装教程_第60张图片
安装
Linux服务器搭建Oracle 12c数据库 详细安装教程_第61张图片

根据提示操作使用root用户

[root@ol7-122 /]# /u01/app/oraInventory/orainstRoot.sh 
更改权限/u01/app/oraInventory.
添加组的读取和写入权限。
删除全局的读取, 写入和执行权限。

更改组名/u01/app/oraInventory 到 oinstall.
脚本的执行已完成。
[root@ol7-122 /]# /u01/app/oracle/product/12.2.0.1/db_1/root.sh 
Performing root user operation.

The following environment variables are set as:
    ORACLE_OWNER= oracle
    ORACLE_HOME=  /u01/app/oracle/product/12.2.0.1/db_1

Enter the full pathname of the local bin directory: [/usr/local/bin]: 
   Copying dbhome to /usr/local/bin ...
   Copying oraenv to /usr/local/bin ...
   Copying coraenv to /usr/local/bin ...


Creating /etc/oratab file...
Entries will be added to the /etc/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root script.
Now product-specific root actions will be performed.
Do you want to setup Oracle Trace File Analyzer (TFA) now ? yes|[no] :  

Oracle Trace File Analyzer (TFA - User Mode) is available at :
    /u01/app/oracle/product/12.2.0.1/db_1/suptools/tfa/release/tfa_home/bin/tfactl

OR

Oracle Trace File Analyzer (TFA - Daemon Mode) can be installed by running this script :
    /u01/app/oracle/product/12.2.0.1/db_1/suptools/tfa/release/tfa_home/install/roottfa.sh

脚本执行完毕后,点击确定继续安装。
如下图:
证明安装完毕,https://ol7-122.localdomain:5500/em
这个地址是Oracle的em地址,web界面
域名则对应的是你的Linux服务器IP
Linux服务器搭建Oracle 12c数据库 详细安装教程_第62张图片
现在访问不了可能是浏览器不支持flash
在这里插入图片描述
其实原页面是这样的:
Linux服务器搭建Oracle 12c数据库 详细安装教程_第63张图片
Linux服务器搭建Oracle 12c数据库 详细安装教程_第64张图片
安装后
使用oracle用户编辑“ /etc/oratab”文件,将每个实例的重新启动标志设置为“ Y”。

zhufuc:/u01/app/oracle/product/12.2.0.1/db_1:Y

14.创建启停脚本

cat > /home/oracle/scripts/start_all.sh <<EOF
#!/bin/bash
. /home/oracle/scripts/setEnv.sh
export ORAENV_ASK=NO
. oraenv
export ORAENV_ASK=YES
dbstart \$ORACLE_HOME
EOF
​
​
cat > /home/oracle/scripts/stop_all.sh <<EOF
#!/bin/bash
. /home/oracle/scripts/setEnv.sh
export ORAENV_ASK=NO
. oraenv
export ORAENV_ASK=YES
dbshut \$ORACLE_HOME
EOFchown -R oracle.oinstall /home/oracle/scripts
chmod u+x /home/oracle/scripts/*.sh

注释:如果执行脚本报错dbstart、dbshut找不到命令
可直接使用命令操作
dbstart /u01/app/oracle/product/12.2.0.1/db_1
dbshut /u01/app/oracle/product/12.2.0.1/db_1

15.启动并测试服务

su -  oracle
~/scripts/start_all.sh  # 启动脚本
~/scripts/stop_all.sh   # 停止脚本# 使用 telnet 测试服务端口
telnet 127.0.0.1 1521# 使用 sqlplus 登录数据库
sqlplus /nolog
conn / as sysdba

16.创建Linux服务(可选、我跳过了)

创建一个新服务以自动启动/停止Oracle数据库。这是假定Oracle数据库不使用Oracle重新启动和“start_all.sh”和“stop_all.sh”脚本已经存在

创建名为“ /lib/systemd/system/dbora.service”的服务文件。

vi /lib/systemd/system/dbora.service
[Unit]
Description=The Oracle Database Service
After=syslog.target network.target
​
[Service]
# systemd ignores PAM limits, so set any necessary limits in the service.
# Not really a bug, but a feature.
# https://bugzilla.redhat.com/show_bug.cgi?id=754285
LimitMEMLOCK=infinity
LimitNOFILE=65535#Type=simple
# idle: similar to simple, the actual execution of the service binary is delayed
#       until all jobs are finished, which avoids mixing the status output with shell output of services.
RemainAfterExit=yes
User=oracle
Group=oinstall
Restart=no
ExecStart=/bin/bash -c '/home/oracle/scripts/start_all.sh'
ExecStop=/bin/bash -c '/home/oracle/scripts/stop_all.sh'[Install]
WantedBy=multi-user.target
​
systemctl daemon-reload
systemctl stop dbora.service
systemctl start dbora.service
systemctl enable dbora.service

至此,Oracle 数据库安装结束。

你可能感兴趣的:(架构,数据库,Oracle,运维,搭建)