发布时间:2025-12-09 16:12:00 浏览次数:3
1和2是数据库软件;
3是rac软件;
p18370031 这个补丁包是为了解决linux 7 与oracle 11g的一个兼容问题
packages.tar.gz是oracle所需要的依赖包;
192.168.19.77 oracle01
192.168.19.78 oracle02
192.168.19.88 oracle01-vip
192.168.19.89 oracle02-vip
192.168.60.128 oracle01-priv
192.168.60.129 oracle02-priv
192.168.19.123 cluster-scan
修改Oracle01主机名:hostname oracle01
修改Oracle02主机名:hostname oracle02
永久修改:vim /etc/hostname
在192.168.19.77主机上执行ping:
ping oracle01和ping oracle02查看是否成功,成功即说明host文件修改成功
编辑vim /etc/selinux/config
再临时关闭
关闭防火墙
# 关闭防火墙systemctl stop firewalld# 关闭开机自启动systemctl disable firewalldwq退出保存后使用命令 sysctl -p 使其生效
shmmax:单个共享内存段最大值>=SGA
oracle内存=物理内存60%=SGA(80%)+PGA(20%)
shmmax = 物理内存80.60.81024*1024=4,026,531.84
shmall = shmmax/PAGESIZE(4096,可通过getconf PAGESIZE命令获取)
shmmni=4096(共享内存段的最大数量,一般为4096)
vm.nr_hugepages 大页,系统内存(SGA/2+200 单位M)
现在将第二步中的package.tar.gz包解压并执行
cd packagessh install.sh再配置本地yum源因为有三个包不包含在内
mount /dev/sr0 /mntvim /etc/yum.repo.d/local.repo#将下面的复制进去[local]name=localbaseurl=file:///mntgpgcheck=0enabled=1# wq 保存退出#再执行这个yum makecacheyum -y install elfutils-libelf-devel libXrender-devel fontconfig-devel检验所有安装包是否安装
rpm -q bc binutils compat-libcap1 compat-libstdc++-33 gcc gcc-c++ elfutils-libelf elfutils-libelf-devel glibc glibc-devel ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel libxcb libX11 libXau libXi libXtst libXrender libXrender-devel make net-tools nfs-utils smartmontools sysstat e2fsprogs e2fsprogs-libs fontconfig-devel expect unzip openssh-clients readline | grep "未安装"如果没有过滤出来的,说明依赖安装完毕
编辑/etc/security/limits.conf
vim /etc/security/limits.conf添加如下参数
grid soft nofile 65536grid hard nofile 65536grid soft stack 32768grid hard stack 32768grid soft nproc 16384grid hard nproc 16384oracle soft nofile 16384oracle hard nofile 65536oracle soft stack 10240oracle hard stack 32768oracle soft nproc 16384oracle hard nproc 16384# 内存锁,防止内存全部使用使服务被kill,一般(物理内存的80%)6.4*1024*1024oracle hard memlock 7340032oracle soft memlock 7340032查看透明页情况,有效提升性能,改为never
cat /sys/kernel/mm/transparent_hugepage/enabled#结果为[always] madvise never设置开机自关闭,防止打开
vim /etc/rc.d/rc.local填入下面代码:
if test -f /sys/kernel/mm/transparent_hugepage/enabled;thenecho never>/sys/kernel/mm/transparent_hugepage/enabledfiif test -f /sys/kernel/mm/transparent_hugepage/defrag;thenecho never>/sys/kernel/mm/transparent_hugepage/defragfi加执行权限
chmod +x /etc/rc.d/rc.local再quiet 后 添加 numa=off
执行命令使生效
配置动态路由协议,自动生成一些ip,对集群有影响
echo "NOZEROCONF=yes" >> /etc/sysconfig/network后面加上nis
同步下时间
/usr/sbin/ntpdate -u 182.92.12.11 && /usr/sbin/hwclock -w禁用ntpd
systemctl stop ntpdsystemctl disabled ntpdnode1中 设置
ssh-keygen -t rsassh-keygen -t dsacd .ssh/cat *.pub >> authorized_keysnode2中设置
su - oraclessh-keygen -t rsassh-keygen -t dsacd .ssh/node1中设置
scp authorized_keys 192.168.19.78:/home/oracle/.ssh/node2中设置
cat *.pub >> authorized_keysscp authorized_keys 192.168.19.77:/home/oracle/.ssh/node1中 设置
ssh-keygen -t rsassh-keygen -t dsacd .ssh/cat *.pub >> authorized_keysnode2中设置
su - gridssh-keygen -t rsassh-keygen -t dsacd .ssh/node1中设置
scp authorized_keys 192.168.19.78:/home/grid/.ssh/node2中设置
cat *.pub >> authorized_keysscp authorized_keys 192.168.19.77:/home/grid/.ssh/注意需要互相验证下,每一个,做到免密登录不需要输入回车
第一台oracle用户的环境变量
su - oraclevim .bash_profile复制粘贴到最下面
PS1="[`whoami`@`hostname`:"'$PWD]$'export PS1umask 022export TMP=/tmpexport LANG=en_USexport TMPDIR=$TMPexport ORACLE_UNQNAME=racdbORACLE_BASE=/u01/app/oracle;export ORACLE_BASEORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1;export ORACLE_HOMEORACLE_SID=racdb1; export ORACLE_SIDORACLE_TERM=xterm;export ORACLE_TERMLD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib;export LD_LIBRARY_PATHCLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib;export CLASSPATHNLS_DATE_FORMAT="yyyy-mm-dd HH24:MI:SS";export NLS_DATE_FORMATNLS_LANG=AMERICAN_AMERICA.ZHS16GBK;export NLS_LANGPATH=$PATH:$HOME/.local/bin:$HOME/bin:$ORACLE_HOME/bin:$PATH;export PATHTHREADS_FLAG=native;export THREADS_FLAGif [ $USER = "oracle" ] || [ $USER = "grid" ];thenif [ $SHELL = "/bin/ksh" ];thenulimit -p 16384ulimit -n 65536elseulimit -u 16384 -n 65536fiumask 022fi第二台oracle用户的环境变量
su - oraclevim .bash_profile复制粘贴到最下面
PS1="[`whoami`@`hostname`:"'$PWD]$'export PS1umask 022export TMP=/tmpexport LANG=en_USexport TMPDIR=$TMPexport ORACLE_UNQNAME=racdbORACLE_BASE=/u01/app/oracle;export ORACLE_BASEORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1;export ORACLE_HOMEORACLE_SID=racdb2; export ORACLE_SIDORACLE_TERM=xterm;export ORACLE_TERMLD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib;export LD_LIBRARY_PATHCLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib;export CLASSPATHNLS_DATE_FORMAT="yyyy-mm-dd HH24:MI:SS";export NLS_DATE_FORMATNLS_LANG=AMERICAN_AMERICA.ZHS16GBK;export NLS_LANGPATH=$PATH:$HOME/.local/bin:$HOME/bin:$ORACLE_HOME/bin:$PATH;export PATHTHREADS_FLAG=native;export THREADS_FLAGif [ $USER = "oracle" ] || [ $USER = "grid" ];thenif [ $SHELL = "/bin/ksh" ];thenulimit -p 16384ulimit -n 65536elseulimit -u 16384 -n 65536fiumask 022fi第一台grid用户的环境变量
su - gridvim .bash_profile复制粘贴到最下面
PS1="[`whoami`@`hostname`:"'$PWD]$'export PS1umask 022export TMP=/tmpexport LANG=en_USexport TMPDIR=$TMPORACLE_BASE=/u01/app/grid;export ORACLE_BASEORACLE_HOME=/u01/app/11.2.0/grid;export ORACLE_HOMEORACLE_SID=+ASM1; export ORACLE_SIDORACLE_TERM=xterm;export ORACLE_TERMNLS_DATE_FORMAT="yyyy-mm-dd HH24:MI:SS";export NLS_DATE_FORMATPATH=$PATH:$HOME/.local/bin:$HOME/bin:$ORACLE_HOME/bin:$PATH;export PATHTHREADS_FLAG=native;export THREADS_FLAGif [ $USER = "oracle" ] || [ $USER = "grid" ];thenif [ $SHELL = "/bin/ksh" ];thenulimit -p 16384ulimit -n 65536elseulimit -u 16384 -n 65536fiumask 022fi第二台grid用户的环境变量
su - gridvim .bash_profile复制粘贴到最下面
PS1="[`whoami`@`hostname`:"'$PWD]$'export PS1umask 022export TMP=/tmpexport LANG=en_USexport TMPDIR=$TMPORACLE_BASE=/u01/app/grid;export ORACLE_BASEORACLE_HOME=/u01/app/11.2.0/grid;export ORACLE_HOMEORACLE_SID=+ASM2; export ORACLE_SIDORACLE_TERM=xterm;export ORACLE_TERMNLS_DATE_FORMAT="yyyy-mm-dd HH24:MI:SS";export NLS_DATE_FORMATPATH=$PATH:$HOME/.local/bin:$HOME/bin:$ORACLE_HOME/bin:$PATH;export PATHTHREADS_FLAG=native;export THREADS_FLAGif [ $USER = "oracle" ] || [ $USER = "grid" ];thenif [ $SHELL = "/bin/ksh" ];thenulimit -p 16384ulimit -n 65536elseulimit -u 16384 -n 65536fiumask 022fi请查看该网址:https://www.modb.pro/db/587671
备注:21.1-21.5两个节点执行
拷贝进去,这里的wwid是上面21.2获取的scsi_id,注意替换
defaults {user_friendly_names yes}blacklist { devnode "^sda"devnode "^sdb"}multipaths {multipath {wwid "2513bf6f11008132d"alias grid01}multipath {wwid "2d46d86ae6ba692b8"alias grid02}multipath {wwid "256bc5d247aa2477a"alias grid03}multipath {wwid "2bf5447713569f3e1"alias system01}multipath {wwid "20dfb9eaff54c9036"alias data01}multipath {wwid "2e2caabb88302fb4e"alias data02}multipath {wwid "282c253f96e321cdb"alias data03}multipath {wwid "235f4805ccd823628"alias arch01}multipath {wwid "2a3c096031254361a"alias arch02}multipath {wwid "2ea936ed2d5b3fbae"alias arch03}multipath {wwid "23b1ae22ff6ea482a"alias backup01}multipath {wwid "24656b3d4e27e988e"alias backup02}}执行
for i in c d e f g h i j k l m n;doecho "KERNEL==\"sd*\",ENV{DEVTYPE}==\"disk\",SUBSYSTEM==\"block\",PROGRAM==\"/usr/lib/udev/scsi_id -g -u -d \$devnode\",RESULT==\"`/usr/lib/udev/scsi_id -g -u /dev/sd$i`\", RUN+=\"/bin/sh -c 'mknod /dev/asm-disk$i b \$major \$minor; chown grid:asmadmin /dev/asm-disk$i; chmod 0660 /dev/asm-disk$i'\"" >> /etc/udev/rules.d/99-oracle-asmdevices.rulesdone查看
cat /etc/udev/rules.d/99-oracle-asmdevices.rules将这些包上传到soft
给oracle和grid用户/soft 目录权限
这个rpm包是grid包中的,所以切换回root 目录
节点1安装
节点2安装
rpm -ivh /opt/cvuqdisk-1.0.9-1.rpm
看到的 oracle01:1
用vnc客户端链接这个地址就好,打开终端
后续操作我们在vnc中执行
启动安装程序
cd /soft/grid./runInstaller -jreLoc /etc/alternatives/jre_1.8.0
下面按照步骤走
加入简体中文
这里是看我们的那个scan ip的映射,下面的步骤需要填写的和这个一样
加入节点2 的hostsname
加完后,ssh链接测试,输入grid的用户密码
出现这个说明没有问题,点击ok,下一步
看下网卡网段有没有问题,没有问题直接下一步
选择grid 最开始规划的表决磁盘,按照我们前面规划的选择,下一步
这步是正在校验环境
出现这个说明内核参数因为本机限制有点问题,下面执行脚本解决
两台机器执行这个脚本
执行完点击ok,会重新检查
剩下的忽略
在安装到76%时,会让执行两个脚本
切换回root进行执行
执行第一个脚本(两台机器均需要执行)
执行第二个脚本之前需要打一个补丁(节点1执行)
就是当时上传的p18370031_112040_Linux-x86-64.zip
进入grid用户解压p18370031_112040_Linux-x86-64.zip
补丁完成
查看下
说明两台机器补丁完成
CTRL + d退出到root用户,然后执行第二个脚本(两台机器依次执行)
时间很长,耐心等待,出现下图说明执行成功
执行完成点击ok
这里面有一个报错,直接ok就行,是dns解析问题,忽略
下一步
yes
这样grid 安装完成
点击create
出现这个就创建成功了
23.2 创建数据盘
23.3 创建归档盘
这样我们需要的盘就都加好了
asm管理界面和vnc 就可以关闭了
进来后打开终端
进入软件目录
测试互信
说明没问题,点击ok,下一步
语言这里加上简体中文
然后点击安装,到下面这步
这个需要解决
复制下这个目录/u01/app/oracle/product/11.2.0/db_1/sysman/lib/
在oracle用户中进入这个目录
搜索这个字符
在后面添加 -lnnz11 保存
然后点击retry
需要再两台机器中执行脚本(两台)
执行完成后点击ok
这样我们的数据库软件就安装完成了,点击关闭
还在vnc窗口输入命令
dbca
创建数据库步骤
多路保存redolog
键入+SYSTEM01
键入+ARCH01
点击ok,然后下一步
设置完后点击关闭
设置完成后,点击下一步
注意生产都给20G
测试给小一点
每个都调大点
注意每个都要改
每个机器都需要3个
所以需要添加两个日志文件
配置完成,点击下一步
弹出来我们设置的响应参数文档,保存下
选好路径后,点击ok
这样的话,数据库就开始安装了,这个过程比较慢,需要等待啦
到这步我们数据库就算创建完成了,点击退出,关掉vnc
集群的监听默认是安装好的
查看下监听状态
监听停止和启动
先在root用户的.bash_profile
添加:PATH=PATH:/u01/app/11.2.0/grid/bin:PATH:/u01/app/11.2.0/grid/bin:PATH:/u01/app/11.2.0/grid/bin:HOME/bin
grid集群日常管理命令
# 查看高可用状态crsctl check crs# 查看资源清单crs_stat -t# 查看资源详细情况crsctl stat res -t# 停止单台机器高可用crsctl stop crs# 启动单台机器高可用crsctl start crs# 所有资源全部停止crs_stop -all# 所有资源全部启动crs_start -all# 单个资源停止(两台机器)crs_stop ora.LISTENER.lsnr# 单个资源启动(两台机器)crs_start ora.LISTENER.lsnr# 停止数据库(两台)srvctl stop database -d racdb# 启动数据库(两台)srvctl start database -d racdb# 停止单台数据库srvctl stop database -d racdb -i oracle01(实例名)# 启动单台数据库srvctl start database -d racdb -i oracle01(实例名)查看磁盘空间
su - gridasmcmdlsdg显示如下:
1.数据库启停
登录数据库:sqlplus “/as sysdba”
停止数据库:shutdown immediate
启动数据库:startup
2.密码过期处理
查看表结构
desc dba_profiles;
查看密码期限:默认180天,生产环境需要修改
select * from dba_profiles where profile=‘DEFAULT’ and resource_name=‘PASSWORD_LIFE_TIME’;
设置密码无期限
3. 审计一般情况下,都要关闭
关闭审计:
重启生效:
shutdown immediate;startup
4. 归档开启、闪回以及他们停止是如何操作
生产库的归档是要开启的
查看归档是否开启:
查看闪回:
都是未开启
查看归档目录:
如何设置:
设置完成后,需要开启归档,前提是关闭一台数据库
第二台机器
第一台机器:
-- 也先关掉shutdown immediate;-- 进入mount状态startup mount;-- 开启归档日志alter database archivelog;-- 开启闪回alter database flashback on;-- 改完后开启集群配置alter system set cluster_database=true scope=spfile;-- 重启shutdown immediate;startup第二台机器启动
startup第一台机器查询闪回和归档
archive log list;select flashback_on from v$database;都已经开启
查看下第二台机器