Oracle 12C 12.2.0.1 GI DB OEL7.9
1 背景知识
本章主要介绍如何在 Oracle Linux 7.9 上安装 Oracle 12C 数据库。
2 操作系统准备
2.1 执行操作系统优化
bash optimize_system_conf_oracle.sh
2.2 创建目录
mkdir -p /u01/app/grid/product/12.2.0/db_1
mkdir -p /u01/app/oracle/product/12.2.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.186 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 操作系统。
yum install oracle-database-server-12cR2-preinstall -y
yum install chrony unzip gcc elfutils-libelf-devel gcc-c++ -y
安装oracleasm工具包。
#root>
yum install oracleasm* -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
- 增大 tmpfs 文件系统大小。
#root>
cat >> /etc/fstab << EOF
tmpfs /dev/shm tmpfs defaults,size=8192M 0 0
EOF
- 重新挂载 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/12.2.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 用户环境变量
su - grid
#grid>
cat >> ~/.bash_profile << EOF
export ORACLE_BASE=/u01/app/grid/
export ORACLE_HOME=/u01/app/grid/product/12.2.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/12.2.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
目录,并解压到本地目录。
V839960-01.zip
V840012-01.zip
# root>
chown -R oracle:dba /app/setup
chmod -R 775 /app/setup
su - grid
# grid>
cd /app/setup
unzip -q V840012-01.zip -d $ORACLE_HOME
su - oracle
#oracle>
cd /app/setup
unzip -q V839960-01.zip
Note
打快照 DB_INSTALL_ENV 。
4 启动 GI 安装
su - grid
#grid>
cd $ORACLE_HOME
export DISPLAY=192.168.10.130:0.0
./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/12.2.0/db_1 |
Inventory | /u01/app/grid/oraInventory |
4.2 运行root 脚本
#root>
/u01/app/grid/oraInventory/orainstRoot.sh
/u01/app/grid/product/12.2.0/db_1/root.sh
5 启动asmca 创建ASM 磁盘组
启动 asmca
创建 ASM
磁盘组
su - grid
#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 /app/setup/database
export DISPLAY=192.168.10.130:0.0
./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/12.2.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
#oracle>
sqlplus / as sysdba
SELECT username,PROFILE FROM dba_users WHERE username IN ('SYSTEM','OA');
6.4.2 更改 profile
策略
设置 profile
策略
#sys>
ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
更多内容请参考 Oracle 密码过期策略
7 小结 & FAQ
7.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.
- 设置操作系统兼容模式
export CV_ASSUME_DISTID=RHEL7.6
export CV_ASSUME_DISTID=RHEL7.6
7.2 删除磁盘组
#root>
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 删除分区
#root>
for i in {b..m};
do fdisk /dev/sd$i << eof
d
w
eof
done