docker 安装oracle19c linux命令执行sql

news2024/11/17 7:40:10

docker安装oracle

# 下载镜像 19.3.0.0.0
docker pull registry.cn-hangzhou.aliyuncs.com/laowu/oracle:19c
# 创建文件
mkdir -p /home/mymount/oracle19c/oradata
# 授权,不授权会导致后面安装失败
chmod 777 /home/mymount/oracle19c/oradata

docker run -d  \
-p 1521:1521 -p 5500:5500 \
-e ORACLE_SID=SID \
-e ORACLE_PDB=PDB \
-e ORACLE_PWD=123456 \
-e ORACLE_EDITION=standard \
-e ORACLE_CHARACTERSET=AL32UTF8 \
-v /mymount/oracle19c/oradata:/opt/oracle/oradata \
--name oracle19c \
registry.cn-hangzhou.aliyuncs.com/laowu/oracle:19c
# 查看日志,等待加载进度(初次加载比较慢)
docker  logs  -tf  oracle19c

# 等待过程可能会比较漫长,成功的日志:
#########################
DATABASE IS READY TO USE!
#########################
# 连接数据库登录 默认账号密码:sys/123456
docker exec -it  oracle19c  /bin/bash
sqlplus sys/123456@localhost:1521/pdb as sysdba;

查看日志是否安装成功

docker logs -ft 容器名
docker logs -ft  orcl19c

在这里插入图片描述

docker container ls -a命令查看容器名

sys 用户登录容器

###  打开容器
docker exec -it  oracle19c  /bin/bash
sqlplus sys/123456@localhost:1521/pdb as sysdba;
show pdbs;

sys 用户登录容器创建表空间以及用户

-- 查询数据库实例的名称,也就是 ORACLE_SID 的值  -- 默认是 xe
SELECT name FROM v$database;
-- 查看oracle现在的状态 ,状态为 OPEN 则正常
select status from v$instance;  

-- 查看所有表空间(相当于mysql中的库)
SELECT name FROM v$tablespace;
-- 创建表空间
-- mkdir -p /home/oracle/escdb
-- chmod 777  /home/oracle/escdb
sqlplus sys/123456@localhost:1521/pdb as sysdba;
CREATE TABLESPACE idm_spc  DATAFILE '/opt/oracle/oradata/SID/PDB/idm_spc.dbf' SIZE 100M AUTOEXTEND ON MAXSIZE  500M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 1M;

-- 查询所有用户名
-- select username from all_users;
select username from user_users;
-- 创建用户
CREATE USER IAM IDENTIFIED BY 123456  DEFAULT TABLESPACE idm_spc;
-- 分配角色
GRANT CONNECT, RESOURCE TO IAM;

-- 退出后登录,普通用户不需要指定角色类型
sqlplus iam/123456@localhost:1521/pdb; 

建表

(复制sql,替换表名执行完毕后,再修改自己想要的字段即可)

-- 查看当前数据库中用户的所有表
-- SELECT table_name FROM user_tables;

-- 创建表
CREATE TABLE IAM.test_table (
  id NUMBER(10,0) VISIBLE NOT NULL,
  name VARCHAR2(255 BYTE) VISIBLE,
  create_time TIMESTAMP(6) VISIBLE DEFAULT CURRENT_TIMESTAMP NOT NULL,
  update_time TIMESTAMP(6) VISIBLE DEFAULT CURRENT_TIMESTAMP NOT NULL,
  del NUMBER(1,0) VISIBLE DEFAULT 0 NOT NULL,
  primary key(id)
) TABLESPACE IDM_SPC;
-- 设置字段备注
COMMENT ON COLUMN IAM.test_table.id IS '主键id';
COMMENT ON COLUMN IAM.test_table.name IS '名称';
COMMENT ON COLUMN IAM.test_table.create_time IS '创建时间';
COMMENT ON COLUMN IAM.test_table.update_time IS '修改时间';
COMMENT ON COLUMN IAM.test_table.del IS '是否已删除 0:否    1:是';
-- 设置主键自增 表名:test_table  (主键已存在就不需要再创建,在创建报错,可以跳过这步操作)
-- alter table test_table add constraint id primary key (id);
-- 自定义序列名 test_table_seq
create sequence test_table_seq
increment by 1 
start with 1 
nomaxvalue 
nominvalue 
nocache;
-- 创建触发器
create or replace trigger test_table_seq  
before insert on test_table for each row 
begin 
        select test_table_seq.nextval into :new.id from dual; 
end;

以下是docker 安装oracle常用命令

什么是pdb数据库?什么是CDB?
参照https://blog.csdn.net/weixin_39876739/article/details/111605869

如何切换PDB数据库

1. 用sys用户登录数据库
2.  show con_name;
3. 3、 执行select name,open_mode from v$pdbs;

在这里插入图片描述

切换为pdb数据库

 alter session set container=ORCLPDB;

在这里插入图片描述

查找用户

select userName from dba_users;

查看有哪些表空间

select tableSpace_name from Dba_tablespaces;

删除用户以及表结构(参照:https://blog.csdn.net/daxiang52/article/details/50408312)

drop user ZS_EDU cascade;

5 创建临时表空间

create temporary tablespace edu tempfile '/opt/oracle/oradata2' size 50m autoextend on next 50m maxsize 20480m extent management local;

在这里插入图片描述

6 创建表空间

create tablespace 表空间名称 logging datafile '数据存储路径' size 50m

autoextend on next 50m maxsize 20480m extent management local

=======================================
create tablespace edu1 logging datafile '/opt/oracle/oradata1' size 50m autoextend on next 50m maxsize 20480m extent management local;
删除表空间 Oracle删除表空间语法结构:(https://www.php.cn/faq/489137.html)
drop tablespace tab_name [including contents][cascade constraints]

案例、删除student表空间,并删除表空间的数据文件和完整性
drop tablespace student including contents cascade constraints;

在这里插入图片描述

7 创建用户并指定表空间

create user 用户名 identified by 密码 default tablespace 表空间名称 temporary tablespace 临时表空间名称;

create user ze_edu identified by zsShang886 default tablespace edu temporary tablespace eduTem;


在这里插入图片描述
在这里插入图片描述

8给用户授权

grant connect,resource,dba to 用户名;

9 用创建的用户名进行连接。

在这里插入图片描述

docker文件复制(参照https://blog.51cto.com/u_16175455/6724342)

docker cp /home/sql/ZS_EDU.sql oracle19c:/home

docker 执行sql文件

如果sql文件不在当前目录下,可以使用绝对路径:

>@D:/demo.sql

查看表空间有哪些表

select TABLE_NAME,TABLESPACE_NAME from dba_tables where TABLESPACE_NAME='表空间名';

docker 安装参照

https://blog.csdn.net/arcsin_/article/details/123707618
http://www.inspinia.net/a/14909.html?action=onClick(这个文章可以系统使得系统登陆)
https://blog.csdn.net/weixin_44032384/article/details/131404349(可以使得docker oracle执行sql)推荐这个老哥文章

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/906638.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

0基础学习VR全景平台篇 第88篇:智慧眼-成员管理

一、功能说明 成员管理,是指管理智慧眼项目的成员,拥有相关权限的人可以进行添加成员、分配成员角色、设置成员分类、修改成员以及删除成员五项操作。但是仅限于管理自己的下级成员,上级成员无权管理。 二、前台操作页面 登录智慧眼后台操…

JS中如何区分变量是数组还是对象

总结: 这里提供三种方法: var arr[] var arr2{}1、constructor:数组的constructor是function Array(){};对象的constructor是function Object(){}2、instanceof:数组 instanceof Array:为true;对象 instanceof Array: 为false;3、…

ICASSP 2023说话人识别方向论文合集

今年入选 ICASSP 2023 的论文中,说话人识别(声纹识别)方向约有64篇,初步划分为Speaker Verification(31篇)、Speaker Recognition(9篇)、Speaker Diarization(17篇&#…

GuLi商城-前端基础Vue指令-单向绑定双向绑定

什么是指令? 指令 (Directives) 是带有 v- 前缀的特殊特性。 指令特性的预期值是:单个 JavaScript 表达式。 指令的职责是,当表达式的值改变时,将其产生的连带影响,响应式地作用于DOM 例如我们在入门案例中的 v-on,代表绑定事…

IO多路复用(poll:与select类似,当监测的文件描述符有一个或多个就绪时,执行对应的IO操作

使用poll实现TCP循环服务器接收客户端消息并打印 服务器 客户端 写一个makefile方便使用 结果 笔记

611. 有效三角形的个数

611. 有效三角形的个数 原题链接:完成情况:解题思路:参考代码: 原题链接: 611. 有效三角形的个数 https://leetcode.cn/problems/valid-triangle-number/description/ 完成情况: 解题思路: …

第一篇:编写 Hello World 程序

编写 Hello World 程序 Hello World 程序就是让应用程序显示 Hello World 字符串。这是最简单的应用,但却包含了一个应用程序的基本要素,所以一般使用它来演示程序的创建过程。本章要讲的就是在Qt Creator 中创建一个图形用户界面的项目,从而…

什么是数字化?什么是数字化转型?为什么企业选择数字化转型?

数字化: 数字化是指将模拟信息或物理对象转换为数字格式的过程。这涉及将数据、文档、图像、视频和其他形式的信息转换为可以以电子方式处理、存储和传输的二进制代码。与传统的模拟方法相比,数字化可以更有效地存储、检索和操作数据。 数字化转型&…

3D医学教学虚拟仿真系统:身临其境感受人体结构和功能

3D医学教学虚拟仿真系统是一种基于虚拟现实技术的教学工具,它可以帮助学生更好地理解和掌握医学知识。这种课件通常包括人体解剖学、生理学、病理学等方面的教学内容,通过三维立体的图像和动画展示,让学生更加直观地了解人体结构和功能。 与传…

.IFC文件如何打开【在线工具】

IFC文件是以工业基础类(IFC)格式创建的模型文件,这是建筑信息模型(BIM)程序使用的开放文件格式。它包含建筑物或设施模型,包括空间元素、材料和形状。 IFC(工业基础类)数据格式是建…

长胜证券:市场持续震荡 低位布局时机或已来临

业内人士表明,出资者心情的动摇起伏会大于商场价格,同时出资者心情的最高点和最低点往往滞后于商场价格的最高点和最低点,所以当商场动摇较大时,从心情动身去做决策往往不可能收到很好的出资效果。而当咱们以长期的心态参加出资&a…

学习开发振弦采集模块的注意事项

学习开发振弦采集模块的注意事项 (三河凡科科技/飞讯教学)振弦采集模块是一种用来实时采集和处理振弦信号的电子设备,在工业、航空、医疗等领域都有广泛应用。学习开发振弦采集模块需要注意以下几点: 一、硬件选择 首先需要选择…

汽车行业必读:ISO 26262和ASIL安全等级解读与攻略

ISO 26262,名称为“道路车辆——功能安全”,是汽车行业中使用的功能安全标准。而ASIL/ASIL级别则是确定软件开发安全要求的关键组成部分。 遵守这一标准对于汽车产品的开发来说至关重要。原始设备制造商、供应商和汽车零部件开发商们都需要遵守这一标准…

【C++】基础:动态内存与智能指针

😏★,:.☆( ̄▽ ̄)/$:.★ 😏 这篇文章主要介绍动态内存与智能指针。 学其所用,用其所学。——梁启超 欢迎来到我的博客,一起学习,共同进步。 喜欢的朋友可以关注一下,下次更新不迷路&a…

57从零开始学Java之一文详解String字符串的底层实现原理

作者:孙玉昌,昵称【一一哥】,另外【壹壹哥】也是我哦 千锋教育高级教研员、CSDN博客专家、万粉博主、阿里云专家博主、掘金优质作者 前言 在之前的两篇文章中,壹哥给大家介绍了String字符串及其常用的API方法、常用编码、正则表达…

rfc7234之http缓存

缓存概念 缓存处理请求步骤 缓存如果查询到某个请求已经有缓存,那么需要进一步检查该资源的新鲜度,根据新鲜度和请求中的字段综合评估是否要去服务端拉取新鲜的资源。 注意: 创建响应时候要注意版本匹配,如果服务器响应和客户端…

计算机竞赛 垃圾邮件(短信)分类算法实现 机器学习 深度学习

文章目录 0 前言2 垃圾短信/邮件 分类算法 原理2.1 常用的分类器 - 贝叶斯分类器 3 数据集介绍4 数据预处理5 特征提取6 训练分类器7 综合测试结果8 其他模型方法9 最后 0 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 垃圾邮件(短信)分类算…

docker 03(docker 容器的数据卷)

一、数据卷的概念和作用 删除后,数据也没了。 不能 数据卷 是宿主机中的一个目录或文件当容器目录和数据卷目录绑定后,对方的修改会立即同步一个数据卷可以被多个容器同时挂载 作用: 容器数据持久化 外部机器和容器间接通信 容器之间数据交换…

数据结构(2)

冒泡排序: 1.比较相邻的两个元素。如果前一个元素比后一个元素大,则交换两者位置。 2.对每一对相邻元素做相同工作,从第一对元素到最后一对元素,最后的一个元素就是最大的元素。 for(int ia.length-1;i>0;i--){for (int j 0…

Canvas绘制毛玻璃背景分享海报

最近重新设计了分享海报,用毛玻璃作为背景,使整体更有质感,如果没有用到canvas,毛玻璃效果其实很好实现,给元素添加一个滤镜即可(比如:filter: blur(32px)),但是实践的过…