Linux安装Oracle12C全过程

 更新时间:2025年10月21日 10:18:41   作者:TKang8912  
本文详细介绍了在Linux系统上安装Oracle数据库的步骤,包括环境准备、依赖安装、用户和目录配置、内核参数与文件限制调整、环境变量设置、交换空间创建、数据库安装与配置、字符集和进程数调整及密码策略优化

一、关闭防火墙

# 查看防火墙状态
systemctl status firewalld
# 关闭防火墙
systemctl stop firewalld
# 开启防火墙
systemctl disable firewalld

二、安装补丁

先更新环境依赖库,看有没有报错

yum update

(三选一即可)

1. 在线安装(需连接外网)

执行命令:

yum -y install binutils compat-libcap1 compat-libstdc++-33 compat-libstdc++-33*.i686 elfutils-libelf-devel gcc gcc-c++ gcc-c++glibc*.i686 glib c glibc-devel glibc-devel*.i686 ksh libgcc*.i686 libgcclibstdc++ libstdc++*.i686 libstdc++-devel libstdc++-devel*.i686 libaiolibaio*.i686 libaio-devel libaio-devel*.i686 make sysstat unixODBC unixODBC*.i686 unixODBC-devel unixODBC-devel*.i686 libXp libXtst

检查是否安装成功(31个安装包)

rpm -q binutils compat-libcap1 compat-libstdc++-33 gcc gcc-c++ glibc glibc-devel ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel libXi libXtst make sysstat unixODBC unixODBC-devel

2. 离线安装(内网环境推荐)

网上下载对应操作系统版本的rpm依赖包,执行下述命令

rpm -ivh *.rpm --nodeps --force

3. 挂载镜像后执行1命令

  1. 修改yum镜像
cd /etc/yum.repos.d/
vim iso.repo
####
[base]
name=iso
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra
baseurl=file:///mnt
gpgcheck=0
#gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
enable=1
#######
  1. 每次重启都要,执行挂载命令:
mount -o loop  /home/software/rhel-server-7.7-x86_64-dvd.iso /mnt    #iso.repo里的baseurl
  1. 测试
yum repolist
  1. 清理
yum makecache
yum clean all

二、建立用户和组:

groupadd oinstall
groupadd dba
groupadd oper
useradd -g oinstall -G dba,oper oracle
#oracle用户的密码设置,后面会用到
echo "您的密码" | passwd --stdin oracle

三、创建安装目录

mkdir -p /app/oracle/product/12c/dbhome
chown -R oracle:oinstall /app
chmod -R 775 /app

四、修改内核参数

(先看下方参数声明,根据服务器参数对配置文件的插入语句做适当修改)

vi /etc/sysctl.conf
fs.aio-max-nr = 1048576
fs.file-max = 6815744    #设置最大打开文件数
kernel.shmall = 2097152   # 共享内存总量,以页为单位。
kernel.shmmax = 4294967295    # 共享内存段的最大尺寸(以字节为单位)
kernel.shmmni = 4096    # 整个系统共享内存段的最大数量
kernel.sem = 250 32000 100 128 
net.ipv4.ip_local_port_range = 9000 65500  # 应用程序可使用的IPv4端口范围
net.core.rmem_default = 262144 
net.core.rmem_max = 4194304 
net.core.wmem_default = 262144 
net.core.wmem_max = 1048586

改好后,使之生效:

sysctl -p

参数说明

kernel.shmall = 6580668  # 可以使用的共享内存的总页数(Linux共享内存页大小为4kb)
kernel.shmmni=4096  # 设置系统范围内共享内存段的最大数量(默认4096)
kernel.shmmax = 33693024256   # 单个共享内存段的最大值(字节);一个共享内存段应容纳下整个SGA(>=sga_max_size)
32位linux系统:推荐值 4294967295
64位linux系统:推荐值
	内存|kernel.shmmax|kernel.shmall
	12G | 12884901887	|	  3145728
	16G | 17179869183	|	  4194304
	32G | 34359738367	|	  8388608
	64G | 68719476735	|	  16777216
	128G | 137438953471	|  33554432
# 计算公式如下
kernel.shmmax = 内存*1024*1024*1024
kernel.shmall = kernel.shmmax/1024/4

五、改文件限制:

vim /etc/security/limits.conf
#(没有前面这个文件,则 vi /etc/security/limits.d/20-nproc.conf )
oracle soft nproc 2047 
oracle hard nproc 16384 
oracle soft nofile 1024 
oracle hard nofile 65536 
oracle soft stack 10240

#oracle soft memlock unlimited
#oracle hard memlock unlimited

六、修改Oracle用户的环境变量

su - oracle
vim .bash_profile
export ORACLE_BASE=/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/12c/dbhome
export ORACLE_SID=orcl
export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib
# 加载环境变量
source .bash_profile

七、创建交换空间

dd if=/dev/zero of=/home/swap bs=1024 count=8000000 
mkswap /home/swap 
swapon /home/swap 

八、安装软件

1.修改/etc/profile

vim /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

#使配置生效
source /etc/profile

2.修改/etc/selinux/config里SELINUX的值

vim /etc/selinux/config
SELINUX=disabled

3.安装数据库软件

su - oracle
cd /app/database
./runInstaller -silent -responseFile /app/database/db_install.rsp

完成数据库软件安装,切到root用户,运行以下脚本。

sh /app/oraInventory/orainstRoot.sh
sh /app/oracle/product/12c/dbhome/root.sh

4.创建监听

su - oracle
cd /app/database/
netca -silent -responsefile /app/database/netca.rsp

5.创建数据库

su - oracle
dbca -silent -createDatabase -responseFile /app/database/dbca.rsp

设置密码: ***

6.专用模式改为共享模式

--没有返回值,说明处于专用模式:
SQL>select * from v$dispatcher;
SQL>show parameter shared_ser

--在线修改共享服务器进程的数量
--(若执行下方SQL出现乱码,可执行“十二、修改字符集”,修改数据库字符集)
SQL> alter system set shared_servers=5 scope=both;

--配置dispatchersDispatchers参数用于配置共享模式架构中dispatcher进程,共享模式只少需要一个dispatcher进程。
SQL> alter system set dispatchers='(PROTOCOL=TCP) (dispatchers=3)' scope=both;
-- 启动数据库
SQL> startup;
-- 关闭数据库 
SQL> shutdown immediate;

九、测试oracle是否安装成功

#先启动监听
[oracle@ etlsrv ~]$ lsnrctl start
#连接sqlplus
[oracle@ etlsrv ~]$ sqlplus /nolog
--连接dba
SQL> conn / as sysdba
--启动服务
SQL> startup     -- 启动startup,停止 shutdown / shutdown immediate
SQL> alter system register;
SQL> select status from v$instance; --查看状态
SQL> desc dba_tablespaces; --测试:显示表空间
SQL> quit
# 查看监听状态
[oracle@ etlsrv ~]$ lsnrctl status

十、修改字符集

#系统字符集
[root@localhost /root]$ vim ~oracle/.bash_profile

export NLS_LANG="SIMPLIFIED CHINESE_CHINA.AL32UTF8"

#使设置生效
[root@localhost /root]$source ~oracle/.bash_profile
#linux下查看oracle字符集
# 切换oracle用户
su - oracle
# 进入SQL plus控制台
sqlplus / as sysdba
SQL>select * from v$nls_parameters;  --AL32UTF8
SQL>select * from nls_database_parameters where parameter ='NLS_CHARACTERSET';		--AL32UTF8
SQL>select userenv('language') from dual;  --SIMPLIFIED CHINESE_CHINA.AL32UTF8

十一、调整process(进程数)

# 查看ORACLE最大进程数:
su - oracle
# 先查看现在情况
sqlplus / as sysdba
SQL> select count(*) from v$session;  #当前连接数
SQL> Select count(*) from v$session where status='ACTIVE'; #当前并发连接数
SQL> show parameter processes;  #最大连接
SQL> show parameter sessions;
# 在Linux系统中, 1个用户session 对应一个操作系统 process ,而 windows体现在线程
# 修改ORACLE最大进程数:sessions=(1.1*processes+5)
SQL> alter system set processes = 4000 scope = spfile;  #修改连接
SQL> alter system set sessions= 4405 scope = spfile;
# 系统已更改。
SQL> show parameter processes;
SQL>shutdown immediate;
# 数据库已经关闭。
# 已经卸载数据库。
# ORACLE 例程已经关闭。
SQL> startup
# ORACLE 例程已经启动。
# 看提示信息,database open后,则表明该数据库全部启动完毕,启动完毕后,再查看一下。
SQL> show parameter processes;

十二、修改密码过期策略

# 设置密码永不过期
SQL> alter profile default limit password_life_time unlimited;

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 解决centos7中tomcat启动与本机访问问题

    解决centos7中tomcat启动与本机访问问题

    这篇文章主要介绍了解决centos7中tomcat启动与本机访问问题,需要的朋友可以参考下
    2018-08-08
  • Ubuntu报“无法解析域名cn.archive.ubuntu.com“问题解决办法

    Ubuntu报“无法解析域名cn.archive.ubuntu.com“问题解决办法

    在Ubuntu系统上使用sudo apt update命令更新时可能遇到“无法解析域名cn.archive.ubuntu.com”的问题,这通常是因为cn.archive.ubuntu.com的镜像资源不稳定,为解决此问题,可以更换为稳定性好、速度快的镜像源,需要的朋友可以参考下
    2024-11-11
  • Linux搭建ISCSI服务器全过程

    Linux搭建ISCSI服务器全过程

    iSCSI通过TCP/IP技术实现存储设备共享,服务端配置targetcli管理存储资源,客户端使用iscsiadm连接并设置访问权限,利用目录结构实现磁盘服务的配置与管理
    2025-08-08
  • PHP中的.htaccess伪静态文件

    PHP中的.htaccess伪静态文件

    htaccess是apache的伪静态文件了不过普通人不熟悉linux不熟悉apache,可能都用惯了iis,可是又不懂伪静态规则,现在项目就只提供了这么一个.htaccess文件,真叫人苦恼。方案来了彻底解决你的苦恼让伪静态妥妥的windows7,windows8,windows8.1,windows2008-2012都行。
    2016-05-05
  • linux环境搭建图数据库neo4j的讲解

    linux环境搭建图数据库neo4j的讲解

    今天小编就为大家分享一篇关于linux环境搭建图数据库neo4j的讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-04-04
  • Linux基于环形队列的生产消费者模型详解

    Linux基于环形队列的生产消费者模型详解

    这篇文章主要介绍了Linux基于环形队列的生产消费者模型方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-04-04
  • 安装Debian12后Linux启动SMTP服务的详细指南

    安装Debian12后Linux启动SMTP服务的详细指南

    这篇文章主要为大家详细了在 Win10 上 WSL 安装 Debian 12 后,Linux 如何启动 SMTP 服务,文中的示例代码简洁易懂,有需要的可以了解下
    2025-06-06
  • linux新文件权限设置之umask的深入理解

    linux新文件权限设置之umask的深入理解

    这篇文章主要给大家介绍了关于linux新文件权限设置之umask的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-03-03
  • 详解Ubuntu下安装mysql和简单操作

    详解Ubuntu下安装mysql和简单操作

    这篇文章主要介绍了详解Ubuntu下安装mysql和简单操作,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
    2016-12-12
  • centos通过yum安装php的教程

    centos通过yum安装php的教程

    这篇文章主要介绍了centos通过yum安装php的教程,本文给大家提到了CentOS 7下Yum安装PHP7.2步骤,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-01-01

最新评论