前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【DB宝7】如何在Docker容器中一步一步安装配置Oracle19c的ASM+DB环境

【DB宝7】如何在Docker容器中一步一步安装配置Oracle19c的ASM+DB环境

作者头像
小麦苗DBA宝典
发布2020-07-16 15:12:25
3K0
发布2020-07-16 15:12:25
举报

目录

代码语言:javascript
复制
一、安装Docker
二、创建CentOS7.6的容器
三、操作系统配置部分
  3.1、关闭防火墙(Docker中一般不需要)
  3.2、禁用selinux(Docker中一般不需要)
  3.3、添加组和用户
      3.3.1、添加oracle和grid用户
      3.3.2、创建安装目录
      3.3.3、配置grid和oracle用户的环境变量文件
      3.3.4、配置root用户的环境变量
  3.4、安装依赖包
  3.5、配置内核参数
      3.5.1、修改/etc/sysctl.conf文件
      3.5.2、修改/etc/security/limits.conf文件
      3.5.3、修改/etc/pam.d/login文件
  3.6、配置/dev/shm大小
四、配置ASM磁盘
  4.1、安装oracleasm
  4.2、创建loop设备
  4.3、创建ASM磁盘
  4.4、配置开机启动脚本
五、数据库软件包准备
  5.1、上传安装文件
  5.2、解压安装文件
六、图形化安装grid和db
七、静默安装grid和db
  7.1、静默安装grid
      7.1.1、开始安装grid软件
      7.1.2、静默创建ASM实例
      7.1.3、静默创建监听
      7.1.4、创建DATA和FRA磁盘组
  7.2、静默安装db
八、dbca静默建库及配置
  8.1、配置db自动启动
  8.2、19c EM配置
  8.3、提交容器镜像供别人下载使用

一、安装Docker软件

CentOS 7安装Docker: https://docs.docker.com/engine/install/centos/

具体过程可以参考:【DB宝2】在CentOS7中安装Docker

代码语言:javascript
复制
--1、卸载掉旧版本的 Docker:
yum remove -y docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-selinux docker-engine-selinux docker-engine

--2、执行以下安装命令去安装依赖包:
yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

yum -y install docker-ce docker-ce-cli containerd.io

# 若执行报错,则配置yum源
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

--或一键安装:
curl -fsSL get.docker.com -o get-docker.sh
sh get-docker.sh

--启动Docker软件
systemctl start docker
systemctl status docker


--3、检查版本
docker version
docker info

二、创建CentOS7.6的容器

代码语言:javascript
复制
--CentOS镜像
https://hub.docker.com/_/centos?tab=tags

--拉取镜像
docker pull centos:7.6.1810

--创建容器
docker run -d --name lhr2019ocpasm -h lhr2019ocpasm -p 5500-5510:5500-5510 -p 1521:1521 -p 222:22 --privileged=true centos:7.6.1810 /usr/sbin/init

--修改时区
docker cp /usr/share/zoneinfo/Asia/Shanghai lhr2019ocpasm:/etc/localtime

--进入容器
docker exec -it lhr2019ocpasm /bin/bash

--安装一些必要的系统包
yum install -y openssh-clients openssh-server initscripts  net-tools telnet which wget passwd e4fsprogs lrzsz sudo unzip lvm2 tree traceroute bridge-utils dos2unix rlwrap xdpyinfo
yum -y install vim redhat-lsb

--解决agetty进程cpu占用率100%,宿主机和容器都需要执行
systemctl stop getty@tty1.service
systemctl mask getty@tty1.service

--启动ssh进程
systemctl restart sshd
--修改root用户密码
echo "root:lhr" | chpasswd

--远程登录
ssh root@192.168.1.35 -p222

-- 配置容器内的yum源:阿里云
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

yum clean all
rpm --rebuilddb

三、操作系统配置部分

3.1、关闭防火墙(Docker中一般不需要)

代码语言:javascript
复制
--关闭防火墙:
systemctl disable firewalld
systemctl stop firewalld
systemctl stop firewalld.service
systemctl disable firewalld.service
--验证:
systemctl list-unit-files | grep fire

3.2、禁用selinux(Docker中一般不需要)

代码语言:javascript
复制
--临时关闭(不用重启机器):
setenforce 0
--查看SELinux状态:
1、/usr/sbin/sestatus -v  ##如果SELinux status参数为enabled即为开启状态
SELinux status:  enabled
2、getenforce  ##也可以用这个命令检查

# 示例
[root@lhr2019ocpasm ~] /usr/sbin/sestatus -v
SELinux status:                 disabled
[root@lhr2019ocpasm ~] getenforce
Disabled
[root@lhr2019ocpasm ~] 

--手工修改/etc/selinux/config中SELINUX=disabled,或使用下面命令:
sed -i '/^SELINUX=.*/ s//SELINUX=disabled/' /etc/selinux/config

3.3、添加组和用户

3.3.1、添加oracle和grid用户

官网:https://docs.oracle.com/en/database/oracle/oracle-database/18/ladbi/creating-operating-system-privileges-groups.html#GUID-3A3C9191-4187-41D4-98C4-400746023F6B

代码语言:javascript
复制
--创建组
groupadd -g 54321 oinstall  
groupadd -g 54322 dba  
groupadd -g 54323 oper  
groupadd -g 54324 backupdba  
groupadd -g 54325 dgdba  
groupadd -g 54326 kmdba  
groupadd -g 54327 asmdba  
groupadd -g 54328 asmoper  
groupadd -g 54329 asmadmin  
groupadd -g 54330 racdba

-- 创建用户并添加用户到组
useradd -u 54321 -g oinstall -G dba,asmdba,backupdba,dgdba,kmdba,racdba,oper oracle  
useradd -u 54322 -g oinstall -G asmadmin,asmdba,asmoper,dba,racdba grid

-- 修改oracle和grid用户的密码为lhr
echo "oracle:lhr" | chpasswd
echo "grid:lhr" | chpasswd

3.3.2、创建安装目录

代码语言:javascript
复制
# root用户创建目录并赋权:
mkdir -p /u01/app/19.3.0/grid
mkdir -p /u01/app/grid
mkdir -p /u01/app/oracle
mkdir -p /u01/app/oracle/product/19.3.0/dbhome_1
chown -R grid:oinstall /u01
chown -R oracle:oinstall /u01/app/oracle
chmod -R 775 /u01/

mkdir -p /u01/app/oraInventory
chown -R grid:oinstall /u01/app/oraInventory
chmod -R 775 /u01/app/oraInventory

3.3.3、配置grid和oracle用户的环境变量文件

修改grid、oracle用户的.bash_profile文件,直接使用root用户执行。

1、配置oracle用户的环境变量:

代码语言:javascript
复制
cat >> /home/oracle/.bash_profile <<"EOF"

umask 022
export ORACLE_SID=lhr19cdb
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/19.3.0/dbhome_1
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export NLS_DATE_FORMAT="YYYY-MM-DD HH24:MI:SS"
export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$PATH


export TNS_ADMIN=$ORACLE_HOME/network/admin
export ORACLE_PATH=.:$ORACLE_BASE/dba_scripts/sql:$ORACLE_HOME/rdbms/admin
export SQLPATH=$ORACLE_HOME/sqlplus/admin


#export NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16GBK"
#AL32UTF8 SELECT userenv('LANGUAGE') db_NLS_LANG FROM DUAL;
export NLS_LANG="AMERICAN_CHINA.ZHS16GBK"

alias sqlplus='rlwrap sqlplus'
alias rman='rlwrap rman'
alias asmcmd='rlwrap asmcmd'
alias dgmgrl='rlwrap dgmgrl'
alias sas='sqlplus / as sysdba'

EOF

2、配置oracle用户的glogin.sql文件,用于修改SQL提示符:

代码语言:javascript
复制
cat >>/u01/app/oracle/product/19.3.0/dbhome_1/sqlplus/admin/glogin.sql << "EOF"

set linesize 9999 pagesize 9999
set sqlprompt "_USER'@'_CONNECT_IDENTIFIER> "

EOF

3、配置grid用户的环境变量:

代码语言:javascript
复制
cat >> /home/grid/.bash_profile <<"EOF"

umask 022
export ORACLE_SID=+ASM
export ORACLE_BASE=/u01/app/grid
export ORACLE_HOME=/u01/app/19.3.0/grid
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
export NLS_DATE_FORMAT="YYYY-MM-DD HH24:MI:SS"
export PATH=$ORACLE_HOME/bin:$PATH
alias sqlplus='rlwrap sqlplus' 
alias asmcmd='rlwrap asmcmd'
alias dgmgrl='rlwrap dgmgrl'
alias sas='sqlplus / as sysdba'

EOF

4、配置grid用户的glogin.sql文件,用于修改SQL提示符:

代码语言:javascript
复制
cat >>/u01/app/19.3.0/grid/sqlplus/admin/glogin.sql << "EOF"

set linesize 9999 pagesize 9999
set sqlprompt "_USER'@'_CONNECT_IDENTIFIER> "

EOF

3.3.4、配置root用户的环境变量

分别修改/etc/profile和/root/.bashrc文件:

代码语言:javascript
复制
#修改/etc/profile
cat >> /etc/profile <<"EOF"

export ORACLE_BASE=/u01/app/grid
export ORACLE_HOME=/u01/app/19.3.0/grid
export GRID_HOME=$ORACLE_HOME
export PATH=$PATH:$ORACLE_HOME/bin

EOF


#修改/root/.bashrc
cat >> /root/.bashrc <<"EOF"

export ORACLE_BASE=/u01/app/grid
export ORACLE_HOME=/u01/app/19.3.0/grid
export GRID_HOME=$ORACLE_HOME
export PATH=$PATH:$ORACLE_HOME/bin

EOF

3.4、安装依赖包

检查缺失的依赖包:

代码语言:javascript
复制
rpm -q --qf '%{NAME}-%{VERSION}-%{RELEASE} (%{ARCH})\n' binutils \
compat-libcap1 \
compat-libstdc++-33 \
gcc \
gcc-c++ \
glibc \
glibc-devel \
ksh \
libgcc \
libstdc++ \
libstdc++-devel \
libaio \
libaio-devel \
libXext \
libXtst \
libX11 \
libXau \
libxcb \
libXi \
make \
elfutils-libelf-devel \
sysstat  | grep "not installed"

推荐使用yum安装缺失的依赖包:

代码语言:javascript
复制
yum install -y elfutils-libelf-devel*
yum install -y compat-libstdc++*
yum install -y libaio-devel*
yum install -y ksh*

# 最后重新检查,确保所有的包已安装。需要注意的是,有的时候由于版本的问题导致检查有问题,所以需要用rpm -qa | grep libstdc 来分别对每个包检查。

3.5、配置内核参数

3.5.1、修改/etc/sysctl.conf文件

代码语言:javascript
复制
echo "
vm.swappiness = 1
vm.dirty_background_ratio = 3
vm.dirty_ratio = 80
vm.dirty_expire_centisecs = 500
vm.dirty_writeback_centisecs = 100
kernel.shmmni = 4096  
kernel.shmall = 1073741824  
kernel.shmmax = 4398046511104
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500 
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.panic_on_oops = 1
" >> /etc/sysctl.conf

--使修改参数立即生效:
/sbin/sysctl -p

3.5.2、修改/etc/security/limits.conf文件

代码语言:javascript
复制
-- 修改OS用户grid和oracle资源限制:
cp /etc/security/limits.conf /etc/security/limits.conf.`date +%Y%m%d`

echo "grid soft nofile 1024
grid hard nofile 65536
grid soft stack 10240
grid hard stack 32768
grid soft nproc 2047
grid hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
oracle hard stack 32768
oracle soft nproc 2047
oracle hard nproc 16384
root soft nproc 2047 " >> /etc/security/limits.conf

3.5.3、修改/etc/pam.d/login文件

代码语言:javascript
复制
echo "session    required     pam_limits.so" >> /etc/pam.d/login

3.6、配置/dev/shm大小

如果不配置的话会报错:ORA-00845: MEMORY_TARGET not supported on this system,这个错误简单来说就是 MEMORY_MAX_TARGET 的设置不能超过 /dev/shm 的大小。

由于docker容器中没有/etc/fstab文件,所以我们只能每次重启容器后都修改一下/dev/shm大小。

代码语言:javascript
复制
mount -o remount,size=4G /dev/shm
echo "mount -o remount,size=4G /dev/shm"  >> /etc/rc.local
chmod +x /etc/rc.d/rc.local #Linux7需要修改权限保证开机启动

--结果
[root@lhr2019ocpasm /]# df -h
Filesystem                       Size  Used Avail Use% Mounted on
... ...
shm                              4.0G  637M  3.4G  16% /dev/shm
... ...

四、配置ASM磁盘

在docker中,我们使用asmlib+loop设备来配置ASM磁盘。

4.1、安装oracleasm

先安装kmod-oracleasm,再安装oracleasmlib和oracleasm-support

代码语言:javascript
复制
--------------- rhel7安装asmlib:https://www.oracle.com/search
--1、安装kmod-oracleasm
yum install -y kmod-oracleasm
# http://rpmfind.net/linux/rpm2html/search.php
# wget http://rpmfind.net/linux/centos/7.7.1908/os/x86_64/Packages/kmod-oracleasm-2.0.8-26.el7.x86_64.rpm

--2、安装oracleasmlib和oracleasm-support
--下载地址:https://www.oracle.com/linux/downloads/linux-asmlib-rhel7-downloads.html
wget https://yum.oracle.com/repo/OracleLinux/OL7/latest/x86_64/getPackage/oracleasm-support-2.1.11-2.el7.x86_64.rpm
wget https://download.oracle.com/otn_software/asmlib/oracleasmlib-2.0.12-1.el7.x86_64.rpm
rpm -ivh *.rpm

--3、配置asmlib
systemctl enable oracleasm.service

oracleasm configure -i  # 依次输入grid,asmadmin,y,y
oracleasm configure -d
oracleasm configure -e

oracleasm init  #若初始化失败,则尝试重启OS
oracleasm status

--结果示例
[root@lhr2019ocpasm /]# oracleasm status
Checking if ASM is loaded: yes
Checking if /dev/oracleasm is mounted: yes

4.2、创建loop设备

代码语言:javascript
复制
mkdir /asmdisk
dd if=/dev/zero of=/asmdisk/disk1 bs=1024k count=2000
dd if=/dev/zero of=/asmdisk/disk2 bs=1024k count=2000
dd if=/dev/zero of=/asmdisk/disk3 bs=1024k count=2000
dd if=/dev/zero of=/asmdisk/disk4 bs=1024k count=2000
dd if=/dev/zero of=/asmdisk/disk5 bs=1024k count=2000
dd if=/dev/zero of=/asmdisk/disk6 bs=1024k count=8000
dd if=/dev/zero of=/asmdisk/disk7 bs=1024k count=8000


mknod -m 0660 /dev/loop1 b 7 1
mknod -m 0660 /dev/loop2 b 7 2
mknod -m 0660 /dev/loop3 b 7 3
mknod -m 0660 /dev/loop4 b 7 4
mknod -m 0660 /dev/loop5 b 7 5
mknod -m 0660 /dev/loop6 b 7 6
mknod -m 0660 /dev/loop7 b 7 7


/sbin/losetup /dev/loop1 /asmdisk/disk1
/sbin/losetup /dev/loop2 /asmdisk/disk2
/sbin/losetup /dev/loop3 /asmdisk/disk3
/sbin/losetup /dev/loop4 /asmdisk/disk4
/sbin/losetup /dev/loop5 /asmdisk/disk5
/sbin/losetup /dev/loop6 /asmdisk/disk6
/sbin/losetup /dev/loop7 /asmdisk/disk7


losetup -a

-- 结果示例
[root@lhr2019ocpasm /]# losetup -a
/dev/loop1: [0109]:17694792 (/asmdisk/disk1)
/dev/loop2: [0109]:17694793 (/asmdisk/disk2)
/dev/loop3: [0152]:16131608 (/asmdisk/disk3)
/dev/loop4: [0152]:16131609 (/asmdisk/disk4)
/dev/loop5: [0152]:16131611 (/asmdisk/disk5)
/dev/loop6: [0152]:16164617 (/asmdisk/disk6)
/dev/loop7: [0152]:16164622 (/asmdisk/disk7)

4.3、创建ASM磁盘

代码语言:javascript
复制
oracleasm createdisk ASM1 /dev/loop1
oracleasm createdisk ASM2 /dev/loop2
oracleasm createdisk ASM3 /dev/loop3
oracleasm createdisk ASM4 /dev/loop4
oracleasm createdisk ASM5 /dev/loop5
oracleasm createdisk ASM6 /dev/loop6
oracleasm createdisk ASM7 /dev/loop7

--在创建完成后,结果示例
[root@lhr2019ocpasm /]# oracleasm listdisks
ASM1
ASM2
ASM3
ASM4
ASM5
ASM6
ASM7

4.4、配置开机启动脚本

最好配置单独启动脚本,否则容器启动可能不会自动配置ASM磁盘。

1、配置shell脚本并赋权

代码语言:javascript
复制
-- 1、编写shell脚本

echo "
#!/bin/bash
mknod -m 0660 /dev/loop1 b 7 1
mknod -m 0660 /dev/loop2 b 7 2
mknod -m 0660 /dev/loop3 b 7 3
mknod -m 0660 /dev/loop4 b 7 4
mknod -m 0660 /dev/loop5 b 7 5
mknod -m 0660 /dev/loop6 b 7 6
mknod -m 0660 /dev/loop7 b 7 7

systemctl restart oracleasm.service

/sbin/losetup -d /dev/loop1
/sbin/losetup -d /dev/loop2
/sbin/losetup -d /dev/loop3
/sbin/losetup -d /dev/loop4
/sbin/losetup -d /dev/loop5
/sbin/losetup -d /dev/loop6
/sbin/losetup -d /dev/loop7
/sbin/losetup /dev/loop1 /asmdisk/disk1
/sbin/losetup /dev/loop2 /asmdisk/disk2
/sbin/losetup /dev/loop3 /asmdisk/disk3
/sbin/losetup /dev/loop4 /asmdisk/disk4
/sbin/losetup /dev/loop5 /asmdisk/disk5
/sbin/losetup /dev/loop6 /asmdisk/disk6
/sbin/losetup /dev/loop7 /asmdisk/disk7

oracleasm scandisks

/u01/app/19.3.0/grid/bin/crsctl start res -all

" > /etc/initASMDISK.sh

-- 2、赋予可执行权限
chmod +x /etc/initASMDISK.sh

2、配置系统服务并设置开机启动

代码语言:javascript
复制
echo "

[Unit]
Description=Run a Custom Script at Startup
After=default.target

[Service]
ExecStart=/etc/initASMDISK.sh

[Install]
WantedBy=default.target

" > /etc/systemd/system/initASMDISK.service


systemctl daemon-reload
systemctl enable initASMDISK.service

五、数据库软件包准备

5.1、上传安装文件

打开SecureFX软件:

复制粘贴数据库文件到/soft目录下并等待上传完成。

注意,在上传完成后,最好对安装包进行MD5值校验,防止安装文件上传出现错误:

代码语言:javascript
复制
[root@lhr2019ocpasm soft]# ll
total 5809476
-rw-r--r-- 1 root root 3059705302 Apr 26  2019 LINUX.X64_193000_db_home.zip
-rw-r--r-- 1 root root 2889184573 Apr 26  2019 LINUX.X64_193000_grid_home.zip
[root@lhr2019ocpasm soft]# md5sum LINUX.X64_193000_db_home.zip 
1858bd0d281c60f4ddabd87b1c214a4f  LINUX.X64_193000_db_home.zip
[root@lhr2019ocpasm soft]# md5sum LINUX.X64_193000_grid_home.zip 
b7c4c66f801f92d14faa0d791ccda721  LINUX.X64_193000_grid_home.zip

5.2、解压安装文件

注意:从18c开始,解压后的文件所在目录就是GRID_HOME。所以解压的时候,就要把文件解压到之前配置的GRID_HOME下。

代码语言:javascript
复制
--grid用户:
unzip /soft/LINUX.X64_193000_grid_home.zip  -d /u01/app/19.3.0/grid
--oracle用户:
unzip /soft/LINUX.X64_193000_db_home.zip -d /u01/app/oracle/product/19.3.0/dbhome_1

六、图形化安装grid和db

设置DISPLAY环境变量,打开“Xmanager - Passive”软件,分别执行gridSetup.sh和runInstaller即可。

这里不再详细演示,我们本文主要使用静默方式来安装。

代码语言:javascript
复制
--安装grid
[grid@asm19clhr ~]$ export DISPLAY=192.168.1.1:0.0
[grid@asm19clhr ~]$ /u01/app/19.3.0/grid/gridSetup.sh

--安装db
[root@raclhr-18c-n1 ~]# su - oracle
Last login: Fri Sep 14 15:39:02 CST 2018 on pts/3
[oracle@raclhr-18c-n1 ~]$ cd $ORACLE_HOME
[oracle@raclhr-18c-n1 dbhome_1]$ export DISPLAY=192.168.59.1:0.0
[oracle@raclhr-18c-n1 dbhome_1]$ ./runInstaller 

七、静默安装grid和db

7.1、静默安装grid

7.1.1、开始安装grid软件

使用grid用户执行:

代码语言:javascript
复制
[grid@lhr2019ocpasm ~]$ /u01/app/19.3.0/grid/gridSetup.sh -silent  -force -noconfig  -ignorePrereq \
> oracle.install.responseFileVersion=/oracle/install/rspfmt_crsinstall_response_schema_v19.0.0 \
> INVENTORY_LOCATION=/u01/app/oraInventory \
> oracle.install.option=HA_CONFIG \
> ORACLE_BASE=/u01/app/grid \
> oracle.install.asm.OSDBA=asmdba \
> oracle.install.asm.OSOPER=asmoper \
> oracle.install.asm.OSASM=asmadmin \
> oracle.install.asm.SYSASMPassword=lhr \
> oracle.install.asm.monitorPassword=lhr \
> oracle.install.crs.config.scanType=LOCAL_SCAN \
> oracle.install.crs.config.ClusterConfiguration=STANDALONE \
> oracle.install.crs.config.configureAsExtendedCluster=false \
> oracle.install.crs.config.useIPMI=false \
> oracle.install.asm.storageOption=ASM \
> oracle.install.asm.diskGroup.name=DATA \
> oracle.install.asm.diskGroup.redundancy=EXTERNAL \
> oracle.install.asm.diskGroup.AUSize=4 \
> oracle.install.asm.diskGroup.disksWithFailureGroupNames=ORCL:ASM1,,ORCL:ASM2,,ORCL:ASM3, \
> oracle.install.asm.diskGroup.disks=ORCL:ASM1,ORCL:ASM2,ORCL:ASM3 \
> oracle.install.asm.diskGroup.diskDiscoveryString=ORCL:* \
> oracle.install.crs.rootconfig.executeRootScript=false
Launching Oracle Grid Infrastructure Setup Wizard...

[WARNING] [INS-30011] The SYS password entered does not conform to the Oracle recommended standards.
   CAUSE: Oracle recommends that the password entered should be at least 8 characters in length, contain at least 1 uppercase character, 1 lower case character and 1 digit [0-9].
   ACTION: Provide a password that conforms to the Oracle recommended standards.
[WARNING] [INS-30011] The ASMSNMP password entered does not conform to the Oracle recommended standards.
   CAUSE: Oracle recommends that the password entered should be at least 8 characters in length, contain at least 1 uppercase character, 1 lower case character and 1 digit [0-9].
   ACTION: Provide a password that conforms to the Oracle recommended standards.
[WARNING] [INS-13014] Target environment does not meet some optional requirements.
   CAUSE: Some of the optional prerequisites are not met. See logs for details. gridSetupActions2020-06-24_10-35-38AM.log
   ACTION: Identify the list of failed prerequisite checks from the log: gridSetupActions2020-06-24_10-35-38AM.log. Then either from the log file or from installation manual find the appropriate configuration to meet the prerequisites and fix it manually.
The response file for this session can be found at:
 /u01/app/19.3.0/grid/install/response/grid_2020-06-24_10-35-38AM.rsp

You can find the log of this install session at:
 /tmp/GridSetupActions2020-06-24_10-35-38AM/gridSetupActions2020-06-24_10-35-38AM.log

As a root user, execute the following script(s):
        1. /u01/app/oraInventory/orainstRoot.sh
        2. /u01/app/19.3.0/grid/root.sh

Execute /u01/app/19.3.0/grid/root.sh on the following nodes: 
[lhr2019ocpasm]



Successfully Setup Software with warning(s).
As install user, execute the following command to complete the configuration.
        /u01/app/19.3.0/grid/gridSetup.sh -executeConfigTools -responseFile /u01/app/19.3.0/grid/install/response/grid_2020-06-24_10-35-38AM.rsp [-silent]
Note: The required passwords need to be included in the response file.


Moved the install session logs to:
 /u01/app/oraInventory/logs/GridSetupActions2020-06-24_10-35-38AM

根据提示,使用root跑脚本:

代码语言:javascript
复制
1. /u01/app/oraInventory/orainstRoot.sh
2. /u01/app/19.3.0/grid/root.sh

再使用grid跑脚本:

代码语言:javascript
复制
/u01/app/19.3.0/grid/gridSetup.sh -silent -executeConfigTools -responseFile /u01/app/19.3.0/grid/install/response/grid_2020-06-24_10-35-38AM.rsp

有警告忽略即可。

执行完成后,查看资源:

代码语言:javascript
复制
[root@lhr2019ocpasm /]# crsctl stat res -t
--------------------------------------------------------------------------------
Name           Target  State        Server                   State details       
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.ons
               OFFLINE OFFLINE      lhr2019ocpasm            STABLE
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.cssd
      1        ONLINE  ONLINE       lhr2019ocpasm            STABLE
ora.diskmon
      1        OFFLINE OFFLINE                               STABLE
ora.evmd
      1        ONLINE  ONLINE       lhr2019ocpasm            STABLE
--------------------------------------------------------------------------------

7.1.2、静默创建ASM实例

创建ASM实例可以使用图形界面创建:

代码语言:javascript
复制
export DISPLAY=192.168.59.1:0.0
/u01/app/19.3.0/grid/bin/asmca 

可以静默创建ASM实例:

代码语言:javascript
复制
/u01/app/19.3.0/grid/bin/asmca -silent -configureASM  -sysAsmPassword lhr -asmsnmpPassword lhr -diskString 'ORCL:*' -diskGroupName DATA -diskList ORCL:ASM1,ORCL:ASM2,ORCL:ASM3 -redundancy EXTERNAL

日志:/u01/app/grid/cfgtoollogs/asmca/asmca-200403PM091415.log

7.1.3、静默创建监听

代码语言:javascript
复制
netca -silent -responsefile $ORACLE_HOME/assistants/netca/netca.rsp

7.1.4、创建DATA和FRA磁盘组

可以使用命令,也可以使用图形化界面来创建。

代码语言:javascript
复制
#使用sqlplus / as sysasm登陆来创建磁盘组
su - grid
sqlplus / as sysasm
alter system set asm_diskstring='ORCL:*';

col name format a10
set line 9999
col path format a25
select GROUP_NUMBER,path,name,disk_number,total_mb,free_mb,CREATE_DATE,MOUNT_STATUS,MOUNT_DATE from v$asm_disk order by GROUP_NUMBER desc,disk_number;
select name,state,free_mb,required_mirror_free_mb,usable_file_mb from v$asm_diskgroup;

--创建磁盘组
create diskgroup FRA external redundancy disk 'ORCL:ASM4','ORCL:ASM5'  ATTRIBUTE 'compatible.rdbms' = '19.0', 'compatible.asm' = '19.0';

--给磁盘组添加磁盘
alter diskgroup fra add disk 'ORCL:ASM7';
alter diskgroup data add disk 'ORCL:ASM6';

查询ASM磁盘和磁盘组:

代码语言:javascript
复制
[root@lhr2019ocpasm /]# export GRID_HOME=$ORACLE_HOME
[root@lhr2019ocpasm /]# $GRID_HOME/bin/kfod disks=asm  st=true ds=true cluster=true
--------------------------------------------------------------------------------
 Disk          Size Header    Path                                    Disk Group    User     Group   
================================================================================
   1:       2000 MB MEMBER    ORCL:ASM1                                DATA                          
   2:       2000 MB MEMBER    ORCL:ASM2                                DATA                          
   3:       2000 MB MEMBER    ORCL:ASM3                                DATA                          
   4:       2000 MB MEMBER    ORCL:ASM4                                FRA                           
   5:       2000 MB MEMBER    ORCL:ASM5                                FRA                           
   6:       8000 MB MEMBER    ORCL:ASM6                                DATA                          
   7:       8000 MB MEMBER    ORCL:ASM7                                FRA                           
--------------------------------------------------------------------------------
ORACLE_SID ORACLE_HOME                                      HOST_NAME           
================================================================================
      +ASM /u01/app/19.3.0/grid                             lhr2019ocpasm  

[root@lhr2019ocpasm /]# su - grid asmcmd lsdg   
Last login: Tue Jun 30 12:28:46 CST 2020 on pts/1
State    Type    Rebal  Sector  Logical_Sector  Block       AU  Total_MB  Free_MB  Req_mir_free_MB  Usable_file_MB  Offline_disks  Voting_files  Name
MOUNTED  EXTERN  N         512             512   4096  1048576     14000    10448                0           10448              0             N  DATA/
MOUNTED  EXTERN  N         512             512   4096  1048576     12000    11303                0           11303              0             N  FRA/    

[root@lhr2019ocpasm /]# crsctl stat res -t
--------------------------------------------------------------------------------
Name           Target  State        Server                   State details       
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.DATA.dg
               ONLINE  ONLINE       lhr2019ocpasm            STABLE
ora.FRA.dg
               ONLINE  ONLINE       lhr2019ocpasm            STABLE
ora.LISTENER.lsnr
               ONLINE  ONLINE       lhr2019ocpasm            STABLE
ora.asm
               ONLINE  ONLINE       lhr2019ocpasm            Started,STABLE
ora.ons
               OFFLINE OFFLINE      lhr2019ocpasm            STABLE
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.cssd
      1        ONLINE  ONLINE       lhr2019ocpasm            STABLE
ora.diskmon
      1        OFFLINE OFFLINE                               STABLE
ora.evmd
      1        ONLINE  ONLINE       lhr2019ocpasm            STABLE
-------------------------------------------------------------------------------- 

7.2、静默安装db

代码语言:javascript
复制
[oracle@asm19clhr ~]$ /u01/app/oracle/product/19.3.0/dbhome_1/runInstaller -silent  -force -noconfig  -ignorePrereq oracle.install.responseFileVersion=oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v19.0.0 oracle.install.option=INSTALL_DB_SWONLY UNIX_GROUP_NAME=oinstall INVENTORY_LOCATION=/u01/app/oraInventory ORACLE_BASE=/u01/app/oracle oracle.install.db.InstallEdition=EE oracle.install.db.OSDBA_GROUP=dba oracle.install.db.OSOPER_GROUP=oper oracle.install.db.OSBACKUPDBA_GROUP=backupdba oracle.install.db.OSDGDBA_GROUP=dgdba oracle.install.db.OSKMDBA_GROUP=kmdba
Launching Oracle Database Setup Wizard...

[FATAL] [INS-35344] The value is not specified for Real Application Cluster administrative (OSRACDBA) group.
   ACTION: Specify a valid group name for Real Application Cluster administrative (OSRACDBA) group.
[oracle@asm19clhr ~]$ /u01/app/oracle/product/19.3.0/dbhome_1/runInstaller -silent  -force -noconfig  -ignorePrereq oracle.install.responseFileVersion=oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v19.0.0 oracle.install.option=INSTALL_DB_SWONLY UNIX_GROUP_NAME=oinstall INVENTORY_LOCATION=/u01/app/oraInventory ORACLE_BASE=/u01/app/oracle oracle.install.db.InstallEdition=EE oracle.install.db.OSDBA_GROUP=dba oracle.install.db.OSOPER_GROUP=oper oracle.install.db.OSBACKUPDBA_GROUP=backupdba oracle.install.db.OSDGDBA_GROUP=dgdba oracle.install.db.OSKMDBA_GROUP=kmdba oracle.install.db.OSRACDBA_GROUP=racdba
Launching Oracle Database Setup Wizard...

[WARNING] [INS-13014] Target environment does not meet some optional requirements.
   CAUSE: Some of the optional prerequisites are not met. See logs for details. /u01/app/oraInventory/logs/InstallActions2020-03-27_03-51-38PM/installActions2020-03-27_03-51-38PM.log
   ACTION: Identify the list of failed prerequisite checks from the log: /u01/app/oraInventory/logs/InstallActions2020-03-27_03-51-38PM/installActions2020-03-27_03-51-38PM.log. Then either from the log file or from installation manual find the appropriate configuration to meet the prerequisites and fix it manually.
The response file for this session can be found at:
 /u01/app/oracle/product/19.3.0/dbhome_1/install/response/db_2020-03-27_03-51-38PM.rsp

You can find the log of this install session at:
 /u01/app/oraInventory/logs/InstallActions2020-03-27_03-51-38PM/installActions2020-03-27_03-51-38PM.log

As a root user, execute the following script(s):
        1. /u01/app/oracle/product/19.3.0/dbhome_1/root.sh

Execute /u01/app/oracle/product/19.3.0/dbhome_1/root.sh on the following nodes: 
[asm19clhr]


Successfully Setup Software with warning(s).

根据提示,使用root用户执行以下脚本:

代码语言:javascript
复制
/u01/app/oracle/product/19.3.0/dbhome_1/root.sh

至此,ASM和db软件都已经安装完成了,接下来我们创建数据库。

八、dbca静默建库及配置

代码语言:javascript
复制
-- 删除数据库
dbca -silent -deleteDatabase -sourceDB lhr19cdb -sysDBAUserName sys -sysDBAPassword lhr -forceArchiveLogDeletion

--创建lhr19cdb,是一个cdb的库
dbca -silent -ignorePreReqs  -ignorePrereqFailure  -createDatabase -templateName General_Purpose.dbc -responseFile NO_VALUE \
-gdbname lhr19cdb  -sid lhr19cdb \
-createAsContainerDatabase TRUE \
-sysPassword lhr -systemPassword lhr -pdbAdminPassword lhr -dbsnmpPassword lhr \
-datafileDestination '+DATA' -recoveryAreaDestination '+FRA' \
-storageType ASM \
-characterset AL32UTF8 \
-sampleSchema true \
-totalMemory 1024 \
-databaseType MULTIPURPOSE \
-emConfiguration NONE

--创建lhr19sdb,是一个非cdb的库
dbca -silent -ignorePreReqs  -ignorePrereqFailure  -createDatabase -templateName General_Purpose.dbc -responseFile NO_VALUE \
-gdbname lhr19sdb  -sid lhr19sdb \
-createAsContainerDatabase FALSE \
-sysPassword lhr -systemPassword lhr -dbsnmpPassword lhr \
-datafileDestination '/u01/app/oracle/oradata' -recoveryAreaDestination '/u01/app/oracle/flash_recovery_area' \
-storageType FS \
-characterset ZHS16GBK \
-sampleSchema true \
-totalMemory 1024 \
-databaseType MULTIPURPOSE \
-emConfiguration NONE

使用oracle用户执行过程:

代码语言:javascript
复制
[oracle@lhr2019ocpasm ~]$ dbca -silent -ignorePreReqs  -ignorePrereqFailure  -createDatabase -templateName General_Purpose.dbc -responseFile NO_VALUE \
> -gdbname lhr19cdb  -sid lhr19cdb \
> -createAsContainerDatabase TRUE \
> -sysPassword lhr -systemPassword lhr -pdbAdminPassword lhr -dbsnmpPassword lhr \
> -datafileDestination '+DATA' -recoveryAreaDestination '+FRA' \
> -storageType ASM \
> -characterset AL32UTF8 \
> -sampleSchema true \
> -totalMemory 1024 \
> -databaseType MULTIPURPOSE \
> -emConfiguration NONE
[WARNING] [DBT-06208] The 'SYS' password entered does not conform to the Oracle recommended standards.
   CAUSE: 
a. Oracle recommends that the password entered should be at least 8 characters in length, contain at least 1 uppercase character, 1 lower case character and 1 digit [0-9].
b.The password entered is a keyword that Oracle does not recommend to be used as password
   ACTION: Specify a strong password. If required refer Oracle documentation for guidelines.
[WARNING] [DBT-06208] The 'SYSTEM' password entered does not conform to the Oracle recommended standards.
   CAUSE: 
a. Oracle recommends that the password entered should be at least 8 characters in length, contain at least 1 uppercase character, 1 lower case character and 1 digit [0-9].
b.The password entered is a keyword that Oracle does not recommend to be used as password
   ACTION: Specify a strong password. If required refer Oracle documentation for guidelines.
Prepare for db operation
10% complete
Registering database with Oracle Restart
14% complete
Copying database files
43% complete
Creating and starting Oracle instance
45% complete
49% complete
54% complete
58% complete
62% complete
Completing Database Creation
68% complete
70% complete
71% complete
Executing Post Configuration Actions
100% complete
Database creation complete. For details check the logfiles at:
 /u01/app/oracle/cfgtoollogs/dbca/lhr19cdb.
Database Information:
Global Database Name:lhr19cdb
System Identifier(SID):lhr19cdb
Look at the log file "/u01/app/oracle/cfgtoollogs/dbca/lhr19cdb/lhr19cdb.log" for further details.


[oracle@lhr2019ocpasm ~]$ dbca -silent -ignorePreReqs  -ignorePrereqFailure  -createDatabase -templateName General_Purpose.dbc -responseFile NO_VALUE \
> -gdbname lhr19sdb  -sid lhr19sdb \
> -createAsContainerDatabase FALSE \
> -sysPassword lhr -systemPassword lhr -dbsnmpPassword lhr \
> -datafileDestination '/u01/app/oracle/oradata' -recoveryAreaDestination '/u01/app/oracle/flash_recovery_area' \
> -storageType FS \
> -characterset ZHS16GBK \
> -sampleSchema true \
> -totalMemory 600 \
> -databaseType MULTIPURPOSE \
> -emConfiguration NONE
[WARNING] [DBT-11205] Specified shared pool size does not meet the recommended minimum size requirement. This might cause database creation to fail.
   ACTION: Specify at least (600 MB) for shared pool size.
[WARNING] [DBT-06208] The 'SYS' password entered does not conform to the Oracle recommended standards.
   CAUSE: 
a. Oracle recommends that the password entered should be at least 8 characters in length, contain at least 1 uppercase character, 1 lower case character and 1 digit [0-9].
b.The password entered is a keyword that Oracle does not recommend to be used as password
   ACTION: Specify a strong password. If required refer Oracle documentation for guidelines.
[WARNING] [DBT-06208] The 'SYSTEM' password entered does not conform to the Oracle recommended standards.
   CAUSE: 
a. Oracle recommends that the password entered should be at least 8 characters in length, contain at least 1 uppercase character, 1 lower case character and 1 digit [0-9].
b.The password entered is a keyword that Oracle does not recommend to be used as password
   ACTION: Specify a strong password. If required refer Oracle documentation for guidelines.
Prepare for db operation
10% complete
Registering database with Oracle Restart
14% complete
Copying database files
43% complete
Creating and starting Oracle instance
45% complete
49% complete
53% complete
57% complete
60% complete
62% complete
Completing Database Creation
68% complete
70% complete
71% complete
Executing Post Configuration Actions
100% complete
Database creation complete. For details check the logfiles at:
 /u01/app/oracle/cfgtoollogs/dbca/lhr19sdb.
Database Information:
Global Database Name:lhr19sdb
System Identifier(SID):lhr19sdb
Look at the log file "/u01/app/oracle/cfgtoollogs/dbca/lhr19sdb/lhr19sdb.log" for further details.

创建完成后:

代码语言:javascript
复制
[root@lhr2019ocpasm ~]# crsctl stat res -t
--------------------------------------------------------------------------------
Name           Target  State        Server                   State details       
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.DATA.dg
               ONLINE  ONLINE       lhr2019ocpasm            STABLE
ora.FRA.dg
               ONLINE  ONLINE       lhr2019ocpasm            STABLE
ora.LISTENER.lsnr
               ONLINE  ONLINE       lhr2019ocpasm            STABLE
ora.asm
               ONLINE  ONLINE       lhr2019ocpasm            Started,STABLE
ora.ons
               OFFLINE OFFLINE      lhr2019ocpasm            STABLE
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.cssd
      1        ONLINE  ONLINE       lhr2019ocpasm            STABLE
ora.diskmon
      1        OFFLINE OFFLINE                               STABLE
ora.evmd
      1        ONLINE  ONLINE       lhr2019ocpasm            STABLE
ora.lhr19cdb.db
      1        ONLINE  ONLINE       lhr2019ocpasm            Open,HOME=/u01/app/o
                                                             racle/product/19.3.0
                                                             /dbhome_1,STABLE
ora.lhr19sdb.db
      1        ONLINE  ONLINE       lhr2019ocpasm            Open,HOME=/u01/app/o
                                                             racle/product/19.3.0
                                                             /dbhome_1,STABLE
--------------------------------------------------------------------------------

8.1、配置db自动启动

可以保证,无论在何种情况下,只要HAS启动,那么数据库都可以自动启动:

代码语言:javascript
复制
crsctl modify resource ora.lhr19cdb.db -attr AUTO_START=always  -unsupported
crsctl modify resource ora.lhr19sdb.db -attr AUTO_START=always  -unsupported


--结果
[root@lhr2019ocpasm ~]# crsctl stat res ora.lhr19cdb.db -p | grep AUTO_START
AUTO_START=always
[root@lhr2019ocpasm ~]# crsctl stat res ora.lhr19sdb.db -p | grep AUTO_START
AUTO_START=always

8.2、19c EM配置

19c EM需要做额外的配置,2个数据库都需要配置:

代码语言:javascript
复制
exec dbms_xdb_sethttsport(5500); --lhr19cdb
# exec dbms_xdb_sethttsport(5501); --lhr19sdb
@?/rdbms/admin/execemx emx

chmod 777 /u01/app/oracle/product/19.3.0/dbhome_1/admin/lhr19cdb/xdb_wallet/*


*/ 
--  监听中的示例

[root@lhr2019ocpasm /]# lsnrctl status

LSNRCTL for Linux: Version 19.0.0.0.0 - Production on 30-JUN-2020 12:36:18

Copyright (c) 1991, 2019, Oracle.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=lhr2019ocpasm)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 19.0.0.0.0 - Production
Start Date                30-JUN-2020 10:54:35
Uptime                    0 days 1 hr. 41 min. 42 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /u01/app/19.3.0/grid/network/admin/listener.ora
Listener Log File         /u01/app/grid/diag/tnslsnr/lhr2019ocpasm/listener/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=lhr2019ocpasm)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcps)(HOST=lhr2019ocpasm)(PORT=5501))(Security=(my_wallet_directory=/u01/app/oracle/product/19.3.0/dbhome_1/admin/lhr19sdb/xdb_wallet))(Presentation=HTTP)(Session=RAW))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcps)(HOST=lhr2019ocpasm)(PORT=5500))(Security=(my_wallet_directory=/u01/app/oracle/product/19.3.0/dbhome_1/admin/lhr19cdb/xdb_wallet))(Presentation=HTTP)(Session=RAW))
Services Summary...
Service "+ASM" has 1 instance(s).
  Instance "+ASM", status READY, has 1 handler(s) for this service...
Service "+ASM_DATA" has 1 instance(s).
  Instance "+ASM", status READY, has 1 handler(s) for this service...
Service "+ASM_FRA" has 1 instance(s).
  Instance "+ASM", status READY, has 1 handler(s) for this service...
Service "86b637b62fdf7a65e053f706e80a27ca" has 1 instance(s).
  Instance "lhr19cdb", status READY, has 1 handler(s) for this service...
Service "lhr19cdb" has 1 instance(s).
  Instance "lhr19cdb", status READY, has 1 handler(s) for this service...
Service "lhr19cdbXDB" has 1 instance(s).
  Instance "lhr19cdb", status READY, has 1 handler(s) for this service...
Service "lhr19sdb" has 1 instance(s).
  Instance "lhr19sdb", status READY, has 1 handler(s) for this service...
Service "lhrsdbXDB" has 1 instance(s).
  Instance "lhr19sdb", status READY, has 1 handler(s) for this service...
The command completed successfully

EM访问地址:https://192.168.1.35:5500/em/

笔记本登录数据库:

代码语言:javascript
复制
Microsoft Windows [版本 10.0.17134.765]
(c) 2018 Microsoft Corporation。保留所有权利。

C:\Users\lhrxxt>sqlplus sys/lhr@192.168.1.35:1521/lhr19cdb as sysdba

SQL*Plus: Release 12.1.0.2.0 Production on Tue Jun 30 14:25:05 2020

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


Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production

SYS@192.168.1.35:1521/lhr19cdb> show pdbs

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO
SYS@192.168.1.35:1521/lhr19cdb> exit
Disconnected from Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production

C:\Users\lhrxxt>sqlplus sys/lhr@192.168.1.35:1521/lhr19sdb as sysdba

SQL*Plus: Release 12.1.0.2.0 Production on Tue Jun 30 14:25:13 2020

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


Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production

SYS@192.168.1.35:1521/lhr19sdb> show pdbs
SYS@192.168.1.35:1521/lhr19sdb>

8.3、提交容器镜像供别人下载使用

具体使用方法可以参考:【DB宝4】只需2步即可拥有Oracle19c的ASM+DB环境

代码语言:javascript
复制
--上传到Docker Hub
docker container stop lhr2019ocpasm
docker commit lhr2019ocpasm lhrbest/oracle19casm_lhr:1.0
docker login
docker push lhrbest/oracle19casm_lhr:1.0


-- 从docker hub下载
docker pull lhrbest/oracle19casm_lhr:1.0
docker run -itd -h lhr2019ocpasm --name oracle19casmlhr -p 222:22 -p 1521:1521 -p 5500:5500 -p 5501:5501 --privileged=true lhrbest/oracle19casm_lhr:1.0  /usr/sbin/init

docker exec -it oracle19casmlhr bash
-- 执行其他数据库操作

这里有几个注意事项非常重要:

代码语言:javascript
复制
-- ① 使用二进制包的方式安装Oracle 19c企业版的ASM和db,包括一个CDB,名称为lhr19cdb,一个非cdb,名称为lhr19sdb,所有密码均为lhr
-- ② ASM磁盘脚本:/etc/initASMDISK.sh,请确保脚本/etc/initASMDISK.sh中的内容都可以正常执行
-- ③ 若oracleasmlib初始化错误,则需要在安装Docker的主机上也配置oracleasmlib并初始化正常。
yum install -y kmod-oracleasm
wget https://yum.oracle.com/repo/OracleLinux/OL7/latest/x86_64/getPackage/oracleasm-support-2.1.11-2.el7.x86_64.rpm
wget https://download.oracle.com/otn_software/asmlib/oracleasmlib-2.0.12-1.el7.x86_64.rpm
rpm -ivh *.rpm


systemctl enable oracleasm.service

oracleasm init
oracleasm status

-- 返回yes
[root@docker36 ~]# oracleasm init
[root@docker36 ~]# oracleasm status
Checking if ASM is loaded: yes
Checking if /dev/oracleasm is mounted: yes

若Docker Hub上传和下载慢,则也可以使用阿里云:

代码语言:javascript
复制
-- 上传到阿里云
--https://cr.console.aliyun.com/cn-hangzhou/instances/repositories
docker login --username=lhrbest@qq.com registry.cn-hangzhou.aliyuncs.com

docker tag 1a46885aa4e7 registry.cn-hangzhou.aliyuncs.com/lhrbest/oracle19casm_lhr:1.0
docker push registry.cn-hangzhou.aliyuncs.com/lhrbest/oracle19casm_lhr:1.0


-- 从阿里云下载
docker pull registry.cn-hangzhou.aliyuncs.com/lhrbest/oracle19casm_lhr:1.0
docker run -itd -h lhr2019ocpasm --name oracle19casmlhr -p 222:22 -p 1521:1521 -p 5500:5500 -p 5501:5501 --privileged=true lhrbest/oracle19casm_lhr:1.0  /usr/sbin/init

本文结束。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-07-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 DB宝 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 目录
  • 一、安装Docker软件
  • 二、创建CentOS7.6的容器
  • 三、操作系统配置部分
    • 3.1、关闭防火墙(Docker中一般不需要)
      • 3.2、禁用selinux(Docker中一般不需要)
        • 3.3、添加组和用户
          • 3.3.1、添加oracle和grid用户
          • 3.3.2、创建安装目录
          • 3.3.3、配置grid和oracle用户的环境变量文件
          • 3.3.4、配置root用户的环境变量
        • 3.4、安装依赖包
          • 3.5、配置内核参数
            • 3.5.1、修改/etc/sysctl.conf文件
            • 3.5.2、修改/etc/security/limits.conf文件
            • 3.5.3、修改/etc/pam.d/login文件
          • 3.6、配置/dev/shm大小
          • 四、配置ASM磁盘
            • 4.1、安装oracleasm
              • 4.2、创建loop设备
                • 4.3、创建ASM磁盘
                  • 4.4、配置开机启动脚本
                  • 五、数据库软件包准备
                    • 5.1、上传安装文件
                      • 5.2、解压安装文件
                      • 六、图形化安装grid和db
                      • 七、静默安装grid和db
                        • 7.1、静默安装grid
                          • 7.1.1、开始安装grid软件
                          • 7.1.2、静默创建ASM实例
                          • 7.1.3、静默创建监听
                          • 7.1.4、创建DATA和FRA磁盘组
                        • 7.2、静默安装db
                        • 八、dbca静默建库及配置
                          • 8.1、配置db自动启动
                            • 8.2、19c EM配置
                              • 8.3、提交容器镜像供别人下载使用
                              相关产品与服务
                              容器镜像服务
                              容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
                              领券
                              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档