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 数据库的全过程,基本上每一步都有截图。

原文地址:https://www.cnblogs.com/eniniemand/p/13972068.html