Linux安装Oracle12C

一、关闭防火墙

# 查看防火墙状态
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;
  • 8
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

逃离地球12138

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值