赞
踩
拉取oracle11g镜像
docker pull registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
创建11g容器
docker run -d -p 1521:1521 --name oracle11g registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
查看容器是否创建成功
docker ps -a
导出oracle容器,查看正在运行的 Docker 容器的 ID 或名称,假设容器的名称为oracle11g
docker export oracle11g > oracle11g.tar
给导出容器加775权限
chmod 775 oracle11g.tar
离线环境先重启docker
sudo systemctl restart docker
把oracle11g.tar拷贝到离线环境,用以下命令加载docker镜像
docker load -i oracle11g.tar
查看镜像
docker images
修改镜像版本名称和名字
- docker tag id name:v
-
- 修改成功后再查看
- docker images
启动oracle,把docker 里面的db文件外挂到宿主机,做文件的持久化
- docker run -d -p 1521:1521 --name oracle11g -v /my/local/path/oracle11g:/opt/oracle/oradata oracle11g:v1
-
-
- 这条命令运行一个名为 oracle11g的容器,映射主机的1521端口到容器的1521端口,并将容器内的 /opt/oracle/oradata目录映射到主机上的 /my/local/path/oracle11g路径。下面是一些解释:
-
- -d :以守护进程方式在后台运行容器。
- -p 1521:1521:将主机的1521端口映射到容器的1521端口,允许通过主机访问Oracle数据库服务。
- --name oracle11g:为容器指定一个名称为 oracle11g,方便管理和识别容器。
- -v /my/local/path/oracle11g:/opt/oracle/oradata :将主机上的 /my/local/path/oracle11g目录挂载到容器内的 /opt/oracle/oradata目录,用于持久化存储Oracle数据库数据。
- oracle11g:v1:运行的镜像名称及版本。
- 综上所述,这个命令的目的是以后台模式运行一个 Oracle 11g 数据库容器,可以通过主机的1521端口访问数据库服务,并且数据存储在主机的 /my/local/path/oracle11g目录中。如果镜像名称和版本正确,并且本地路径 /my/local/path/oracle11g存在且合适,那么这个命令会成功运行容器。
配置oracle
docker exec -it oracle11g bash
切换到root下
- su root
-
-
- 密码:helowin
配置profile文件
- vi /etc/profile
-
-
- 在最后加3行
- export ORACLE_HOME=/home/oracle/app/oracle/product/11.2.0/dbhome_2
- export ORACLE_SID=helowin
- export PATH=$ORACLE_HOME/bin:$PATH
-
-
-
- 保存:wq
- 让配置生效:source /etc/profile
创建连接
- ln -s $ORACLE_HOME/bin/sqlplus /usr/bin
-
-
-
- 切换到oracle账户
- su - oracle
-
-
- 修改sys、system密码
- sqlplus /nolog
- conn /as sysdba
-
-
- alter user system identified by oracle;
- alter user sys identified by oracle;
- ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
修改中文编码
- select * from nls_database_parameters;
-
- alter database character set ZHS16GBK;
-
-
- 如果遇到不能修改,则调用以下步骤:
-
- alter system enable restricted session;
-
- alter system set job_queue_processes=0;
-
- alter system set aq_tm_processes=0;
-
- alter database open;
-
- alter database character set ZHS16GBK;
-
-
- 当系统提示字符集必须为旧字符集的超集时,可用下面的句强制修改字符集
- alter database character set internal_use ZHS16GBK;
查看实例
lsnrctl status
到上面数据库就准备好了
解决连接受限问题
ALTER SYSTEM DISABLE RESTRICTED SESSION:
连接成功
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。