CentOS7.4最详细的图形化安装Oracle12C

1. 系统要求

官方建议内存空间至少1G,交换分区应为内存空间2倍以上
在这里插入图片描述

2. 调整swap分区大小(若满足,忽略此步)

2.1 查看swap分区

free -m

在这里插入图片描述

2.2 创建swap文件,增加交换空间

# dd if=/dev/zero of=/usr/swapfree bs=1024 count=2048000

在这里插入图片描述

2.3 格式化及启动swap文件

mkswap /usr/swapfree  # (将文件格式化为swap文件格式)
swapon /usr/swapfree   #(启动swap交换分区) 要停止使用新创建的swap文件,只要执行 swapoff /tmp/swapfree命令即可,如果swap交换文件不再使用,可以删除此文件。
swappon -s     		# 检查swap

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.4 设置开机自启新添加的swap分区

/usr/swapfree swap swap defaults 0 0 #  (开机时启动此swap文件)在/etc/fstab文件加一行

在这里插入图片描述

重启确认

在这里插入图片描述
说明:通常Swap空间的大小应是物理内存的2-2.5倍,特别是数据库服务器和Web服务器,随着访问量的增加,对Swap空间的要求也会增加

3. 关闭防火墙以及Selinux

systemctl stop firewalld.service #--关闭防火墙
systemctl disable firewalld.service #-- 禁止防火墙开机启动
systemctl status firewalld.service  #-- 查看防火墙状态
# vi /etc/selinux/config 
SELINUX=disabled  # 关闭selinux
# 添加本地解析  (非必须)

Oracle为主机名

4. yum安装必要安装包

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

4.1 检查后安装

1)Centos7.4.1检查安装oracle12c的依赖结果:
compat-libstdc++和ksh无安装信息(compat-libstdc++ ksh本地镜像没有,不能挂载,可以到此链接下载rpm包进行安装)下载地址
2) 如果其他centso版本检查到安装oracle12c前缺失unixODBC-devel和glibc,也无Internet环境,可挂载本地镜像安装

4.1.1. 挂载安装示例:

1)挂载安装unixODBC-devel和glibc 1) 新建挂载目录 /Centos7.4
2) 镜像默认存在于/dev/sr0,执行挂载[root@oracle /]# mount /dev/sr0 /Centos7.4/ /Centos7.4下ls下可见
3) cd /etc/yum.repos.d/ 进去此目录,删除目录下的所有文件
4) cd /etc/yum.repos.d/目录新建文件:yum.repo
5)vi /etc/yum.repos.d/yum.repo新增以下内容(/Centos7.4是挂载目录) [Centos7.4]
name=Centos7.4 baseurl=file:///Centos7.4 gpgcheck=0
6) 生成 本地yum 缓存
执行 yum clean all(清除缓存) yum makecache(建立新缓存)
7)yum install package
8)卸载挂载 [root@oracle /]# umount /dev/sr0 /Centos7.4/
9)执行安装:yum localinstall xxx.rpm
10)安装检查,全部通过
在这里插入图片描述

4.2 关闭透明大页

	在Linux6.x之后的平台,在安装Oracle数据库的时候都建议关闭透明大页

5. 调整系统内核参数

5.1修改内核参数

#vim /etc/sysctl.conf
#异步IO请求数目 推荐值是:1048576 其实它等于 1024*1024 也就是 1024K 个
fs.aio-max-nr = 1048576
#打开的文件句柄的最大数量,防止文件描述符耗尽的问题
fs.file-max = 6815744
#共享内存总量 页为单位,内存除以4K所得
kernel.shmall =4194304
#单个共享内存段的最大值
kernel.shmmax = 8589934592      1/2物理内存大小
#共享内存段的最小数量缺省值4096
kernel.shmmni = 4096     
kernel.sem = 250 32000 100 128
#SEMMSL: 每个信号集的最大信号数量 ,(Oracle建议其值不少于100.)
#SEMMNS:用于控制整个 Linux 系统中信号的最大数
#SEMOPM: 内核参数用于控制每个 semop 系统调用可以执行的信号操作的数量 (Oracle建议其值不少于100.)
#SEMMNI :内核参数用于控制整个 Linux 系统中信号集的最大数量(Oracle建议其值不少于100.)
#用于向外连接的端口范围
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#加载配置文件

5.2. 重要参数说明

1)kernel.shmall:共享内存页数的最大值
Linux共享内存页大小为4KB,共享内存段的大小都是共享内存页大小的整数倍。一个共享内存段的最大值可以设置为16G,比如16G内存,则对应需要共享内存页数为16GB/4KB=16777216KB/4k(getconf
PAGESIZE可得到)= 4194304(页) 2) kernel.shmmax:单个共享内存段的最大值
Shmma设置应足够大,设置过低可能导致需要创建多个共享内存段,导致系统性能下降,一般情况下,设置最大共享内存为物理内存的一半,如物理内存是2G,则可以设置最大共享内存为110241024*1024
= 1073741824,以此类推, kernel.shmmax= 8589934592 kernel.shmall=4194304

6. 用户及安装目录配置

6.1. 新建oinstall,dba组

#groupadd oinstall
#groupadd dba

6.2. 新建该组的用户oracle

useradd –g oinstall –G dba oracle
passwd oracle 修改主机oracle用户的密码
# 说明:
# -g用户组 指定用户所属的用户组。
# -G用户组,用户组 指定用户所属的附加组。

6.3. 新建目录

mkdir -p /orc/app/oracle
mkdir /tmp/oracle_12c      #  //把安装包放到这个目录

6.4. 修改目录的属主,属组

chown -R oracle:oinstall /orc/app/

6.5. 修改oracle目录的权限

chmod -R 755 /orc/app/oracle/

7. Oracle用户环境配置

7.1. #vim /home/oracle/.bash_profile

#权限(反码)
umask 022
#oracle的BASE目录定义
ORACLE_BASE=/orc/app/oracle
#oracle的HOME目录定义
ORACLE_HOME=/orc/app/oracle/product/12.2.0/dbhome_1/
#设置SID
ORACLE_SID=orcl
#简体中文版
NLS_LANG="SIMPLIFIED CHINESE_CHINA".UTF8
#重新定义系统环境变量
PATH=$PATH:$HOME/.local/bin:$HOME/bin:$ORACLE_HOME/bin
#定义语系
LANG=zh_CN.UTF-8
#导入系统变量
export PATH LANG NLS_LANG ORACLE_BASE ORACLE_HOME ORACLE_SID

在这里插入图片描述

8. oracle用户资源限制使用pam_limits认证模块

8.1. vim /etc/pam.d/login

#在内容末尾添加以下两行数据
session required /lib/security/pam_limits.so
session required pam_limits.so

在这里插入图片描述

8.2. 编辑limits.conf配置

# vim /etc/security/limits.conf
#在内容末尾添加以下数据
#单用户可使用的进程数量
oracle soft nproc 2047
oracle hard nproc 16384
#用户可打开的文件数量
oracle soft nofile 1024
oracle hard nofile 65536
#堆栈设置
oracle soft stack 10240

在这里插入图片描述

8.3. 编辑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 # 8.4.	使配置生效


在这里插入图片描述

9. 开始安装

远程图形化安装
如果没有安装图形界面,linux基础不好,建议先安装桌面环境,以便图形安装

yum grouplist
yum groupinstall -y "X Window System"
yum group install –y "GNOME Desktop"
yum install xterm
yum install xclock

更多参考

9.1. 配置xmanager(win远程)

需要在windows上面下载xmanager这个软件
Windows安装:http://www.xshellcn.com/
打开命令行:/usr/bin/xterm -ls -display $DISPLAY
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

9.2. 开始安装

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
 安装选项:仅安装数据库软件(选第一个可快捷安装,不用二次调起图形界面)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
说明:堆栈检测不能通过,经排查,在limits.conf中配置错误:错误原因是添加内容被注释,导致去掉注释,重新检测也未能通过,选中此时忽略,则可进入下一步
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

9.3. 配置监听

1) 打开终端,输入netca,自动调出配置界面
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
注意:安装完成之后你会发现没有sqlplus命令,这意味着使用命令行没有办法链接到数据库,此时就是环境变量没有配置(我已提交配置好了)。如果提前配置,则在本地可直接生效sqlplus命令,Crt终端工具连接需要手动激活用户环境变量(source /home/oracle/source .bash_profile),sqlplus命令才可生效。
在这里插入图片描述

9.4. 创建数据库

 打开终端,输入dbca,自动调出创建数据库配置界面
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
 自动内存管理最好启用,oracle会以当前分配的内存,根据实际需求,来分配SGA\PGA的最佳比例。否则如果由于某个池大小不足造成数据库性能出现问题,还需要人为调整,很麻烦(swap大于8G,此处不可调整)
扩展:
1.确定sga pga内存大小:
SHOW PARAMETER TARGET
2.确定自数据库启动以来pga最大的使用大小:
select value from v$pgastat where name=‘maximum PGA allocated’;
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

9.5. 启动监听及数据库

9.5.1. 启动监听

若安装过程配置监听已经启动,则忽略

[oracle]$ lsnrctl start/status/stop

在这里插入图片描述

9.5.2. 启动/关闭数据库

 startup

在这里插入图片描述
当启动报ORA-00443: background process “GEN1” dit not start,重启,内存不足导致

SQL>shutdown nomal # (正常关闭方式)
SQL>shutdown immediate # (立即关闭方式)
SQL>shutdown transactional # (事务关闭方式)

在这里插入图片描述

本地以sqlplus / as sysdba方式登录时,采用的是操作系统验证的方式,所以用户名/密码输与不输入是一样的。
oracle数据库登录认证的2种方式
1、操作系统认证:也叫本地认证,oracle认为操作系统是可靠的,只要能登录到操作系统,就能访问数据库。安装oracle时默认的就是这种认证方式
这种情况下,任何用户密码以sysdba角色都可以连接数据库,实际上都是作为sys登录的
2、口令文件认证:oracle认为操作系统是不可靠的,若要访问数据库,必须要输入用户密码

10. 查看新建的数据库

10.1. 连接数据库

在这里插入图片描述

10.2. 查看数据库是否为CDB

SQL> select name, decode(cdb, 'YES', 'Multitenant Option enabled', 'Regular 12c Database: ') "Multitenant Option" , open_mode, con_id from v$database;

在这里插入图片描述
YES表示该数据库是CDB,如果是NO表示是NO-CDB(普通数据库)

10.3. 查看当前容器(Container)

在这里插入图片描述

11. Oracle12c 创建用户、授权

12c推出了可插拔库,管理用户也分为两种:本地用户和公用用户
本地用户是指在插拔数据库(PDB)中的用户,和12c之前的版本没有什么区别。公用用户只存在于可插拔环境中,在传统的数据库环境中不存在这种应用。怎么理解公用用户呢?可以简单的把它当做容器(CDB)用户,可以在各个通用与所有可插拔数据库(PDB)中使用。这个用户就像是小区的物业管理员,由小区物业来任命并且可以管理小区所有用户。
如果第一次登录CDB数据库,用传统方式创建用户会报错,这就是因为在CDB环境创建的用户为公共用户,语法和普通用户不同

11.1. 创建公用用户

创建用户:create user c##xjcx identified by xjcx;
在这里插入图片描述
说明:公用用户需要使用C##或者c##作为该用户名的开头
注意:sysdba身份登录进入数据库
如果使用传统创建用户的方法会报错

SQL > create user xjcx identified by xjcx;
create user xjcx identified by xjcx
ERROR at line 1:
ORA-65096: invalid common user or role name

此疑惑参阅 链接

11.2. 授权

11.2.1. 所有授权

给用户赋予所有权限:grant connect,resource,dba to 用户名;

提示:可通过登录web可视化管理页面授权https://x.x.x.x:5500/em/

11.2.2. 细化授权(若无要求,忽略此步骤)

因为新建的用户和默认的用户是锁住的,没有权限。所以新建用户后要给用户赋予权限。 1) 给用户赋予登录的权限:grant create
session to 用户名 2) 给用户赋予表操作的权限:grant create table to用户名(包含有create
index权限, alter table, drop table权限) 3) 给用户赋予表空间操作的权限:grant unlimited
tablespace to用户名 4) 给该用户赋予访问任务表的权限:grant select any table to
用户名(同理可以赋予update和delete) 5) 给c##xjcx用户赋予xxx用户的a表的查询的权限: 例如:grant
select on xxx.a to c##xjcx(同理可以有alter,drop,insert等权限) 6) 更多赋权参考:
https://www.cnblogs.com/lanqingzhou/p/8145272.html

11.3. 验证

11.3.1. 创建表空间

create table t_couse(      couseid     number(10)   primary key,      cousename   varchar2(20) not null,      cousetype   varchar2(4) );

11.3.2. 插入表数据

  1. 插入
insert into t_couse(couseid, cousename, cousetype)values ('3', '张三' ,'0');

2)提交:commit;

11.3.3. 验证表数据

验证新插入的表的数据:新建一个连接窗口,查看是否插入成功,并查看插入的中文是否乱码

12. Web登录Oracle管理页面

https://192.168.1.xx:5500/em
在这里插入图片描述
在这里插入图片描述

13. 常见问题

13.1. 普通用户登录

1)数据库普通用户登录数据库,当提示下图,数据库实例未启动,oracle用户使用sysdba登录登录启动即可。
在这里插入图片描述

13.2. 新建用户第一次操作数据库

1)在用PL/SQL进行登录时,出现:”ora-01045 :user system lacks create session privilege; logon denied”
原因:该用户没有创建session会话的权限

grant create session to UserName;(UserName是登录出错的用户名)

在这里插入图片描述
2)如果以创建的用户登录,创建表,提示权限不足,则再次赋予创建表的权限

grant create session,create table to username;

3)给创建的表插入表数据,提示ORA-01950: 对表空间 ‘USERS’ 无权限,sys用户执行

grant resource,connect to username;

在这里插入图片描述
说明:connect是赋予连接数据库的权限,resource 是赋予用户只可以创建实体但是没有创建数据结构的权限
5) 第三步出错,无要求,直接赋予dba权限!

grant dba to 用户名

更多参考 链接

其他

本地安装调不起图形界面
Xdpyinfo|grep local查看下
Export DISPLAY=localhost:11.0
然后./runInstaller执行安装脚本即可调起图形界面

©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页