路总倾心之作,详细无比,饭已喂到嘴里!路总公众号:避谶
开篇感谢各位老大哥的谆谆教诲, 本文篇幅较长, 内容也比较基础, 主要是因为自己刚接触rac, 踩了不少坑, 谨以此文进行记录. 周末写的那篇, 由于格式问题, 发现好多脚本复制粘贴后, 不能使用, 就先删掉了~
本文参考三哥墨天轮课程《100天精通Oracle实战系列》进行了补充, 部分内容(例如共享存储)通过跟各位前辈交流, 采用了更为直白的方式, 更适合新手玩家操作.
大家在日常工作以及学习过程中, 最怕踩坑, 下面推荐一些前辈的公众号, 方便大家学习, 共同进步~由于篇幅关系 , 没有一一列出, 还望各位大佬海涵~
大致步骤如下:
安装两台Oracle Linux7.9版本Linux系统(物理内存至少2G) 网络配置(双网卡, 准备IP: Public IP, Virtual IP, Private IP, Scan IP) 存储配置(6块20G共享盘做ASM盘, 根目录留50G用于安装grid和oracle) 预安装准备(系统参数/etc/sysctl.conf修改、防火墙selinux关闭、ntpd时钟定时同步、 yum源配置安装、用户组及用户、目录新建、环境变量配置、用户资源限制/etc/security/limits.conf配置、/etc/pam.d/login修改pam_limits.so等等) 安装Grid软件 安装Oracle软件 安装Oracle数据库 修改数据库内存配置, 密码不过期, 开启归档, 配置归档定时删除脚本, 配置rman备份机制)
一、安装前配置
本文主机配置为OEL7.9 x86_64,内存4G,硬盘100G,双网卡,iscsi共享存储盘20G*6.
节点 | 主机版本 | 主机名 | 实例名 | Oracle 版本 | Public IP | Private IP | Virtual IP | Scan IP |
---|---|---|---|---|---|---|---|---|
节点一 | OEL7.9 | rac1 | lzh1 | 11.2.0.4 | 192.168.1.101 | 1.1.1.2 | 192.168.1.103 | 192.168.1.105 |
节点二 | OEL7.9 | rac2 | lzh2 | 11.2.0.4 | 192.168.1.102 | 1.1.1.3 | 192.168.1.104 | 192.168.1.105 |
注意: 以下标题中(rac1&rac2)代表节点一和节点二都需要执行, (rac1)代表只需要节点一执行.
VMware安装Oracle Linux7.9 (rac1&rac2)
删除这几个没用的设备~
使用ISO
因为我本地网络, 设置到了VMnet3上, 所以在此处进行了修改.
新增一块网卡, 用于后续配置Private IP
点击开启此虚拟机, 开始安装
选择Install Oracle Linux 7.9
选择server with GUI(图形化界面)
配置磁盘, 选择 I will configure partitioning. 点击click here to create them automatically 自动划盘, 根据个人习惯, 在自动划盘的基础上进行修改.
关闭Kdump
关闭security policy
配置网络和主机名
修改时区为Asia/Shanghai
开始安装
配置root, 由于使用图形化界面, 在这里直接新建一个用户并配置密码(不然开机后也是要创建的...)
系统安装完成, 准备reboot
咱也不知道为啥OEL开机有三套内核, 慎重起见选择第二个..
接受license, 点击FINISH CONFIGURATION, 开机~
配置yum源并安装依赖包(rac1&rac2)
注意: 需要提前挂载系统镜像. 如果/etc/yum.repos.d/目录下有其他.repo文件, 记得提前做好备份并移除当前目录, 确保yum源正常使用.
挂载镜像源:
mount /dev/cdrom /mnt
##配置yum源
cd /etc/yum.repos.d
mkdir bak
mv *.repo bak/
cat <<EOF>>/etc/yum.repos.d/local.repo
[local]
name=local
baseurl=file:///mnt
gpgcheck=0
enabled=1
EOF
安装依赖包:
截图为官网列出必须安装以下或更高版本的Oracle Linux 7和Red Hat Enterprise Linux 7的软件包
yum install -y binutils \
compat-libcap1 \
compat-libstdc++-33 \
gcc \
gcc-c++ \
glibc \
glibc-devel \
ksh \
libaio \
libaio-devel \
libgcc \
libstdc++ \
libstdc++-devel \
libXi \
libXtst \
make \
sysstat
检查依赖包安装情况:
rpm -q binutils compat-libcap1 compat-libstdc++-33 gcc gcc-c++ glibc glibc-devel ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel libXi libXtst make sysstat | grep "not installed"
无结果, 代表依赖包均已成功安装.
网络配置(rac1&rac2)
注意: 如果在安装虚拟机时, 已配置好网络, 请检查两块网卡的ONBOOT是否为yes, 重启network, 并检查网络是否配置成功
sed -i 's/ONBOOT=no/ONBOOT=yes/g' /etc/sysconfig/network-scripts/ifcfg-ens32
sed -i 's/ONBOOT=no/ONBOOT=yes/g' /etc/sysconfig/network-scripts/ifcfg-ens33
grep ONBOOT /etc/sysconfig/network-scripts/ifcfg-ens32
grep ONBOOT /etc/sysconfig/network-scripts/ifcfg-ens33
service network restart
ip a
存储配置(rac1&rac2)
Windows 11下使用VMware配置ISCSI共享存储(ps:大佬们说win10配置VMware的共享存储可能有bug, 为了避免各位踩坑, 可以使用vbox的共享存储, 或者使用StarWind也是可以的,参考三哥文档:https://www.modb.pro/db/152431):
关闭虚拟机, 在rac1主机新增6块硬盘, 并将模式修改为永久.
在rac2中, 添加硬盘, 选择使用现有虚拟硬盘, 并将模式修改为永久.
关闭虚拟机, 在虚拟机目录的.vmx文件中增加如下内容(千万要注意这个地方, scsi0.SharedBus指定的是总线为0的所有盘,如果想指定单个盘0:1,则修改为 scsi1:1.SharedBus, 我没有注意这个配置, 拿别人的直接用, 结果配置的是scsi1实际是scsi0... 害的我重装了好几遍...):
############设置共享存储##########################
scsi0.sharedBus = "virtual"
disk.locking = "false"
diskLib.dataCacheMaxSize = "0"
diskLib.dataCacheMaxReadAheadSize = "0"
diskLib.dataCacheMinReadAheadSize = "0"
diskLib.dataCachePageSize = "4096"
diskLib.maxUnsyncedWrites = "0"
disk.EnableUUID = "TRUE"
############设置共享存储##########################
安装 multipath 绑定多路径:
yum install -y device-mapper*
mpathconf --enable --with_multipathd y
查看共享盘的scsi_id:
/usr/lib/udev/scsi_id -g -u /dev/sdb
/usr/lib/udev/scsi_id -g -u /dev/sdc
/usr/lib/udev/scsi_id -g -u /dev/sdd
/usr/lib/udev/scsi_id -g -u /dev/sde
/usr/lib/udev/scsi_id -g -u /dev/sdf
/usr/lib/udev/scsi_id -g -u /dev/sdg
配置 multipath 文件:
cat <<EOF>/etc/multipath.conf
defaults {
user_friendly_names yes
}
blacklist {
devnode "^sda"
}
multipaths {
multipath {
wwid "36000c2939f3b6fcba164a2a6df0b724e"
alias ocr_1
}
multipath {
wwid "36000c29f16ec3cfb20eca4754acf253c"
alias ocr_2
}
multipath {
wwid "36000c29f5980fdaa0539bdbfc17462cd"
alias ocr_3
}
multipath {
wwid "36000c29d9b81f5980e33bde43cead398"
alias data_1
}
multipath {
wwid "36000c2998392d01d155e127fa689bdf0"
alias data_2
}
multipath {
wwid "36000c2960e4e5755c13d88d3e0184148"
alias data_3
}
}
EOF
注意: wwid的值为上面获取的scsi_id, alias可自定义, 这里配置3块OCR盘, 3块DATA盘!
激活multipath多路径:
multipath -F
multipath -v2
multipath -ll
配置UDEV绑盘:
cd /dev/mapper
for i in ocr_* data_*; do
printf "%s %s\n" "$i" "$(udevadm info --query=all --name=/dev/mapper/"$i" | grep -i dm_uuid)" >>/dev/mapper/udev_info
done
while read -r line; do
dm_uuid=$(echo "$line" | awk -F'=' '{print $2}')
disk_name=$(echo "$line" | awk '{print $1}')
echo "KERNEL==\"dm-*\",ENV{DM_UUID}==\"${dm_uuid}\",SYMLINK+=\"asm_${disk_name}\",OWNER=\"grid\",GROUP=\"asmadmin\",MODE=\"0660\"" >>/etc/udev/rules.d/99-oracle-asmdevices.rules
done </dev/mapper/udev_info
重载udev(注意, 由于还没有创建grid用户, 盘的权限还是root, 当创建完gird用户后, 需要重新执行以下命令!) 确认配置完成后, 分别在两个节点输入命令 ls /dev/asm* 查看是否已经成功绑定!
udevadm control --reload-rules
udevadm trigger --type=devices
hosts 文件配置(rac1&rac2)
cat <<EOF>>/etc/hosts
#Public IP
192.168.1.101 rac1
192.168.1.102 rac2
#Private IP
1.1.1.2 rac1-priv
1.1.1.3 rac2-priv
#Vip IP
192.168.1.103 rac1-vip
192.168.1.104 rac2-vip
#Scan IP
192.168.1.105 rac-scan
EOF
关闭防火墙(rac1&rac2)
systemctl stop firewalld.service
systemctl disable firewalld.service
systemctl status firewalld.service
关闭selinux(rac1&rac2)
##重启后生效
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
setenforce 0
##重启后检查
getenforce
时间同步配置(rac1&rac2)
禁用 chronyd:
yum install -y chrony
timedatectl set-timezone Asia/Shanghai
systemctl stop chronyd.service
systemctl disable chronyd.service
配置ntpdate时间同步计划任务(设置本地宿主机为时间服务器, 参考:https://blog.csdn.net/u011046671/article/details/132007913)
yum install -y ntpdate
##192.168.1.13为时间服务器IP,每天12点同步系统时间
cat <<EOF>>/var/spool/cron/root
00 12 * * * /usr/sbin/ntpdate -u 192.168.1.13 && /usr/sbin/hwclock -w
EOF
##查看计划任务
crontab -l
##手动执行
/usr/sbin/ntpdate -u 192.168.1.13 && /usr/sbin/hwclock -w
关闭透明大页和 NUMA(rac1&rac2)
Linux 7 配置内核文件, 关闭透明大页和numa(注意: 关闭 透明大页 和 numa 的配置, 需要重启主机生效!):
sed -i 's/quiet/quiet transparent_hugepage=never numa=off/' /etc/default/grub
grub2-mkconfig -o /boot/grub2/grub.cfg
##重启后检查是否生效
cat /sys/kernel/mm/transparent_hugepage/enabled
cat /proc/cmdline
avahi-daemon 配置(rac1&rac2)
有些主机安装选择最小化安装, 没有安装 avahi-daemon 功能, 建议安装之后禁用, 防止以后误操作导致出问题:
yum install -y avahi*
systemctl stop avahi-daemon.socket
systemctl stop avahi-daemon.service
pgrep -f avahi-daemon | awk '{print "kill -9 "$2}'
配置 NOZEROCONF:
cat <<EOF>>/etc/sysconfig/network
NOZEROCONF=yes
EOF
系统参数配置(rac1&rac2)
安装 Oracle 数据库需要配置系统参数, 以下使用脚本命令一键式配置(最后两个参数根据实际网卡名称修改!):
##配置参数文件
memTotal=$(grep MemTotal /proc/meminfo | awk '{print $2}')
totalMemory=$((memTotal / 2048))
shmall=$((memTotal / 4))
if [ $shmall -lt 2097152 ]; then
shmall=2097152
fi
shmmax=$((memTotal * 1024 - 1))
if [ "$shmmax" -lt 4294967295 ]; then
shmmax=4294967295
fi
cat <<EOF>>/etc/sysctl.conf
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = $shmall
kernel.shmmax = $shmmax
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
net.ipv4.conf.ens32.rp_filter = 1
net.ipv4.conf.ens33.rp_filter = 2
EOF
##生效
sysctl -p
系统资源限制配置(rac1&rac2)
##配置limits.conf
cat <<EOF>>/etc/security/limits.conf
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
oracle hard stack 32768
oracle soft nproc 2047
oracle hard nproc 16384
oracle hard memlock 134217728
oracle soft memlock 134217728
grid soft nofile 1024
grid hard nofile 65536
grid soft stack 10240
grid hard stack 32768
grid soft nproc 2047
grid hard nproc 16384
EOF
##配置pam.d/login
cat <<EOF>>/etc/pam.d/login
session required pam_limits.so
session required /lib64/security/pam_limits.so
EOF
cat /etc/security/limits.conf | grep -v "^$" | grep -v "^#"
cat /etc/pam.d/login | grep -v "^$" | grep -v "^#"
用户及组、目录创建(rac1&rac2)
创建安装 Oracle 数据库所需的用户、组以及安装目录:
##组创建
/usr/sbin/groupadd -g 54321 oinstall
/usr/sbin/groupadd -g 54322 dba
/usr/sbin/groupadd -g 54323 oper
/usr/sbin/groupadd -g 54324 backupdba
/usr/sbin/groupadd -g 54325 dgdba
/usr/sbin/groupadd -g 54326 kmdba
/usr/sbin/groupadd -g 54327 asmdba
/usr/sbin/groupadd -g 54328 asmoper
/usr/sbin/groupadd -g 54329 asmadmin
/usr/sbin/groupadd -g 54330 racdba
##用户创建
/usr/sbin/useradd -u 11012 -g oinstall -G asmadmin,asmdba,asmoper,dba,racdba,oper grid
/usr/sbin/useradd -u 54321 -g oinstall -G asmdba,dba,backupdba,dgdba,kmdba,racdba,oper oracle
##修改用户密码为oracle
echo "oracle" |passwd oracle --stdin
echo "oracle" |passwd grid --stdin
##创建软件目录
mkdir -p /u01/app/11.2.0/grid
mkdir -p /u01/app/grid
mkdir -p /u01/app/oracle/product/11.2.0/db
mkdir -p /u01/app/oraInventory
mkdir -p /backup
mkdir -p /home/oracle/scripts
chown -R oracle:oinstall /backup
chown -R oracle:oinstall /home/oracle/scripts
chown -R grid:oinstall /u01
chown -R grid:oinstall /u01/app/grid
chown -R grid:oinstall /u01/app/11.2.0/grid
chown -R grid:oinstall /u01/app/oraInventory
chown -R oracle:oinstall /u01/app/oracle
chmod -R 775 /u01
环境变量配置(rac1&rac2)
提前配置 profile 文件:
grid 用户:
cat <<EOF>>/home/grid/.bash_profile
################OracleBegin#########################
umask 022
export TMP=/tmp
export TMPDIR=\$TMP
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
export ORACLE_BASE=/u01/app/grid
export ORACLE_HOME=/u01/app/11.2.0/grid
export ORACLE_TERM=xterm
export TNS_ADMIN=\$ORACLE_HOME/network/admin
export LD_LIBRARY_PATH=\$ORACLE_HOME/lib:/lib:/usr/lib
export ORACLE_SID=+ASM1
export PATH=/usr/sbin:\$PATH
export PATH=\$ORACLE_HOME/bin:\$ORACLE_HOME/OPatch:\$PATH
alias sas='sqlplus / as sysasm'
export PS1="[\`whoami\`@\`hostname\`:"'\$PWD]\$ '
################OracleEnd#########################
EOF
注意: 每个节点的 ORACLE_SID 不一样(+ASM1/+ASM2), 需要自行修改!
别忘了重新绑盘!
udevadm control --reload-rules
udevadm trigger --type=devices
ll /dev/asm*
ll /dev/dm*
oracle 用户:
cat <<EOF>>/home/oracle/.bash_profile
################OracleBegin#########################
umask 022
export TMP=/tmp
export TMPDIR=\$TMP
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=\$ORACLE_BASE/product/11.2.0/db
export ORACLE_HOSTNAME=rac1
export ORACLE_TERM=xterm
export TNS_ADMIN=\$ORACLE_HOME/network/admin
export LD_LIBRARY_PATH=\$ORACLE_HOME/lib:/lib:/usr/lib
export ORACLE_SID=lzh1
export PATH=/usr/sbin:\$PATH
export PATH=\$ORACLE_HOME/bin:\$ORACLE_HOME/OPatch:\$PATH
alias sas='sqlplus / as sysdba'
export PS1="[\`whoami\`@\`hostname\`:"'\$PWD]\$ '
################OracleEnd#########################
EOF
注意: 每个节点的 ORACLE_HOSTNAME(rac1/rac2)和 ORACLE_SID(lzh1/lzh2)不一样, 需要自行修改!
安装介质上传解压(rac1)
安装包只需要上传至一节点/soft目录下(注意: 安装包只需要在节点一上传解压即可!):
##创建安装介质存放目录
mkdir /soft
##上传安装介质到/soft目录
p13390677_112040_Linux-x86-64_1of7.zip
p13390677_112040_Linux-x86-64_2of7.zip
p13390677_112040_Linux-x86-64_3of7.zip
##解压安装介质
cd /soft
unzip -q p13390677_112040_Linux-x86-64_1of7.zip
unzip -q p13390677_112040_Linux-x86-64_2of7.zip
unzip -q p13390677_112040_Linux-x86-64_3of7.zip
##授权目录
chown -R oracle:oinstall /soft/database
chown -R grid:oinstall /soft/grid
##root用户下, cvuqdisk安装(rac1&rac2)
cd /soft/grid/rpm
rpm -ivh cvuqdisk-1.0.9-1.rpm
##传输到节点二安装
scp cvuqdisk-1.0.9-1.rpm rac2:/tmp
rpm -ivh /tmp/cvuqdisk-1.0.9-1.rpm
至此, 准备工作已经完成, 重启主机, 使selinux等参数生效.
二、安装 Grid 软件(rac1)
使用grid用户开始安装(注意:由于使用的是图形化界面, 请直接登录grid用户, 不要通过root用户切换!):
##应用环境变量
source ~/.bash_profile
##进入安装目录
cd /soft/grid
##执行安装程序开始安装, 加上jar包防止弹窗不显示问题
./runInstaller -jreLoc /etc/alternatives/jre_1.8.0
跳过版本更新:
选择集群模式安装:
自定义模式安装:
选择语言:
修改集群名称和 scan 名称(注意:scan名称必须与 /etc/hosts 中配置的scan名称保持一致!):
配置 grid 用户节点间互信(注意: 点击Add添加节点二, pubile hostname为rac2, virtual hostname为 rac2-vip, 输入密码: oracle, 点击setup开始互信.):
点击Test测试互信:
确认网络信息是否正确:
选择ASM模式安装:
填写 OCR 裁决盘信息(注意: OCR 裁决盘这里冗余模式 External, Normal, High 对应磁盘数量为 1, 3, 5.):
填写 ASM 实例 SYS 用户密码为 oracle:
不使用 IPMI:
选择用户组, 默认即可:
选择grid安装目录, 默认即可:
安装前预检查:
检查结果, 缺失两个包, 可以不用管, 强迫症可以装上. pdksh与ksh有冲突, 不过听其他大佬们说, 有ksh就不需要pdksh了~ Device checks for ASM的完整报错如下(可以忽略):
点击ignore all, 进行下一步, 弹窗点击yes~:
开始执行安装:
注意: Linux7 安装 Oracle 11GR2 版本, 执行 root.sh 时存在 BUG:
需要在执行 root.sh 之前安装补丁 18370031 来修复(注意: 两个节点都需要安装补丁 18370031!):
##上传补丁包
p18370031_112040_Linux-x86-64.zip
##解压补丁包
cd /soft
unzip -q p18370031_112040_Linux-x86-64.zip
##授权补丁包
chown -R grid:oinstall /soft/18370031
##开始安装补丁, 两个节点都需要执行
su - grid
opatch napply -oh $ORACLE_HOME -local /soft/18370031 -silent
执行 root 脚本: (rac1&rac2)
打好补丁后, 开始执行 root.sh 脚本: (rac1&rac2)
##root用户下执行
/u01/app/oraInventory/orainstRoot.sh
/u01/app/11.2.0/grid/root.sh
节点一:
节点二:
两节点执行完毕后, 点击OK:
由于我们没有配置 DNS 解析, 因此下方的错误忽略即可:
至此, Grid集群软件安装成功!
安装GI PSU !(需要先替换grid和oracle软件的OPatch包为最新版本, 否则无法成功安装补丁!)
更新grid Opatch(rac1&rac2)
##上传补丁
p6880880_112000_Linux-x86-64.zip
##更新OPatch补丁
mkdir /Patch
chown -R grid:oinstall /Patch/
su - grid
opatch version
unzip -q -o /Patch/p6880880_112000_Linux-x86-64.zip -d $ORACLE_HOME
opatch version
以 Grid PSU 补丁 35685688 为例, 使用root用户执行补丁安装命令: (rac1&rac2)**
####上传补丁
p35685688_112040_Linux-x86-64.zip
## 更新grid PSU
cd /Patch
unzip -q p35685688_112040_Linux-x86-64.zip
##这里注意一下, 要给补丁目录赋权, 否则无法安装补丁, 这里为了方便, 给/Patch赋权
chown -R grid:oinstall /Patch/
/u01/app/11.2.0/grid/OPatch/opatch auto /Patch/35685688 -oh /u01/app/11.2.0/grid/
opatch lspatches
三、创建 ASM 数据盘 DATA
这里创建的 DATA 磁盘组主要用于存放数据文件、日志文件等数据库文件!
这里我们可以使用静默创建或者图形化方式创建:
静默创建
asmca -silent -sysAsmPassword oracle -asmsnmpPassword oracle -oui_internal -configureASM -diskString '/dev/asm*' -diskGroupName DATA -diskList /dev/asm_data_1,/dev/asm_data_2,/dev/asm_data_3 -redundancy NORMAL -au_size 1
图形化创建
asmca
点击 create 创建 DATA:
点击 OK 创建 DATA:
这里弹窗打不开, 实际上已经创建好了.
建议重启两台主机, 检查重启后Grid集群是否正常运行!
四、安装Oracle软件
使用oracle用户开始安装:
##应用环境变量
source ~/.bash_profile
##进入安装目录
cd /soft/database
##执行安装程序开始安装, 加上jar包防止弹窗不显示问题
./runInstaller -jreLoc /etc/alternatives/jre_1.8.0
不配置 Oracle 邮件发送:
跳过软件更新:
选择仅安装 oracle 软件:
配置 oracle 用户互信,输入密码, 点击 setup 开始, 成功之后点击 Test .:
选择语言:
选择企业版安装:
检查用户组, 默认即可:
安装前预检查:
全部忽略(scan检查的详细内容如下):
开始安装 Oracle 软件:
报错解决:
注意: Linux7 安装 Oracle 11GR2 版本, oracle 软件安装过程中报错: ins_emagent.mk, 需要修改文件 /sysman/lib/ins_emagent.mk 来修复!
rac1执行以下命令, 然后点击继续: (rac1)
su - oracle
sed -i 's/^\(\s*\$(MK_EMAGENT_NMECTL)\)\s*$/\1 -lnnz11/g' "$ORACLE_HOME/sysman/lib/ins_emagent.mk"
执行 root.sh 脚本: (rac1&rac2)
点击下一步, 安装成功:
至此, Oracle 软件已成功安装.
安装DB PSU !(需要先替换grid和oracle软件的OPatch包为最新版本, 否则无法成功安装补丁!)
更新db Opatch(rac1&rac2)
##上传补丁
p6880880_112000_Linux-x86-64.zip
##更新OPatch补丁
chown -R oracle:oinstall /Patch/
su - oracle
opatch version
unzip -q -o /Patch/p6880880_112000_Linux-x86-64.zip -d $ORACLE_HOME
opatch version
####上传补丁
p35685688_112040_Linux-x86-64.zip
## 更新db PSU
cd /Patch
unzip -q p35685688_112040_Linux-x86-64.zip
##这里注意一下, 要给补丁目录赋权, 否则无法安装补丁, 这里为了方便, 给/Patch赋权
chown -R oracle:oinstall /Patch/
/u01/app/oracle/product/11.2.0/db/OPatch/opatch auto /Patch/35685688 -oh /u01/app/oracle/product/11.2.0/db
opatch lspatches
五、创建数据库实例
在确保 grid 和 oracle 软件和补丁都已安装成功后, 即可开始创建数据库实例!
dbca
选择rac模式:
选择创建数据库:
选择自定义模板(Custom Database 选项, 可以自定义安装组件):
填写数据库实例 ID:
关闭 EM, 保留自动化系统 JOB:
填写 SYS 密码, 需要记住:
选择存放数据的 ASM 盘: DATA
不开启闪回区, 建库后可随时开启:
选择自定义组件, 默认即可!
配置初始化参数(注意: 如果使用自动管理内存, 建议使用 70%~90% 的物理内存, 建议 /etc/shm 和物理内存一样大!):
block 默认 8192(即数据文件默认最大 32G), 进程数增加到 1500:
选择数据库字符集, 默认字符集为 AL32UTF8, 国家字符集为 AL16UTF16, 需根据业务实际情况进行修改:
开始建库:
数据库创建成功:
至此, 数据库实例创建完成!
六、数据库优化配置(rac1)
开启数据库归档模式
Oracle 开启归档模式
##关闭数据库实例
srvctl stop database -d lzh
##开启单个节点到mount模式
srvctl start instance -d lzh -i lzh1 -o mount
##开启归档
sqlplus / as sysdba
alter database archivelog;
##设置归档路径
ALTER SYSTEM SET LOG_ARCHIVE_DEST_1='LOCATION=+DATA';
##重启数据库实例
srvctl stop instance -d lzh -i lzh1
srvctl start database -d lzh
##检查归档
archive log list
配置定期删除归档计划任务
Oracle RMAN删除归档日志脚本
##进入oracle用户
su - oracle
##写入脚本
{
echo '#!/bin/bash'
echo 'source ~/.bash_profile'
echo 'deltime=`date +"20%y%m%d%H%M%S"`'
echo "rman target / nocatalog msglog /home/oracle/scripts/del_arch_\${deltime}.log<<EOF"
echo 'crosscheck archivelog all;'
echo "delete noprompt archivelog until time 'sysdate-7';"
echo "delete noprompt force archivelog until time 'SYSDATE-10';"
echo 'EOF'
} >>/home/oracle/scripts/del_arch.sh
##写入计划任务
crontab -e
12 00 * * * /home/oracle/scripts/del_arch.sh
##手动执行测试
/home/oracle/scripts/del_arch.sh
3、设置密码永不过期
sqlplus / as sysdba
ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
Oracle 11GR2 版本需要手动设置密码永不过期, 12CR2 版本之后已经默认设置为永不过期了!