zoukankan      html  css  js  c++  java
  • Linux 上安装Oracle12C 数据库流程

    前情提要:

    1. 实验环境:Linux (RedHat7.6)+ Oracle 12C 

    2. 实验目的:完全是用于自己学习的实验环境,下列所有截图均是实验环境截图

    3. VMware Workstation版本:WORKSTATION 15.5 PRO

    4. 整个流程比较长,因为几乎每一步都有截图,生产环境中大体流程也是如此,细节部分根据生产环境实际情况来

    安装流程:

    1. 创建虚拟机

    1.1 自定义(高级)来安装

    1.2 虚拟机硬件兼容性选择“workstation 15.x” (这里的兼容性是和物理机版本有关系,本实验环境物理机是Windows10)

    1.3 选择“稍后安装操作系统”

     

    1.4 客户机操作系统选择“Linux(L)”,版本选择“RedHat7 64位”

    1.5 自定义虚拟机名称及安装路径

     

    1.6 处理器配置保持默认即可

    1.7 虚拟机内存设置为物理机内存的一半即可(该实验环境物理机内存为8G)

     

    1.8 网络连接建议使用桥接网络(这样可以保证虚拟机和物理机处于同一个网段)

    1.9 I/O控制器类型保持默认即可

     

    1.10 磁盘类型保持默认即可

    1.11 选择“创建新虚拟磁盘”

     

    1.12 磁盘容量自定义,选择“将虚拟磁盘存储为单个文件”,后面还会再创建两块磁盘,每一块磁盘都是专盘专用

    1.13 自定义名字即可(此块磁盘是用来存储Linux 相关安装)

     

    1.14 最后点击 “完成”

    完成以上步骤,此时虚拟机是不能正常启动的,因为还没有加载镜像文件,还需要进行下列步骤

    1.15 点击“编辑虚拟机设置”

     

    1.16 点击“添加”,此处要添加另外两块磁盘,其中一块大小为20G,用来存放各种软件,另外一块大小为100G,用来存放安装的数据库以及后续数据库中创建的各种表空间等都将使用此磁盘空间,添加新磁盘的各种选项与上面创建第一块磁盘时相同,此处不在赘述

     

     

    添加完成后,如下图所示

     

    1.17 加载镜像文件

    1.18 设置网络,点击VMware左上角的“编辑”选项,然后选择“虚拟网络编辑器”,点击右下角的“更改设置”,选择“桥接模式”,其中“已桥接至”后面要选择物理机正在使用的网卡(注意:有线网卡和无线网卡不要选错)选择完成,点击“确定”

     

    1.19 点击“开启此虚拟机”

     

    1.20 看到此界面后,鼠标点击一下,然后用键盘的方向键,选择到第一行,按下TAB键,然后空格,输入 vga=791(此处是用来调整分辨率,也可忽略此步骤,直接选择到第一行,按回车)

    1.21 选择“English” 点击继续

     

    1.21 点击继续后,看到如下界面,其中时间和日期,设置成上海即可,键盘不用更改,语言支持(此处选择中文--中文简体)INSTALLATION SOURCE 选择下图的"Auto-detected installation media",SOFTWARE SELECTION 按照下图选择“Server with GUI” 勾选图中的8个选项即可,

    INSTALLATION SOURCE 选择下图的"Auto-detected installation media"

    SOFTWARE SELECTION 按照下图选择“Server with GUI” 勾选图中的8个选项即可

     

    INSTALLATION DESTINATION 如下图所示

    选择 标准分区

     

    划分三个分区,/boot分区   /swap分区   /根分区  划分完成后,选择"Done“,     "Accept Changes"   

     

    SECURITY POLICY 选择OFF,KDUMP选择不启用

     

    NETWORK & HOST NAME 为了保证虚拟机IP地址不变,建议将其设置成静态IP,hostname自定义即可

     

     

     

     

    配置完成后,点击"Begin Installation" 开始安装,

     

    这里要设置一下ROOT PASSWORD (密码可以不满足密码复杂度要求)

     

    完成安装后点击右下角的”Reboot“ 重启,重启完成后,有一个LICENSE 需要勾选一下,如下图

    这里需要创建一个用户,并且设置密码(此处的密码需要满足密码复杂度要求)设置完成后,即可进入虚拟机,虚拟机创建成功。

     

     2.  创建文件系统,分区并格式化 /software/ 和 /u01/

     1 [root@oracle12c ~]# fdisk -l
     2 [root@oracle12c ~]# fdisk /dev/sdb --- 输入n/回车/回车/回车/回车/w
     3 [root@oracle12c ~]# fdisk /dev/sdc --- 输入n/回车/回车/回车/回车/w
     4 格式化
     5 [root@oracle12c ~]# mkfs.xfs /dev/sdb1
     6 [root@oracle12c ~]# mkfs.xfs /dev/sdc1
     7 创建目录并授权
     8 [root@oracle12c ~]# mkdir /software/
     9 [root@oracle12c ~]# mkdir /u01
    10 [root@oracle12c ~]# chmod -R 777 /software/
    11 [root@oracle12c ~]# chmod -R 777 /u01/
    12 挂载
    13 [root@oracle12c ~]# mount /dev/sdb1 /software/
    14 [root@oracle12c ~]# mount /dev/sdc1 /u01/
    15 [root@oracle12c ~]# df -Th

    3. 更改开机自启文件,将挂载好的分区加入到开机自启文件,这样下次开机时便可自动挂载

     1 获取分区的UUID
     2 [root@oracle12c ~]# blkid /dev/sdb1
     3 [root@oracle12c ~]# blkid /dev/sdc1
     4 [root@oracle12c ~]# vim /etc/fstab
     5 [root@oracle12c ~]# cat /etc/fstab
     6 
     7 #
     8 # /etc/fstab
     9 # Created by anaconda on Fri Nov 13 18:09:57 2020
    10 #
    11 # Accessible filesystems, by reference, are maintained under '/dev/disk'
    12 # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
    13 #
    14 UUID=4e6cd6f6-df6b-459f-a0b1-8586aba017cd /                       xfs     defaults        0 0
    15 UUID=de906cc8-deed-4114-a3fa-2c46d53dc3b0 /boot                   xfs     defaults        0 0
    16 UUID=87a2f0bb-4df6-4aab-b151-6f4ed8a4b8a6 swap                    swap    defaults        0 0
    17 UUID=ac15bffc-cb81-4973-8d3c-ac082c408f59 /software        xfs    defaults    0 0
    18 UUID=af29bc0a-b93b-43f4-8e81-d1b70950e778 /u01            xfs    defaults    0 0

    4. 将所需的各种软件包上传到/software  目录,然后连接光盘,配置YUM源

     1 [root@oracle12c ~]# mount /dev/cdrom /mnt
     2 mount: /dev/sr0 is write-protected, mounting read-only
     3 [root@oracle12c ~]# cd /etc/yum.repos.d/
     4 [root@oracle12c yum.repos.d]# ls
     5 redhat.repo
     6 [root@oracle12c yum.repos.d]# vim oracle12c.repo
     7 [root@oracle12c yum.repos.d]# cat oracle12c.repo
     8 [oracle12c.repo]
     9 name = oracle12c
    10 baseurl = file:///mnt/
    11 enable = 1
    12 gpgcheck = 0
    13 [root@oracle12c yum.repos.d]# yum repolist all
    14 Loaded plugins: langpacks, product-id, search-disabled-repos, subscription-manager
    15 This system is not registered with an entitlement server. You can use subscription-manager to register.
    16 oracle12c.repo                                                                                                            | 4.3 kB  00:00:00
    17 (1/2): oracle12c.repo/group_gz                                                                                            | 146 kB  00:00:00
    18 (2/2): oracle12c.repo/primary_db                                                                                          | 4.2 MB  00:00:00
    19 repo id                                                             repo name                                                      status
    20 oracle12c.repo                                                      oracle12c                                                      enabled: 5,152
    21 repolist: 5,152
    22 [root@oracle12c yum.repos.d]#

    5. 设置主机名,将其加入到配置文件中

    1 [root@oracle12c ~]# hostname
    2 oracle12c
    3 [root@oracle12c ~]# echo "192.168.11.5 oracle12c" >> /etc/hosts
    4 [root@oracle12c ~]# cat /etc/hosts
    5 127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
    6 ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
    7 192.168.11.5 oracle12c
    8 [root@oracle12c ~]#

    6. 关闭防火墙,禁用SELINUX

     1 [root@oracle12c ~]# systemctl stop firewalld.service
     2 [root@oracle12c ~]# systemctl disable firewalld.service
     3 Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
     4 Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
     5 [root@oracle12c ~]# vim /etc/selinux/config
     6 [root@oracle12c ~]# cat /etc/selinux/config
     7 
     8 # This file controls the state of SELinux on the system.
     9 # SELINUX= can take one of these three values:
    10 #     enforcing - SELinux security policy is enforced.
    11 #     permissive - SELinux prints warnings instead of enforcing.
    12 #     disabled - No SELinux policy is loaded.
    13 SELINUX=disabled
    14 # SELINUXTYPE= can take one of three values:
    15 #     targeted - Targeted processes are protected,
    16 #     minimum - Modification of targeted policy. Only selected processes are protected.
    17 #     mls - Multi Level Security protection.
    18 SELINUXTYPE=targeted
    19 
    20[root@oracle12c ~]#

    7. RPM包检测,赋予脚本执行权限

    1 [root@oracle12c ~]#chmod +x rpminstall.sh---注意该文件的目录位置
    2 [root@oracle12c ~]#./rpminstall.sh

    8. 创建Oracle用户及相关组

     1 [root@oracle12c ~]# groupadd oinstall
     2 [root@oracle12c ~]# groupadd dba
     3 [root@oracle12c ~]# useradd -g oinstall -G dba -m oracle
     4 [root@oracle12c ~]# passwd oracle
     5 Changing password for user oracle.
     6 New password:
     7 BAD PASSWORD: The password is shorter than 8 characters
     8 Retype new password:
     9 passwd: all authentication tokens updated successfully.
    10 [root@oracle12c ~]#

    9. 更改官方要求的三个文件内容,最后执行 sysctl -p使其生效

      9.1 /etc/pam.d/login

    1 [root@oracle12c ~]# echo "session required pam_limits.so" >> /etc/pam.d/login
    2 [root@oracle12c ~]#

      9.2 /etc/security/limits.conf 

     1 [root@oracle12c ~]# vim /etc/security/limits.conf
     2 [root@oracle12c ~]# tail -10 /etc/security/limits.conf
     3 #ftp             hard    nproc           0
     4 #@student        -       maxlogins       4
     5 
     6 # End of file
     7 oracle soft nproc 16384
     8 oracle hard nproc 16384
     9 oracle soft nofile 65536
    10 oracle hard nofile 65536
    11 oracle soft stack 32768
    12 oracle hard stack 32768
    13 [root@oracle12c ~]#

      9.3 /etc/sysctl.conf

     1 [root@oracle12c ~]# vim /etc/sysctl.conf
     2 [root@oracle12c ~]# tail -15 /etc/sysctl.conf
     3 # name in /etc/sysctl.d/ and put new settings there.
     4 #
     5 # For more information, see sysctl.conf(5) and sysctl.d(5).
     6 fs.aio-max-nr = 1048576
     7 fs.file-max = 6815744
     8 kernel.sem = 250 32000 100 128
     9 net.ipv4.ip_local_port_range = 9000 65500
    10 net.core.rmem_default = 262144
    11 net.core.rmem_max = 4194304
    12 net.core.wmem_default = 262144
    13 net.core.wmem_max = 1048586
    14 kernel.panic_on_oops = 1
    15 kernel.shmmax = 5033164800
    16 kernel.shmall = 1228800
    17 kernel.shmmni = 4096
    18 [root@oracle12c ~]#

    其中:(生产环境与实验环境不同之处)
    kernel.shmmax = 内存大小*1024*1024*1024*0.9
    kernel.shmall = kernel.shmmax/4096

    [root@oracle12c ~]# sysctl -p
    fs.aio-max-nr = 1048576
    fs.file-max = 6815744
    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
    kernel.panic_on_oops = 1
    kernel.shmmax = 5033164800
    kernel.shmall = 1228800
    kernel.shmmni = 4096
    [root@oracle12c ~]#

    10. 配置Oracle环境变量

     1 [root@oracle12c ~]# su - oracle --- 切换到Oracle用户
     2 [oracle@oracle12c ~]$ vim .bash_profile
     3 [oracle@oracle12c ~]$ cat .bash_profile
     4 # .bash_profile
     5 
     6 # Get the aliases and functions
     7 if [ -f ~/.bashrc ]; then
     8     . ~/.bashrc
     9 fi
    10 
    11 # User specific environment and startup programs
    12 
    13 PATH=$PATH:$HOME/.local/bin:$HOME/bin
    14 
    15 export PATH
    16 umask 022
    17 export ORACLE_SID=OCP12C
    18 export ORACLE_BASE=/u01/app/oracle
    19 export ORACLE_HOME=$ORACLE_BASE/product/12.2.0.1/db_1
    20 export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
    21 export NLS_DATE_FORMAT="YYYY-MM-DD HH24:MI:SS"
    22 export TMP=/tmp
    23 export TMPDIR=$TMP
    24 export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$PATH
    25 export EDITOR=vim
    26 export TNS_ADMIN=$ORACLE_HOME/network/admin
    27 export ORACLE_PATH=.:$ORACLE_BASE/dba_scripts/sql:$ORACLE_HOME/rdbms/admin
    28 export SQLPATH=$ORACLE_HOME/sqlplus/admin
    29 export NLS_LANG="AMERICAN_CHINA.ZHS16GBK"
    30 alias sqlplus='rlwrap sqlplus'
    31 alias rman='rlwrap rman'
    32 alias asmcmd='rlwrap asmcmd'
    33 [oracle@oracle12c ~]$

    11. 更改/software/和/u01/目录的拥有者,所属组,并赋予相关权限,然后切换到Oracle用户,解压之前已经上传好的数据库软件包

    1 [root@oracle12c ~]# chown -R oracle:oinstall /software/
    2 [root@oracle12c ~]# chmod -R 777 /software/---因为是实验环境,所以授予777权限,生产环境要根据实际情况来
    3 [root@oracle12c ~]# chown -R oracle:oinstall /u01/
    4 [root@oracle12c ~]# chmod -R 777 /u01/
    5 [root@oracle12c ~]# su - oracle
    6 Last login: Fri Nov 13 22:48:59 CST 2020 on pts/1
    7 [oracle@oracle12c ~]$ cd /software/
    8 [oracle@oracle12c software]$ unzip 数据库软件包.zip

    12. 解压完成后,重启虚拟机,然后在图形化界面中必须以Oracle用户身份登录,登录成功后,打开终端,开始进行数据库软件的安装,安装完成后,再进行数据库的创建,具体步骤如下

    13. 进入/software/database目录,里面有一个runInstaller的文件,直接 ./runInstaller,调出图形化安装界面,各种选项如下图所示:

     

    仅安装数据库软件

     

    单实例安装

     

    Enterprise Edition

     

    保持默认

     

    保持默认

     

    选择dba即可

     

     

    在安装过程中,会出现一个窗口,需要执行窗口中的两个脚本,需要切换到root用户执行,执行完成后,点击OK

     

    点击 close,数据库软件安装完成,

     

     14. 数据库软件安装完成后,开始建库

     1 查看监听状态
     2 [oracle@oracle12c ~]$ lsnrctl status
     3 
     4 LSNRCTL for Linux: Version 12.2.0.1.0 - Production on 13-NOV-2020 23:53:00
     5 
     6 Copyright (c) 1991, 2016, Oracle.  All rights reserved.
     7 
     8 Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))
     9 TNS-12541: TNS:no listener
    10  TNS-12560: TNS:protocol adapter error
    11   TNS-00511: No listener
    12    Linux Error: 111: Connection refused
    13 使用netca创建监听文件,next-->next-->next-->next-->next-->next-->next-->next-->Finish
    14 [oracle@oracle12c ~]$ netca
    15 
    16 Oracle Net Services Configuration:
    17 Configuring Listener:LISTENER
    18 Listener configuration complete.
    19 Oracle Net Listener Startup:
    20     Running Listener Control: 
    21       /u01/app/oracle/product/12.2.0.1/db_1/bin/lsnrctl start LISTENER
    22     Listener Control complete.
    23     Listener started successfully.
    24 Oracle Net Services configuration successful. The exit code is 0
    25 启动监听
    26 [oracle@oracle12c ~]$ lsnrctl start
    27 
    28 LSNRCTL for Linux: Version 12.2.0.1.0 - Production on 13-NOV-2020 23:56:27
    29 
    30 Copyright (c) 1991, 2016, Oracle.  All rights reserved.
    31 
    32 TNS-01106: Listener using listener name LISTENER has already been started

    建库的流程如下列各图所示

     

     

    下图中建议Global database name 与 SID名字相同,如果不勾选Create as Container database 选项,则和11g是一样的,这里勾选以后,就是创建容器数据库,下面的PDB name 自定义

     

     

    这里选择不指定闪回区和不启用归档

     

     

    下图中的两个选项不要勾选

     

    下图中的Sample schemas选择不勾选,因为后面会手动创建HR模式,如果勾选了,则会自动创建HR模式

     

    不配置EM

     

    下图中的密码设置时,密码中不要包含 ”@" 字符,否则建库失败

     

     

     

    这里一般情况下,超过4%不报错,就可以建库成功。

     

    完成,点击 close

     

     登录数据库,建库成功。

     1 [oracle@oracle12c ~]$ sqlplus / as sysdba
     2 
     3 SQL*Plus: Release 12.2.0.1.0 Production on Sat Nov 14 00:47:14 2020
     4 
     5 Copyright (c) 1982, 2016, Oracle.  All rights reserved.
     6 
     7 
     8 Connected to:
     9 Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production
    10 
    11 SQL> show pdbs
    12 
    13     CON_ID CON_NAME              OPEN MODE  RESTRICTED
    14 ---------- ------------------------------ ---------- ----------
    15      2 PDB$SEED              READ ONLY  NO
    16      3 ERP                  READ WRITE NO
    17 SQL> 

    以上流程便是在Linux上安装Oracle12C 数据库的全过程,基本上每一步都有截图。

  • 相关阅读:
    《编写可维护的JavaScript》之编程实践
    CSS基础知识之float
    tab.js分享及浏览器兼容性问题汇总
    CSS基础知识之position
    样式布局分享-基于frozen.js的移动OA
    DoNet开源项目-基于jQuery EasyUI的后台管理系统
    DoNet开源项目-基于Amaze UI的点餐系统
    DSOframer 微软官方API的查阅方法
    DSOframer 的简单介绍和资源整理
    2015-新的阻力,新的努力
  • 原文地址:https://www.cnblogs.com/eniniemand/p/13972068.html
Copyright © 2011-2022 走看看