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

您所在的位置:网站首页 docker部署Oracle19c 【DB宝7】如何在Docker容器中一步一步安装配置Oracle19c的ASM+DB环境

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

2023-03-10 21:46| 来源: 网络整理| 查看: 265

目录一、安装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

--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的容器--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 [email protected] systemctl mask [email protected] --启动ssh进程 systemctl restart sshd --修改root用户密码 echo "root:lhr" | chpasswd --远程登录 ssh [email protected] -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中一般不需要)--关闭防火墙: systemctl disable firewalld systemctl stop firewalld systemctl stop firewalld.service systemctl disable firewalld.service --验证: systemctl list-unit-files | grep fire 3.2、禁用selinux(Docker中一般不需要)--临时关闭(不用重启机器): 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

--创建组 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、创建安装目录# 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用户的环境变量:

cat >> /home/oracle/.bash_profile /u01/app/oracle/product/19.3.0/dbhome_1/sqlplus/admin/glogin.sql > /home/grid/.bash_profile /u01/app/19.3.0/grid/sqlplus/admin/glogin.sql > /etc/profile /root/.bashrc /etc/sysctl.conf --使修改参数立即生效: /sbin/sysctl -p 3.5.2、修改/etc/security/limits.conf文件-- 修改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文件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大小。

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

--------------- 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设备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磁盘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脚本并赋权

-- 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、配置系统服务并设置开机启动

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值校验,防止安装文件上传出现错误:

[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下。

--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即可。

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

--安装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和db7.1、静默安装grid7.1.1、开始安装grid软件

使用grid用户执行:

[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跑脚本:

1. /u01/app/oraInventory/orainstRoot.sh 2. /u01/app/19.3.0/grid/root.sh

再使用grid跑脚本:

/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

有警告忽略即可。

执行完成后,查看资源:

[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实例可以使用图形界面创建:

export DISPLAY=192.168.59.1:0.0 /u01/app/19.3.0/grid/bin/asmca

可以静默创建ASM实例:

/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、静默创建监听netca -silent -responsefile $ORACLE_HOME/assistants/netca/netca.rsp 7.1.4、创建DATA和FRA磁盘组

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

#使用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磁盘和磁盘组:

[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[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用户执行以下脚本:

/u01/app/oracle/product/19.3.0/dbhome_1/root.sh

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

八、dbca静默建库及配置-- 删除数据库 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用户执行过程:

[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.

创建完成后:

[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启动,那么数据库都可以自动启动:

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个数据库都需要配置:

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/

笔记本登录数据库:

Microsoft Windows [版本 10.0.17134.765] (c) 2018 Microsoft Corporation。保留所有权利。 C:\Users\lhrxxt>sqlplus sys/[email protected]: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 [email protected]:1521/lhr19cdb> show pdbs CON_ID CON_NAME OPEN MODE RESTRICTED ---------- ------------------------------ ---------- ---------- 2 PDB$SEED READ ONLY NO [email protected]:1521/lhr19cdb> exit Disconnected from Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production C:\Users\lhrxxt>sqlplus sys/[email protected]: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 [email protected]:1521/lhr19sdb> show pdbs [email protected]:1521/lhr19sdb> 8.3、提交容器镜像供别人下载使用

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

--上传到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 -- 执行其他数据库操作

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

-- ① 使用二进制包的方式安装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上传和下载慢,则也可以使用阿里云:

-- 上传到阿里云 --https://cr.console.aliyun.com/cn-hangzhou/instances/repositories docker login [email protected] 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

本文结束。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3