1. 安装准备
- 虚拟化软件:VMware workstation
下载链接:https://pan.baidu.com/wap/init?surl=2wqoC02mqU3YN6FT49Lesw 提取码:HZBL 解压密码:123456
- 操作系统镜像文件:CentOS-7-x86_64-dvd.iso
下载地址 http://mirrors.aliyun.com/centos/7/isos/x86_64/
- Oracle 12c 安装包
下载地址:https://pan.baidu.com/s/1XA6WUchSzhxH3qYevF0gxA 提取码:v3u6
2. Linux 7基础环境部署
- 使用VMware Workstation部署CentOS 7虚拟环境,具体部署过程如下:
2.1 虚拟机规划
虚拟机名: CentOS 7 64位
主机名: oracle
内存: 4G
处理器: 8
磁盘: 900GB
镜像: CentOS-7-x86_64-dvd.iso
网卡: 仅主机(host—only)一张、NAT一张
2.2 创建VMware虚拟机
- 选择创建新的虚拟机

- 选择自定义(高级),然后点击下一步

2.3 查看硬件兼容性,自行选择对应的兼容性版本,点击下一步。

2.4 点击稍后安装操作系统,接着下一步

2.5 选择Linux-CentOS 7 64位,下一步对虚拟机命名以及指定存放位置


2.6 配置虚拟机的处理器和内存,下一步


2.7 选择仅主机模式网络,下一步

2.8 选择I/O控制器类型和磁盘类型


2.9 创建虚拟磁盘并指定磁盘容量,将磁盘存储为单个文件


2.10 编辑虚拟机设置-添加NAT网卡



2.11 选择操作系统镜像文件

2.12 开启虚拟机,选择"Install CentOS 7",按回车


2.13 完成一些操作系统的基础配置
-
选择语言——English

-
选择时区——Asia/Shanghai


-
软件安装选项——选择"Server with GUI",并选择右边所有附加选项


2.14 磁盘分区
- 选择SYSTEM-INSTALLATION DESTINATION,并选择手动分区:I will configure partitioning

- 添加分区

具体分区规划如下:
/ 200G
/boot 200M
/tmp 20G
/var 40G
swap 64G
/u01 剩余全部(575.7G)
- 完成后点击done结束分区


2.15 网络配置
- 选择 NETWORK & HOST NAME

- 配置ens33

勾选Automatically connect to this network when it is available

设置IPv4

- 设置ens34

勾选Automatically connect to this network when it is available,保存并打开开关


- 修改hostname为oracle

2.16 Begin Installation

2.17 设置根密码


2.18 重启

2.19 LICENSE INFORMATION
点击 LICENSE INFORMATION 按钮,勾选 I accept the
license agreement 选项,点击 Done 按钮

然后点击finish选项即可
2.20 其他简单选项
- 选择ENGLISH-next


- 位置服务-next

- 开始使用CentOS linux 7

3. oracle12c安装准备
3.1 使用yum下载需要的依赖包
yum install makecache ksh libaio* gcc* libst* -y

3.2 设置主机名
[root@oracle ~]# hostnamectl set-hostname oracle12c
[root@oracle ~]# hostname
oracle12c
3.3 设置/dev/shm
[root@oracle ~]# vim /etc/fstab
# 添加一行
tmpfs /dev/shm tmpfs detaults,size=4G 0 0
3.4 关闭一些服务
[root@oracle12c ~]# chkconfig smartd off
Note: Forwarding request to 'systemctl disable smartd.service'.
Removed symlink /etc/systemd/system/multi-user.target.wants/smartd.service.
[root@oracle12c1 ~]# vim /etc/selinux/config 将 SELINUX=enforcing 改为 SELINUX=disabled
[root@oracle12c ~]# systemctl stop firewalld.service
[root@oracle12c ~]# systemctl disable firewalld.service
[root@oracle12c ~]# systemctl list-unit-files |grep disabled|grep firewalld
firewalld.service disabled
3.5 配置本地主机名解析
[root@oracle12c ~]# cat >/etc/sysconfig/network<<EOF
> NETWORKING=yes
> HOSTNAME=oracle12c
> NOZEROCONF=yes
> EOF
3.6 配置主机表文件
[root@oracle12c ~]# cat >>/etc/hosts<<EOF
> 192.168.182.130 oracle12c oracle12c.
> EOF
3.7 创建oracle12c所需要的用户和组
[root@oracle12c1 ~]# groupadd -g 54421 oinstall
[root@oracle12c1 ~]# groupadd -g 54322 dba
[root@oracle12c ~]# groupadd -g 54323 oper
[root@oracle12c ~]# groupadd -g 54324 backupdba
[root@oracle12c ~]# groupadd -g 54325 dgdba
[root@oracle12c ~]# groupadd -g 54326 kmdba
[root@oracle12c ~]# groupadd -g 54327 asmdba
[root@oracle12c ~]# groupadd -g 54328 asmoper
[root@oracle12c ~]# groupadd -g 54329 asmadmin
[root@oracle12c ~]# groupadd -g 54330 racdba
[root@oracle12c ~]#useradd -u 54322 -g oinstall -G asmadmin,a
smdba,asmoper,racdba grid
[root@oracle12c ~]#/usr/sbin/useradd -u 54321 -g oinstall -G
dba,asmdba,backupdba,dgdba,kmdba,racdba,oper oracle
[root@oracle12c ~]# echo "grid123"|passwd --stdin grid
[root@oracle12c ~]# echo "oracle123"|passwd --stdin oracle

3.8 创建oracle软件安装目录
[root@oracle12c ~]# mkdir -p /u01/app/oracle
[root@oracle12c ~]# mkdir -p /u01/app/oraInventory
[root@oracle12c ~]# mkdir -p /u01/app/oracle/cfgtoollogs
[root@oracle12c ~]# mkdir -p /u01/app/oracle/product/12.2.0/d bhome_1 [root@oracle12c ~]# mkdir -p /u01/app/12.2.0
[root@oracle12c1 ~]# chown -R oracle:oinstall /u01/app [root@oracle12c1 ~]# chmod -R 775 /u01/app
3.9 修改内核参数
[root@oracle12c oracle]# cat>>/etc/sysctl.d/97-oracledatabase-sysctl.conf<<EOF
> fs.aio-max-nr = 1048576
> fs.file-max = 6815744
> kernel.shmall = 2097152
> kernel.shmmax = 4294967295
> kernel.shmmni = 4096 6
> 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 = 1048576
> EOF
3.10 配置网络参数
[root@oracle12c oracle]# cat>>/etc/sysctl.conf<<EOF
> net.ipv4.ip_local_port_range = 9000 65500
> net.ipv4.tcp_rmem = 4096 87380 4194304
> net.ipv4.tcp_wmem = 4096 16384 4194304
> net.ipv4.conf.ens33.rp_filter = 2
> net.ipv4.conf.ens34.rp_filter = 2
> net.ipv4.conf.virbr0.rp_filter = 1
> EOF
# 修改当前系统的参数
[root@oracle12c sysctl.d]# /sbin/sysctl --system
# 确认参数是正确的
[root@oracle12c sysctl.d]# /sbin/sysctl -a
# 使参数生效
[root@oracle12c sysctl.d]# /sbin/sysctl -p
3.11 设置用户shell限制
[root@oracle12c oracle]# cat>>/etc/security/limits.conf<<EOF
> grid soft nofile 1024
> grid hard nofile 65536
> grid soft nproc 2047
> grid hard nproc 16384
> grid soft stack 10240
> grid hard stack 32768
> oracle soft nofile 1024
> oracle hard nofile 65536
> oracle soft nproc 2047
> oracle hard nproc 16384
> oracle soft stack 10240
> oracle hard stack 32768
> EOF
3.12 禁用Transparent Hugepages
[root@oracle12c ~]# vim /etc/default/grub
#找到如下这一行:
GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet"
#修改为:
GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet transparent_hugepage=never"
然后执行以下命令
[root@oracle12c oracle]# grub2-mkconfig -o /boot/grub2/grub.cfg
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-3.10.0-1160.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-1160.el7.x86_64.img
Found linux image: /boot/vmlinuz-0-rescue-b9cb71b6dbe74937b2aa1480fd98dc4a
Found initrd image: /boot/initramfs-0-rescue-b9cb71b6dbe74937b2aa1480fd98dc4a.img
done
3.13 配置oracle用户环境变量
[root@oracle12c oracle]# cat >>/home/oracle/.bashrc<<EOF
> ORACLE_BASE=/u01/app/oracle
> export ORACLE_BASE
> ORACLE_HOME=/u01/app/oracle/product/12.2.0/dbhome_1
> export ORACLE_HOME
> MY_GRID=/u01/app/12.2.0/grid
> export MY_GRID
> ORACLE_UNQNAME=oradb
> export ORACLE_UNQNAME
> ORACLE_SID=oradb
> export ORACLE_SID
> #NLS_LANG="SIMPLIFIED CHINESE"_CHINA.ZHS16GBK
> NLS_LANG=AMERICAN_AMERICA.US7ASCII
> export NLS_LANG
> PATH=\$PATH:\$ORACLE_HOME/bin:\$MY_GRID/bin
> export PATH
> EOF
接着,重启
[root@oracle12c1 ~]# reboot
3.14 登录oracle用户执行下面命令进行检查
[root@oracle12c ~]# su - oracle
[oracle@oracle12c ~]$ cat /sys/kernel/mm/transparent_hugepage/enabled
always madvise [never]
4. 安装Oracle 12c数据库软件
4.1 上传安装包并解压
[oracle@oracle12c 12.2.0]$ cd /u01/app/12.2.0/
[oracle@oracle12c 12.2.0]$ ll
total 3375224
-rw-r--r-- 1 root root 3456226078 Aug 21 23:01 database.zip
[oracle@oracle12c 12.2.0]$ unzip database.zip
Archive: database.zip
4.2 启动安装Oracle 12c界面(图形安装)
[oracle@oracle12c1 ~]$ cd /u01/app/12.2.0/database
[oracle@oracle12c1 database]$ ./runInstaller
出现报错:
./runInstaller: line 252: /u01/app/12.2.0/database/install/.oui: Permission denied
解决:
此时需要执行chmod 777 /u01/app/12.2.0/database/install/.oui
接着运行:
[oracle@oracle12c database]$ export DISPLAY=192.168.182.130:0.0
[oracle@oracle12c database]$ ./runInstaller
出现报错:
Starting Oracle Universal Installer...
Checking Temp space: must be greater than 500 MB. Actual 20437 MB Passed
Checking swap space: must be greater than 150 MB. Actual 65535 MB Passed
Checking monitor: must be configured to display at least 256 colors. Actual 16777216 Passed
Preparing to launch Oracle Universal Installer from /tmp/OraInstall2022-08-22_12-41-45AM. Please wait ...sh: /u01/app/12.2.0/database/install/unzip: Permission denied
解决:
此时需要执行
chmod 755 /u01/app/12.2.0/database/install/unzip
[oracle@oracle12c tmp]$ chmod -R 777 /tmp/CVU_12.2.0.1.0_oracle/*
再次执行./runinstaller成功显示安装界面

4.3 开始安装
-
不够选接收更新

点击确定

-
仅安装数据库软件

-
选择单实例数据库

-
选择企业版

-
选择主目录和软件安装位置(保持默认)

-
Oracle清单目录,执行一个组对比

-
各项权限指定的组

-
安装前检查


-
开始安装

-
根据提示在root用户下运行脚本

[root@oracle12c ~]# /u01/app/oraInventory/orainstRoot.sh
Changing permissions of /u01/app/oraInventory.
Adding read,write permissions for group.
Removing read,write,execute permissions for world.
Changing groupname of /u01/app/oraInventory to oinstall.
The execution of the script is complete.
[root@oracle12c ~]# /u01/app/oracle/product/12.2.0/dbhome_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/dbhome_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] :
yes
Installing Oracle Trace File Analyzer (TFA).
Log File: /u01/app/oracle/product/12.2.0/dbhome_1/install/root_oracle12c_2022-08-22_01-08-50-552088347.log
Finished installing Oracle Trace File Analyzer (TFA)
- 点击ok-close,完成安装


5. 创建监听
- 以oracle用户和身份,使用netca命令创建监听,选择监听配置-add
[oracle@oracle 12c database]$ netca


- 监听名字

- 默认,next

- 选择监听器所使用的端口号1521

- 是否需要配置另一个监听,选择no

- 创建完成


6. 创建oracle 12c数据库
以oracle用户身份使用dbca创建数据库
- 创建一个数据库

- 高级模式

- 数据库类型选择

- 数据库名称和唯一标识

- 使用模板文件数据库

- 数据恢复区设置

- 监听器选择

- 默认下一步

- 手动配置共享内存


- 字符集选择

- 添加示例模式到数据库

- 企业管理端口

- 设置数据库密码

- create database

- 点击finish

- 开始安装

- 点击close,安装结束

7. 安装验证
7.1 查看监听器状态
[oracle@oracle12c ~]$ lsnrctl stat
LSNRCTL for Linux: Version 12.2.0.1.0 - Production on 22-AUG-2022 01:34:28
Copyright (c) 1991, 2016, Oracle. All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=oracle12c)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for Linux: Version 12.2.0.1.0 - Production
Start Date 22-AUG-2022 01:14:12
Uptime 0 days 0 hr. 20 min. 16 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /u01/app/oracle/product/12.2.0/dbhome_1/network/admin/listener.ora
Listener Log File /u01/app/oracle/diag/tnslsnr/oracle12c/listener/alert/log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oracle12c)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcps)(HOST=oracle12c)(PORT=5500))(Security=(my_wallet_directory=/u01/app/oracle/admin/oradb/xdb_wallet))(Presentation=HTTP)(Session=RAW))
Services Summary...
Service "oradb" has 1 instance(s).
Instance "oradb", status READY, has 1 handler(s) for this service...
Service "oradbXDB" has 1 instance(s).
Instance "oradb", status READY, has 1 handler(s) for this service...
The command completed successfully
7.2 登录数据库,查看实例状态

至此,Oracle 12c单机安装部署完成




