oracle 数据库RPM安装方式

下载RPM包

Oracle Database Software Downloads 下载Linux x86-64 对应的RPM
oracle-database-ee-19c-1.0-1.x86_64.rpm
oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm
compat-libcap1-1.10-7.el7.x86_64.rpm
compat-libstdc++-33-3.2.3-72.el7.x86_64.rpm

安装

# 安装依赖组件
yum -y install libnsl 

cd 下载目录
yum -y install compat-libcap1-1.10-7.el7.x86_64.rpm
yum -y install compat-libstdc++-33-3.2.3-72.el7.x86_64.rpm
yum -y install oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm
yum -y install  oracle-database-ee-19c-1.0-1.x86_64.rpm

初始化

/etc/init.d/oracledb_ORCLCDB-19c configure

添加oracle环境变量

编辑 /etc/profile,添加如下内容

## ORACLE
export ORACLE_BASE=/opt/oracle
export ORACLE_HOME=/opt/oracle/product/19c/dbhome_1
export ORACLE_SID=ORCLCDB

export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:$ORACLE_HOME/bin

连接数据

su oracle
sqlplus / as sysdba
--  查看当前的所有数据库
select name from v$database;

-- 查看当前库结构
desc v$database;

-- 查看SID
select instance_name from v$instance;

-- 查看服务名
select name from dba_services;

-- 查看当前库的所有数据表
select TABLE_NAME from all_tables;

-- 查看用户
select * from dba_users; --查看数据库里面所有用户,前提是你是有dba权限的帐号,如sys,system
select * from all_users;  --查看你能管理的所有用户!
select * from user_users; --查看当前用户信息 !

-- 创建用户
create user 用户名 identified by 密码;
/*
common user:公共用户名必须以C##或c##开头。公共用户可以访问全部CDB

local user: 本地用户不能以C##或c##开头。本地用户只能访问特定的PDB
*/

-- 给用户修改密码,密码不能以数字开头
alter user 用户名 identified by 新密码;


-- 给用户分配权限
grant create 权限 to 用户名;

/*
create session(登录权限)
create table(创建表权限)
create index(创建索引权限)
create view(创建视图权限)
create sequence(创建序列权限)
create trriger(创建触发器权限)
insert: 增
delete: 删
update: 改
select: 查
*/

-- 按角色对用户分配权限
grant 角色名 to 用户名;

/*
常见角色:
dba、connect、resource


-- connect角色
是授予最终用户的典型权利,最基本的权利,能够连接到Oracle数据库中,并在对其他用户的表有访问权限时,做SELECT、UPDATE、INSERTT等操作。
alter session --修改会话
create cluster --建立聚簇
create database link --建立数据库连接
create sequence --建立序列
create session --建立会话
create synonym --建立同义词
create view --建立视图

-- resoure角色
是授予开发人员的,能在自己的方案中创建表、序列、视图等。
create cluster --建立聚簇
create procedure --建立过程
create sequenc --建立序列
create table --建表
create trigger --建立促发器
create type --建立类型

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


-- 回收权限
revoke 权限/角色 from 用户名;
-- 创建表
CREATE TABLE STUINFO (
    id NUMBER(5) PRIMARY KEY,
    name VARCHAR2(7) NOT NULL,
    age NUMBER(2) NULL,
    sex CHAR(1) NULL,
    grade CHAR(4) NULL 
)

-- 插入一条记录
INSERT INTO STUINFO (ID, NAME, AGE, SEX, GRADE) VALUES
(1, 'lily', 12, 'f', 'c6');

-- 批量插入
INSERT ALL
	INTO STUINFO VALUES(2, 'kemen', 12, 'm', 'c6') 
	INTO STUINFO VALUES(3, 'kaka', 11, 'm', 'c5')
	INTO STUINFO VALUES(4, 'daly', 13, 'f', 'c6')
select 1 from dual;

SELECT * from STUINFO;

设置oracle服务自启

已经提供一个服务控制脚本:/etc/init.d/oracledb_ORCLCDB-19c
名字太长,可以改为:/etc/init.d/oracle

  • 配置 /etc/oratab
    下面这行的 "N" 改为"Y"
ORCLCDB:/opt/oracle/product/19c/dbhome_1:Y
  • 添加到系统服务
chkconfig --add oracle
# 可以看到生成的启动脚本
cat /run/systemd/generator.late/graphical.target.wants/oracle.service 

# Automatically generated by systemd-sysv-generator

[Unit]
Documentation=man:systemd-sysv-generator(8)
SourcePath=/etc/rc.d/init.d/oracle
Description=SYSV: This script is responsible for taking care of configuring the Oracle Database and its associated services.
Before=multi-user.target
Before=multi-user.target
Before=multi-user.target
Before=graphical.target

[Service]
Type=forking
Restart=no
TimeoutSec=5min
IgnoreSIGPIPE=no
KillMode=process
GuessMainPID=no
RemainAfterExit=yes
ExecStart=/etc/rc.d/init.d/oracle start
ExecStop=/etc/rc.d/init.d/oracle stop

其它

lsnrctl是oracle的监听器,
lsnrctl start
lsnrctl stop
lsnrctl satus

  • 手动正常关闭oracle服务方法:
su oracle
sqlplus / as sysdba

shutdown immediate;
原文地址:https://www.cnblogs.com/linkenpark/p/11896139.html