首页 > 数据库 >Centos 7 系统上使用dokcer安装oracle 11g(踩坑验证过可用)

Centos 7 系统上使用dokcer安装oracle 11g(踩坑验证过可用)

时间:2023-05-25 15:23:38浏览次数:32  
标签:容器 11g helowin Centos -- dokcer oracle home docker

1. docker安装略

2.查看docker中关于oracle 11g的镜像,并拉下来

docker search oracle_11g
docker pull docker.io/akaiot/oracle_11g

此处选择第二个

 

3.启动临时容器获取初始化数据

docker run -d --name test --restart unless-stopped \
-p 1521:1521 docker.io/akaiot/oracle_11g

mkdir -p /home/oracle/

docker cp test:/home/oracle/app/oracle/oradata/ /home/oracle/

cd /home/oracle/oradata/

#赋权给容器内Oracle用户
chown -R 500.500 helowin 

 

4.删除临时容器并创建运行正式容器

docker rm -f test

docker run -d --name oracle11g --restart unless-stopped \
-v /home/oracle/oradata/helowin:/home/oracle/app/oracle/oradata/helowin \
-p 1521:1521 docker.io/akaiot/oracle_11g

 

 

5.进入容器配置

# 默认容器root密码为:helowin,自己决定是否更改
docker exec -it -u root 35e7a8fa0b79  /bin/bash
vi /etc/profile
#新增
# oracle home目录
export ORACLE_HOME=/home/oracle/app/oracle/prouct/11.2.0/dbhome_2   
# oracle 服务名或者 SID名,要记住这个名字helowin,它是naivcat或者DBeaver登录的重要选项
export ORACLE_SID=helowin     
# oracle环境变量
export PATH=$ORACLE_HOME/bin:$PATH

#刷新
source /etc/profile

#创建软链接
ln -s $ORACLE_HOME/bin/sqlplus /usr/bin

 

6.用户密码相关操作

su - oracle
删除新生成的版本控制文件,将数据卷中的版本控制文件复制为新生成的版本控制文件,操作时要保证容器内用户是oracle用户而非root,否则报控制文件出错。
rm -rf /home/oracle/app/oracle/flash_recovery_area/helowin/control02.ctl
cp /home/oracle/app/oracle/oradata/helowin/control01.ctl /home/oracle/app/oracle/flash_recovery_area/helowin/control02.ctl
sqlplus / as sysdba          # 以 dba 身份连接 oracle 数据库
shutdown immediate;          # 关闭数据库实例(这里会报错,不用管)
startup;  

sqlplus /nolog  
conn /as sysdba  
alter user system identified by system;--修改system用户账号密码;
alter user sys identified by system;--修改sys用户账号密码;
create user hrsoft identified by hrsoft; -- 创建内部管理员账号密码;
grant connect,resource,dba to hrsoft; --将dba权限授权给内部管理员账号和密码;
ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED; --修改密码规则策略为密码永不过期;(会出现坑,后面讲解)
alter system set processes=1000 scope=spfile; --修改数据库最大连接数据;

 

7.修改字符集信息等

sqlplus / as sysdba
shutdown immediate; --关闭数据库

# 调整字符集
# 启动数据库mount,
startup mount 
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; 

# 重新启动数据库
shutdown immediate; 
startup; --启动数据库

# 查询字符集
select userenv ('language')  from dual;
exit:退出软链接

 

8.关于外部访问,如使用navicat工具访问。

找到监听配置的两个文件,一个是监听器listener.ora一个是tnsnames.ora

su - root
find / | grep /network/admin #查找属于自己的oracle监听配置文件目录
vi /home/oracle/app/oracle/product/11.2.0/dbhome_2/network/admin/tnsnames.ora  
vi /home/oracle/app/oracle/product/11.2.0/dbhome_2/network/admin/listener.ora  

如果外部需要访问该oracle需要将上面两个文件中的localhost改为主机名或者为空。

较新版本的镜像中该值均为空,可以直接连接无需此设置。

实验证明,默认配置即可,上面两个文件什么都不用改就能远程访问。

 

如果修改了需要进行如下操作生效

exit#退出容器
systemctl restart docker.service#重启服务
docker start 《自己的容器id/名》#重启容器
docker exec -it -u root 《自己的容器id/名称》 bash#重新进入容器
su - oracle#切换oracle账户
sqlplus / as sysdba #登入数据库
SQL>alter system register;#强制重新注册实例
SQL>quit#退出数据库
lsnrctl reload#在容器内重启监听
lsnrctl status#查看监听服务状态

 

 

9.远程访问(使用navicat测试)

测试完成!

 

标签:容器,11g,helowin,Centos,--,dokcer,oracle,home,docker
From: https://www.cnblogs.com/dannylinux/p/17431379.html

相关文章

  • centos stream 安装JDK Development Kit 20.0.1
    在最新版本centosstream9安装 JDKDevelopmentKit20.0.1我选择安装最新版本、等2023年9月份出来 JDKDevelopmentKit21后、再体验一把。在官网直接下载rpm包、当然也可以选择其它的包、根据实际情况选用下载包到本地后、再上传到服务端、用rpm-ivhjdk-20_linux-x64......
  • Centos 7 Squid正向代理
    环境centos7(1台),windows(1台)Centos7,两张网卡,一张网卡是内网不能上网,IP地址为192.168.10.1/24另一张网卡设置为桥接模式要求可以上网。Windows,网卡为内网IP地址为192.168.10.2/24,DNS为192.168.10.1两边都关闭防火墙和子系统。正向代理的缺点:客户端需要单独配置,才能使用正向代理功......
  • Centos7显卡驱动安装及报错解决
    注意实际安装版本(最后直接安装Anaconda3,无需再安装Python)1.1查看显卡型号1.2下载显卡驱动访问https://www.nvidia.cn/Download/index.aspx搜索显卡所需要的驱动型号并下载1.3禁用集成显卡驱动nouveaumv/boot/initramfs-$(uname-r).img/boot/initramfs-$(uname-r).img.bakd......
  • centos7安装Python3.9
      yumremovepython-3*先卸载所有之前装的python-3。yum-yinstallzlib-develbzip2-developenssl-develncurses-develsqlite-develreadline-develtk-develgccmakeyum-yinstallepel-releaseyum-yinstallpython-pipwgethttps://www.python.org/ftp/python/3.......
  • CentOS7调整limit限制
    ##这是修改全局下cat>>/etc/security/limits.conf<<EOF####memlock(maxlockedmemory)####cpu(cputime)*softmemlockunlimited*hardmemlockunlimited*softcpuunlimited*hardcpu......
  • CentOS 7.6 64 位系统Linux 下升级Nginx1.24.0版本
    以下是在CentOS7.664位系统上升级Nginx1.19.9到1.24.0的步骤。1.1、先安装gcc-c++编译器yuminstallgcc-c++yuminstall-yopensslopenssl-devel1.2、再安装pcre包。yuminstall-ypcrepcre-devel1.3、再安装zlib包yuminstall-yzlibzlib-devel......
  • Linux(centos7.9)搭建TACACS+服务器
    一、TACACS+是什么TACACS+(TerminalAccessControllerAccessControlSystem),终端访问控制器控制系统协议,与Radius协议相近,为网络设备和访问服务器提供身份验证,授权和计费服务。 TACACS+和RADIUS的比较更多细节,自行查看 https://www.h3c.com/cn/d_201309/922099_300......
  • centos7安装erlang、rabbitmq以及php扩展
    centos7安装erlang、rabbitmq以及php扩展标签(空格分隔):liunx,php安装Erlang版本:el7erlang-20.3.8.25erlang-20.3.8.25-1.el7.x86_64.rpm1.下载wget--content-disposition"https://packagecloud.io/rabbitmq/erlang/packages/el/7/erlang-20.3.8.25-1.el7.x86_64.rpm/d......
  • Centos7安装高版本BIND9.16.41(DNS服务器)
    安装高版本BIND9.16.41或9.18.15双数版本为稳定版如9.16、9.18找到BIND官网:https://www.isc.org/download/#BIND1、点击Download:这里以9.16.41版本为例2、打开CentOS系统3、跳转到官方文档,找到EPEL源,复制链接更换源,并安装cd/etc/yum.repos.drm-rf/etc/yum.repos.......
  • centos 6上 yum检查epel源是否添加成功报错 Cannot retrieve metalink for repository
    在我们使用yum安装时,经常发现没有第三方源,此时需要安装epel(ExtraPackagesforEnterpriseLinux,企业版Linux的额外软件包)Epel是什么?它是Fedora小组维护的一个软件仓库项目,为RHEL/CentOS提供他们默认不提供的软件包。这个源兼容RHEL及像CentOS和ScientificLinux这样的衍生版本......