mac/windows 通过docker安装oracle 11g(持久化完整版)

时间:2024-03-20 19:00:16

安装docker不在赘述,去官网下载dmg包安装并且注册就好了

 

#先登录下
sudo docker login
#查询库中的oracle镜像
docker search oracle
#开始拉取oracle_xe精简版版本需一致,后面需要对他进行路径映射,否则你会发现docker一关闭,你的数据不会被持久化保存下去,嘿嘿
docker pull sath89/oracle-xe-11g
#启动
#-v命令用于磁盘映射,就是把文件映射进你的本地磁盘这样重启就不会丢失数据
#/Users/wangbo/Downloads/oracle_data  这个路径是我自己定义的,你想放在那就在那,一定是绝对路径
#/u01/app/oracle/ 这个路径是docker oracle自己的路径,下面会有怎么看路径
#--name xe  别名
#sath89/oracle-xe-11g  和拉去的镜像名保持一致
docker run -d -p 1521:1521 -v /Users/wangbo/Downloads/oracle_data:/u01/app/oracle/ --name xe  sath89/oracle-xe-11g

#查看是否启动
docker ps

mac/windows 通过docker安装oracle 11g(持久化完整版)

如果没有的话也不用慌张,可以通过命令查看启动记录和日志

mac/windows 通过docker安装oracle 11g(持久化完整版)

如何看路径,先进入该镜像目录

#affectionate_mccarthy 是name,不知道可以通过docker ps 查看到,最后一列就是name
wangbodeMacBook-Pro:~ wangbo$ docker exec -it affectionate_mccarthy /bin/bash
[email protected]:/# ls
bin  boot  dev  entrypoint.sh  etc  home  lib  lib64  media  mnt  opt  oracle-install.sh  proc  root  run  sbin  srv  sys  tmp  u01  usr  var
#退出
[email protected]:/# exit
exit

 

到此,应该就可以通过工具访问oracle了,端口1521,system的密码是oracle

 

 

后面实际在项目使用发现查询等sql执行特别卡,解决方法如下:

执行sql:

ALTER SYSTEM SET disk_asynch_io = FALSE SCOPE = SPFILE;

然后重启oracle 镜像

#关闭oracle,先查询id,通过id杀死程序,在重启
wangbodeMacBook-Pro:~ wangbo$ docker ps
CONTAINER ID        IMAGE                  COMMAND             CREATED             STATUS              PORTS                              NAMES
1400de5b9123        sath89/oracle-xe-11g   "/entrypoint.sh "   19 minutes ago      Up 19 minutes       0.0.0.0:1521->1521/tcp, 8080/tcp   blissful_dubinsky
wangbodeMacBook-Pro:~ wangbo$ docker stop 1400de5b9123
1400de5b9123
wangbodeMacBook-Pro:~ wangbo$ docker run -d -p 1521:1521 -v /Users/wangbo/Downloads/oracle_data:/u01/app/oracle/  sath89/oracle-xe-11g

光速执行了,舒服了,docker牛鼻