首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >别再折腾了!几分钟搭好你的Oracle学习环境(新手友好版)

别再折腾了!几分钟搭好你的Oracle学习环境(新手友好版)

作者头像
俊才
发布2026-03-31 12:39:33
发布2026-03-31 12:39:33
330
举报
文章被收录于专栏:数据库干货铺数据库干货铺

很多刚接触Oracle的朋友,一上来就被传统安装劝退:配置prerequisites、处理依赖、调内核参数、等半小时初始化,还容易因为系统版本不兼容翻车。

今天给大家一个零门槛、不踩坑、5分钟可用的方案:用Docker容器装Oracle。不用改系统、不用处理复杂依赖,一条命令拉镜像、一条命令起服务,数据还能持久化,用完即删也不污染环境,特别适合初学者快速上手练习。

一、安装容器

1. 卸载旧版本(如果有)

代码语言:javascript
复制
 yum remove -y docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine

2. 安装依赖

代码语言:javascript
复制
yum install -y yum-utils device-mapper-persistent-data lvm2

3. 添加Docker源

代码语言:javascript
复制
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

4. 安装Docker

代码语言:javascript
复制
yum install -y docker-ce docker-ce-cli containerd.io

5. 启动Docker并设置开机自启

代码语言:javascript
复制
systemctl start docker
systemctl enable docker

6. 验证安装

代码语言:javascript
复制
docker -v

显示版本号就说明正常了。

二、 安装Oracle

考虑到Oracle 19c是目前用的比较广泛且稳定的版本,我将以Oracle 19c为例,手把手教你如何部署。

1. 拉取Oracle镜像

首先,你需要从镜像仓库下载Oracle 19c的镜像。由于官方镜像较大且下载受限,这里推荐使用阿里云的公共镜像仓库,速度更快。

在终端执行以下命令:

代码语言:javascript
复制
docker pull registry.cn-hangzhou.aliyuncs.com/zhuyijun/oracle:19c

注意:镜像较大,下载时间取决于你的网络速度,请耐心等待。

2. 创建并授权本地目录

为了防止容器删除后数据丢失,我们需要将容器内的数据库文件映射到宿主机(你的电脑或服务器)上。

执行以下命令创建目录并赋予权限(权限不足会导致启动失败):

代码语言:javascript
复制
# 创建目录(路径可根据需要修改)
 mkdir -p /docker/oracle19c/oradata
# 赋予读写执行权限
 chmod 777 /docker/oracle19c/oradata

3. 运行容器(关键步骤)

这是最重要的一步。为了避免常见的“内存不足”或“文件句柄限制”错误,我们需要在启动时增加一些资源限制参数。

请复制并执行以下完整命令:

代码语言:javascript
复制
docker run -d \
--name oracle19c \
--restart=unless-stopped \
-p 1521:1521 \
-p 5500:5500 \
-e ORACLE_SID=ORCL \
-e ORACLE_PDB=ORCLPDB \
-e ORACLE_PWD=oracle \
-e ORACLE_EDITION=standard \
-e ORACLE_CHARACTERSET=AL32UTF8 \
--ulimit nofile=262144:262144 \
--ulimit nproc=16384:16384 \
--shm-size=1g \
-v /docker/oracle19c/oradata:/opt/oracle/oradata \
registry.cn-hangzhou.aliyuncs.com/zhuyijun/oracle:19c

主要参数说明:

  • -p 1521:1521:映射数据库监听端口,用于客户端连接
  • -p 5500:5500:映射Web管理界面(Oracle EM Express)端口
  • -e ORACLE_PWD=oracle:设置数据库超级管理员(sys/system)的密码,这里设为oracle,生产环境请务必修改 --ulimit & --shm-size:非常重要。这些参数解决了容器启动时常见的 ORA-00845 和 unable to allocate file descriptor 错误,确保Oracle有足够的共享内存和文件句柄
  • -v ...:将数据持久化保存到本地目录

4. 查看安装进度

容器启动后,Oracle数据库需要进行初始化配置(创建数据库实例等),这通常需要几分钟时间。

可以实时查看日志来监控进度:

代码语言:javascript
复制
docker logs -f oracle19c

当你看到日志中出现DATABASE IS READY TO USE! 或100% complete字样时,说明安装成功。

5. 验证是否可用

登录进入容器,登录数据库,执行一次查询,例如:

代码语言:javascript
复制
[root@c7 ~]# docker exec -it oracle19c /bin/bash
[oracle@feb7a5e48f90 ~]$ sqlplus / as sysdba

SQL*Plus: Release 19.0.0.0.0 - Production on Thu Mar 26 13:14:51 2026
Version 19.3.0.0.0

Copyright (c) 1982, 2019, Oracle.  All rights reserved.


Connected to:
Oracle Database 19c Standard Edition 2 Release 19.0.0.0.0 - Production
Version 19.3.0.0.0

SQL> select INSTANCE_NAME from v$instance;

INSTANCE_NAME
----------------
ORCL

SQL> 

6. 创建用户

  • 查看并切换到PDB

在SQL*Plus中执行以下命令,查看当前的PDB名称

代码语言:javascript
复制
-- 1. 查看有哪些 PDB
show pdbs;
  • 切换当前会话到这个PDB
代码语言:javascript
复制
-- 2. 切换会话到 PDB (将 ORCLPDB 替换为你上面查到的实际名称)
alter session set container = ORCLPDB;
  • 创建用户并授权

切换成功后,执行创建用户语句

代码语言:javascript
复制
-- 3. 创建用户
create user test_user identified by "Test2026.Jc";

用户创建好后通常无法登录,需要赋予权限:

代码语言:javascript
复制
-- 4. 赋予连接和资源权限
grant connect, resource to test_user;
-- 或
grant  dba  to test_user;

7. 外部连接

可以用客户端连接,例如我用SQL Developer客户端来连接

连接后执行相关SQL

至此就完成了Oracle 19c的部署。

三、 结语

新手在学习数据库的时候推荐先快速安装一个环境,对于Oracle数据库这种安装步骤较为复杂的数据库,建议可以用容器方式部署,因为

  • 一条命令启动,几分钟就能用
  • 多版本可以共存,11g、12c、19c可以同时跑
  • 测试玩坏了直接删容器,重建一个就行
  • 数据挂载到卷里,不用担心丢失

对只想学SQL、练数据库的初学者来说,别把时间浪费在安装上,用容器快速搭好环境,直接开始学习才是最高效的。

今天,你学会了么?

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2026-03-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数据库干货铺 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档