Docker 安装部署 ORACLE 11g数据库

news2025/1/13 10:34:19

Docker 安装部署 ORACLE 11g数据库

背景:

​ 最新在开发数据中台数据接入模块,其中设计很多数据类型,包括ORACLE ,因为是测试使用,想着快速部署测试,于是使用Docker 部署 Oracle , 生产环境不建议使用Docker 安装。

1、安装Docker

​ 首选确保你的机器上已经部署了Docker , Centos7安装部署 docker容器 https://blog.csdn.net/zhangli_li520/article/details/126847001

2、拉去 oracle Docker 镜像

​ oracle11g 镜像文件很大,要等待一会

[root@bigdata01 ~]# docker pull registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
Using default tag: latest
latest: Pulling from helowin/oracle_11g
[DEPRECATION NOTICE] Docker Image Format v1, and Docker Image manifest version 2, schema 1 support will be removed in an upcoming release. Suggest the author of registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g:latest to upgrade the image to the OCI Format, or Docker Image manifest v2, schema 2. More information at https://docs.docker.com/go/deprecated-image-specs/
ed5542b8e0e1: Already exists 
a3ed95caeb02: Already exists 
1e8f80d0799e: Already exists 
Digest: sha256:4c12b98372dfcbaafcd9564a37c8d91456090a5c6fb07a4ec18270c9d9ef9726
Status: Image is up to date for registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g:latest
registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g:latest


​ 查看下载的镜像

[root@bigdata01 ~]# docker images
REPOSITORY                                             TAG                                 IMAGE ID       CREATED         SIZE
registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g   latest                              3fa112fd3642   8 years ago     6.85GB

3、创建启动容器

[root@bigdata01 ~]# docker run -d -p 1521:1521 --name oracle11g registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
95469043158a49b15ce1d290ffe0c23413b860aeed20eb7b6da24359fd3262e4


-d: 表示以后台运行的方式启动容器。
-p 1521:1521: 将主机的端口映射到容器的端口,这里是将主机的 1521 端口映射到容器的 1521 端口,用于访问 Oracle 数据库。
–name oracle11g: 为容器指定一个名称,这里是 “oracle11g”。

查看容器

[root@bigdata01 ~]# docker ps
CONTAINER ID   IMAGE                                                  COMMAND                   CREATED         STATUS         PORTS                                                  NAMES
95469043158a   registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g   "/bin/sh -c '/home/o…"   7 minutes ago   Up 2 minutes   0.0.0.0:1521->1521/tcp, :::1521->1521/tcp              oracle11g

4、进入Oracle 容器

[root@bigdata01 ~]# docker exec -it 95469043158a bash
# 切换 至 root 用户
[oracle@95469043158a /]$ su root
Password: helowin
# 编辑环境变量文件 profile
[root@95469043158a /]# vi /etc/profile
# 在文件末尾加上
export ORACLE_HOME=/home/oracle/app/oracle/product/11.2.0/dbhome_2
export ORACLE_SID=helowin
export PATH=$ORACLE_HOME/bin:$PATH
# 保存退出
# source 一下使得环境变量生效
[root@95469043158a /]# source /etc/profile
# 编辑环境变量文件 .bashrc
[root@95469043158a /]# vi /home/oracle/.bashrc
# 在文件末尾加上
export ORACLE_HOME=/home/oracle/app/oracle/product/11.2.0/dbhome_2
export ORACLE_SID=helowin
export PATH=$ORACLE_HOME/bin:$PATH
# 保存退出
# source 一下使得环境变量生效
[root@95469043158a /]# source /home/oracle/.bashrc

5、设置 Oracle 数据库

[root@95469043158a /]# su oracle
[oracle@95469043158a ~]$ sqlplus /nolog

SQL*Plus: Release 11.2.0.1.0 Production on Wed Mar 13 17:25:39 2024

Copyright (c) 1982, 2009, Oracle.  All rights reserved.
# 使用 SYSDBA 角色登录,该角色具有最高级别的数据库权限
SQL> CONNECT / AS SYSDBA;
Connected.
# 修改 system 密码
SQL> alter user system identified by oracle;
# 创建表空间 
SQL> Create TableSpace test_tablespace_zl
SQL> DataFile '/home/oracle/app/oracle/oradata/helowin/test_tablespace_zl.dbf'
SQL> Size 100m
SQL> Autoextend on;
# 查看表空间 
SQL> select name from v$TABLESPACE;
NAME
SYSTEM
SYSAUX
UNDOTBS1
USERS
EXAMPLE
TEMP
TEST_TABLESPACE_ZL
# 创建用户 分配表空间
SQL> CREATE USER zhangli
SQL> IDENTIFIED BY zhangli
SQL> DEFAULT TABLESPACE test_tablespace_zl
SQL> TEMPORARY TABLESPACE TEMP;

# 有了用户,要想使用用户账号管理自己的表空间,还得给它分权限:
SQL> GRANT CONNECT TO zhangli;
SQL> GRANT RESOURCE TO zhangli;
#  dba为最高级权限,可以创建数据库,表等。
SQL> GRANT dba TO zhangli;

# 查看用户
SQL> select * from dba_users;

# 创建表: student
SQL> create table zhangli.student (
SQL>   sno         number(10) constraint pk_si_sno primary key,
SQL>   sname       varchar2(10),
SQL>   sex         varchar2(2),
SQL>   create_date date
SQL> );

# 添加注释
SQL> comment on table zhangli.student is '学生信息表';
SQL> comment on column zhangli.student.sno is '学号';
SQL> comment on column zhangli.student.sname is '姓名';
SQL> comment on column zhangli.student.sex is '性别';
SQL> comment on column zhangli.student.create_date is '创建日期';

# 给其他用户授权 student 表的 权限
SQL> grant select, insert, update, delete on zhangli.student to other_user;

# 插入数据
SQL> insert into zhangli.student (sno, sname, sex, create_date)values (1, '张三', '1', sysdate);
SQL> insert into zhangli.student (sno, sname, sex, create_date)values (2, '李四', '2', sysdate);
SQL> insert into zhangli.student (sno, sname, sex, create_date)values (3, '王五', '1', sysdate);
SQL> insert into zhangli.student (sno, sname, sex, create_date)values (4, '赵六', '2', sysdate);
SQL> commit;
# 修改数据
SQL> update zhangli.student si
SQL> set si.sex = '2'
SQL> where si.sno = 3;
SQL> commit;

# 删除数据
SQL> delete zhangli.student si where si.sno = 1;
SQL> commit;

# 查询数据
SQL> select * from zhangli.student;

6、设置远程连接

# 修改监听配置文件 tnsnames.ora , listener.ora 将文件里的 HOST 改成 访问的ip地址  测试环境 改 0.0.0.0 全部方通,现网环境需要注意
[oracle@95469043158a ~]$ cd /home/oracle/app/oracle/product/11.2.0/dbhome_2/network/admin
[oracle@95469043158a admin]$ ls
listener.ora  samples  shrept.lst  sqlnet.ora  tnsnames.ora
[oracle@95469043158a admin]$ vi listener.ora 
# listener.ora Network Configuration File: /home/oracle/app/oracle/product/11.2.0/dbhome_2/network/admin/listener.ora
# Generated by Oracle configuration tools.

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
      (ADDRESS = (PROTOCOL = TCP)(HOST =0.0.0.0 )(PORT = 1521))
    )
  )

ADR_BASE_LISTENER = /home/oracle/app/oracle

[oracle@95469043158a admin]$ vi tnsnames.ora 
# tnsnames.ora Network Configuration File: /home/oracle/app/oracle/product/11.2.0/dbhome_2/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.

LISTENER_HELOWIN =
  (ADDRESS = (PROTOCOL = TCP)(HOST = 0.0.0.0)(PORT = 1521))


HELOWIN =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 0.0.0.0)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = helowin)
    )
  )

# 修改完重启 oracle 容器
[root@bigdata01 ~]# docker restart 95469043158a


7、使用客户端工具连接

​ 填写好用户名密码 服务名等参数,点击测试连接,显示连接成功。

在这里插入图片描述

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

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

相关文章

网络工程师笔记14

VLAN原理与配置 VLAN 的功能 划分广播域,隔离广播域 VLAN的应用划分 VLAN配置命令

在 Android 上恢复已删除文件的 5 种简单方法

您可能会因为意外删除、未完成的 Android 更新、手机意外关机等原因而丢失 Android 上的重要数据。新技术的发展使许多手机功能或程序能够从内部恢复丢失的数据。 在 Android 上恢复已删除文件的 5 种简单方法 然而恢复成功率的不确定性也成为人们克服数据丢失困境的重要考虑因…

海思3516将BT1120改BT656输出大小为720*576

sample_comm_vi.c结构体 VI_DEV_ATTR_S DEV_ATTR_BT656D1_1MUX VI_DEV_ATTR_S DEV_ATTR_BT656D1_1MUX {/* interface mode */VI_MODE_BT656,/* multiplex mode */VI_WORK_MODE_1Multiplex,/* r_mask g_mask b_mask*/{0xFF0000, 0x0},//掩码根据自己实际写/* progess…

C++ //练习 10.35 使用普通迭代器逆序打印一个vector。

C Primer(第5版) 练习 10.35 练习 10.35 使用普通迭代器逆序打印一个vector。 环境:Linux Ubuntu(云服务器) 工具:vim 代码块 /********************************************************************…

完美解决 RabbitMQ可视化界面Overview不显示折线图和队列不显示Messages

问题场景: 今天使用docker部署了一个RabbitMQ,浏览器打开15672可视化页面发送消息后不显示Overview中的折线图,还有队列中的Messages,因为我要看队列中的消息数量。 解决方案: 进入容器内部 docker exec -it 容器id…

自动从Android上拉取指定文件

需求场景 利用Mac中的脚本编辑器实现从连接的Android设备中获取指定的文件。 环境 macOS Monterey 版本 12.7.1脚本编辑器adb环境(如果没有的话,可以网上搜下Mac配置adb) 实现方案 1、打开脚本编辑器; 2、新建一个脚本文件&…

Git之版本回退

文章转载于:https://www.jianshu.com/p/3020740561a8 以前,如果是要去除某一块功能,我都是选择性删除,选择性注释,然后前后逻辑各种查看,各种比较。每一次,改完这些我总感觉心好累啊&#xff01…

300m的视频如何制作二维码?扫码点击播放视频的在线技巧

如何快速将几十M或者几百M的视频文件做成二维码呢?用二维码来展示视频是现在很流行的一种方式,比如产品说明、自拍录像、企业介绍、使用教程等方面的内容,都可以通过这种方式来完成视频内容的传递。 其实视频生成二维码的方法没有想象中的那…

【数学】【位运算】LeetCoce810. 黑板异或游戏

作者推荐 视频算法专题 本文涉及知识点 数学 位运算 LeetCoce810. 黑板异或游戏 黑板上写着一个非负整数数组 nums[i] 。 Alice 和 Bob 轮流从黑板上擦掉一个数字,Alice 先手。如果擦除一个数字后,剩余的所有数字按位异或运算得出的结果等于 0 的话…

【词云图绘制实战】——数据准备、清洗、多形式展示

文章目录 1 手动输入文本1.1 加载包1.2 分词处理1.2.1 普通分词方式1.2.2 hmm分词 1.2 词云图绘制1.2.1 wordcloud词云图1.2.2 wordcloud2词云图 2 读取文本数据2.1 读取文本数据2.2 分词处理2.3 词云图绘制2.3.1 wordcloud词云图2.3.2 wordcloud2词云图2.3.3 letterCloud词云图…

windows中如何将已安装的node.js版本进行更换

第一步:先清除已经安装好的node.js版本 1.按健winR弹出窗口,键盘输入cmd,然后敲回车(或者鼠标直接点击电脑桌面最左下角的win窗口图标弹出,输入cmd再点击回车键) 然后进入命令控制行窗口,并输入where node…

【个人博客项目】使用Jenkins简单的搭建一下

目录标题 前言安装JDK1.8、Git、Maven安装Tomcat修改tomcat8相关配置 安装Jenkins 前言 为了学习一下工作中常用到的jenkins,于是挑了个最简单的模式动手操作了一遍。 环境->阿里云服务器:CentOS7.0 https://promotion.aliyun.com/ntms/yunparter/invite.html?…

【Oracle之DataGuard的初步学习】

** 以下所有均是基于11G版本的 ** 一、DataGuard的部署方式 DG的部署最常用的方式就是直接在备库端部署一个空库然后再设置参数,但是这样做在初始同步时如果数据量过大会耗费较长的时间;相对来说这中方式比较简单不易出错。 还有一种方式就是通过rman的备…

如何打开EDI文件?

使用EDI系统传输文件的过程中,用户可能会遇到这样的问题:如何打开EDI文件?电脑不在身边如何查看EDI文件?EDI文件未按照标准格式呈现如何梳理?为了解决上述问题,方便用户查看文件,知行之桥EDI系统…

Linux启动流程

Linux启动流程总的来说可以分成三个阶段 Linux启动流程图 第一步:上电 在 x86 系统中,将 1M 空间最上面的 0xF0000 到 0xFFFFF 这 64K 映射给 ROM。 当电脑刚加电的时候,会做一些重置的工作,将 CS 设置为 0xFFFF,将 …

mac解决brew install报错“fatal: not in a git directory“

在macbook上使用brew安装软件时,可能会遇到问题,报错如下: fatal: not in a git directory Error: Command failed with exit 128: git 使用brew -v,仔细看,可以发现有两个fatal(致命错误)提示: 解决方案:…

springboot笔记1

快速入门 添加父工程和web启动器 创建启动类 编写处理器controller springboot 配置文件 推荐使用 .yaml 格式 批量读取配置文件 多环境配置和激活 分开写 然后在application.yaml里面激活 SpringBoot–springmvc整合和配置 SpringBoot3整合Druid连接池 pom.xml中导入相…

Oracle P6 负浮时和必须完成日期

前言 学习过计划的人大都有这有这样的经历,即无论是Microsoft Project 亦或是P6见过负浮时那么 Primavera P6 计划中的负浮时是从何而来的呢,那么本文可能会有所帮助。 首先,当活动的最晚日期早于最早日期时,就会出现负浮时。 换…

【python】centos 8新装python3.10.0

1.python源码包准备 2.gcc环境安装 如果系统已具备,可以略过。 有的已经自带了gcc,但是如果编译时启动优化的话,如果gcc版本过老就必须要升级。 3.make环境安装 如果系统已具备,可以略过。 4.更新openssl版本(很重…

Coarse-to-Fine Latent Diffusion for Pose-Guided Person Image Synthesis阅读笔记

连更!! 0 Abstract 先前的姿势引导图像合成方法简单的将人的外观与目标姿势进行对齐,这容易导致过拟合,因为缺乏对source person image的high-level semantic understanding;文章开发了一种新的训练范式:…