Oracle安装-Oracle12cR2单机安装配置 FOR RHEL/OEL7 Linux详细过程
1. 硬件环境要求
Oracle 12cR2在RHEL/OEL7 Linux上的硬件要求如下:
# 检查内存大小
$ free -h
total used free shared buff/cache available
Mem: 64G 2.0G 58G 1.5G 4.0G 60G
Swap: 32G 0B 32G
# 检查CPU核心数
$ cat /proc/cpuinfo | grep “processor” | wc -l
24
# 检查磁盘空间
$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 100G 15G 81G 16% /
/dev/sda3 1000G 10G 940G 2% /oracle
2. 操作系统准备
Oracle 12cR2支持RHEL/OEL 7.0及以上版本。以下是操作系统的准备工作:
2.1 安装必要的依赖包
# 安装Oracle 12cR2所需的依赖包
$ yum install -y binutils compat-libcap1 compat-libstdc++-33 gcc gcc-c++ glibc glibc-devel ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel libxcb libX11 libXau libXi libXtst make nfs-utils net-tools openssh-clients openssl oracleasm-support unixODBC unixODBC-devel
# 安装额外的依赖包
$ yum install -y elfutils-libelf elfutils-libelf-devel fontconfig-devel glibc-devel.i686 libstdc++-devel.i686 libXrender-devel libX11-devel libXau-devel libxcb-devel libXi-devel libXtst-devel libXext-devel libXft-devel
2.2 关闭防火墙和SELinux
$ systemctl stop firewalld
$ systemctl disable firewalld
# 关闭SELinux临时生效
$ setenforce 0
# 永久关闭SELinux
$ vi /etc/selinux/config
# 修改SELINUX=disabled
# 验证SELinux状态
$ getenforce
Permissive
2.3 禁用透明大页(THP)
$ cat /sys/kernel/mm/transparent_hugepage/enabled
[always] madvise never
# 禁用透明大页
$ vi /etc/default/grub
# 在GRUB_CMDLINE_LINUX中添加:transparent_hugepage=never
# 重新生成grub配置文件
$ grub2-mkconfig -o /boot/grub2/grub.cfg
# 重启系统使配置生效
$ reboot
# 验证透明大页状态
$ cat /sys/kernel/mm/transparent_hugepage/enabled
always madvise [never]
2.4 配置主机名和IP
$ hostnamectl set-hostname fgedudb01.fgedu.net.cn
# 配置/etc/hosts文件
$ vi /etc/hosts
# 添加以下内容
192.168.1.51 fgedudb01.fgedu.net.cn fgedudb01
# 验证主机名和IP
$ hostname
fgedudb01.fgedu.net.cn
$ ping -c 3 fgedudb01
3. 创建Oracle用户和组
$ groupadd oinstall
$ groupadd dba
$ groupadd oper
$ groupadd backupdba
$ groupadd dgdba
$ groupadd kmdba
# 创建Oracle用户并设置密码
$ useradd -g oinstall -G dba,oper,backupdba,dgdba,kmdba oracle
$ passwd oracle
Changing password for user oracle.
New password: Oracle123
BAD PASSWORD: The password is shorter than 8 characters
Retype new password: Oracle123
passwd: all authentication tokens updated successfully.
# 验证用户和组
$ id oracle
uid=1000(oracle) gid=1000(oinstall) groups=1000(oinstall),1001(dba),1002(oper),1003(backupdba),1004(dgdba),1005(kmdba)
4. 配置内核参数
$ vi /etc/sysctl.conf
# 添加以下内容
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 137438953472
kernel.shmmni = 4096
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
# 使内核参数生效
$ sysctl -p
5. 配置资源限制
$ vi /etc/security/limits.conf
# 添加以下内容
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
oracle hard stack 32768
oracle soft memlock 134217728
oracle hard memlock 134217728
# 配置PAM认证模块
$ vi /etc/pam.d/login
# 添加以下内容
session required pam_limits.so
# 配置shell限制
$ vi /etc/profile
# 在文件末尾添加以下内容
if [ $USER = “oracle” ]; then
if [ $SHELL = “/bin/ksh” ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
6. 创建目录结构
$ mkdir -p /oracle/app/oracle/product/12.2.0/db_1
$ mkdir -p /oracle/app/oracle/oradata
$ mkdir -p /oracle/app/oraInventory
$ mkdir -p /oracle/backup
$ mkdir -p /oracle/app/oracle/fast_recovery_area
# 设置目录权限
$ chown -R oracle:oinstall /oracle
$ chmod -R 775 /oracle
7. Oracle安装包下载
从Oracle官方网站下载Oracle 12cR2安装包。对于Linux 64位系统,需要下载两个文件:
# linuxx64_12201_database.zip
# 下载完成后,将安装包上传到/oracle/software目录
$ mkdir -p /oracle/software
$ cd /oracle/software
# 解压安装包
$ unzip linuxx64_12201_database.zip
# 设置安装包权限
$ chown -R oracle:oinstall /oracle/software
$ chmod -R 775 /oracle/software
8. Oracle数据库安装
切换到Oracle用户,执行图形化安装向导:
8.1 配置环境变量
$ su – oracle
# 配置环境变量
$ vi ~/.bash_profile
# 添加以下内容
ORACLE_BASE=/oracle/app/oracle
ORACLE_HOME=$ORACLE_BASE/product/12.2.0/db_1
ORACLE_SID=fgedudb
PATH=$PATH:$ORACLE_HOME/bin
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export ORACLE_BASE ORACLE_HOME ORACLE_SID PATH LD_LIBRARY_PATH
# 使环境变量生效
$ source ~/.bash_profile
# 验证环境变量
$ echo $ORACLE_HOME
/oracle/app/oracle/product/12.2.0/db_1
$ echo $ORACLE_SID
fgedudb
8.2 启动安装向导
$ cd /oracle/software/database
$ ./runInstaller
8.3 安装配置
步骤1:配置安全更新 – 取消勾选”I wish to receive security updates via My Oracle Support” – 点击”Next”
步骤2:选择安装选项 – 选择”Create and configure a database” – 点击”Next”
步骤3:选择安装类型 – 选择”Server Class” – 点击”Next”
步骤4:选择配置类型 – 选择”Single instance database installation” – 点击”Next”
步骤5:选择安装类型 – 选择”Advanced installation” – 点击”Next”
步骤6:选择产品语言 – 选择”Simplified Chinese”和”English” – 点击”Next”
步骤7:选择数据库版本 – 选择”Enterprise Edition” – 点击”Next”
步骤8:指定安装位置 –
Oracle Base: /oracle/app/oracle
Oracle Home: /oracle/app/oracle/product/12.2.0/db_1
点击”Next”
步骤9:选择配置类型 – 选择”General Purpose/Transaction Processing” – 点击”Next”
步骤10:指定数据库标识符 –
Global Database Name: fgedudb
SID: fgedudb
勾选”Create as Container database”
Pluggable database name: fgedupdb
点击”Next”
步骤11:指定配置选项 –
Memory: 选择”Use Automatic Memory Management”,设置为物理内存的70%
Character Sets: 选择”Use Unicode (AL32UTF8)”
Database Sample Schemas: 勾选”Create database with sample schemas”
点击”Next”
步骤12:指定管理选项 –
选择”Use Database Control for database management”
勾选”Enable Email Notification”(可选)
点击”Next”
步骤13:指定数据库存储选项 – 选择”File System” –
Database files location: /oracle/app/oracle/oradata
点击”Next”
步骤14:指定快速恢复区 –
Fast Recovery Area: /oracle/app/oracle/fast_recovery_area
Fast Recovery Area Size: 100GB
点击”Next”
步骤15:指定数据库方案密码 –
选择”Use the same password for all accounts”
输入密码:Oracle123
点击”Next”(可能会提示密码不符合复杂度要求,点击”Continue”继续)
步骤16:执行先决条件检查 –
检查完成后,点击”Next”
步骤17:安装产品 –
点击”Finish”开始安装
步骤18:执行配置脚本 –
安装过程中会提示执行两个脚本,以root用户执行:
# /oracle/app/oraInventory/orainstRoot.sh
# /oracle/app/oracle/product/12.2.0/db_1/root.sh
执行完成后,点击”OK”继续
步骤19:完成安装 –
安装完成后,点击”Close”
9. 数据库创建
安装过程中会自动创建数据库实例,包括CDB和PDB。以下是创建过程的关键信息:
/oracle/app/oracle/cfgtoollogs/dbca/fgedudb/fgedudb.log
# 数据库创建完成后,系统会显示Enterprise Manager URL
https://fgedudb01:5500/em
# 可插拔数据库信息
PDB名称:fgedupdb
PDB状态:READ WRITE
10. 安装后配置
安装完成后,需要进行一些必要的配置调整:
10.1 配置监听程序
Oracle安装过程中会自动创建监听程序,如需修改可使用Net Configuration Assistant:
$ su – oracle
$ netca
# 选择”Listener Configuration” – 点击”Next”
# 选择”Reconfigure” – 点击”Next”
# 选择监听程序名称(LISTENER) – 点击”Next”
# 选择协议(TCP) – 点击”Next”
# 指定端口号(默认1521) – 点击”Next”
# 完成配置
# 验证监听程序状态
$ lsnrctl status
LSNRCTL for Linux: Version 12.2.0.1.0 – Production on 02-APR-2026 16:00:00
Copyright (c) 1991, 2016, Oracle. All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=fgedudb01.fgedu.net.cn)(PORT=1521)))
STATUS of the LISTENER
————————
Alias LISTENER
Version TNSLSNR for Linux: Version 12.2.0.1.0 – Production
Start Date 02-APR-2026 15:00:00
Uptime 0 days 1 hr. 0 min. 0 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /oracle/app/oracle/product/12.2.0/db_1/network/admin/listener.ora
Listener Log File /oracle/app/oracle/diag/tnslsnr/fgedudb01/listener/alert/log.xml
Listening Endpoints Summary…
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=fgedudb01.fgedu.net.cn)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
Services Summary…
Service “fgedudb” has 1 instance(s).
Instance “fgedudb”, status READY, has 1 handler(s) for this service…
Service “fgedudbXDB” has 1 instance(s).
Instance “fgedudb”, status READY, has 1 handler(s) for this service…
Service “fgedupdb” has 1 instance(s).
Instance “fgedudb”, status READY, has 1 handler(s) for this service…
The command completed successfully
10.2 配置自动启动数据库
$ vi /etc/init.d/oracle
# 添加以下内容
#!/bin/bash
# chkconfig: 2345 99 10
# description: Oracle 12cR2 Auto Start Stop Service
ORACLE_BASE=/oracle/app/oracle
ORACLE_HOME=$ORACLE_BASE/product/12.2.0/db_1
ORACLE_SID=fgedudb
ORACLE_USER=oracle
case “$1” in Oracle 12cR2引入了多租户架构,需要进行一些额外的配置: SQL*Plus: Release 12.2.0.1.0 Production on Wed Apr 2 16:00:00 2026 Copyright (c) 1982, 2016, Oracle. All rights reserved. Connected to: SQL> # 检查PDB状态 CON_ID CON_NAME OPEN MODE RESTRICTED # 连接到PDB # 配置PDB自动启动 # 验证配置 CON_NAME STATE 为了提高Oracle 12cR2数据库的性能和稳定性,需要对一些关键参数进行优化配置。更多学习教程www.fgedu.net.cn LOG_MODE # 关闭数据库 # 启动数据库到mount状态 Total System Global Area 4.29496729E10 bytes # 启用归档模式 # 打开数据库 # 验证归档模式 LOG_MODE Oracle 12cR2默认密码有效期为180天,生产环境中可能需要调整: PROFILE RESOURCE_NAME RESOURCE_TYPE LIMIT # 修改密码有效期为无限 # 验证修改 PROFILE RESOURCE_NAME RESOURCE_TYPE LIMIT 关闭审计功能可以减少系统开销: NAME TYPE VALUE # 关闭审计功能 # 重启数据库使配置生效 # 调整SGA和PGA大小 # 重启数据库使配置生效 配置RMAN备份策略,确保数据库数据安全: Recovery Manager: Release 12.2.0.1.0 – Production on Wed Apr 2 16:00:00 2026 Copyright (c) 1982, 2017, Oracle and/or its affiliates. All rights reserved. connected to target database: FGEDUDB (DBID=1234567890) RMAN> # 创建备份目录 # 配置控制文件自动备份 # 配置备份保留策略 # 执行全库备份(包括CDB和PDB) 验证Oracle 12cR2数据库安装和配置是否成功: SQL*Plus: Release 12.2.0.1.0 Production on Wed Apr 2 16:00:00 2026 Copyright (c) 1982, 2016, Oracle. All rights reserved. Connected to: SQL> # 验证实例状态 INSTANCE_NAME STATUS # 验证数据库状态 NAME STATUS # 使用sqlplus连接CDB测试 SQL*Plus: Release 12.2.0.1.0 Production on Wed Apr 2 16:00:00 2026 Copyright (c) 1982, 2016, Oracle. All rights reserved. Connected to: SQL> # 使用sqlplus连接PDB测试 SQL*Plus: Release 12.2.0.1.0 Production on Wed Apr 2 16:00:00 2026 Copyright (c) 1982, 2016, Oracle. All rights reserved. Connected to: SQL> # 验证表空间 # 访问Enterprise Manager 更多学习教程公众号风哥教程itpux_com。本文介绍了Oracle 12cR2在RHEL/OEL7 Linux上的单机安装配置详细过程,包括硬件环境要求、操作系统准备、用户和组创建、内核参数配置、资源限制配置、目录结构创建、安装包下载、安装步骤、数据库创建、安装后配置、多租户架构配置、参数优化、备份设置和安装验证等内容。通过本文的指导,读者可以快速完成Oracle 12cR2数据库的安装和配置。from:www.itpux.com 学习交流加群风哥微信: itpux-com。Oracle 12cR2引入了许多新特性,如多租户架构、在线迁移等,建议在部署前仔细阅读官方文档,了解这些新特性的使用方法和最佳实践。 本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html
start)
echo -n “Starting Oracle Database: $ORACLE_SID”
su – $ORACLE_USER -c “$ORACLE_HOME/bin/sqlplus / as sysdba <11. 多租户架构配置
11.1 连接到CDB和PDB
$ su – oracle
$ sqlplus / as sysdba
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 – 64bit Production
SQL> SHOW pdbs;
———- —————————— ———- ———-
2 PDB$SEED READ ONLY NO
3 FGEDUPDB READ WRITE NO
SQL> ALTER SESSION SET container = fgedupdb;
Session altered.
11.2 配置PDB自动启动
SQL> ALTER SESSION SET container = CDB$ROOT;
Session altered.
SQL> ALTER PLUGGABLE DATABASE fgedupdb SAVE STATE;
Pluggable database altered.
SQL> SELECT con_name, state FROM dba_pdb_saved_states;
—————————— ————–
FGEDUPDB OPEN
12. 参数优化
12.1 配置归档模式
SQL> SELECT log_mode FROM v$database;
————
NOARCHIVELOG
SQL> SHUTDOWN IMMEDIATE;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> STARTUP MOUNT;
ORACLE instance started.
Fixed Size 15849472 bytes
Variable Size 1.37438953E10 bytes
Database Buffers 2.9190615E10 bytes
Redo Buffers 234881024 bytes
Database mounted.
SQL> ALTER DATABASE ARCHIVELOG;
Database altered.
SQL> ALTER DATABASE OPEN;
Database altered.
SQL> SELECT log_mode FROM v$database;
————
ARCHIVELOG
12.2 配置180天密码问题
SQL> SELECT * FROM dba_profiles WHERE resource_name = ‘PASSWORD_LIFE_TIME’;
—————————— ——————————– ————- ——————————
DEFAULT PASSWORD_LIFE_TIME PASSWORD 180
SQL> ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
Profile altered.
SQL> SELECT * FROM dba_profiles WHERE resource_name = ‘PASSWORD_LIFE_TIME’;
—————————— ——————————– ————- ——————————
DEFAULT PASSWORD_LIFE_TIME PASSWORD UNLIMITED
12.3 关闭审计功能
SQL> SHOW PARAMETER audit_trail;
———————————— ———– ——————————
audit_trail string DB
SQL> ALTER SYSTEM SET audit_trail = NONE SCOPE = SPFILE;
System altered.
SQL> SHUTDOWN IMMEDIATE;
SQL> STARTUP;
12.4 调整内存参数
SQL> SHOW PARAMETER memory;
SQL> ALTER SYSTEM SET sga_target = 32G SCOPE = SPFILE;
SQL> ALTER SYSTEM SET pga_aggregate_target = 12G SCOPE = SPFILE;
SQL> SHUTDOWN IMMEDIATE;
SQL> STARTUP;
13. 备份设置
$ su – oracle
$ rman target /
RMAN> CREATE DIRECTORY backup_dir AS ‘/oracle/backup’;
RMAN> CONFIGURE CONTROLFILE AUTOBACKUP ON;
RMAN> CONFIGURE RETENTION POLICY TO REDUNDANCY 3;
RMAN> BACKUP DATABASE PLUS ARCHIVELOG;
14. 安装验证
$ su – oracle
$ sqlplus / as sysdba
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 – 64bit Production
SQL> SELECT instance_name, status FROM v$instance;
—————- ————
fgedudb OPEN
SQL> SELECT name, status FROM v$database;
——— ————
FGEDUDB OPEN
$ sqlplus system/Oracle123@fgedudb
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 – 64bit Production
$ sqlplus system/Oracle123@fgedupdb
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 – 64bit Production
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options
SQL> SELECT tablespace_name, status FROM dba_tablespaces;
https://fgedudb01:5500/em
# 使用sys用户和密码登录
