不求甚解

此博客为个人学习之用,如与其他作品雷同,纯属巧合。

导航

Centos7下oracle12c的安装与配置

Posted on 2021-05-07 14:16  三年三班王小朋  阅读(721)  评论(0编辑  收藏  举报

一、硬件资源配置(虚拟机)

CentOS7@VMware® Workstation 10 Pro,分配资源:CPU:2颗,内存:4GB,硬盘空间:20GB+30GB

二、软件环境配置

软件上传

xshell5
linuxx64_12201_database.zip

上传文件:cd 服务器某个目录
       lcd 本地目录
       put xxx

解压文件 unzip 文件名.zip

1、关闭图形化界面

systemctl set-default multi-user.target

2、开启图形化界面

systemctl set-default graphical.target

环境配置

直接安装:
yum -y install binutils compat-libcap1 compat-libstdc++-33 compat-libstdc++-33*.i686 elfutils-libelf-devel gcc gcc-c++ gcc-c++glibc*.i686 glibc 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

建立用户和组:

groupadd oinstall
groupadd dba
groupadd oper
useradd -g oinstall -G dba,oper oracle
echo "123456" | passwd --stdin oracle

#oracle用户的密码设置,后来会用到

 

创建安装目录更改权限:

mkdir -p /u01/app/oracle/product/12.2.0/dbhome_1
chown -R oracle:oinstall /u01/app
chmod -R 775 /u01

ps:后面解压缩还要执行一次

 

修改内核参数   vi /etc/sysctl.conf  ,添加:

fs.aio-max-nr = 1048576
fs.file-max = 6815744

kernel.shmall = 1048596
kernel.shmmax = 4294967295
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 = 1048586

 

fs.aio-max-nr = 1048576         #异步IO请求数目 推荐值是:1048576 其实它等于 1024*1024 也就是 1024K 个
fs.file-max = 6815744           #打开的文件句柄的最大数量,防止文件描述符耗尽的问题
kernel.shmall = 1048596         #重要,共享内存总页数 页为单位。该参数大小为物理内存除以pagesize(默认4K)。其值为shmmax/shmmni

  #当内存为 4G 时, kernel.shmall = 921600
  #当内存为 8G 时, kernel.shmall = 1843200
  #当内存为 12G 时, kernel.shmall = 2764800
  #当内存为 16G 时, kernel.shmall = 3686400
  #当内次为 32G 时, kernel.shmall = 7372800
  #当内存为 64G 时, kernel.shmall = 14745600
  #当内存为 128G 时, kernel.shmall = 28491200

kernel.shmmax = 4294967295     #重要,定义单个共享内存段的最大值。shmmax应该足够大,能在一个共享内存段下容纳下整个的SGA。32位操作系统直接设置为最大内存,生产中应该留一部分给内存,shmmax设置为90%。

  #内存为 4G 时, 该值为 4 *1024*1024*1000×0.9 = 3774873600  
  #内存为 8G 时, 该值为 8 *1024*1024*1000×0.9= 7549747200
  #内存为 12G 时,该值为 12*1024*1024*1000×0.9 = 11324620800
  #内存为 16G 时,该值为 16*1024*1024*1000×0.9 = 15099494400
  #内存为 32G 时,该值为 32*1024*1024*1000×0.9 = 30198988800
  #内存为 64G 时,该值为 64*1024*1024*1000×0.9 = 60397977600
  #内存为 128G 时,该值为 128*1024*1024*1000×0.9 = 120795955200


kernel.shmmni = 4096        #缺省值4096足够,内核参数是共享内存段的最大数量(注意:这个参数不是 shmmin,shmmin 表示内存段最小大小)
kernel.sem = 250 32000 100 128      #共享资源提供并发同步的计数器(PV操作),避免竞争,一个时刻只能由一个进程操作共享资源,多人可能要操作共识资源,计数器提供计数,排队。
#SEMMSL: 每个信号集的最大信号数量  
#SEMMNS:用于控制整个 Linux 系统中信号的最大数  
#SEMOPM:内核参数用于控制每个 semop 系统调用可以执行的信号操作的数量
#SEMMNI:内核参数用于控制整个 Linux 系统中信号集的最大数量
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

改文件限制
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 stack 10240
oracle hard memlock 5368091
oracle soft memlock 5368091

#当内存大于8g是要添加内存锁 其值一般为物理内存的80%,64G为5368091

该目录下默认有 *-nproc.conf 文件,该文件是用于限制用户的线程限制。我们也可以在该目录创建配置文件在 /etc/security/limits.d/ 下,以 .conf 结尾。

 

修改Oracle用户的环境变量:

vi ~oracle/.bash_profile,添加:

#ORACLE_BASE=/u01/app/oracle  
#ORACLE_HOME=$ORACLE_BASE/product/12.2.0/dbhome_1
#ORACLE_SID=orcl
##NLS_LANG="SIMPLIFIED CHINESE_CHINA".AL32UTF8 要和客户端语言一致;登录连接oracle查询 SQL> select userenv('language') from dual;
#export ORACLE_BASE ORACLE_HOME ORACLE_SID NLS_LANG

#PATH=$PATH:$HOME/.local/bin:$HOME/bin:$ORACLE_HOME/bin    
#export PATH

ORACLE_BASE=/u01/app/oracle
ORACLE_HOME=$ORACLE_BASE/product/12.2.0/dbhome_1
ORACLE_SID=orcl
export ORACLE_BASE ORACLE_HOME ORACLE_SID
NLS_DATE_FORMAT="yyyy-mm-dd HH24:MI:SS";export NLS_DATE_FORMAT
NLS_LANG=AMERICAN_AMERICA.ZHS16GBK;export NLS_LANG
PATH=$ORACLE_HOME/bin:$PATH
export PATH

source ~oracle/.bash_profile     #只有第一次才有效 第二次设置环境变量后 用户需要logout再login一次才有效 这是为什么?可能是source已经写入内存中?

 

在root根目录下执行mv database /u01/app(database 为 oracle 解压后的安装目录,现把它剪切到 /u01/app 下(因为刚才已经给了权限,放在别的目录里可能没有权限)
在root 下执行xhost +     (中间有一个空格别忘了!!)

如果交换空间不够,用 root 用户登陆添加,命令如下: (为了不出错还是执行一下稳点)
#dd if=/dev/zero of=/home/swap bs=1024 count=1600000  
#mkswap /home/swap
#swapon /home/swap
关闭#swapoff /home/swap

以oracle用户登录,开始安装:
#runInstaller在/u01/app/database下,因为刚才已经从root根目录下移了过来了,所以最好将用户组和权限更改一下,好执行安装程序

chown -R oracle:oinstall /u01/app
chmod -R 775 /u01/app
cd /u01/app/database ./runInstaller 

三、开始安装

1、没有账号不用选,弹出直接确认

 

 

2、 仅安装软件,一会再安装数据库

 

3、安装桌面类还是服务器类,虚拟器安装的桌面类,生产环境用服务器类

 

4、企业版

 

5、oracle基本配置 和密码  环境变量配置的是什么这里就是什么

6、产品清单目录 没有目录的话创建一个  注意给目录权限

7、先决条件检查,检查内存和用户组

8、概要再检查一遍之后安装

9、安装

10、 如果出现如图情况,先不要着急的点OK,需要用 root 用户执行如图提示的两条命令,执行完后再点OK

11、软件安装成功,整个过程大约半个多小时

 点击关闭

 

四、配置监听

[oracle@localhost database]$netca 

 

如果出现图中情况说明未设置显示环境变量

更改环境变量并检验是否能访问到
[oracle@oracle38 root]$ source ~/.bash_profile
[oracle@oracle38 root]$ echo $ORACLE_HOME
/u01/app/oracle/product/12.2.0/dbhome_1

 

1、启动完成后进入到窗口页面,选择第一项,配置监听

 

这里选择添加监听

这里选择监听名字,默认的就行

 

这里是监听所遵循的协议,默认也行

 

 

 

这里是监听的端口号,默认是1521,如果想更改也可以使用其它端口

 

 

创建完成会提示是否需要继续创建下一个监听,这里直接点击取消就行

Linux/Unix下,启动监听器:
# lsnrctl start
关闭监听器:
# lsnrctl stop
查看监听状态:
# lsnrctl status

五、使用dbca创建数据库实例

1、创建数据库

2、创建默认的还是高级模式的,选择高级模式

 

3、数据库用途

  • 一般事务处理OLTP(联机事务处理):许多并发用户执行许多需要快速访问数据的事务。可用性、速度、并发性和可恢复性是关键问题。特点,一般数据量小,DML频繁。
  • 定制数据库(Custom Database):此模板允许用户在定义数据库时具有最大的灵活性,用户可以更改正在创建的数据库的任何设置。
  • 数据仓库OLAP(联机分析处理):用户执行大量的复杂查询,处理大量数据。响应时间、准确性和可用性是关键问题。特点,数据量大,DML少。

4、全局数据库名,sid生产中应该改成特殊含义数据库名,单实例取消容器数据库

全局数据库名:是库名的完整名,数据库名+数据库域名。

select value$ from sys.props$ where name='GLOBAL_DB_NAME';

sid:数据库与系统交互时使用的环境变量,是数据库实例名。

 5存储选项

1、ASM即自存储管理。它以平台无关的方式提供了文件系统、逻辑卷管理器以及软件 RAID(磁盘阵列) 等服务。grid时候采用

2、OMF即Oracle文件管理。简单的说,OMF能够自动的创建文件和删除文件,能够遵循一个规则自动的为文件命名,从而减少DBA的管理任务。

 

 

 

6、快速恢复选项

 

7、监听刚才已经配置 直接下一步

 

8、 配置data vault选项

Oracle Database Vault帮助客户保护敏感信息免遭内部威胁,并实施分责指令,要求敏感任务由多人完成。该产品灵活的安全控制功能还可帮助客户实施对数据访问的递增限制,即使对常规用户也可以这么做。这些控制功能不影响数据库性能,无需改变现有应用或管理员的日常职责。

相关学习

https://blog.csdn.net/moscot_wu/article/details/56844223

 9、配置内存,使用共享内存管理机制

 

sga=memory*0.8*0.8
pga=memory*0.8*0.2

SGA、PGA的分配原则
OLTP:SGA=系统内存*0.56,PGA=SGA*(0.1~0.2)
OLAP:SGA=系统内存*0.48,PGA=SGA*(0.45~0.65)

进程数:

10、配置emc端口,即web访问端口

11、配置口令

12、创建oracle脚本没有直接下一步

 13、概要,完成后安装

14、安装完成  关闭

oracle 自动启动、停止脚本设置 

修改/etc/oratab,增加 oradb:/opt/u01/app/oracle/product/9.2.0.4:Y
Sid:Oracle_home:Y
如果没有,说明 oracle 安装时,oracle 缺乏对文件夹 etc 的权限。
可以用 root 用户登陆,执行$oracle_home/root.sh 和 app/*root.sh 下面有个的文件


安装遇到的问题

bash: xhost: 未找到命令
https://www.pianshen.com/article/4906304025/


Linux: bash: vncserver: command not found
https://blog.csdn.net/suchenbin/article/details/96449708

linux--解决xhost: unable to open display
http://blog.itpub.net/8477629/viewspace-713485/


oracle12安装 图形安装
http://www.linuxboy.net/linuxjc/152528.html
https://www.ddpool.cn/article/34314.html


Oracle12c安装(centos静默安装)
https://blog.csdn.net/ql1053927633/article/details/106378768

错误:

 

 原因oracle 监听没有运行或者oracle实例没有运行


oracle监听
https://www.cnblogs.com/lcword/p/8231908.html

1.lsnrctl start
会看到启动成功的界面;

1.lsnrctl stop
停止监听器命令.

1.lsnrctl status
查看监听器命令.

yum install tigervnc-server
vncserver


oracle连接命令
sqlplus

oracle 默认端口1521


步骤 开启监听 登录工具 sysdba连接数据库 开启实例

lsnrctl start
sqlplus /nolog
conn / as sysdba
startup

 

动态注册监听

SQL> alter system register

  1. 如果是先启动监听,后启动数据库实例,则动态监听会自动识别到启动的数据库实例;
  2. 在数据库实例正常运行的情况下重启监听,则实例会等很长时间才能在动态监听中注册成功,大约需要1分钟的等待时间;
  3. 如果是先启动数据库实例,后启动监听,效果和②一样;
  4. 如果不希望长时间等待动态监听注册的过程,可以使用“alter system register;”命令加速。