言成言成啊 | Kit Chen's Blog

CentOS8安装Oracle19c

发布于2021-09-08 21:29:46,更新于2024-09-30 15:40:01,标签:devops oracle  文章会持续修订,转载请注明来源地址:https://meethigher.top/blog

实在不想写这种无脑的教程,但是oracle的麻烦程度、官网文档的垃圾程度,真是让我这个小白上手太难了!

先展示一下官网的垃圾文档

本文参考文章

环境

服务器:CentOS8.4

数据库:oracle19c

下载

下载两个,一个preinstall,跟一个oracle

1
2
# 下载preinstall
wget http://yum.oracle.com/repo/OracleLinux/OL7/latest/x86_64/getPackage/oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm

下载Oracle19CDatabase Software Downloads | Oracle

密钥

GPG在Linux上的应用主要是实现官方发布的包的签名机制

GPG分为公钥及私钥

公钥:顾名思意,即可共享的密钥,主要用于验证私钥加密的数据及签名要发送给私钥方的数据

私钥:由本地保留的密钥,用于签名本地数据及验证用公钥签名的数据

实现原理(以Oralce签名为例):

  1. Oralce在发布其官方的RPM包时(如本地RHEL光盘及FTP空间包),会提供一个GPG密钥文件,即所谓的公钥

  2. 用户下载安装这个RPM包时,引入Oralce官方的这个RPM GPG公钥,用来验证RPM包是不是Oralce官方签名的

下载密钥

1
wget http://public-yum.oracle.com/RPM-GPG-KEY-oracle-ol7 -O /etc/pki/rpm-gpg/RPM-GPG-KEY-oracle

如果没有密钥,会报错。

安装

安装oracle所需要的依赖和仓库

1
2
3
4
cd /etc/yum.repos.d/
sudo curl -O http://yum.oracle.com/public-yum-ol7.repo
sudo dnf -y install oracle-database-preinstall-19c.x86_64
sudo dnf -y install libnsl

执行命令

1
yum install oracle-database-ee-19c-1.0-1.x86_64.rpm

会自动安装oracle需要的依赖。

初始化

创建自己的CDB初始化配置文件

复制一份Oracle样本配置,并打开

1
2
sudo cp /etc/init.d/oracledb_ORCLCDB-19c /etc/init.d/oracledb_JRMCDB-19c
sudo vi /etc/init.d/oracledb_JRMCDB-19c

主要是修改环境变量配置,如CDB,PDB等。

1
2
export ORACLE_SID=JRMCDB
export PDB_NAME=JRMPDB1

复制配置文件

1
2
sudo cp /etc/sysconfig/oracledb_ORCLCDB-19c.conf /etc/sysconfig/oracledb_JRMCDB-19c.conf
sudo vi /etc/sysconfig/oracledb_JRMCDB-19c.conf

因为只有一个Oracle SID实例,不会冲突,所以这里不改端口配置等。

配置并创建Oracle SID实例

配置oracle

1
sudo /etc/init.d/oracledb_JRMCDB-19c configure

如果看到以下这句话,就安装完成了。

连接

初次连接

安装成功oracle之后,会在主机上自动创建一个oracle账户。

修改oracle用户密码

1
passwd oracle

切换账户

1
su - oracle

加上-表示打印出上次操作的记录。

exit退回到root用户,配置环境变量

1
2
cd /etc/profile.d
vi oracle.sh

添加以下内容,至于NLS_LANG是为了避免控制台英文、中文输出?号。

1
2
3
4
export ORACLE_HOME=/opt/oracle/product/19c/dbhome_1
export PATH=$PATH:$ORACLE_HOME/bin
export ORACLE_SID=JRMCDB
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8

刷新环境变量

1
source /etc/profile

配置sqlnet.ora

1
vi $ORACLE_HOME/network/admin/sqlnet.ora

添加以下内容,这是表示允许8以上版本的连接工具,进行远程连接。

1
2
3
SQLNET.ALLOWED_LOGON_VERSION=8
SQLNET.ALLOWED_LOGON_VERSION_SERVER=8
SQLNET.ALLOWED_LOGON_VERSION_CLIENT=8

使用sysdba身份打开控制台

1
sqlplus / as sysdba

连接sysdba

1
conn / as sysdba

重启后启动数据库

重启后连接的操作跟上面一样,只不过要多两步

  1. 启动oracle监听
  2. 启动oracle

启动监听

1
lsnrctl start

启动数据库

1
startup

关闭数据库

1
shutdown immediate

添加用户

自从oracle12c开始,oracle引入了CDB和PDB的特性。

CDB叫Container Database,数据库容器;PDB叫Pluggable Database,可插拔数据库。CDB下面有多个PDB

添加CDB用户,也就是通用用户,需要在名称中加C##

1
2
-- 创建名称C##test,密码test的用户。
create user C##test identified by test;

授权

1
GRANT CREATE SESSION,CREATE TABLE,CREATE VIEW,CREATE PROCEDURE,CREATE SEQUENCE to C##test;

或者这种方式授权

1
grant connect,resource,dba to C##test;

Connect 角色,是授予最终用户的典型权利,最基本的权利,能够连接到ORACLE数据库中,并在对其他用户的表有访问权限时,做SELECT、UPDATE、INSERTT等操作。

  • Alter session–修改会话;

  • Create cluster–建立聚簇;

  • Create database link–建立数据库连接;

  • Create sequence–建立序列;

  • Create session–建立会话;

  • Create synonym–建立同义词;

  • Create view–建立视图。

Resource 角色,是授予开发人员的,能在自己的方案中创建表、序列、视图等。

  • Create cluster–建立聚簇;

  • Create procedure–建立过程;

  • Create sequence—建立序列;

  • Create table–建表;

  • Create trigger–建立促发器;

  • Create type–建立类型。

DBA角色,是授予系统管理员的,拥有该角色的用户就能成为系统管理员了,它拥有所有的系统权限。

创建PDB用户,需要先切换到PDB下,再创建用户。

1
2
3
alter session set container=JRMPDB1;
create user test identified by test;
GRANT CREATE SESSION,CREATE TABLE,CREATE VIEW,CREATE PROCEDURE,CREATE SEQUENCE to test;
发布:2021-09-08 21:29:46
修改:2024-09-30 15:40:01
链接:https://meethigher.top/blog/2021/oracle-install/
标签:devops oracle 
付款码 打赏 分享
Shift+Ctrl+1 可控制工具栏