oracle 数据库RPM安装方式

Wesley13
• 阅读 666

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

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Easter79 Easter79
3年前
swap空间的增减方法
(1)增大swap空间去激活swap交换区:swapoff v /dev/vg00/lvswap扩展交换lv:lvextend L 10G /dev/vg00/lvswap重新生成swap交换区:mkswap /dev/vg00/lvswap激活新生成的交换区:swapon v /dev/vg00/lvswap
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
待兔 待兔
4个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Jacquelyn38 Jacquelyn38
3年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Wesley13 Wesley13
3年前
Java获得今日零时零分零秒的时间(Date型)
publicDatezeroTime()throwsParseException{    DatetimenewDate();    SimpleDateFormatsimpnewSimpleDateFormat("yyyyMMdd00:00:00");    SimpleDateFormatsimp2newS
Wesley13 Wesley13
3年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
3年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Stella981 Stella981
3年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
10个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这