1.拉取Oracle镜像,并检查结果,时间较长
docker pull registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
docker images
2.创建容器
docker run -d -p 1521:1521 --name oracle11g registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
#上面命令说明:创建一个名为oracle11g的容器,并进行端口映射
3.进入容器,运行命令
docker exec -it -u root oracle11g bash
#上面命令说明:进入容器,身份为root。
vi /etc/profile
#上面命令说明:编辑profile,加入下面两条环境变量,调整PATH设置。
export ORACLE_HOME=/home/oracle/app/oracle/prouct/11.2.0/dbhome_2
export ORACLE_SID=helowin
export PATH=$ORACLE_HOME/bin:$PATH
source /etc/profile
#上面命令说明:使环境变量立即生效
ln -s $ORACLE_HOME/bin/sqlplus /usr/bin
#上面命令说明:创建软连接
su - oracle
sqlplus /nolog
conn / as sysdba
shutdown immediate
startup
select count(*) from tab;
alter user system identified by oracle;
alter user sys identified by oracle;
ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
alter system set processes=1000 scope=spfile;
#上面命令说明:切换用户,sqlplus连接Oracle,关闭数据库(此时database处于nomount状态,先关再开操作方便。正统的办法是执行两条命令:alter database mount;alter database open;),启动数据库,执行统计表数量的测试命令,修改用户密码、密码不过期、进程数量。
#如果一切正常,再执行下面命令(sqlplus中,shutdown immediate)关闭数据库。因为后续要进行目录映射,拷贝数据文件、控制文件等,必须要在数据库关闭情况下复制,不然启动会有问题。实际上相当于数据库冷备份与恢复。
4.退出sqlplus、退出容器,进入宿主机,拷贝数据文件、控制文件
#多次执行exit,观察命令提示符,进入宿主机器执行命令。
mkdir -p /opt/oracle/oradata
docker cp oracle11g:/home/oracle/app/oracle/oradata/ /opt/oracle/oradata/
#上面命令说明:宿主机创建目录,拷贝容器中Oracle的数据文件到宿主机目录
5.重新创建容器,设置目录映射
#比较正统的办法,应该是修改容器的启动参数。简单粗暴一点儿,先删除,再重新创建。
docker rm -f oracle11g
docker run -d --name oracle11g --restart unless-stopped \
-v /opt/oracle/oradata/helowin:/home/oracle/app/oracle/oradata/helowin \
-p 1521:1521 registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
#仅映射了数据文件、控制文件,根据需要映射闪回文件、日志文件等。
6.进入容器,执行命令
#因为删除容器重新创建,所以要再执行一次。详细情况参见3。关闭数据库,启动数据库。如无异常,就完成了。常见两个异常。情况、原因及处置方法如下。
#异常1:如果提示ORA-00214错误,控制文件不一致。用/home/oracle/app/oracle/oradata/helowin/control01.ctl覆盖/home/oracle/app/oracle/flash_recovery_area/helowin/control02.ctl,实现一致。
cp /home/oracle/app/oracle/oradata/helowin/control01.ctl /home/oracle/app/oracle/flash_recovery_area/helowin/control02.ctl
#拷贝后,sqlplus连接后,关闭数据库,再开。
#异常2:ORA-00205,这个应该是文件访问权限的问题。在容器中,设置数据文件、控制文件(经过映射后,实际为宿主机上的文件)的访问权限。
chown -R oracle:oinstall /home/oracle/app/oracle/oradata/helowin
#设置后,sqlplus连接后,关闭数据库,再开。
===整理完善,by wallimn,2024-02-06,转载请保留===
分享到:
相关推荐
Docker 安装 Oracle11g(CentOs)
在这篇文章中,我们将学习如何使用 Docker 安装 Oracle 数据库,包括创建容器、安装 Oracle 软件包、配置 hostname 和 hosts 文件、创建用户和组、安装 unzip 和 vim 等指令。 首先,我们需要安装 Docker,並启动 ...
在安装 Oracle 之前,我们需要先安装 Docker。在 Linux 上,可以使用以下命令安装 Docker: ``` yum install -y yum-utils device-mapper-persistent-data lvm2 ``` 然后,添加阿里云的 Docker yum 源: ``` yum-...
在CentOS 7上离线安装Oracle 11g R2是一项技术性较强的任务,因为需要解决许多依赖问题。这里我们将详细讲解如何在没有网络连接的情况下,完成Oracle 11g R2在CentOS 7上的安装。 首先,你需要准备一个包含所有离线...
离线镜像文件大概有3个多G,存放在百度云上面,下面附上我们总结在window10 上和centos 上面创建docker for oracle 12c 容器的经验内容,坑过多少坑了。再也不需要使用安装版的oracle 。 具体: store/oracle/...
本文档将指导读者在 Docker 容器中安装 Oracle 11.2.0.4。为达到此目的,需要准备一个 Centos 系统的宿主机,并安装 Docker 软件。然后,使用 Docker 镜像运行容器,并在容器中执行多个命令以安装 Oracle。 环境...
辛苦整理了OracleLinux7 CentOS7 Redhat7离线安装docker教程以及依赖。
安装CentOS 7.6.1810时,需要从安装光盘启动,并在安装向导中选择语言(推荐使用英文版以确保最佳兼容性和安全性),然后进行系统和存储分区。在分区过程中,创建必要的分区,如`/boot`、`/swap`(大小应为内存的两...
centos 7 静默安装oracle 19c脚本,请自行检查脚本中对应参数
centos7下利用Docker部署oracle11g,附操作所有流程,简单易学,包用包会,所有命令流程和截图
Java version: 1.7.0_151,vendor: Oracle Corporation Java home:/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.151- 2. 6. 11. 1.e17_4.x86_64/jre Default locale: en_US, platform encoding: UTF-8 OS name: "linux",...
Oracle Oracle的JDK安装在最新的centos容器之上。 该容器基于最新版本的centos构建。
不同的 Docker 版本可能对系统的要求也不一样,比如对内核版本的要求、对系统资源的要求等,因此在安装之前,用户需要根据自己的系统环境选择合适的 Docker 版本进行下载。安装包列表中通常会包含多个版本的 Docker...
在这个过程中,Docker提供容器化技术,CentOS提供稳定的操作系统平台,OpenJDK则提供Java应用程序的运行环境。 构建一个CentOS+OpenJDK的基础镜像,通常需要以下几个步骤: 1. 使用Dockerfile来定义镜像的构建过程...
在本文中,我们将详细讨论如何在Linux系统上安装Docker 20.10.6版本以及Java Development Kit (JDK) 1.8 版本,这两个组件对于开发和运行Java应用程序至关重要。 1. Docker 20.10.6 安装: 在Linux上安装Docker...
80 Install 在Oracle Linux 6和7上安装oracle 18c 81 Master Note For Oracle Flashback Technologies (文档 ID 1138253.1) 82 NetBackup_Troubleshoot_Guide 83 OceanStorF面向Oracle数据库OLAP最佳实践 84 ...
Linux Centos 环境 Kettle 部署与定时作业执行是指在 Linux Centos 环境中部署 Kettle 工具,并配置定时作业执行。下面将详细介绍 Kettle 部署和定时作业执行的步骤。 一、java 安装和配置 在部署 Kettle 之前,...
用户通常会通过wget或者curl命令从Oracle官方网站下载此文件,但在这个情况下,文件已经包含在压缩包中。 部署脚本`jdk-install.sh`的作用在于自动化这些步骤。脚本可能包含了以下内容: 1. **检查权限**:确保...
CentOS 7.9是 CentOS Linux 发行版的一个重要版本,它基于Red Hat Enterprise Linux (RHEL) 7.9源代码,为用户提供了一个稳定、可靠的...记得在安装过程中根据实际需求配置硬件、网络和存储,以确保系统的高效运行。
docker-centos7-jre8 基于 Centos 7 的带有 Oracle JRE 8 的 Docker 容器