Linux Docker 安装oracle19c数据库教程
Oracle 19c 是甲骨文公司(Oracle Corporation)发布的一款关系型数据库管理系统(RDBMS),属于 Oracle Database 19c 版本。它是 Oracle 12c 和 18c 系列的后续版本,提供了多个重要的功能改进和新特性,旨在提升数据库的性能、可扩展性和可靠性。Oracle 19c 的特点包括:
-
自动化与优化:
- 自动化管理功能:Oracle 19c 引入了更多的自动化管理特性,例如自动化的存储管理和内存管理,使数据库管理员的工作变得更加轻松。
- 自动索引功能:Oracle 19c 在数据库中自动创建索引并在查询执行时根据需求优化索引,提高了查询效率。
-
性能提升:
- 采用了更高效的存储引擎和查询优化器,提高了数据处理的速度和吞吐量。
- 高性能的 SQL 执行:增加了对大规模查询的优化,支持大数据量时仍能保证稳定的查询性能。
-
多云与混合云支持:
- 支持在多云环境下的运行,可以同时在多个云平台或本地数据中心中进行部署,提供灵活的云集成选项。
-
新功能:
- JSON 支持:Oracle 19c 增强了对 JSON 数据类型的支持,方便处理非结构化数据。
- 自动化的数据加密:为提高数据安全性,Oracle 19c 提供了更加灵活和自动化的数据加密方案。
- 多租户架构(CDB/PDB):引入了多租户架构,允许用户在单个数据库实例中创建多个数据库容器(PDB),实现资源共享和管理优化。
-
高可用性与灾难恢复:
- 提供了增强的备份、恢复和高可用性功能,包括更快的故障恢复和容灾能力。
-
版本稳定性:
- 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
第四步、使用sqldeveloper 进行连接
第五步、创建表空间
#创建表空间
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的手动干预