Oracle12C数据库搭建手册
创建文件sudo systemctl daemon-reload #重载systemd管理守护进程配置文件sudo systemctl restart docker #重启 Docker 服务保存退出镜像加速方法一:假如拉取原始镜像命令如下仅需在原命令前缀加入加速镜像地址 例如:方法二:一键设置镜像加速:修改文件 /etc/docker/daemon.json(如果不存在则创建)修改JSON文件
一、通过docker搭建Oracle
(一)、环境准备
CentOS 7 oracle.tar镜像包(可参考三镜像的拉去)
(二)、docker搭建
1、下载docker离线安装包
docker下载地址:Docker版本下载
![]() |
![]() |
2、安装docker
将下载好docker上传到对应的服务器上并解压
|
sudo tar -xvf docker-26.1.4-x86_64.tgz |
|
给docker执行文件赋予可执行权限 sudo chmod 755 -R docker |
|
复制docker到/usr/bin/目录下,使docker命令可以执行 sudo cp docker/* /usr/bin/ |
|
复制docker到/usr/bin/目录下,使docker命令可以执行 sudo cp docker/* /usr/bin/ |
|
清理解压后的文件(此步骤可以选择不做) sudo rm -rf docker docker-26.1.4-x86_64.tgz |
3、配置docker服务
|
创建docker服务配置文件docker.service sudo vim /etc/systemd/system/docker.service |
|
在文件中添加一下内容: [Unit] Description=Docker Application Container Engine Documentation=https://docs.docker.com After=network-online.target firewalld.service Wants=network-online.target [Service] Type=notify ExecStart=/usr/bin/dockerd ExecReload=/bin/kill -s HUP $MAINPID TimeoutSec=0 RestartSec=2 ExecStartPost=/usr/sbin/iptables -P FORWARD ACCEPT Restart=always TimeoutStartSec=0 LimitNOFILE=infinity LimitNPROC=infinity LimitCORE=infinity Delegate=yes KillMode=process StartLimitBurst=3 StartLimitInterval=60s [Install] WantedBy=multi-user.target |
|
赋予docker服务配置文件docker.service执行权限 sudo chmod +x /etc/systemd/system/docker.service |
4、启动docker服务
|
加载systemctl配置 sudo systemctl daemon-reload |
|
启用docker服务开机自启动 sudo systemctl enable docker.service |
|
启动docker服务 sudo systemctl start docker |
|
检查docker服务状态 sudo systemctl status docker |
|
查看安装的docker版本 sudo docker -v |
5、docker服务自定义配置及镜像加速配置
|
创建daemon.json文件 sudo vim /etc/docker/daemon.json { "data-root":"/data/data/docker", "insecure-registries":["www.xxx.com"], "registry-mirrors":["https://dockerproxy.cn"] } sudo systemctl daemon-reload #重载systemd管理守护进程配置文件 sudo systemctl restart docker #重启 Docker 服务 保存退出 |
|
镜像加速 方法一:假如拉取原始镜像命令如下 docker pull whyour/qinglong:latest 仅需在原命令前缀加入加速镜像地址 例如: docker pull dockerproxy.cn/whyour/qinglong:latest 方法二: 一键设置镜像加速:修改文件 /etc/docker/daemon.json(如果不存在则创建) /etc/docker/daemon.json 修改JSON文件 更改为以下内容 然后保存 {"registry-mirrors": ["https://dockerproxy.cn"]} 保存好之后 执行以下两条命令 sudo systemctl daemon-reload #重载systemd管理守护进程配置文件 sudo systemctl restart docker #重启 Docker 服务 |
|
查看更改自定义后的docker服务信息 sudo docker info |
|
修改docker的数据存储路径 一般docker默认的存储路径为/var/lib/docker 若要修改则在/etc/docker/daemon.json添加: {"data-root":"/data/data/docker",} sudo docker info//查看是否路径改变
若已经在/var/lib/docker生成了数据,需要改变存储路径,则需将/var/lib/docker中的数据全部迁移复制到 新的目录如/data/data/docker下,注意:在复制过程中一定记得带权限一起复制,例 如:cp -rp /var/lib/docker/* /data/data/docker/,再重新加载启动docker,查看docker info存储路径是否改变 |
二、docker-compose离线安装
(一)、下载docker-compose离线安装包
(二)、安装docker-compose
|
将下载好的镜像上传到服务器 |
|
复制docker-compose到/usr/local/bin/目录下 sudo cp -f docker-compose-linux-x86_64.v2.28.1 /usr/local/bin/docker-compose |
|
赋予docker-compose可执行权限 sudo chmod +x /usr/local/bin/docker-compose |
|
查看docker-compose版本 sudo docker-compose -v |
(三)、一键安装、卸载(参照别人)
|
一键安装脚本 创建docker和docker-compose一键安装脚本 #!/bin/bash #定义字体颜色 RE='\033[1;31m' # Red color code GR='\033[1;32m' # Green color code BL='\033[1;34m' # Blue color code PU='\033[1;35m' # Purple(紫) color code SK='\033[1;36m' # SkyBlue(天蓝) color code NC='\033[0m' # Reset color to normal echo '解压tar包并给与docker权限...' tar -xvf ./package/docker* -C ./package && chmod 777 ./package/docker/* echo '将docker移到/usr/bin目录下...' cp -r ./package/docker/* /usr/bin/ echo '将docker.service移到/etc/systemd/system/目录并给与权限...' cp -r ./conf/docker.service /etc/systemd/system/ && chmod 777 /etc/systemd/system/docker.service echo '######################' echo '创建docker工作目录并创建daemon.json配置文件...' mkdir -p /etc/docker && mkdir -p /data/app/dockerWork tee /etc/docker/daemon.json <<-'EOF' { "data-root":"/data/app/dockerWork", "insecure-registries": ["ss.suwell.com"], "registry-mirrors": ["https://geuj9lut.mirror.aliyuncs.com"] } EOF echo '重新加载配置文件并重启docker...' systemctl daemon-reload && systemctl restart docker echo '设置docker开机自启动...' systemctl enable docker.service echo '######## docker版本信息 ########' docker info echo '将docker-compose移到/usr/bin/目录...' cp ./conf/docker-compose* /usr/local/bin/docker-compose && chmod 777 /usr/local/bin/docker-compose echo -e "${PU}######## 验证docker安装结果... ########${NC}" if ! docker version; then echo -e "${RE}docker 安装失败...${NC}" exit -1 fi echo -e "${GR}docker安装成功!!!${NC}" echo -e "${PU}######## 验证docker-compose安装结果... ########${NC}" if ! docker-compose -v; then echo -e "${RE}docker-compose 安装失败...${NC}" exit -1 fi echo -e "${GR}docker-compose 安装成功!!!${NC}" rm -rf ./package/docker |
|
一键卸载脚本 创建docker和docker-compose一键卸载脚本 #/bin/bash echo "停止所有容器服务" docker stop $(docker ps -a -q) echo "删除所有容器" docker rm $(docker ps -a -q) echo "删除docker所有镜像" docker rmi -f $(docker images -q) echo '停止docker服务...' systemctl stop docker echo '取消开机自启...' systemctl disable docker echo '删除docker相关包...' cd /usr/bin/ && rm -rf containerd* ctr docker* dockerd runc echo '取消docker.service注册文件...' cd /etc/systemd/system/ && rm -rf docker.service echo '删除docker配置文件...' cd /etc/ && rm -rf docker/* && rm -rf /data/app/dockerWork echo 'yum方式清空docker配置文件...' yum remove -y docker-ce docker-ce-cli containerd.io rm -rf /var/lib/docker && rm -rf /var/lib/containerd echo '重新加载配置文件...' systemctl daemon-reload echo 'docker卸载成功!!!' echo '删除docker-compose...' rm -rf /usr/local/bin/docker-compose echo 'docker-compose卸载成功!!!' |
|
一键部署包封装 按照如下目录结构组装一键部署包即可,组包架构如下所示:
备注:conf目录下可替换自己想要安装的docker-compose版本,package目录下可替换自己想要安的docker版本,但需要注意每次仅能封装一个版本的docker和docker-compose包 |
三、oracle镜像拉取
|
1、在有网的环境拉取镜像 docker pull dockerproxy.cn/truevoly/oracle-12c 2、查看镜像 docker images
3、启动oracle docker run -d -p 8088:8080 -p 1521:1521 -v /data/data/oracle:/u01/app/oracle/ --name oracle12c dockerproxy.cn/truevoly/oracle-12c 4、查看启动镜像 docker ps -a |
|
镜像提交 docker commit -a 'ww' ef60e33c262b oracle-12c:latest |
|
镜像打包 docker save -o oracle-12c.tar oracle-12c |
|
在目标主机加载导出的oracle镜像 docker load < /home/oracle/oracle-12c.tar 查看镜像 docker images 启动oracle镜像 docker run -d -p 8088:8080 -p 1521:1521 -v /data/data/oracle:/u01/app/oracle/ --name oracle12c dockerproxy.cn/truevoly/oracle-12c 查看镜像启动情况 docker ps -a 查看启动过程中的日志 docker logs -f 启动生成的编码 |
|
若上述没问题则进入oracle验证 docker exec -it 对应的启动镜像id/bin/bash Sqlplus 会输入账号密码 内置的账号有: system,密码oracle sys as sysdba,密码oracle(sys账号要用 as sysdba) |
|
使用连接工具连接(这里我用navicat)
导入数据是要切换到sys账号登录账号,如无权限在oracle中执行grant sysdba to system; 默认是Default需改为SYSDBA
|
四、用navicat导入dmp格式数据
|
点击目录
新建目录
数据所在路径,以docker为例:需要经数据复制到里面,docker cp /数据在服务器的存放.DMP 对应的镜像id:/要上传的docker内部路径,例如: docker cp /home/oracle/xxx.DMP ef60e33c262b:/u01/app/oracle
保存即可 点击数据泵,导入数据
按需导入即可
|
五、问题解决
一、问题1:
|
[root@localhost local]# cat /home/data/cfgtoollogs/dbca/xe/xe.log The specified shared pool size or SGA size "292MB" does not meet the recommended minimum size requirement "331MB". This will make database creation fail. Do you want to continue? Unique database identifier check passed. /u01/app/oracle/ has enough space. Required space is 6140 MB , available space is 48591 MB. File Validations Successful. Copying database files DBCA_PROGRESS : 1% DBCA_PROGRESS : 2% ORA-00821: Specified value of sga_target 292M is too small, needs to be at least 372M ORA-01078: failure in processing system parameters DBCA_PROGRESS : 4% ORA-01034: ORACLE not available ORA-01034: ORACLE not available DBCA_PROGRESS : DBCA Operation failed. |
|
解决方法: docker run --shm-size=1024MB -d -p 8088:8080 -p 1521:1521 -v /data/data/oracle:/u01/app/oracle/ --name oracle12c dockerproxy.cn/truevoly/oracle-12c |
二、问题2:
|
解决Oracle报错ORA-01653: 表xx无法通过 8192 (在表空间 xx_data 中) 扩展 |
|
解决方法参考: 解决Oracle报错ORA-01653: 表xx无法通过 8192 (在表空间 xx_data 中) 扩展-CSDN博客 |
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐
















所有评论(0)