Linux Docker 安装oracle19c数据库教程

Oracle 19c 是甲骨文公司(Oracle Corporation)发布的一款关系型数据库管理系统(RDBMS),属于 Oracle Database 19c 版本。它是 Oracle 12c 和 18c 系列的后续版本,提供了多个重要的功能改进和新特性,旨在提升数据库的性能、可扩展性和可靠性。Oracle 19c 的特点包括:

  1. 自动化与优化

    • 自动化管理功能:Oracle 19c 引入了更多的自动化管理特性,例如自动化的存储管理和内存管理,使数据库管理员的工作变得更加轻松。
    • 自动索引功能:Oracle 19c 在数据库中自动创建索引并在查询执行时根据需求优化索引,提高了查询效率。
  2. 性能提升

    • 采用了更高效的存储引擎和查询优化器,提高了数据处理的速度和吞吐量。
    • 高性能的 SQL 执行:增加了对大规模查询的优化,支持大数据量时仍能保证稳定的查询性能。
  3. 多云与混合云支持

    • 支持在多云环境下的运行,可以同时在多个云平台或本地数据中心中进行部署,提供灵活的云集成选项。
  4. 新功能

    • JSON 支持:Oracle 19c 增强了对 JSON 数据类型的支持,方便处理非结构化数据。
    • 自动化的数据加密:为提高数据安全性,Oracle 19c 提供了更加灵活和自动化的数据加密方案。
    • 多租户架构(CDB/PDB):引入了多租户架构,允许用户在单个数据库实例中创建多个数据库容器(PDB),实现资源共享和管理优化。
  5. 高可用性与灾难恢复

    • 提供了增强的备份、恢复和高可用性功能,包括更快的故障恢复和容灾能力。
  6. 版本稳定性

    • Oracle 19c 被认为是一个“长期支持版本”(Long Term Support,LTS),意味着该版本会得到长时间的更新和支持,适合用于企业级应用。

Oracle 19c 是企业级应用的理想选择,特别适合那些需要高性能、可靠性以及灵活扩展能力的环境。

下载地址:

Oracle 数据库下载官网:数据库软件下载 |神谕
SQL Develope 数据库连接工具下载官网:Oracle SQL Developer Downloads
国内容器镜像拉取地址:docker.io/heartu41/oracle19c:latest - 镜像下载 | docker.io

第一步 安装Docker


#移除旧的Docker版本
yum remove -y docker docker-client docker-client-latest docker-ce-cli docker-common docker-latest docker-latest-logrotate docker-logrotate docker-selinux docker-engine-selinux docker-engine
#清理旧缓存并重新生成
yum clean all
yum makecache
# 安装必要的依赖包
yum install -y yum-utils device-mapper-persistent-data lvm2
#添加阿里云 Docker 的仓库
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
#安装Docker
yum install -y docker-ce-20.10.24 docker-ce-cli-20.10.24 containerd.io
#设置开机自启动
sudo systemctl enable docker
sudo systemctl start docker
sudo systemctl status docker
#查看可用的Docker版本
yum list docker-ce --showduplicates | sort -r
#查看docker版本
docker --version
#查看docker详细信息
docker info

第二步 拉取镜像 并启动

#拉取镜像 
docker pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/heartu41/oracle19c:latest
#启动镜像命令
docker run -d \--name oracle19c-prod \--restart=unless-stopped \--cpus=2 \--memory=4g \-p 1521:1521 \-p 5500:5500 \-e ORACLE_SID=ORCLCDB \-e ORACLE_PDB=ORCLPDB1 \-e ORACLE_PWD=YourStrongPassword@123 \-e ORACLE_CHARACTERSET=AL32UTF8 \-v /data/oracle19c/oradata:/opt/oracle/oradata \-v /data/oracle19c/backup:/opt/oracle/backup \--health-cmd="lsnrctl status" \--health-interval=2m \swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/heartu41/oracle19c解释说明:
docker run -d \  # 后台运行容器--name oracle19c-prod \  # 为容器指定名称为 oracle19c-prod--restart=unless-stopped \  # 设置容器自动重启策略,除非手动停止,否则容器会在系统重启后自动启动--cpus=2 \  # 限制容器使用 2 个 CPU 核心--memory=4g \  # 限制容器使用 4GB 内存-p 1521:1521 \  # 将宿主机的 1521 端口映射到容器的 1521 端口(Oracle 数据库默认端口)-p 5500:5500 \  # 将宿主机的 5500 端口映射到容器的 5500 端口(用于 Oracle 数据库的 Web 控制台)-e ORACLE_SID=ORCLCDB \  # 设置 Oracle 实例名为 ORCLCDB-e ORACLE_PDB=ORCLPDB1 \  # 设置 Oracle PDB(Pluggable Database)为 ORCLPDB1-e ORACLE_PWD=YourStrongPassword@123 \  # 设置 Oracle 数据库管理员密码-e ORACLE_CHARACTERSET=AL32UTF8 \  # 设置 Oracle 数据库字符集为 AL32UTF8-v /data/oracle19c/oradata:/opt/oracle/oradata \  # 将宿主机的 /data/oracle19c/oradata 目录挂载到容器的 /opt/oracle/oradata 目录(存储数据库数据)-v /data/oracle19c/backup:/opt/oracle/backup \  # 将宿主机的 /data/oracle19c/backup 目录挂载到容器的 /opt/oracle/backup 目录(存储数据库备份)--health-cmd="lsnrctl status" \  # 设置健康检查命令,检查 Oracle Listener 的状态--health-interval=2m \  # 设置健康检查的时间间隔为 2 分钟swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/heartu41/oracle19c  # 使用 Oracle 19c 镜像(指定镜像地址)

第三步、关闭防火墙 

# 关闭防火墙
systemctl stop firewalld
systemctl disable firewalld# 关闭selinux
# 临时
setenforce 0  
# 永久
sed -i 's/enforcing/disabled/' /etc/selinux/config  

第四步、使用数据库连接工具

进入docker容器
docker exec -it oracle19c-prod bash
连接数据库
sqlplus / as sysdba
查看实例名命令(也就是SID)
SELECT instance_name FROM v$instance;SID介绍:
SID(System Identifier,系统标识符)是Oracle数据库实例的唯一名称标识。它是Oracle数据库实例在操作系统层面的唯一标识,用于区分同一台服务器上运行的不同Oracle实例。

使用sqldeveloper 进行连接 

 使用Navicat 连接

第五步、创建表空间

#创建表空间
CREATE TABLESPACE yongyou_U8
DATAFILE '/opt/oracle/oradata/ORCLCDB/yongyou_U8.dbf' SIZE 100M
AUTOEXTEND ON NEXT 50M MAXSIZE 1G
EXTENT MANAGEMENT LOCAL
SEGMENT SPACE MANAGEMENT AUTO;解释说明:
1、CREATE TABLESPACE yongyou_U8创建一个名为 yongyou_U8 的新表空间表空间是 Oracle 中用于存储数据库对象的逻辑存储单元2、DATAFILE '/opt/oracle/oradata/ORCLCDB/yongyou_U8.dbf' SIZE 100M指定表空间的数据文件位置和大小数据文件路径:/opt/oracle/oradata/ORCLCDB/yongyou_U8.dbf初始大小:100MB(这是 Oracle 容器的标准数据文件路径)3、AUTOEXTEND ON NEXT 50M MAXSIZE 1G设置数据文件自动扩展属性AUTOEXTEND ON:启用自动扩展功能NEXT 50M:当需要更多空间时,每次自动扩展50MBMAXSIZE 1G:数据文件最大可扩展到1GB4、EXTENT MANAGEMENT LOCAL指定区(extent)管理方式为本地管理本地管理比字典管理更高效,是现代 Oracle 数据库的推荐方式区是Oracle分配空间的基本单位5、SEGMENT SPACE MANAGEMENT AUTO指定段空间管理方式为自动管理自动管理使用位图而不是空闲列表来跟踪块的使用情况这提高了空间管理效率,减少了DBA的手动干预

Oracle数据库常用命令:

连接数据库:
方法1:使用操作系统认证 (不需要密码)
sqlplus / as sysdba
方法2:使用用户名和密码连接
sqlplus username/password@hostname:port/servicenameusername:数据库用户名。
password:用户名对应的密码。
hostname:Oracle数据库主机名或IP地址。
port:数据库监听端口(默认是1521)。
servicename:数据库服务名(可以是SID或服务名称)。查看版本
SELECT * FROM v$version;
用户与角色:
用户名	        默认密码	        用途
SYS 	       安装时设定	最高权限用户,拥有数据字典和数据库管理权限,必须用 AS SYSDBA 登录。
SYSTEM	       安装时设定	次高权限用户,用于日常管理(如创建用户、表空间等)。
SYSDG	        安装时设定	用于 Oracle Data Guard 管理。
SYSKM	        安装时设定	用于加密密钥管理(Oracle Key Vault)。
SYSBACKUP	安装时设定	用于 RMAN 备份和恢复操作。
SYSRAC	         安装时设定	用于 Oracle RAC(Real Application Clusters)管理。显示当前会话登录用户
SELECT USER FROM dual;
查看所有用户
SELECT username, user_id, created, account_status, default_tablespace 
FROM dba_users;
创建用户:
CREATE USER username IDENTIFIED BY password;
案例:
CREATE USER  C##gao IDENTIFIED BY 123456;
注意 19C版本之后需要加C##
授予权限给用户:
GRANT CREATE SESSION, CREATE TABLE TO username;
创建角色并授予权限:
CREATE ROLE role_name;
GRANT SELECT, INSERT ON table_name TO role_name;
将创建的角色授予用户,可以使用 GRANT 语句:
GRANT role_name TO user_name;
删除角色
DROP ROLE role_name;
删除用户
DROP USER user_name CASCADE;
锁定/解锁用户:
ALTER USER username ACCOUNT LOCK;
ALTER USER username ACCOUNT UNLOCK;
表空间:

表空间(Tablespace) 是一个用于存储数据库对象(如表、索引等)的逻辑存储结构。它是数据库文件的容器,将物理文件(如数据文件)映射到数据库对象上,便于数据库管理和数据存储。

SYSTEM:系统表空间,用于存储数据库的核心数据字典、系统对象等。
SYSAUX:系统辅助表空间,存储数据库的辅助数据。
UNDOTBS1:回滚段表空间,用于存储回滚数据(UNDO信息)。
TEMP:临时表空间,通常用于存储排序、合并等临时数据。
USERS:用户表空间,通常用于存储用户的表和数据。数据字典视图查询所有表空间
SELECT tablespace_name, status, contents, logging 
FROM dba_tablespaces;
查看所有表空间及其详细信息
SELECT * FROM dba_tablespaces;
查看当前用户可访问的表空间
SELECT * FROM user_tablespaces;
案例:
创建表空间
CREATE TABLESPACE YONGYOU_U8
DATAFILE '/opt/oracle/oradata/YONGYOU_U8.dbf' 
SIZE 500M
AUTOEXTEND ON NEXT 50M MAXSIZE 2G
EXTENT MANAGEMENT LOCAL
SEGMENT SPACE MANAGEMENT AUTO
LOGGING;仅删除空表空间(不包含任何对象)
DROP TABLESPACE users_data;
彻底删除表空间及其所有内容和数据文件(最常用)
DROP TABLESPACE YONGYOU_U8 INCLUDING CONTENTS AND DATAFILES;
数据库表:
创建表
CREATE TABLE employees (employee_id NUMBER PRIMARY KEY,first_name VARCHAR2(50),last_name VARCHAR2(50),hire_date DATE
);删除表
DROP TABLE employees; 查看表结构
DESC user_tablespaces;重命名表:
RENAME old_name TO new_name;
增删改查:
插入数据:
INSERT INTO employees (employee_id, first_name, last_name, hire_date) 
VALUES (1, 'John', 'Doe', TO_DATE('2021-01-01', 'YYYY-MM-DD'));
查询数据:
SELECT * FROM employees;
更新数据:
UPDATE employees SET first_name = 'Jane' WHERE employee_id = 1;
删除数据:
DELETE FROM employees WHERE employee_id = 1;
视图:
创建视图:
CREATE VIEW employee_view 
AS
SELECT employee_id, first_name, last_name 
FROM employees;
删除视图:
DROP VIEW view_name;
事务:
BEGIN TRANSACTION:开始一个新的事务。
COMMIT:提交事务,所有对数据库的更改将永久保存。
ROLLBACK:回滚事务,撤销自上次提交以来的所有更改。
备份还原:
导出数据 (expdp):
expdp username/password@db_name dumpfile=export.dmp logfile=export.log schemas=schema_name
导入数据 (impdp):
impdp username/password@db_name dumpfile=export.dmp logfile=import.log schemas=schema_name

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

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

相关文章

jenkins报错java.lang.OutOfMemoryError: Java heap space

报错信息 2025-05-27 09:17:16.2340000 [id38] WARNING j.u.ErrorLoggingScheduledThreadPoolExecutor#afterExecute: failure in task not wrapped in SafeTimerTask java.lang.OutOfMemoryError: Java heap spaceat java.base/java.lang.StringUTF16.compress(StringUTF16.j…

【Bug】定时任务中 Jpa Save 方法失效

【Bug】定时任务中 Jpa Save 方法失效 首先说一下问题,在定时任务中调用 jpa 的 save 方法没有效果,但是通过外界调用,比如 controller 中注入 service 来调用是可以的,真是巨巨巨离谱,我被折磨了好几天。 我这个问题…

【Redis】热点key问题,的原因和处理,一致性哈希,删除大key的方法

热点 Key 指单个 Key 被高并发访问(如爆款商品),导致 Redis 压力骤增。解决方案应针对 “单个 Key 高并发”: 分片缓存:将热点 Key 分散到不同 Redis 节点(如按一致性哈希算法分片)。本地缓存&…

通过远程桌面连接Windows实例提示“出现身份验证错误,无法连接到本地安全机构”错误怎么办?

本文介绍通过远程桌面连接Windows实例提示“出现身份验证错误无法连接到本地安全机构”错误的解决方案。 问题现象 通过本地电脑内的远程桌面连接Windows实例提示“出现身份验证错误,无法连接到本地安全机构”错误。 问题原因 导致该问题的可能原因如下&#x…

[python] argparse怎么指定bool类型?

前述 最近在写脚本的时候想要实现一个if 操作,通过用户输入。确定要不要启用某个语句。 非常自然的就是使用python的argparse包,但是发现了一个陷阱,记录下。 陷阱 argparse.ArgumentParser() 可以指定输入类型,我可以设定为bo…

Rust 学习笔记:迭代器

Rust 学习笔记:迭代器 Rust 学习笔记:迭代器Iterator trait 和 next 方法使用迭代器的方法生成其他迭代器的方法使用闭包捕获它们的环境 Rust 学习笔记:迭代器 在 Rust 中,迭代器负责遍历每个项的逻辑。迭代器是懒惰的&#xff0…

【深度剖析】义齿定制行业数字化转型模式创新研究(上篇2:痛点和难点分析)

数字化转型正在重塑义齿行业的生态格局,但也面临技术融合与模式变革的深层挑战。当前,义齿定制行业正处于从传统手工制造向全流程数字化制造转型的关键阶段。3D扫描、CAD/CAM(计算机辅助设计与制造)、3D打印等技术的广泛应用,显著提升了义齿制作的精度和效率。传统石膏模型…

window安装nginx

步骤1:下载Nginx for Windows​ 访问Nginx官网下载页面:https://nginx.org/en/download.html 在​​Stable version​​(稳定版)下找到Windows版本,点击下载.zip文件(如 nginx-1.28.0.zip) 步…

气象算法工程师学习路径

目录 🌤️ 气象学与数值预报基础课程🤖 气象人工智能与数据分析课程📘 进阶与实战课程推荐🧭 学习建议与路径规划 如果希望成为一名气象算法工程师,并寻找深入浅出、理论与实践结合的学习资源,以下是为你精…

回调函数的理解

int yuxiangrousi 0; // 全局变量:鱼香肉丝(酱油量)// 回调函数:妈妈处理酱油(将酱油加入鱼香肉丝) void mother_callback(int new_jiangyou) {yuxiangrousi new_jiangyou; // 把酱油放进鱼香肉丝 }// 孩…

多部手机连接同一wifi的ip一样吗?如何更改ip

通常情况下,多部手机连接同一个WiFi时,它们的IP地址是各不相同的(在局域网内)。但是,从互联网(外网)的角度看,它们共享同一个公网IP地址。让我详细解释一下,并说明如何更…

环境温度通过H2A.Zub和H3K27me3动态调控拟南芥细胞命运决定

2025年4月22日,中国科学院遗传与发育生物学研究所肖军研究组在Developmental Cell在线发表了题为Dynamic control of H2A.Zub and H3K27me3 by ambient temperature during cell fate determination in Arabidopsis的研究论文,本研究综合运用ChIP-seq、C…

2024 吉林 CCPC

文章目录 2024 吉林 CCPCL. Recharge(思维、分配)G. Platform Game(模拟)E. Connect Components (排序、思维)D. Parallel Lines 2024 吉林 CCPC 题目链接: Dashboard - The 2024 CCPC National Invitational Contest (Changchun) , The 17…

day13 leetcode-hot100-24(链表3)

234. 回文链表 - 力扣(LeetCode) 1.转化法 思路 将链表转化为列表进行比较 复习到的知识 arraylist的长度函数:list.size() 具体代码 /*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode ne…

Vim文本编辑器快捷键用法以及简单介绍

目录 vim文本编辑器 简介: 语法: vim模式介绍: 模式切换: 用法: 编辑模式: 一般模式: 命令模式: vim文本编辑器 简介: 在命令行界面下,最常用的文本…

从 0 到 1:Spring Boot 与 Spring AI 深度实战(基于深度求索 DeepSeek)

在人工智能技术与企业级开发深度融合的今天,传统软件开发模式与 AI 工程化开发的差异日益显著。作为 Spring 生态体系中专注于 AI 工程化的核心框架,Spring AI通过标准化集成方案大幅降低 AI 应用开发门槛。本文将以国产大模型代表 ** 深度求索&#xff…

[Windows] 摸鱼小工具:隐藏软件(重制版)

由吾爱大神写的摸鱼工具: 数据存放路径为C:\Users\用户名\AppData\Local\HideSoft,如果不想用时,删除软件及此路径下的HideSoft文件夹。如添加了开机启动,删除启动菜单文件夹的快捷方式即可,或者删除前在软件中取消设置…

C++ 判断文件的编码类型

大多数文本编辑器,都会在文本文件的头部插入一部分特殊的字节,用于辅助文本编辑器来判断该文件的字符集编码类型。 如:记事本 目前支持的字符集类型,通常为三种: Unicode、UTF8、UnicodeBIG、CP_ACP(默认…

时间序列噪声模型分析软件推荐与使用经验

最近在论文大修2024年投稿的一篇文章,大修了2轮,最后一次还是重新投稿,其中有一个问题一直被审稿人怼,他认为我计算时间序列的趋势的时候,没有考虑时间的相关性,即对噪声模型的估计不合理,会影响…

【redis实战篇】第六天

摘要: 本文介绍了基于Redis的秒杀系统优化方案,主要包含两部分:1)通过Lua脚本校验用户秒杀资格,结合Java异步处理订单提升性能;2)使用Redis Stream实现消息队列处理订单。方案采用Lua脚本保证库…