Bootstrap

Linux系统安装使用Oracle 18c

本文参考内容:

【Oracle 18c rpm 安装及解析安装过程】Oracle 18c rpm 安装及解析安装过程_ITPUB博客

【CentOS7.6 安装Oracle18c RPM】CentOS7.6 安装Oracle18c RPM|vOS

需求:在服务器的Linux系统上安装Oracle 18c

使用工具:MobaXterm_Personal_21.5 【远程连接工具】、DBeaver【数据库可视化工具】

查看centOS版本:

[root@db-t-3 ~]# cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)

查看磁盘空间:

df -h

安装使用的RPM:

oracle-database-preinstall-18c-1.0-1.el7.x86_64.rpm  官网链接

oracle-database-ee-18c-1.0-1.x86_64.rpm  官网链接

第二个RPM的官网链接可能下载不了,分享一下百度网盘链接:

链接:https://pan.baidu.com/s/1aTgg4zMHjjnb52RzAYqzzQ 
提取码:1ex9 

关闭防火墙/SELINUX:

[root@db-t-3 ~]# systemctl stop firewalld
[root@db-t-3 ~]# systemctl disable firewalld
[root@db-t-3 ~]# vim /etc/selinux/config

setenforce 0
getenforce

Permissive

创建oracle用户方便管理(也是为了更加安全):

[root@db-t-3 ~]# /usr/sbin/groupadd -g 501 oinstall
[root@db-t-3 ~]# /usr/sbin/groupadd -g 502 dba
[root@db-t-3 ~]# /usr/sbin/groupadd -g 503 oper
[root@db-t-3 ~]# /usr/sbin/useradd -u 501 -g oinstall -G dba,oper oracle
passwd oracle

会输入两遍密码,注意不要忘记设置的oracle用户的密码

配置oracle 18c的安装环境:

[root@db-t-3 ~]# yum -y localinstall oracle-database-xe-18c-1.0-1.x86_64.rpm

出现以下结果说明安装成功:

*注意,这一步可能报错,如果出现以下报错需要提前安装一些依赖再执行:

[root@db-t-3 ~]# yum -y install xorg-x11-xauth xorg-x11-utils libstdc++-devel libaio-devel ksh compat-libstdc++-33 compat-libcap1

下载安装oracle 18数据库:

默认安装到目录/opt/oracle/product/18c/dbhome_1

自动创建一个CDB (ORCLCDB) 、一个PDB (ORCLPDB1) 并且配置一个listener默认端口是1521

[root@db-t-3 ~]# yum -y localinstall oracle-database-ee-18c-1.0-1.x86_64.rpm

出现以下结果说明安装成功:

 查看监听端口:

[root@db-t-3 ~]# cat /etc/sysconfig/oracledb_ORCLCDB-18c.conf

默认监听端口为1521

创建oracle数据库:

[root@db-t-3 ~]# /etc/init.d/oracledb_ORCLCDB-18c configure

查看oracle数据库的大小:

[root@db-t-3 ~]# du -sh /opt/

 给用户授权:

#切换用户
[root@db-t-3 ~]# su - oracle

#给oracle用户授权
[oracle@db-t-3 ~]$ sudo chmod -R 777 /opt/oracle
#-R:是指目录里所有子目录和文件
#777:是指拥有的最高权限

配置用户文件:

[oracle@db-t-3 ~]$ vi .bash_profile

添加内容:

###在末尾插入###
export ORACLE_SID=ORCLCDB 
####根据需求填写实际的sid,我的这个是系统默认的CDB(数据库容器),不是PDB
export ORACLE_BASE=/opt/oracle/oradata
### 这是数据库默认物理存储文件的目录,
export ORACLE_HOME=/opt/oracle/product/18c/dbhome_1
#### 这是数据库默认的运行命令目录
export PATH=$PATH:$ORACLE_HOME/bin
#### 这是数据库默认的运行目录
umask 022 
###权限掩码,新建文件权限为664,即-rw-rw-r–, 新建目录权限为775,即drwxrwxr-x

执行source .bash_profile重置用户环境变量

开启监听:

[oracle@db-t-3 ~]$ lsnrctl start

[oracle@db-t-3 ~]$ lsnrctl status #查看监听状态
[oracle@db-t-3 ~]$ sqlplus / as sysdba#使用sysdba用户登陆数据库

#测试
SQL> select banner from sys.v_$version;
SQL> select * from v$version;

修改数据库用户的密码:

#用sysdba账号登陆数据库(sys账号无法登陆,只能用sysdba)
[oracle@db-t-3 ~]$ sqlplus / as sysdba

SQL> startup #启动数据库实例
SQL> alter user system identified by oracle; #将system用户的密码改为oracle
SQL> alter user sys identified by oracle; #将sys用户的密码改为oracle

关于PDB:

参考内容:ORACLE 12C新特性——CDB与PDB - 潇湘隐者 - 博客园 (cnblogs.com)

Oracle 12C引入了CDB与PDB的新特性,在ORACLE 12C数据库引入的多租用户环境(Multitenant Environment)中,允许一个数据库容器(CDB)承载多个可插拔数据库(PDB)。CDB全称为Container Database,中文翻译为数据库容器,PDB全称为Pluggable Database,即可插拔数据库。在ORACLE 12C之前,实例与数据库是一对一或多对一关系(RAC):即一个实例只能与一个数据库相关联,数据库可以被多个实例所加载。而实例与数据库不可能是一对多的关系。当进入ORACLE 12C后,实例与数据库可以是一对多的关系。下面是官方文档关于CDB与PDB的关系图。

只能在PDB中创建表空间

创建PDB:

SQL> create pluggable database pdb1 
admin user aaa identified by bbb 
roles=(dba) 
file_name_convert=('/opt/oracle/oradata/ORCLCDB/pdbseed','/opt/oracle/oradata/pdb1');

#PDB的名称为pdb1
#用户名:aaa,密码:bbb
# roles=(dba)给aaa用户赋予管理员权限
# file_name_convert通过复制seed模板创建PDB,一个是模板的位置,一个是粘贴的地址

PDB与CDP切换

SQL> show pdbs;#展示pdb数据库集合
SQL> alter session set container=PDB1;#切入到PDB数据库
SQL> alter session set container=CDB$ROOT;#切回CDB数据库

创建用户,分配角色(用户xyx1,密码xyx1)

SQL> create user xyx1 identified by xyx1;
SQL> grant create session to xyx1;
SQL> grant create table to xyx1;
SQL> grant create tablespace to xyx1;
SQL> grant create view to xyx1;
SQL> grant connect,resource to xyx1;

创建表空间

SQL> create tablespace xyx1 
datafile '/opt/oracle/oradata/pdb1/xyx1/xyx1.dbf' 
size 100m autoextend on next 10m;

# create tablespace 表空间 datafile 数据库文件路径 size 大小 autoextend on next 自动增长;

将用户和表空间关联

SQL> alter user xyx1 default tablespace xyx1;
SQL> grant unlimited tablespace to xyx1;

使用dbeaver连接数据库:

用户名和密码都为xyx1

创建表:

 关于大小写敏感问题的配置:

SQL> show parameter sensitive

sec_case_sensitive_logon,会控制用户密码的大小写敏感不敏感,默认为ture,密码大小写敏感,如果改为false,则为不敏感。

除此之外,oracle中存储的数据大小写敏感,表名、列名在创建和查询的时候加双引号敏感,不加双引号不敏感,没有找到相关配置文件。

;