使用docker 安装oracle 11g 挂载数据目录并修改SID centos-7

建议:建议使用其它系统去装ubuntu或Rocky(因为centos已经停止维护)
1、安装docker
这里就不细写了,可以查看清华镜像源或者阿里镜像源
清华:https://mirrors.tuna.tsinghua.edu.cn/help/docker-ce/
阿里:https://developer.aliyun.com/mirror/docker-ce?spm=a2c6h.13651102.0.0.57e31b11xiluIS

2、在本机创建持久化数据目录

mkdir -p /opt/oracle/flash_recovery_area
mkdir -p /opt/oracle/oradata

3、docker部署oracle _11g
(1)准备工作

#将镜像pull下来
docker pull registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
#查看一下
docker images
#然后先启动一下生成一下数据文件和控制文件
docker run -d --name oracle -p 1521:1521 registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
#将数据目录拷出来
docker cp oracle:/home/oracle/app/oracle/oradata /opt/oracle/oradata

docker cp oracle:/home/oracle/app/oracle/flash_recovery_area/helowin /opt/oracle/flash_recovery_area/helowin
#停止镜像
docker stop oracle
#删除停止镜像
docker rm oracle
#修改用户组
chown -R 500:500 /opt/oracle/
#进行查看权限
 cd /opt/oracle/
 #列出
 ll

(2)开始启动新的镜像并指定创建的数据目录

-d: 以守护(detached)模式运行容器。这意味着容器会在后台运行,而非与当前终端关联,允许您在不附加到容器标准输入和输出的情况下继续使用命令行。

–restart=always: 设置容器的重启策略。当 Docker 主机重启或容器意外退出时,Docker 将始终尝试重新启动此容器。这对于确保关键服务如数据库始终保持运行状态非常有用。

–name oracle_llg: 为新创建的容器指定一个易于识别的名称 oracle_llg,以便后续管理和操作容器时使用。

-p 1521:1521: 映射宿主机(host)端口 1521 到容器内部的端口 1521。这样,外部应用程序可以通过宿主机的 1521 端口访问容器中运行的 Oracle 数据库服务。

–privileged=true: 为容器赋予特权模式。在特权模式下,容器内的进程拥有主机上的所有权限,包括访问硬件设备、执行某些受限操作等。这对于运行需要高度系统权限(如直接访问特定设备)的服务如
Oracle 数据库可能是必要的。

-v /opt/oracle/oradata:/home/oracle/app/oracle/oradata: 创建一个卷挂载,将宿主机目录 /opt/oracle/oradata 挂载到容器内部的 /home/oracle/app/oracle/oradata。这样,容器中的
Oracle 数据库可以使用宿主机上的存储空间来持久化其数据文件,即使容器被删除或重启,这些数据仍会被保留。

-v /opt/oracle/flash_recovery_area/helowin:/home/oracle/app/oracle/flash_recovery_area/helowin:
另一个卷挂载,将宿主机目录 /opt/oracle/flash_recovery_area/helowin
挂载到容器内部的相同路径。这通常是用于存放 Oracle 数据库的闪回恢复区域(Flash Recovery
Area),包含备份、归档日志等重要恢复数据,确保这些数据同样能在容器生命周期之外得到持久化。

registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g:
指定要使用的镜像。这是一个从阿里云(Hangzhou region)上的 Docker 注册表拉取的镜像,由 helowin 用户提供的
oracle_11g 镜像。这个镜像包含了运行 Oracle 11g 数据库所需的所有软件环境和配置。

#启动挂载数据目录的镜像(建议再挂载一个备份目录)
docker run \
    -d \
    --restart=always \
    --name oracle_llg \
    -p 1521:1521 \
    --privileged=true \
    -v /opt/oracle/oradata:/home/oracle/app/oracle/oradata \
    -v /opt/oracle/flash_recovery_area/helowin:/home/oracle/app/oracle/flash_recovery_area/helowin \
    registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
#启动后查看
docker ps

(3)创建用户和修改sys的密码

#进入镜像
docker exec -it oracle_llg /bin/bash
#source一下文件
source ~/.bash_profile
#登录qdl修改sys密码并创建用户
sqlplus /nolog
#下面修改其用户的密码并创建用户的操作
SQL> conn / as sysdba
Connected.
#修改sys用户密码
SQL> alter user sys identified by ucaqaz;

User altered.
#创建tianmen用户并设置密码
SQL> create user tianmen identified by ucaqaz;

User created.
#授予权限tianmen
SQL> grant connect,resource,dba to tianmen;

Grant succeeded.
#提交修改
SQL> commit;

Commit complete.

#执行命令更新的Oracle数据库中的默认配置文件,此配置文件关联的所有用户的密码有效期限制被移除。
SQL> ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;

Profile altered.

SQL> exit

(4)尝试登录

#使用sys进行登录
sqlplus sys/ucaqaz@helowin as sysdba

Connected to:

#使用tianmen登录
sqlplus tianmen/ucaqaz@helowin

#查看所有库
SQL> SELECT DISTINCT owner FROM dba_objects;

4、备份还原数据
(1)指定用户创建directory目录

1、配置备份目录授权
SQL>CREATE OR REPLACE DIRECTORY dumptam AS '/home/oracle/tianmen/';
2、将其授权给用户
SQL>GRANT READ,WRITE ON DIRECTORY dumptam TO tianmen;
3、授予用户导入导出的完全权限
SQL>GRANT EXP_FULL_DATABASE,IMP_FULL_DATABASE TO tianmen;
4、授予用户的使用权
SQL>GRANT RESOURCE TO tianmen;
5、查看生成的directory目录
SQL>SELECT * FROM DBA_DIRECTORIES;
#6、删除directory目录(此命令不用执行)
#drop directory DIRENAME;

(2)备份导入导出

#全量备份(full=y)
expdp tianmen/ucaqaz@helowin full=y directory=dumptam dumpfile=tianmen.dmp
#全量还原
impdp tianmen/ucaqaz@helowin full=y directory=dumptam dumpfile=tianmen.dmp

#备份指定库(schemas=tianmen)
expdp tiananmen/ucaqaz@helowin schemas=tianmen dumpfile=tianmen.dmp directory=dumptam

#还原指定库
impdp tianmen/ucaqaz@helowin schemas=tianmen directory=dumptam dumpfile=tianmen.dmp

5、修改oracle的SID
(1)关闭数据库

#进入容器
docker exec -it oracle_llg /bin/bash
#先关闭数据库使用sys登录
sqlplus sys/ucaqaz@helowin as sysdba
#将其停止
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> exit

(2)修改文件目录将SID修改为orcl

#找到先面的变量将其修改为你要使用的SID=orcl
vi /home/oracle/.bash_profile
ORACLE_SID=orcl;export ORACLE_SID
#然后source一下
source /home/oracle/.bash_profile
#修改下面的文件,将其开头修改为你的SID
vi /etc/oratab
orcl:/home/oracle/app/oracle/product/11.2.0/dbhome_2:Y
#将下面的文件名修改为你要使用的SID
mv hc_helowin.dat hc_orcl.dat
mv orapwhelowin orapworcl
mv spfilehelowin.ora spfileorcl.ora
mv lkHELOWIN lkORCL
#将其关闭的数据库打开
sqlplus / as sysdba
#打开
SQL> startup
ORACLE instance started.

Total System Global Area 1603411968 bytes
Fixed Size                  2213776 bytes
Variable Size             402655344 bytes
Database Buffers         1191182336 bytes
Redo Buffers                7360512 bytes
Database mounted.
Database opened.
#退出
SQL> exit
#然后登录查看其是否已经修改
sqlplus sys/ucaqaz@helowin as sysdba
#查看SID的名称,可以看到是我要改的,可以改之前先查看
SQL> select instance from v$thread;

INSTANCE
--------------------------
orcl
#退出
SQL> exit

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

千川素材投放效果如何追踪:精准识别爆款、潜力、首发、优质素材

在数字营销和广告领域,素材投放的效果直接关乎广告的成功与否。为了在竞争激烈的市场中脱颖而出,广告主和广告从业者需要密切关注素材投放效果,并及时识别出不同类型的素材,如爆款、潜力、首发和优质素材。本文将详细探讨如何进行…

慧天【HTWATER】:水文水动力模型的革命性工具,城市内涝的精准解决方案

城市内涝水文水动力模型介绍 在城市排水防涝规划过程中,水文水动力耦合模型已经成为一种不可或缺的分析工具。在模型建立、城市内涝风险评估、排水系统性能诊断以及海绵城市规划等方面,内涝耦合模型提供了相应的模拟及分析工具: 1.1丰富的数…

Docker安装xxl-job并整合到SpringBoot项目

1. 创建数据库 执行如下SQL语句创建相关表 CREATE database if NOT EXISTS xxl_job default character set utf8mb4 collate utf8mb4_general_ci; use xxl_job;SET NAMES utf8mb4; CREATE TABLE xxl_job_info (id int(11) NOT NULL AUTO_INCREMENT,job_group int(11) NOT NUL…

分享几个以前画过的pcb,确实能看到进步

本文来自看海原创视频教程:《运放秘籍》运算放大器基础精讲及应用第一部*开天 微信公众号:工程师看海 【淘宝】https://m.tb.cn/h.5PAjLi7?tkvmMLW43KO7q CZ3457 「运放秘籍_运算放大器Multisim仿真视频教程第一部开天_工程师看海」 点击链接直接打开 …

【多线程系列】你先说说synchronized的实现原理

面试官:听说你精通多线程,那我就考考你吧 面试官:不用慌尽管说,错了也没关系😊。。。 以贴近现实的【面试官面试】形式来分享技术,本期是《多线程系列》,感兴趣就关注我吧❤️ 面试官&#xff1…

SpringBoot Redis的使用

官方文档: 官方文档:Spring Data Redis :: Spring Data Redis 和jedis一样,SpringBoot Redis 也可以让我在Java代码中使用redis,同样也是通过引入maven依赖的形式。 加速访问github: 使用steam可以免费加速访问github Spring…

第十四届蓝桥杯JavaA组省赛真题 - 特殊日期

解题思路&#xff1a; 暴力秒了 public class Main {public static void main(String[] args) {int cnt 0;for (int i 1900; i < 9999; i) {for (int j 1; j < 12; j) {for (int k 1; k < days(i, j); k) {if (sum(i) sum(j) sum(k)) cnt;}}}System.out.print…

【Flink】Flink 处理函数之基本处理函数(一)

1. 处理函数介绍 流处理API&#xff0c;无论是基本的转换、聚合、还是复杂的窗口操作&#xff0c;都是基于DataStream进行转换的&#xff0c;所以统称为DataStreamAPI&#xff0c;这是Flink编程的核心。 但其实Flink为了更强大的表现力和易用性&#xff0c;Flink本身提供了多…

Matlab与数学计算

原文地址&#xff1a;Matlab与数学计算 - Pleasure的博客 下面是正文内容&#xff1a; 前言 这是一篇笔记。主要用于介绍MatLab的作用以及其作为数学工具的使用方法。 目的是总结学校课件复习自用&#xff0c;但是不可能像相关的书籍那么系统全面&#xff0c;力求简单明了。都…

书生·浦语大模型全链路开源体系-第1课

书生浦语大模型全链路开源体系-第1课 书生浦语大模型全链路开源体系-第1课相关资源课程笔记技术报告笔记 书生浦语大模型全链路开源体系-第1课 为了推动大模型在更多行业落地应用&#xff0c;让开发人员更高效地学习大模型的开发与应用&#xff0c;上海人工智能实验室重磅推出书…

SD-WAN与边缘计算的结合:开启网络性能

随着数字化转型的加速和云计算技术的发展&#xff0c;企业对网络性能和可靠性的需求越来越高。SD-WAN&#xff08;软件定义广域网&#xff09;和边缘计算作为两项重要的技术趋势&#xff0c;在提高网络性能和效率方面发挥着至关重要的作用。本文将探讨SD-WAN与边缘计算的结合如…

linux使用GDB调试段错误

前因&#xff1a;由于在做线程邮箱项目的过程中&#xff0c;遇到了段错误&#xff0c;情况如下&#xff1a; 代码量达到了500多行&#xff0c;使用打印难以实现&#xff0c;试着用GDB调试段错误。 调试过程&#xff1a; 1、使用gcc ./a.out -g 使用加-g来生成调试文件core …

三菱Q系列PLC以太网TCP通讯FB块源码

三菱Q系列PLC的tcp通讯&#xff0c;客户端和服务器两个变量好用的FB块&#xff0c;调用块就可以实现通讯连接&#xff0c;不需要自己写程序&#xff0c;简单配置引脚就可以。该块还集成了断网&#xff0c;连接错误&#xff0c;发送接收数据错误报警等功能。具体功能见下面介绍.…

【linux】基础IO |文件操作符

需要掌握&#xff1a;操作文件&#xff0c;本质&#xff1a;进程操作文件。进程和文件的关系 向文件中写入&#xff0c;本质上向硬件中写入->用户没有权利直接写入->操作系统是硬件的管理者&#xff0c;我们可以通过操作系统往硬件写入->操作系统必须提供系统调用&…

JavaScript邂逅

文章目录 Javascript内容邂逅JavaScript前端的三大核心计算机语言认识编程语言常见的编程语言编程语言的发展历史–机器语言阶段一: 机器语言 编程语言的发展历史–汇编语言阶段二:汇编语言 汇编语言的发展历史–高级语言阶段三:高级语言 机器语言和高级语言 认识JavaScriptJav…

大数据做「AI大模型」数据清洗调优基础篇

关于本文 近期一直在协助做AI大模型数据清洗调优的工作&#xff0c;主要就是使用大数据计算引擎Spark做一些原始数据的清洗工作&#xff0c;整体数据量大约6PB-8PB之间&#xff0c;那么对于整个大数据量的处理性能将是一个重大的挑战&#xff0c;关于具体的调优参数配置项暂时不…

面向对象特征一:封装性

9.1 为什么需要封装&#xff1f; 我要用洗衣机&#xff0c;只需要按一下开关和洗涤模式就可以了。有必要了解洗衣机内部的结构吗&#xff1f;有必要 碰电动机吗&#xff1f; 我要开车&#xff0c;我不需要懂离合、油门、制动等原理和维修也可以驾驶。 客观世界里每一个事物…

python图像界面改左上角窗口的的icon图标

目录 问题描述 解决办法 展示成功 结语 问题描述 Traceback (most recent call last): File "d:\桌面\python项目\py_boomer-master\py_boomer-master\微信公众号.py", line 20, in <module> window.iconbitmap(D:/桌面/python项目/3.png) # Correc…

主流电商平台api接口实时数据返回

主流电商平台的API接口可以实时返回一些常用的数据&#xff0c;包括但不限于以下几种&#xff1a; 商品数据&#xff1a;可以获取平台上的商品信息&#xff0c;包括商品名称、价格、库存等。 订单数据&#xff1a;可以获取用户下单的订单信息&#xff0c;包括订单号、下单时间…

快速识别PLC通讯中的两种主要应用方式

在工业自动化领域&#xff0c;PLC扮演着至关重要的角色。然而&#xff0c;许多人在初次接触PLC通讯时&#xff0c;常因其复杂性而感到困扰。事实上&#xff0c;PLC的通讯并不如人们想象中的那么神秘&#xff0c;它主要只有两种类型&#xff1a;一种是需要编写代码的通讯方式&am…
最新文章