当前位置: 代码网 > it编程>数据库>Oracle > Linux安装Oracle12C全过程

Linux安装Oracle12C全过程

2025年10月21日 Oracle 我要评论
一、关闭防火墙# 查看防火墙状态systemctl status firewalld# 关闭防火墙systemctl stop firewalld# 开启防火墙systemctl disable fi

一、关闭防火墙

# 查看防火墙状态
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;

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com