Centos安装Oracle(通过Docker远程拉取)

Centos安装Oracle(通过Docker远程拉取)

1、安装Docker

  • 首先以root身份登录Centos
  • 把yum包更新到最新

yum update

  • 安装所需要的包

yum install -y yum-utils device-mapper-persistent-data lvm2

  • 设置yum源(系统会提供两个,自己选一个即可)

yum-config-manager --add-repo

  • 查看所有仓库中的docker版本,并选择特定的版本安装

yum list docker-ce --showduplicates | sort -r
已加载插件:fastestmirror
可安装的软件包

  • updates: mirrors.cn99.com
    Loading mirror speeds from cached hostfile
  • extras: mirrors.aliyun.com
    docker-ce.x86_64 3:19.03.2-3.el7 docker-ce->stable
    docker-ce.x86_64 3:19.03.1-3.el7 docker-ce-stable
    docker-ce.x86_64 3:19.03.0-3.el7 docker-ce-stable
    docker-ce.x86_64 3:18.09.8-3.el7 docker-ce-stable
    docker-ce.x86_64 3:18.09.7-3.el7 docker-ce-stable
    docker-ce.x86_64 3:18.09.6-3.el7 docker-ce-stable
    docker-ce.x86_64 3:18.09.5-3.el7 docker-ce-stable
    docker-ce.x86_64 3:18.09.4-3.el7 docker-ce-stable
    docker-ce.x86_64 3:18.09.3-3.el7 docker-ce-stable
    docker-ce.x86_64 3:18.09.2-3.el7 docker-ce-stable
    docker-ce.x86_64 3:18.09.1-3.el7 docker-ce-stable
    docker-ce.x86_64 3:18.09.0-3.el7 docker-ce-stable
    docker-ce.x86_64 18.06.3.ce-3.el7 docker-ce-stable
    docker-ce.x86_64 18.06.2.ce-3.el7 docker-ce-stable
  • 安装Docker

yum install docker-ce-docker版本号

  • 启动Docker

systemctl start docker //启动
systemctl enable docker //开机启动
docker version //docker版本信息

拉取Oracle

  • 拉取docker镜像:
[root@node01 ~]#      docker pull registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
出现信息如下,表明拉取成功
Using default tag: latest
latest: Pulling from helowin/oracle_11g
ed5542b8e0e1: Pull complete 
a3ed95caeb02: Pull complete 
1e8f80d0799e: Pull complete 
Digest: sha256:4c12b98372dfcbaafcd9564a37c8d91456090a5c6fb07a4ec18270c9d9ef9726
Status: Downloaded newer image for registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g:latest
registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g:latest

下载时间可能较长,需要耐心等待

  • 用docker images命令查看镜像
[root@node01 ~]# docker images
REPOSITORY                                             TAG       IMAGE ID       CREATED       SIZE
registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g   latest    3fa112fd3642   6 years ago   6.85GB

REPOSITORY下面出现的就是镜像

  • 创建容器
    docker run -d -p 1521:1521 --name oracle11g registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g

若出现以下错误,是因为该容器已经被创建了,要想重新创建,删除即可

docker: Error response from daemon: Conflict. The container name "/oracle" is already in use by container "6b5ba1873211ddb75b6d1181f0768045cc61b5c4d613c9b0c797357176966739". You have to remove (or rename) that container to be able to reuse that name.

使用docker ps -a查看存在的容器

[root@node01 ~]# docker ps -a
CONTAINER ID   IMAGE                                                  COMMAND                  CREATED          STATUS    PORTS     NAMES
cf27a3c2ac7d   registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g   "/bin/sh -c '/home/o…"   44 minutes ago   Created             oraclellg
6b5ba1873211   registry.aliyuncs.com/helowin/oracle_11g               "/bin/sh -c '/home/o…"   46 minutes ago   Created             oracle

移除全部(根据自己的选择)

[root@node01 ~]# docker rm $(docker ps -a -q)
cf27a3c2ac7d
6b5ba1873211

重新创建容器

[root@node01 ~]#     docker run -d -p 1521:1521 --name oracle11g registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g

  • 进入容器修改账号和密码

    • 1、进入容器
[root@node01 ~]# docker exec -it oracle11g bash
[oracle@6be7e7905d72 /]$ 
- 2、进行软连接
sqlplus /nolog

发现没有该命令,切换回root
su - root
密码为:helowin

编辑环境变量 vi /etc/profile 在文件的末尾添加一下内容

        export ORACLE_HOME=/home/oracle/app/oracle/product/11.2.0/dbhome_2
        export ORACLE_SID=helowin
        export PATH=$ORACLE_HOME/bin:$PATH
- 3、修改生效
[root@node01 ~]# source /etc/profile
- 4、创建软连接
 ln -s $ORACLE_HOME/bin/sqlplus /usr/bin

切换到oracle用户 su - oracle

  • 5、设置用户名和密码
[oracle@6be7e7905d72 ~]$ sqlplus /nolog   //登录数据库

SQL*Plus: Release 11.2.0.1.0 Production on Fri Nov 4 12:40:02 2022

Copyright (c) 1982, 2009, Oracle.  All rights reserved.

SQL> conn / as  sysdba                                ## 使用sysdba 连接oracle,最大权限,os认证,只能在本机上登陆使用。
Connected.
SQL> alter user system identified by system;          ## 修改用户 system 的密码为 system
User altered.
SQL> alter user sys identified by system;      ## 修改用户sys的密码为system
User altered.
create user test identified by test; -- 创建内部管理员账号密码;
grant connect,resource,dba to test; --将dba权限授权给内部管理员账号和密码;
ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED; --修改密码规则策略为密码永不过期;(会出现坑,后面讲解)
alter system set processes=1000 scope=spfile; --修改数据库最大连接数据;


SQL> exit;          ## 推出SQL

连接成功:
在这里插入图片描述

易错点:

1、拉取时报空间不够

failed to register layer: Error processing tar file(exit status 1): write /home/oracle/app/oracle/product/11.2.0/dbhome_2/oc4j/ant/lib/ant.jar: no space left on devic

排错步骤

  • 先查看docker的根目录安装位置
[root@node01 ~]# docker info
Client:
 Context:    default
 Debug Mode: false
 Plugins:
  app: Docker App (Docker Inc., v0.9.1-beta3)
  buildx: Docker Buildx (Docker Inc., v0.8.1-docker)
  scan: Docker Scan (Docker Inc., v0.17.0)

Server:
 Containers: 2
  Running: 0
  Paused: 0
  Stopped: 2
 Images: 1
 Server Version: 20.10.14
 Storage Driver: overlay2
  Backing Filesystem: xfs
  Supports d_type: true
  Native Overlay Diff: true
  userxattr: false
 Logging Driver: json-file
 Cgroup Driver: cgroupfs
 Cgroup Version: 1
 Plugins:
  Volume: local
  Network: bridge host ipvlan macvlan null overlay
  Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
 Swarm: inactive
 Runtimes: io.containerd.runc.v2 io.containerd.runtime.v1.linux runc
 Default Runtime: runc
 Init Binary: docker-init
 containerd version: 3df54a852345ae127d1fa3092b95168e4a88e2f8
 runc version: v1.0.3-0-gf46b6ba
 init version: de40ad0
 Security Options:
  seccomp
   Profile: default
 Kernel Version: 3.10.0-1160.el7.x86_64
 Operating System: CentOS Linux 7 (Core)
 OSType: linux
 Architecture: x86_64
 CPUs: 1
 Total Memory: 972.3MiB
 Name: node01
 ID: PDYZ:IHH4:ZVZZ:ZEYF:C2T3:ZQR3:CDEQ:KYZP:TGYN:5PFF:242A:IBCL
 Docker Root Dir: /var/lib/docker  //docker根目录
 Debug Mode: false
 Registry: https://index.docker.io/v1/
 Labels:
 Experimental: false
 Insecure Registries:
  127.0.0.0/8
 Live Restore Enabled: false
  • 查看根目录所剩空间
[root@node01 docker.service.d]# df -hl /var/lib/docker/
文件系统                 容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root   17G   10G  7.1G   59% /

发现内存不是很充裕 先改变docker的根目录试试看

  • 创建目录
[root@localhost ~]# mkdir -p /etc/systemd/system/docker.service.d/
  • 创建配置文件并录入配置信息
[root@localhost ~]# vim /etc/systemd/system/docker.service.d/devicemapper.conf

录入以下配置文件信息

[Service]
ExecStart=
ExecStart=/usr/bin/dockerd  --graph=/home/docker/lib/docker

这样/home/docker/lib/docker就是现在docker的根目录。可通过docker info查看

  • 重启docker
[root@localhost ~]# systemctl daemon-reload
[root@localhost ~]# systemctl restart docker
[root@localhost ~]# systemctl enable docker
  • 重新拉取
    如果成功即可,如果失败,这时候我们就需要去进行扩容。

  • 获取docker根目录,方便之后对其进行扩容

[root@node01 ~]# docker info
Docker Root Dir: /home/docker/lib/docker  //根目录
  • 查看根目录使用情况
[root@node01 ~]# df -hl /home/docker/lib/docker
文件系统                 容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root   17G   10G  7.1G   59% /

  • 先在虚拟机上扩展分区(此处我电脑上已经扩展了,请自行查阅)

    • 先把虚拟机关机

    • 点击设置,点击添加,选择硬盘,点击下一步
      -在这里插入图片描述

    • 下一步
      在这里插入图片描述

    • 还是下一步

    • 输入分配内存大小

    • 点击下一步
      在这里插入图片描述

    • 完成
      在这里插入图片描述

    • 启动虚拟机进行配置

      • 1、查看磁盘信息
        在这里插入图片描述

      • 2、新增分区

      fdisk /dev/sdb

    在这里插入图片描述在这里插入图片描述在这里插入图片描述创建要挂载的目录data
    在这里插入图片描述

    • 3、格式化,挂载磁盘
      格式化磁盘mkfs.ext4 /dev/sdb3 sdb3是我们刚才创建的磁盘名称。在这里插入图片描述
      挂载磁盘
      在这里插入图片描述
      修改配置文件/etc/fstab
      在这里插入图片描述

      最后保存重启即可

  • 查看每个磁盘的容量,以便使用其进行扩容

[root@node01 ~]# df -h
文件系统                 容量  已用  可用 已用% 挂载点
devtmpfs                 470M     0  470M    0% /dev
tmpfs                    487M     0  487M    0% /dev/shm
tmpfs                    487M  8.2M  478M    2% /run
tmpfs                    487M     0  487M    0% /sys/fs/cgroup
/dev/mapper/centos-root   17G   10G  7.1G   59% /
/dev/sdb3                 40G   49M   38G    1% /data
/dev/sda1               1014M  185M  830M   19% /boot
tmpfs                     98M     0   98M    0% /run/user/0
tmpfs                     98M   12K   98M    1% /run/user/42

可见sdb3有40G的空间可用,可以把它分给我们的/dev/mapper/centos-root。

  • 创建pv
[root@node01 ~]# pvcreate /dev/sdb3
  Can't open /dev/sda3 exclusively.  Mounted filesystem?
  Can't open /dev/sda3 exclusively.  Mounted filesystem?

若出现上述错误,证明正在使用,先关闭。

[root@node01 ~]# umount /dev/sdb3

然后再次创建pv

[root@node01 ~]# pvcreate /dev/sdb3
WARNING: ext4 signature detected on /dev/sda3 at offset 1080. Wipe it? [y/n]: y
  Wiping ext4 signature on /dev/sda3.
  Physical volume "/dev/sda3" successfully created.
  • 把pv加入vg中,相当于扩容vg的大小
    先查看vg组
[root@node01 ~]# vgs
  VG     #PV #LV #SN Attr   VSize   VFree
  centos   1   2   0 wz--n- <19.00g    0 

再扩展vg

[root@node01 ~]# vgextend centos /dev/sdb3
  Volume group "centos" successfully extended

扩容完成,用vgs查看

  [root@node01 ~]# vgs
  VG     #PV #LV #SN Attr   VSize  VFree  
  centos   2   2   0 wz--n- 58.99g <40.00g
  [root@node01 ~]# lvs
  LV   VG     Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  root centos -wi-ao---- <17.00g                                                    
  swap centos -wi-ao----   2.00g    //虽然把vg扩展了,但lv还没有扩展
  • 扩展lv
[root@node01 ~]# lvextend -L +30G /dev/mapper/centos-root
  Size of logical volume centos/root changed from <17.00 GiB (4351 extents) to <47.00 GiB (12031 extents).
  Logical volume centos/root successfully resized.

+30G 这块根据自己实际情况写

  • 查看lv大小
[root@node01 ~]# lvs
  LV   VG     Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  root centos -wi-ao---- <47.00g                                                    
  swap centos -wi-ao----   2.00g 
  • 用df -h查看磁盘容量有无变化
[root@node01 ~]# df -h
文件系统                 容量  已用  可用 已用% 挂载点
devtmpfs                 470M     0  470M    0% /dev
tmpfs                    487M     0  487M    0% /dev/shm
tmpfs                    487M  8.2M  479M    2% /run
tmpfs                    487M     0  487M    0% /sys/fs/cgroup
/dev/mapper/centos-root   17G   10G  7.1G   59% /
/dev/sda1               1014M  185M  830M   19% /boot
tmpfs                     98M     0   98M    0% /run/user/0
tmpfs                     98M   12K   98M    1% /run/user/42

发现没有变化

  • 使用xfs_growfs /dev/mapper/centos-root让系统重新读取大小
[root@node01 ~]# xfs_growfs /dev/mapper/centos-root
meta-data=/dev/mapper/centos-root isize=512    agcount=4, agsize=1113856 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0 spinodes=0
data     =                       bsize=4096   blocks=4455424, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal               bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 4455424 to 12319744

再次使用df -h查看

[root@node01 ~]# df -h
文件系统                 容量  已用  可用 已用% 挂载点
devtmpfs                 470M     0  470M    0% /dev
tmpfs                    487M     0  487M    0% /dev/shm
tmpfs                    487M  8.2M  479M    2% /run
tmpfs                    487M     0  487M    0% /sys/fs/cgroup
/dev/mapper/centos-root   47G   10G   38G   22% /
/dev/sda1               1014M  185M  830M   19% /boot
tmpfs                     98M     0   98M    0% /run/user/0
tmpfs                     98M   12K   98M    1% /run/user/42

容量发生改变。继续进行Oracle的拉取。

2、登录SQL时sqlplus报错

错误:

[oracle@6be7e7905d72 /]$ sqlplus /nolog
bash: sqlplus: command not found

排错步骤:

  • 查看环境
[oracle@6be7e7905d72 ~]$ vi .bash_profile

加上(有的话就不用加了)

export ORACLE_HOME=/home/oracle/app/oracle/product/11.2.0/dbhome_2
 
export ORACLE_SID=helowin
 
export PATH=$ORACLE_HOME/bin:$PATH
  • 使环境变量生效
[oracle@6be7e7905d72 ~]$ source /etc/profile
  • 发现还是报错
[oracle@6be7e7905d72 ~]$ sqlplus /nolog
bash: sqlplus: command not found
  • 创建软连接
[oracle@6be7e7905d72 ~]$ ln -s $ORACLE_HOME/bin/sqlplus /usr/bin
ln: creating symbolic link `/usr/bin/sqlplus': Permission denied
  • 切换到根目录(密码是:helowin)
[oracle@6be7e7905d72 ~]$ su - root
Password: 
  • 继续执行创建软连接
[root@6be7e7905d72 ~]# ln -s $ORACLE_HOME/bin/sqlplus /usr/bin
  • 切换到oracle
[root@6be7e7905d72 ~]# su - oracle
[oracle@6be7e7905d72 ~]$
  • 再次进入sql
[oracle@6be7e7905d72 ~]$ sqlplus /nolog

SQL*Plus: Release 11.2.0.1.0 Production on Fri Nov 4 12:40:02 2022

Copyright (c) 1982, 2009, Oracle.  All rights reserved.

SQL> 
  • 成功!
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值