当前位置: 首页 > news >正文

环境搭建:centos7+docker+Oracle

前提:系统 centos7
在系统安装 docker(最好是最新版本)
安装 对应 JAVA 环境
安装 Oracle ,直接从 docker 镜像拉不下来,所以需要换个镜像源

docker pull registry.cn-hangzhou.aliyuncs.com/lhrbest/oracle_12cr2_ee_lhr_12.2.0.1:2.0

启动docker,这里就是基本参数,设置网络、开机启动啥的多余的都删掉了,自己根据需求来

docker run -itd --name oracle12c -p 1521:1521 -p 2222:22 -p 5500:5500 -p 5501:5501 registry.cn-hangzhou.aliyuncs.com/lhrbest/oracle_12cr2_ee_lhr_12.2.0.1:2.0 init
# 进入容器
docker exec -it oracle12c bash3.2 修改环境变量
# 修改环境变量(i 插入 :w 保存 :q 离开)
vi /etc/profile
# 在文件最下面增加以下三行
export ORACLE_HOME=/u01/app/oracle/product/12.2.0.1/dbhome_1/
export ORACLE_SID=lhrcdb1
export PATH=$ORACLE_HOME/bin:$PATHsource /etc/profile3.3 切换用户
su oracle
sqlplus /nolog
conn /as sysdba 
conn system/system@lhrcdb1 as sysdba
#启动数据库
startup3.4 启动监听
在上面步骤完成后,键入 exit 然后输入启动监听命令lsnrctl start

附上centos 内 sh启动脚本

#!/bin/bash# ========================================
# Oracle Docker 自动化启动脚本
# 作者:wangjinnan
# 用途:一键启动 Oracle 容器并初始化数据库
# ========================================CONTAINER_NAME="oracle12c"
IMAGE="registry.cn-hangzhou.aliyuncs.com/lhrbest/oracle_12cr2_ee_lhr_12.2.0.1:2.0"
ORACLE_HOME="/u01/app/oracle/product/12.2.0.1/dbhome_1"
ORACLE_SID="lhrcdb1"# 颜色输出
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
RED='\033[0;31m'
NC='\033[0m' # No Colorlog() {echo -e "${GREEN}[INFO] $1${NC}"
}warn() {echo -e "${YELLOW}[WARN] $1${NC}"
}error() {echo -e "${RED}[ERROR] $1${NC}"
}# 1. 启动 Docker 容器
log "正在启动 Docker 容器..."
docker run -d \--name $CONTAINER_NAME \-p 1521:1521 \-p 2222:22 \-p 5500:5500 \-p 5501:5501 \--restart=unless-stopped \$IMAGE init > /dev/null 2>&1if [ $? -ne 0 ]; thenwarn "容器可能已存在,尝试启动已有容器..."docker start $CONTAINER_NAME > /dev/null 2>&1
fisleep 5# 2. 检查容器是否运行
if ! docker ps | grep -q $CONTAINER_NAME; thenerror "容器启动失败,请检查镜像是否正确或端口是否被占用"exit 1
filog "容器已运行"# 3. 配置环境变量(仅添加一次)
log "配置环境变量到 /etc/profile"docker exec $CONTAINER_NAME bash -c "
if ! grep -q 'ORACLE_HOME' /etc/profile; thenecho '
# Oracle Environment
export ORACLE_HOME=$ORACLE_HOME
export ORACLE_SID=$ORACLE_SID
export PATH=\$ORACLE_HOME/bin:\$PATH
' >> /etc/profileecho 'export ORACLE_HOME='$ORACLE_HOME > /etc/profile.d/oracle.shecho 'export ORACLE_SID='$ORACLE_SID >> /etc/profile.d/oracle.shecho 'export PATH=\$ORACLE_HOME/bin:\$PATH' >> /etc/profile.d/oracle.shchmod +x /etc/profile.d/oracle.shlog '环境变量已添加'
elsewarn '环境变量已存在,跳过写入'
fi
"# 4. 重新进入容器,执行数据库启动命令
log "切换到 oracle 用户并启动数据库"docker exec -u oracle -it $CONTAINER_NAME bash -c "
source /etc/profile
echo '当前环境变量:'
echo 'ORACLE_HOME: '\$ORACLE_HOME
echo 'ORACLE_SID: '\$ORACLE_SID
echo 'PATH: '\$PATH# 进入 sqlplus
echo '
正在启动数据库...'
sqlplus /nolog << EOF
conn / as sysdba
startup
exit;
EOF
"# 5. 启动监听器
log "启动 Oracle 监听器"
docker exec -u oracle -it $CONTAINER_NAME bash -c "
source /etc/profile
lsnrctl start
"log "数据库和监听器已启动完成!"
log "连接信息:"
echo "  主机: localhost"
echo "  端口: 1521"
echo "  SID: $ORACLE_SID"
echo "  示例连接: sqlplus system/system@$ORACLE_SID as sysdba"
http://www.lryc.cn/news/626552.html

相关文章:

  • 【Day 30】Linux-SQL语句
  • 【爬虫实战-IP代理的重要性二】 以Selenium为例
  • 高通 XR 系列芯介绍
  • 发那科机器人程序调整功能
  • 搭建一个SpringBoot项目的流程
  • 05-网关服务开发指南
  • 使用Spring Retry组件优雅地实现重试
  • 【网络】使用 DNAT 进行负载均衡时,若未配置配套的 SNAT,回包失败
  • 数字IC后端设计实现常见后端问题解析
  • 面试官视角分析与提问点
  • SpringBoot3 Ruoyi芋道管理后台vben5.0
  • 【Express零基础入门】 | 构建简易后端服务的核心知识
  • 【Java后端】Spring Boot 全局异常处理最佳实践
  • ssl代理
  • SED项目复现学习实录
  • Milvus 可观测性最佳实践
  • Linux高效备份:rsync + inotify实时同步
  • Clonezilla live 再生龙还原系统各个版本的不同
  • Jupyter Notebook 的终极进化:VS Code vs PyCharm,数据科学的IDE王者之争
  • 27.语言模型
  • Visual Studio 2010 简体中文旗舰版 安装全过程详解(附安装包下载)
  • 草稿链(CoD):提示词技术的新王者
  • 个人使用AI开发的《PlSqlRewrite4GaussDB(PLSQL自动转换工具)1.0.1 BETA》发布
  • 【考研408数据结构-09】 图论进阶:最短路径与最小生成树
  • 【Obsidian插件】HiNote
  • iOS开发之UICollectionView为什么需要配合UICollectionViewFlowLayout使用
  • 数据结构-有序二叉树
  • 【机器学习深度学习】Ollama、vLLM、LMDeploy对比:选择适合你的 LLM 推理框架
  • HTML应用指南:利用POST请求获取全国刘文祥麻辣烫门店位置信息
  • 学习threejs,打造宇宙星云背景