目录

前言

1.环境准备

2.系统要求

2.1.查看磁盘大小

2.2.查看交换分区大小

3.关闭防火墙以及Selinux

4.yum安装必要安装包

5.调整系统内核参数

6.用户及安装目录配置

6.1.新建oinstall,dba,oper组

6.2.新建目录

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

6.4.修改oracle目录的权限

6.5.上传oracle12包并解压

7.Oracle用户环境配置

7.1.修改oracle环境变量

7.2.修改pam_limits认证模块

7.3.编辑limits.conf配置 

7.4.编辑profile文件

8.开始安装

9.配置xmanager

9.1.解决安装Oracle12c时中文方块字

10. 配置监听

10.创建数据库

10. 启动监听及数据库

10.1.启动监听

10.2.启动/关闭数据库

10.3.查看数据库是否为CDB

10.4.查看当前容器(Container)

11.Oracle12c 创建用户、授权

11.1. 创建公用用户

11.2.授权

11.2.1.所有授权 

11.3.验证

11.3.1.创建表空间

11.3.2. 插入表数据

11.3.3. 验证表数据

​12. Web登录Oracle管理页面

13.常见问题

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

总结


前言

Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小微机环境。它是一种高效率的、可靠性好的、适应高吞吐量的数据库方案。




1.环境准备

centos 7、Xmanager Enterprise 5、zysong.ttf(字体)、oracle12c:

linuxamd64_12102_database_1of2.zip
linuxamd64_12102_database_2of2.zip



2.系统要求

官方建议内存空间至少1G,交换分区应为内存空间2倍以上

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



2.1.查看磁盘大小

df -h

2.2.查看交换分区大小

free -m

若不满足,需要修改交换分区大小



3.关闭防火墙以及Selinux

systemctl stop firewalld.service # 关闭防火墙
systemctl disable firewalld.service # 禁止防火墙开机启动
systemctl status firewalld.service  # 查看防火墙状态

vi /etc/selinux/config 
SELINUX=disabled  # 关闭selinux

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

 oracle 安装时先决条件检查会检测下面是否安装完成

 下载 compat-libstdc++-33-3.2.3-72.el7.x86_64.rpm

rpm -ivh compat-libstdc++-33-3.2.3-72.el7.x86_64.rpm --force --nodeps
yum install ksh
yum install libaio-devel

5.调整系统内核参数

vi /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#加载配置文件

1)kernel.shmall:共享内存页数的最大值
Linux共享内存页大小为4KB,共享内存段的大小都是共享内存页大小的整数倍。一个共享内存段的最大值可以设置为16G,比如16G内存,则对应需要共享内存页数为16GB/4KB=16777216KB/4k(getconfPAGESIZE可得到)= 4194304(页)

2) kernel.shmmax:单个共享内存段的最大值
Shmma设置应足够大,设置过低可能导致需要创建多个共享内存段,导致系统性能下降,一般情况下,设置最大共享内存为物理内存的一半,如物理内存是2G,则可以设置最大共享内存为110241024*1024
= 1073741824,以此类推, kernel.shmmax= 8589934592 kernel.shmall=4194304 

6.用户及安装目录配置

6.1.新建oinstall,dba,oper组

groupadd oinstall #添加组
groupadd dba #添加组
groupadd oper #添加组
useradd -g oinstall -G dba,oper oracle

passwd oracle #修改主机oracle用户的密码 默认123456

-g用户组 指定用户所属的用户组。
-G用户组,用户组 指定用户所属的附加组。

6.2.新建目录

mkdir -p /orc/app/oracle

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

chown -R oracle:oinstall /orc/app/

6.4.修改oracle目录的权限

chmod -R 755 /orc/app/oracle/

6.5.上传oracle12包并解压

su - oracle
mkdir tmp #把安装包放到这个目录
cd tmp
unzip linuxamd64_12102_database_1of2.zip
unzip linuxamd64_12102_database_2of2.zip

7.Oracle用户环境配置

7.1.修改oracle环境变量

su - oracle
vi /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

source  /home/oracle/.bash_profile

7.2.修改pam_limits认证模块

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

su - root
vi /etc/pam.d/login

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

7.3.编辑limits.conf配置 

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

7.4.编辑profile文件

vi /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.开始安装

root用户安装,yum group install –y "GNOME Desktop" 安装时间较久

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

9.配置xmanager

echo $LANG

oracle 用户下默认字符集LANG=zh_CN.UTF-8

打开xmanager下的xstart,配置下面信息

/usr/bin/xterm -ls -display $DISPLAY

9.1.解决安装Oracle12c时中文方块字

在运行./runInstaller的时候会自动生成一个目录stage

cd /home/oracle/tmp/database/stage/Components/oracle.jdk/1.6.0.75.0/1/DataFiles
unzip filegroup2.jar
cd jdk/jre/lib/fonts
mkdir fallback #上传zysong.ttf 字体文件到fallback下面
cd /home/oracle/tmp/database/stage/Components/oracle.jdk/1.6.0.75.0/1/DataFiles
zip -r filegroup2.jar jdk/

 再次执行Xstart 中运行按钮

 安装选项:仅安装数据库软件(选第一个可快捷安装,不用二次调起图形界面)

 

 

 

 

 

 

 

10. 配置监听

1) 打开终端,输入netca,自动调出配置界面

 

 

 

 

 

 

 

 c

 

 

 

 

10.创建数据库

1)打开终端,输入dbca,自动调出创建数据库配置界面

 

 

 

 

 

 

 


10. 启动监听及数据库
 

10.1.启动监听

lsnrctl status //查看监听器的状态
lsnrctl start //启动监听器
lsnrctl stop //关闭监听器

10.2.启动/关闭数据库

sqlplus / as sysdba
startup
shutdown immediate

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

10.3.查看数据库是否为CDB

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.4.查看当前容器(Container)

show con_name

11.Oracle12c 创建用户、授权

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

11.1. 创建公用用户

说明:公用用户需要使用C##或者c##作为该用户名的开头
注意:sysdba身份登录进入数据库
如果使用传统创建用户的方法会报错

create user c##kmhd identified by kmhd; 

11.2.授权

11.2.1.所有授权 

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




提示:可通过登录web可视化管理页面授权https://x.x.x.x:5500/em/因为新建的用户和默认的用户是锁住的,没有权限。所以新建用户后要给用户赋予权限。 
1) 给用户赋予登录的权限:grant createsession 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##kmhd用户赋予xxx用户的a表的查询的权限: 例如:grant
select on xxx.a to c##kmhd(同理可以有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. 插入表数据

insert into t_couse(couseid, cousename, cousetype)values ('3', '张三' ,'0');
commit;

11.3.3. 验证表数据


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

select * from t_couse;


12. Web登录Oracle管理页面


https://192.168.56.xx:5500/em

用户sys/Admin123

13.常见问题

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

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 是赋予用户只可以创建实体但是没有创建数据结构的权限
4) 第三步出错,无要求,直接赋予dba权限!

grant dba to 用户名




总结

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐