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上的安装。 首先,你需要准备一个包含所有离线...
本文档将指导读者在 Docker 容器中安装 Oracle 11.2.0.4。为达到此目的,需要准备一个 Centos 系统的宿主机,并安装 Docker 软件。然后,使用 Docker 镜像运行容器,并在容器中执行多个命令以安装 Oracle。 环境...
离线镜像文件大概有3个多G,存放在百度云上面,下面附上我们总结在window10 上和centos 上面创建docker for oracle 12c 容器的经验内容,坑过多少坑了。再也不需要使用安装版的oracle 。 具体: store/oracle/...
辛苦整理了OracleLinux7 CentOS7 Redhat7离线安装docker教程以及依赖。
安装CentOS 7.6.1810时,需要从安装光盘启动,并在安装向导中选择语言(推荐使用英文版以确保最佳兼容性和安全性),然后进行系统和存储分区。在分区过程中,创建必要的分区,如`/boot`、`/swap`(大小应为内存的两...
centos 7 静默安装oracle 19c脚本,请自行检查脚本中对应参数
Oracle Oracle的JDK安装在最新的centos容器之上。 该容器基于最新版本的centos构建。
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 之前,...
在本文中,我们将详细讨论如何在Linux系统上安装Docker 20.10.6版本以及Java Development Kit (JDK) 1.8 版本,这两个组件对于开发和运行Java应用程序至关重要。 1. Docker 20.10.6 安装: 在Linux上安装Docker...
用户通常会通过wget或者curl命令从Oracle官方网站下载此文件,但在这个情况下,文件已经包含在压缩包中。 部署脚本`jdk-install.sh`的作用在于自动化这些步骤。脚本可能包含了以下内容: 1. **检查权限**:确保...
docker-centos7-jre8 基于 Centos 7 的带有 Oracle JRE 8 的 Docker 容器
在本文中,我们将详细讨论如何在 CentOS 7 上安装和配置几个关键的组件,包括 Maven、Docker 和 Java 环境(JDK 1.8)。这些组件对于开发和运行基于开源技术的应用程序至关重要。 首先,我们来看如何在 CentOS 7 上...
Docker Engine是业界事实上的容器运行时,可以在各种Linux(CentOS,Debian,Fedora,Oracle Linux,RHEL,SUSE和Ubuntu)和Windows Server操作系统上运行。 Docker创建了简单的工具和通用打包方法,将所有应用程序...
Docker Engine是业界事实上的容器运行时,可在各种Linux(CentOS,Debian,Fedora,Oracle Linux,RHEL,SUSE和Ubuntu)和Windows Server操作系统上运行。Docker创建了简单的工具和通用打包方法,将所有应用程序依赖...
本次博文以Oracle 12c数据库的64位企业版为例,学习如何在Centos 操作系统中的安装和基本配置,包括安装的准备等。 博文大纲: 一、安装Oracle 12c 二、创建Oracle 12c数据库 三、Oracle 12c数据库的启动与关闭 四...