Oracle 19C 19.0.0.0 GI DB OEL8.8

1 背景知识

本章主要介绍如何在 Oracle Linux 8.9 上安装 Oracle 19C 数据库和 GI 高可用组件。

2 操作系统准备

2.1 执行操作系统优化

#root>
bash optimize_system_conf_oracle.sh

2.2 创建目录

#root>
mkdir -p /u01/app/grid/product/19.3.0/db_1
mkdir -p /u01/app/oracle/product/19.3.0/db_1
mkdir -p /u01/app/grid/
chown -R oracle:dba /u01/app/oracle
chown -R grid:dba /u01/app/grid
chown grid:dba /u01/app/
chmod -R 775 /u01/app/oracle
chmod -R 775 /u01/app/grid

2.3 DNS 解析设置

cat >> /etc/hosts << EOF
192.168.10.188 node1
EOF

2.4 安装依赖包

Note

其他Linux 操作系统。


yum install bind-libs bind-utils compat-libcap1 compat-libstdc++-33 gssproxy keyutils ksh \
libICE libSM libX11 libX11-common libXau libXext libXi libXinerama libXmu \
libXrandr libXrender libXt libXtst libXv libXxf86dga libXxf86misc libXxf86vm \
libaio-devel libbasicobjects libcollection libdmx libevent libini_config \
libnfsidmap libpath_utils libref_array libstdc++-devel libtirpc libverto-libevent \
libxcb lm_sensors-libs mailx nfs-utils psmisc quota quota-nls rpcbind \
smartmontools sysstat tcp_wrappers unzip xorg-x11-utils xorg-x11-xauth -y
Note

Oracle Linux 操作系统。

 dnf install oracle-database-preinstall-19c -y
dnf install chrony unzip  gcc elfutils-libelf-devel gcc-c++ -y

2.4.1 打开ol8_addons yum 源

vi +112 /etc/yum.repos.d/oracle-linux-ol8.repo
[ol8_addons]
name=Oracle Linux 8 Addons ($basearch)
baseurl=https://yum$ociregion.$ocidomain/repo/OracleLinux/OL8/addons/$basearch/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
gpgcheck=1
enabled=1

2.4.2 安装oracleasm工具包

#root>
dnf install oracleasm-support -y

2.5 准备共享磁盘

2.5.1 oracleasm 初始化

#root>
oracleasm init
oracleasm configure -i
grid
dba
y
y

2.5.2 磁盘分区

#root>
for i in {b..m}; 
do  fdisk /dev/sd$i << EOF
n
p



w
EOF
done

2.5.3 创建ASM 磁盘

2.5.3.1 创建OCR 磁盘
#root>
count=1; 
for i in {b..d};
do  oracleasm createdisk OCR$count /dev/sd$i'1';
let count+=1;
done
2.5.3.2 创建DATA 磁盘
#root>
count=1; 
for i in {e..g};
do  oracleasm createdisk DATA$count /dev/sd$i'1';
let count+=1;
done
2.5.3.3 创建快速恢复目录
#root>
count=1;
for i in {h..j};
do  oracleasm createdisk FRA$count /dev/sd$i'1'; 
let count+=1;
done
2.5.3.4 创建MGAT 目录
#root>
count=1;
for i in {k..m};
do  oracleasm createdisk MGT$count /dev/sd$i'1'; 
let count+=1;
done

2.5.4 检查磁盘是否创建成功

#root>
oracleasm listdisks
DATA1
DATA2
DATA3
FRA1
FRA2
FRA3
MGT1
MGT2
MGT3
OCR1
OCR2
OCR3

2.6  调整/dev/shm

  1. 增大 tmpfs 文件系统大小。
#root>
cat >> /etc/fstab << EOF
tmpfs                   /dev/shm                tmpfs   defaults,size=8192M        0 0
EOF
  1. 重新挂载 tmpfs 文件系统。
#root>
mount -o remount /dev/shm

2.7 设置环境变量

2.7.1 设置Oracle 环境变量


su - oracle
#oracle>
cat >> ~/.bash_profile << EOF
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=\$ORACLE_BASE/product/19.3.0/db_1
export ORACLE_SID=citdb
export ORACLE_UNQNAME=citdb
export PATH=\$ORACLE_HOME/bin:\$PATH
export LD_LOIBRARY_PATH=\$ORACLE_HOME/lib:
export CVUQDISK_GRP=dba
export DISPLAY=192.168.10.130:0.0
EOF

2.7.2 设置 Grid 用户环境变量

#grid>
su - grid
cat >> ~/.bash_profile << EOF
export ORACLE_BASE=/u01/app/grid/
export ORACLE_HOME=/u01/app/grid/product/19.3.0/db_1
export ORACLE_SID=+ASM
export PATH=\$ORACLE_HOME/bin:\$PATH
export LD_LIBRARY_PATH=\$ORACLE_HOME/lib:
export DISPLAY=192.168.10.130:0.0
export CVUQDISK_GRP=dba
EOF

2.7.3 设置 root 用户环境变量

#root>
cat >> ~/.bash_profile << EOF 
export PATH=/u01/app/grid/product/19.3.0/db_1/bin:\$PATH
export LANG=C
EOF

3 准备安装介质

3.1 创建目录

#root>
cd /app
mkdir setup
mkdir db
mkdir grid
chown -R grid:dba grid/
chown -R oracle:dba db/

3.2 解压软件

上传 GI+DB 软件到 setup 目录,并解压到本地目录。

V982063-01.zip #Oracle Database 19.3.0.0.0 for Linux x86-64
V982068-01.zip #Oracle Database Grid Infrastructure 19.3.0.0.0 for Linux x86-64
# root>
chown oracle:dba -R /app/setup 
chmod 775 -R /app/setup
su - grid
# grid>
cd /app/setup
unzip -q V982068-01.zip -d $ORACLE_HOME
su - oracle
# oracle>
cd /app/setup
unzip -q V982063-01.zip -d $ORACLE_HOME

Note

打快照 DB_INSTALL_ENV 。

4 启动 GI 安装

su  - grid
#grid>
cd $ORACLE_HOME
export DISPLAY=192.168.10.130:0.0
export CV_ASSUME_DISTID=RHEL7.9
./gridSetup.sh

4.1 GI软件安装参数

参数
skip software updates 跳过数据库更新。
安装选项 Oracle Restart
ASM 磁盘路径 /dev/oracleasm/disks
ASM 磁盘组 OCR
AU size 4MB
Redundancy External
SYS\ASMSNMP 密码 grid
OSASM asmdba
OSDBA asmdba
OSOPER asmdba
Oracle Base /u01/app/grid
安装目录 /u01/app/grid/product/19.3.0/db_1
Inventory /u01/app/grid/oraInventory

4.2 运行root 脚本

/u01/app/grid/oraInventory/orainstRoot.sh
/u01/app/grid/product/19.3.0/db_1/root.sh

5 启动asmca 创建ASM 磁盘组

启动 asmca 创建 ASM 磁盘组

su - grid
export DISPLAY=192.168.10.130:0.0
asmca
选项 参数
磁盘组名称 DATA(DATA1,DATA2,DATA3)
磁盘组冗余 External
磁盘组名称 FRA(FRA1,FRA2,FRA3)
磁盘组名称 MGT(MGT1,MGT2,MGT3)

6 启动 DB 安装

su - oracle 
#oracle>
cd $ORACLE_HOME
export DISPLAY=192.168.10.130:0.0
export CV_ASSUME_DISTID=RHEL7.9
 ./runInstaller 

6.1 DB 软件安装参数

参数
support eamil 不勾选
Oracle support skip software updates
install option install database sofware only
instal type Single instance database
language 添加simplified chinese
数据库版本 企业版
oracle base /u01/app/oracle
软件安装目录 /u01/app/oracle/product/19.3.0/db_1
inventory /u01/app/oracle/oraInventory
inventory权限组 dba
OSDBA dba
OSOPER oper
OSBACKUUPDBA dba
OSDGDBA dba
OSKMDBA dba
OSRACDBA dba
ignor all 勾选
执行orainstRoot.sh
执行root.sh

6.2 Oracle数据库安装

su - oracle  
#root>
export DISPLAY=192.168.10.130:0.0
dbca
选项 参数
数据库类型 选择GTP
Global Database Name citdb
EM 不勾选
自动维护工具 开启
system 和sys 密码 oracle
数据文件存储 ASM
SFRA (快速恢复区) 4182 (默认)
sample schemas 勾选
SGA and PGA 选择TYpical 并指定 70%。
Process 150
字符集 AL16UTF16
Connection mode 独占模式
Oracle-Manage +DATA
快速恢复区 +FRA

6.3 导入测试数据

导入 [[000-inbox/Oracle/inito.sql]] 脚本,生成 oa 模式。

6.4 密码过期处理

6.4.1 查看用户 Profile

sqlplus / as sysdba
SELECT username,PROFILE FROM dba_users WHERE username IN ('SYSTEM','OA');

6.4.2 更改 profile 策略

设置 profile 策略

ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;

更多内容请参考 Oracle 密码过期策略

7 小结 & FAQ

7.1 操作系统不兼容

  1. 报错信息。
[WARNING] [INS-08101] Unexpected error while executing the action at state: 'supportedOSCheck'
CAUSE: No additional information available.
 ACTION: Contact Oracle Support Services or refer to the software manual.
  1. 设置操作系统兼容模式
export CV_ASSUME_DISTID=RHEL7.6
export CV_ASSUME_DISTID=RHEL7.6

7.2 删除磁盘组

count=1; 
for i in {b..m} ;  
do  oracleasm deletedisk FRA$count ; 
let count+=1;  
done
count=1; 
for i in {b..m} ;  
do  oracleasm deletedisk DATA$count ; 
let count+=1;  
done
count=1; 
for i in {b..m}  ;  
do  oracleasm deletedisk OCR$count ; 
let count+=1;  
done

count=1; 
for i in {b..m}  ;  
do  oracleasm deletedisk MGT$count ; 
let count+=1;  
done

7.3 删除分区

for i in {b..m}; 
do  fdisk /dev/sd$i << eof
d
w
eof
done