Docker安装Oracle数据库
Docker安装Oracle数据库
Author: histonevon@zohomail.com
Date: 2023/08/24
- 原文地址:https://histonevon.top/archives/oracle-docker-install
- 操作系统:CentOS 7.9
[TOC]
Docker
- 由于Oracle官方仅支持Red Hat与Oracle Linux,使用CentOS安装较为繁琐,故使用Docker安装并学习
- 按照以下文档安装Docker,建议参考官方文档
- 使用此方法检查是否安装Docker:
docker --help
,如果有帮助文件则证明安装成功 - 使用此语句检查Docker是否正在运行:
docker images
,实际上是查看本地镜像 - 如果发现未运行则开启Docker:
sudo systemctl start docker
- 查看正在运行的服务:
systemctl list-units --type=service
- 设置Docker自启:
systemctl enable docker.service
- 查看自启动的项目:
systemctl list-unit-files | grep enable
Oracle
官方最新版本镜像
- 官方提供最新版本的Free镜像:Database Software Downloads | Oracle 中国
- 文档:Oracle Database Free - Repository Detail
- 需要podman
- 截止2023年08月最新版本为
Oracle-23c
Oracle-11g
- 由于本人工作需要,使用Oracle-11g,故参考Docker安装Oracle并映射路径 心灵的博客-CSDN博客安装
- 拉取镜像:
docker pull registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
- 查看镜像:
docker images
- 为了保证Docker实例停止后数据不会丢失,故需要数据持久化,需要创建数据卷,此处名为
oracle_vol
- 创建数据卷:
docker volume create oracle_vol
- 查看数据卷:
docker volume ls
- 删除数据卷:
docker volume rm oracle_vol
- 创建数据卷:
- 持久化启动镜像
-i
:交互式运行容器,常与-t
一起使用-t
:为容器分配一个伪终端,常与-i
一起使用-d
:后台运行容器,并返回容器ID-p
:端口映射<宿主机:容器>--name
:自定义容器名称--restart
:重启Docker时是否重启该容器服务--mount
:挂载
docker run -itd \
-p 1521:1521 \
--name oracle \
--restart=always \
--mount source=oracle_vol,target=/home/oracle/app/oracle/oradata \
registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
- 查看容器:
docker ps -a
- 查看系统端口情况:
netstat -antulp
-a
:--all,显示所有链接和监听端口-n
:进制使用域名解析功能。链接以IP展示,而不是通过主机名或域名形式展示-t
:所有的 tcp 协议的端口-u
:所有的 udp 协议的端口-l
:--listening,显示所有监听的端口-p
:--programs,与链接相关程序名和进程的PID
Oracle-11g配置
- 进入容器环境:
docker exec -it oracle bash
- 切换至root用户:
su root
,密码helowin
- 编辑环境变量:
vi /etc/profile
,点击i
键进入编辑,追加如下内容,点击esc
键退出编辑,:wq
保存退出
# oracle home目录
export ORACLE_HOME=/home/oracle/app/oracle/prouct/11.2.0/dbhome_2
# oracle 服务名或者 SID名,要记住这个名字helowin,它是naivcat或者DBeaver登录的重要选项
export ORACLE_SID=helowin
# oracle环境变量
export PATH=$ORACLE_HOME/bin:$PATH
- 加载环境变量:
source /etc/profile
- 创建软连接:
ln -s $ORACLE_HOME/bin/sqlplus /usr/bin
- 切换回oracle用户:
su - oracle
,中间有减号
- sqlplus修改sys、system用户密码
sqlplus /nolog # 登录
# 以下是SQL
conn /as sysdba
alter user system identified by system; -- 修改system用户账号密码为system;
alter user sys identified by sys; -- 修改sys用户账号密码为sys;
- 添加远程用户,远程登录参数如下
- SID:helowin
- User:test
- Password:test
create user test identified by test; -- 创建内部管理员账号密码;
grant connect,resource,dba to test; -- 将dba角色授权给内部管理员账号和密码;
ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED; -- 设置密码永不过期
alter system set processes=1000 scope=spfile; -- 修改数据库最大连接数
- 保存并重启数据库
conn /as sysdba; -- 保存数据库
shutdown immediate; -- 关闭数据库
startup; -- 启动数据库
show user;
远程连接
- 使用DataGrip连接,可能需要下载驱动
- 点击
Test Connection
测试连接
- 点击左侧刷新按钮,可以看到数据库内容