Docker安装Oracle11g(安装简单)

本文详细指导如何在Linux中使用阿里镜像快速拉取Oracle 11g镜像,并提供两种容器启动方式:默认和持久化。重点讲解了如何设置环境变量、配置数据库、用户权限及实例管理。适合初次尝试Docker部署Oracle的开发者。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

背景

在Linux中安装oracle非常麻烦,相信每个人也会遇到各种坑。为了一次装好,也方便将来直接可以导出镜像在各平台移植使用,所以选择用docker安装 Oracle。

使用官方镜像下载速度非常慢,因此,我们可以使用阿里镜像。

拉取镜像

  1. 拉取oracle_11g镜像

拉取oracle镜像(oracle 11.0.2 64bit 企业版 实例名: helowin)

Oracle主要在Docker基础上安装,安装环境注意空间和内存,Oracle是一个非常庞大的一个软件,

最低配置要2G以上,硬盘要30G以上更好,由于镜像都有好6.8个G。

登录阿里容器镜像服务平台,找到镜像中心-->镜像搜索,输入相应的镜像名称找到合适的镜像。

建议使用网易镜像或阿里镜像网站这里以oracle 11.0.2 64bit 企业版

实例名: helowin为例子进行安装详解。

docker pull registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g

  1. 运行容器

2.1 默认启动容器方式

docker run -d --name oracle11g -p 1521:1521 --restart=always registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g 

或
docker run -d -it -p 1521:1521 \
--name oracle11g \
--restart=always registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g 

2.2 持久化启动的方式

docker run -d -it -p 1521:1521 --name oracle11g --restart=always --mount source=oracle_vol,target=/home/oracle/app/oracle/oradata registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g

或
docker run -d -it -p 1521:1521 \
--name oracle11g \
--restart=always \
--mount source=oracle_vol,target=/home/oracle/app/oracle/oradata registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g

一般用默认启动方式就可以了,若是需要将数据保存到本地的采用持久化方式。

--mount表示要将Host上的路径挂载到容器中。

source=oracle_vol为Host的持久化卷,若未提前创建会自动创建,可通过

target=/home/oracle/app/oracle/oradata :自己Linux的家目录

docker volume inspect oracle_vol

查看volume的具体位置,target为容器中的路径

  1. 查看容器启动状态

docker ps | grep oracle11g  
  1. 进入oracle11g容器进行配置

docker exec -it oracle11g /bin/bash 
  1. 切换到root用户下进行配置:

切换root用户:su root

输入密码: helowin ##可以使用passwd命令更改自己的密码

  1. 编辑profile文件配置ORACLE环境变量:

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  
  1. 保存后加载环境变量,立即生效:

source /etc/profile  
  1. 创建软连接:

作用:可以直接用oracle命令,而不需要进入bin目录中执行相应的命令。

ln -s $ORACLE_HOME/bin/sqlplus /usr/bin  
  1. 切换到oracle 用户:

su - oracle  
登录sqlplus并修改sys、system用户密码:
sqlplus /nolog                                      # 登录oracle
conn /as sysdba                                     # 连接,需要进行操作系统验证,才可进行连接登录
alter user system identified by system;                        # 修改system用户账号密码system
alter user sys identified by sys;                              # 修改sys用户账号密码sys
ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;      # 修改密码规则策略为密码永不过期
exit;                                                          # 退出
  1. 补充命令

补充命令
登录sqlplus并修改sys、system用户密码: 需要注意的是再oracle用户下操作
sqlplus /nolog                                      # 登录
conn /as sysdba                                     # 连接
create user test identified by test;                #创建内部管理员账号密码;
grant connect,resource,dba to yan_test;             #将dba权限授权给内部管理员账号和密码;
alter system set processes=1000 scope=spfile;       #修改数据库最大连接数据;
修改以上信息后,需要重新启动数据库
shutdown immediate;                                 #关闭数据库
startup;                                            #启动数据库
SQL> select instance from v$thread;                 #查看数据库sid(实例名)
clear SCR  或clear screen或clea scre                 #sqlplus清屏命令
创建表空间
create tablespace pts datafile '/home/oracle/app/oracle/oradata/helowin/pts.dbf' size 100m autoextend on next 10m

删除表空间
drop tablespace PTS;

查看所有表空间
select tablespace_name from dba_tablespaces;

创建用户
create user PTS identified by PTS default tablespace PTS;

删除用户
drop user pts cascade;

为sys用户添加sysdba权限
SQL> grant sysdba to sys;

查看哪些用户被授予DBA权限
select * from dba_role_privs where granted_role='DBA';

查看数据库编码
SQL> select userenv('language') from dual;

查看数据库权限和用户

SQL> show parameter password         #查看数据库权限
SQL> select * from v$pwfile_users;   #查看用户

  1. 查看一下oracle实例状态:

lsnrctl status             -查看一下oracle实例状态:

监听命令

$ lsnrctl stop listener    -停止名为listener的监听服务
$ lsnrctl start listener   -启动名为listener的监听服务
$ lsnrctl reload listener  -重新加载名为listener的监听服务

查看环境变量

cat /home/oracle/.bash_profile

看到此ORACLE_SID=helowin表示数据库的实例名称

  1. navicate连接

### 回答1: 要在Docker安装Oracle 11g,您需要执行以下步骤: 1. 下载Oracle 11g安装文件(例如:oracle-xe-11.2.-1..x86_64.rpm.zip)并将其放置在Docker主机上的某个目录中。 2. 创建一个Dockerfile,其中包含以下内容: FROM oraclelinux:7-slim COPY oracle-xe-11.2.-1..x86_64.rpm.zip /tmp/ RUN yum -y install unzip && \ unzip /tmp/oracle-xe-11.2.-1..x86_64.rpm.zip -d /tmp/ && \ yum -y localinstall /tmp/Disk1/oracle-xe-11.2.-1..x86_64.rpm && \ rm -rf /tmp/* EXPOSE 1521 EXPOSE 808 CMD ["/u01/app/oracle/product/11.2./xe/bin/tnslsnr", "start"] 3. 构建Docker镜像: docker build -t oracle11g . 4. 运行Docker容器docker run -d -p 1521:1521 -p 808:808 --name oracle11g oracle11g 5. 等待Oracle 11g安装完成并启动。 6. 使用SQL Developer等工具连接到Oracle 11g数据库。 请注意,这只是一个简单的示例,您可能需要根据您的环境和需求进行更改。此外,Oracle 11g的许可证限制可能会影响您的使用。 ### 回答2: Docker是一种开源的容器化技术,能够轻松部署应用程序,提高应用程序的可移植性,并大幅度降低应用程序的运维成本。随着企业级应用不断增加,更多的企业开始使用Docker安装Oracle11g,以此来实现业务流程的自动化和高效运维。 要安装Oracle11g,以下是详细的步骤: 1.准备工作 在安装Oracle11g之前,我们需要在宿主机上安装DockerDocker-compose。这可以在Docker官方网站上获得。 2.创建Docker Image 我们需要创建一个新的Image,这个Image可以根据我们的需求,来进行任何操作和修改。在Dockerfile中编写需要安装的软件信息,如: ``` # Create by Dockerfile FROM registry.docker-cn.com/library/oraclelinux:7-slim # Install git and some dependencies RUN yum install -y gcc glibc-devel libaio-devel sysstat # Copy response file ADD ./oracle11gr2.rsp /home/oracle/ # Copy installation software to image COPY ./linux.x64_11gR2_database_1of2.zip /tmp/ COPY ./linux.x64_11gR2_database_2of2.zip /tmp/ # Extract the installation files RUN unzip /tmp/linux.x64_11gR2_database_1of2.zip -d /home/oracle/; unzip /tmp/linux.x64_11gR2_database_2of2.zip -d /home/oracle/ # Change the /etc/hosts file RUN echo 127.0.0.1 `hostname` >> /etc/hosts # Change oracle users' password RUN echo "oracle:oracle" | chpasswd # Untar database installation RUN su - oracle -c "cd /home/oracle/database; \ ./runInstaller -silent -responseFile /home/oracle/oracle11gr2.rsp -waitForCompletion; \ /home/oracle/oraInventory/orainstRoot.sh; \ /home/oracle/app/oracle/product/11.2.0/dbhome_1/root.sh" # Oracle Environment Variables ENV ORACLE_BASE=/home/oracle/app/oracle ENV ORACLE_HOME=/home/oracle/app/oracle/product/11.2.0/dbhome_1 ENV PATH=$PATH:$ORACLE_HOME/bin ENV LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH # Expose oracle port EXPOSE 1521 # Run Listener and Database RUN su - oracle -c "$ORACLE_HOME/bin/dbca -silent -createDatabase -templateName General_Purpose.dbc \ -gdbName orcl \ -sysPassword oracle \ -systemPassword oracle \ -emConfiguration NONE \ -datafileDestination /home/oracle/app/oracle/oradata \ -storageType FS \ -characterSet AL32UTF8 \ -totalMemory 1024 \ -redoLogFileSize 100 \ -runScripts true" # Clean Up WORKDIR /home/oracle RUN rm -rf /tmp/* # Set command to be execute when creating a container CMD [ "sh", "-c", "echo 'Database is ready! Connect to the container to start using Oracle!' && tail -f /dev/null" ] ``` docker build命令可以构建新的Image: ``` docker build -t oracle11g . ``` 3.启动容器 启动容器,将端口1521映射到宿主机上的1521端口,同时将容器的运行目录作为了宿主机目录兼容: ``` docker run -d -p 1521:1521 -v ~/docker/oracle11g:/home/oracle -v ~/docker/oracle11g_backup:/backup --name oracle11g oracle11g ``` 4.登录到容器中 ``` docker exec -it oracle11g /bin/bash ``` 5.输入一些简单的信息,以配置Oracle11g: ``` export ORACLE_SID=orcl sqlplus /nolog SQL> conn / as sysdba SQL> alter user sys identified by oracle; SQL> alter user system identified by oracle; SQL> grant connect, resource to test; SQL> exit; ``` 6.测试连接 使用sqlplus等数据库管理工具连接Oracle11g,确保我们的安装成功: ``` /usr/local/bin/sqlplus sys/oracle as sysdba /usr/local/bin/sqlplus system/oracle ``` 最后要注意的是,Oracle11g是一个非常庞大和复杂的软件,大部分的Docker Image都需要至少4GB的空间;并且在宿主机上安装Docker前,我们需要了解Oracle11g对于操作系统的版本和硬件资源的要求。希望通过这个简单的教程,您可以轻松地在Docker上,安装和运行Oracle11g! ### 回答3: Docker是一个开源的容器虚拟化平台,能够实现应用程序的快速部署和管理。Oracle11g是一款功能强大的关系型数据库管理系统,广泛应用于企业级应用中。下面是Docker安装Oracle11g的步骤: 1、安装Docker 首先需要安装Docker,可以在Docker的官方网站(https://www.docker.com/)上下载Docker安装包,根据安装包指引完成Docker安装。 2、下载Oracle11g镜像 由于Oracle11g是商业软件,需要购买许可证才能下载和使用。但是,Oracle公司提供了一个Docker镜像,可以在Docker Hub上直接下载和使用。在Docker的命令行中执行以下命令,即可下载Oracle11g镜像:docker pull wnameless/oracle-xe-11g 3、启动容器 下载完成Oracle11g镜像之后,需要启动容器来运行Oracle11g数据库。使用以下命令来启动一个新的Oracle11g容器docker run --name oracle11g -p 1521:1521 -p 8080:8080 -e ORACLE_ALLOW_REMOTE=true -e ORACLE_DISABLE_ASYNCH_IO=false -d wnameless/oracle-xe-11g 在这个命令中,通过-e选项指定了容器Oracle服务器的一些配置, -p 选项指定了容器内外的端口映射,其中1521端口用于Oracle数据库访问,8080端口用于访问Oracle的控制台。 4、测试Oracle11g 容器启动之后,还需要测试Oracle11g是否能正常工作。在本地计算机上通过sqlplus命令或者其他Oracle工具连接到服务器并执行sql语句,可以验证Oracle是否安装正确。 综上是Docker安装Oracle11g的步骤。在安装过程中需要注意一些细节,例如需要提前创建用于存储Oracle数据文件的目录,并使用-v选项将其挂载到容器内部。同时需要保证计算机硬件条件符合Oracle11g运行的最低要求,才能保证Oracle11g在容器中正常工作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值