一、关闭防火墙
# 查看防火墙状态
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命令
- 修改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
#######
- 每次重启都要,执行挂载命令:
mount -o loop /home/software/rhel-server-7.7-x86_64-dvd.iso /mnt #iso.repo里的baseurl
- 测试
yum repolist
- 清理
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;