下载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;