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