暂无图片
暂无图片
3
暂无图片
暂无图片
暂无图片

Linux6+Oracle11g+ASM 单实例安装文档

原创 maoxiang123 2021-04-07
768

环境

Oracle Linux 6.9+Oracle11.2.0.4+ASM
操作系统下载地址:
http://mirror.aarnet.edu.au/pub/oraclelinux/
IP:192.168.0.1
操作系统:Oracle Linux 6.9
内存:16G
硬盘1:80G boot、swap、根目录
硬盘2:100G Oracle数据库软件安装目录
主机名:his
数据库名:hrdb
实例名:hrdb

根分区70G,标准分区
boot分区1G,标准分区
swap分区8G,标准分区
/u01 40G 数据库软件安装分区,标准分区

ASM磁盘组:
grid:1G * 3
system:200G * 2
data:200G * 10

注意事项

虚拟机环境需要编辑vmx文件,添加disk.EnableUUID=“TRUE”
使用oracle用户上传数据库安装包并解压
使用grid用户上传grid安装包并解压
先安装grid,再安装数据库软件,最后创建数据库。创建数据库时选择asm路径

系统参数设置

#hosts文件配置
echo "192.168.0.1 his" >> /etc/hosts    

#格式化分区
mkfs.ext4 /dev/sdb 

#创建用户和组
groupadd -g 1001 oinstall
groupadd -g 1002 dba
groupadd -g 1003 oper
groupadd -g 1004 asmadmin
groupadd -g 1005 asmoper
groupadd -g 1006 asmdba
useradd -g oinstall -G dba,asmdba,oper oracle
useradd -g oinstall -G asmadmin,asmdba,asmoper,dba,oper grid

#创建目录并授权
mkdir -p /u01/app/grid
mkdir -p /u01/app/11.2.0.4/grid
chown -R grid:oinstall /u01

mkdir -p /u01/app/oraInventory
chown -R grid:oinstall /u01/app/oraInventory

mkdir -p /u01/app/oracle
chown -R oracle:oinstall /u01/app/oracle

chmod -R 775 /u01

#设置oracle、grid账户密码
passwd oracle
passwd grid

#查看用户信息
id oracle
id grid

#写入启动项配置文件
echo "/dev/sdb  /u01  ext4  defaults  0 0" >> /etc/fstab         

#设置共享内存
echo "none /dev/shm tmpfs defaults,size=12288m 0 0" >> /etc/fstab 
mount -a

#挂载光驱,删除原repo文件
mount /dev/cdrom /mnt
cd /etc/yum.repos.d
rm -rf *.repo  

#配置yum源
echo "[EL]">> /etc/yum.repos.d/oel.repo   
echo "name=Linux 6.9 DVD">> /etc/yum.repos.d/oel.repo    
echo "baseurl=file:///mnt">> /etc/yum.repos.d/oel.repo   
echo "gpgcheck=0">> /etc/yum.repos.d/oel.repo  
echo "enabled=1">> /etc/yum.repos.d/oel.repo    

#安装软件包
yum install compat-libcap1 -y
yum install compat-libstdc++-33 -y
yum install gcc -y
yum install gcc-c++ -y
yum install ksh -y
yum install libaio-devel -y
yum install unixODBC -y
yum install unixODBC-devel -y

#修改资源限制参数
echo "#ORACLE SETTING">> /etc/security/limits.conf
echo "grid soft nproc 16384">> /etc/security/limits.conf    
echo "grid hard nproc 16384">> /etc/security/limits.conf        
echo "grid soft nofile 65536">> /etc/security/limits.conf           
echo "grid hard nofile 65536">> /etc/security/limits.conf
echo "grid soft stack 32768">> /etc/security/limits.conf           
echo "grid hard stack 32768">> /etc/security/limits.conf
echo "oracle soft nproc 16384">> /etc/security/limits.conf    
echo "oracle hard nproc 16384">> /etc/security/limits.conf        
echo "oracle soft nofile 65536">> /etc/security/limits.conf           
echo "oracle hard nofile 65536">> /etc/security/limits.conf
echo "oracle soft stack 32768">> /etc/security/limits.conf           
echo "oracle hard stack 32768">> /etc/security/limits.conf
echo "oracle hard memlock 16000000">> /etc/security/limits.conf        #略低于物理内存,单位KB
echo "oracle soft memlock 16000000">> /etc/security/limits.conf        #略低于物理内存,单位KB

#配置资源限制
echo > /etc/security/limits.d/90-nproc.conf
echo "* soft nproc 16384">> /etc/security/limits.d/90-nproc.conf 

#控制用户分配资源
echo "session    required     pam_limits.so" >> /etc/pam.d/login

#修改内核参数
echo "#ORACLE SETTING" >> /etc/sysctl.conf
echo "fs.aio-max-nr = 1048576" >> /etc/sysctl.conf      
echo "fs.file-max = 6815744" >> /etc/sysctl.conf         
echo "kernel.sem = 250 32000 100 128" >> /etc/sysctl.conf   
echo "net.ipv4.ip_local_port_range = 9000 65500" >> /etc/sysctl.conf          
echo "net.core.rmem_default = 262144" >> /etc/sysctl.conf     
echo "net.core.rmem_max = 4194304" >> /etc/sysctl.conf           
echo "net.core.wmem_default = 262144" >> /etc/sysctl.conf    
echo "net.core.wmem_max = 1048586" >> /etc/sysctl.conf            
echo "kernel.panic_on_oops = 1" >> /etc/sysctl.conf       
echo "kernel.shmmax = 10995116278" >> /etc/sysctl.conf         #需要按实际情况改
echo "kernel.shmall = 2684354" >> /etc/sysctl.conf          #需要按实际情况改
echo "kernel.shmmni = 4096" >> /etc/sysctl.conf          
echo "vm.nr_hugepages = 5120" >> /etc/sysctl.conf     #需要按实际情况改

#强制生效
sysctl -p  

#关闭numa功能,在kernel行(2行)末尾增加numa=off
vi /boot/grub/grub.conf

#配置安全,修改SELINUX参数disabled
vi /etc/selinux/config

#强制生效
setenforce 0    

#关闭防火墙,开机不启动
service iptables stop      
chkconfig --level 35 iptables off

#关闭透明页面
echo "if test -f /sys/kernel/mm/transparent_hugepage/enabled; then" >> /etc/rc.d/rc.local
echo "echo never > /sys/kernel/mm/transparent_hugepage/enabled" >> /etc/rc.d/rc.local
echo "fi" >> /etc/rc.d/rc.local
echo "if test -f /sys/kernel/mm/transparent_hugepage/defrag; then" >> /etc/rc.d/rc.local
echo "echo never > /sys/kernel/mm/transparent_hugepage/defrag" >> /etc/rc.d/rc.local
echo "fi" >> /etc/rc.d/rc.local  

if test -f /sys/kernel/mm/transparent_hugepage/enabled; then
echo never > /sys/kernel/mm/transparent_hugepage/enabled
fi
if test -f /sys/kernel/mm/transparent_hugepage/defrag; then
echo never > /sys/kernel/mm/transparent_hugepage/defrag
fi

#强制生效
chmod +x /etc/rc.d/rc.local

#重启操作系统确认是否已关闭
cat /sys/kernel/mm/transparent_hugepage/defrag

#配置oracle账号环境变量
su - oracle
vi ~/.bash_profile

export LANG=en_US
#export PS1='[\[\e[36;40m\]\u@\h:\w]$ \[\e[0m\]'
export PS1="[`whoami`@`hostname`:"'$PWD]$'
export TMP=/tmp
export TMPDIR=$TMP
export ORACLE_UNQNAME=hrdb
export ORACLE_SID=hrdb
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0.4/db_home
export ORACLE_TERM=xterm
export NLS_DATE_FORMAT="yyyy-mm-dd HH24:MI:SS"
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
export PATH=.:$PATH:$HOME/.local/bin:$HOME/bin:$ORACLE_HOME/OPatch:$ORACLE_HOME/bin
export THREADS_FLAG=native
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
umask 022
if [ $USER = "oracle" ] || [ $USER = "grid" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
umask 022
fi

#配置grid账号环境变量
su - grid
vi ~/.bash_profile

export LANG=en_US
export PS1="[`whoami`@`hostname`:"'$PWD]$'
export TMP=/tmp
export TMPDIR=$TMP
export ORACLE_SID=+ASM
export ORACLE_TERM=xterm
export ORACLE_BASE=/u01/app/grid
export ORACLE_HOME=/u01/app/11.2.0.4/grid
export NLS_DATE_FORMAT="yyyy-mm-dd HH24:MI:SS"
export PATH=.:$PATH:$HOME/bin:$ORACLE_HOME/bin:$ORACLE_HOME/OPatch
export THREADS_FLAG=native
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
umask 022
if [ $USER = "oracle" ] || [ $USER = "grid" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
umask 022
fi

#配置3块1g的磁盘--grid
#显示磁盘信息
fdisk -l |grep "/dev/sd*" | grep "1073 MB"

/dev/sdc
/dev/sdd
/dev/sde

#列出磁盘UUID
for i in c d e;
do
echo "KERNEL==\"sd?\",SUBSYSTEM==\"block\",PROGRAM==\"/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/\$name\",RESULT==\"`/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/sd$i`\",SYMLINK+=\"asm-disk$i\",OWNER=\"grid\", GROUP=\"asmadmin\",MODE=\"0660\""
done

#拷贝系统输出信息
KERNEL=="sd?",SUBSYSTEM=="block",PROGRAM=="/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="36000c294d5975fe5a356ddd48bd4fd5f",SYMLINK+="asm-grid01",OWNER="grid", GROUP="asmadmin",MODE="0660"
KERNEL=="sd?",SUBSYSTEM=="block",PROGRAM=="/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="36000c299a9e8d61931fa300c7ddf038f",SYMLINK+="asm-grid02",OWNER="grid", GROUP="asmadmin",MODE="0660"
KERNEL=="sd?",SUBSYSTEM=="block",PROGRAM=="/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="36000c2993aaffaca1a201ca50ac3f031",SYMLINK+="asm-grid03",OWNER="grid", GROUP="asmadmin",MODE="0660"

#修改SYMLINK参数
#SYMLINK+="asm-diskc"  修改为 SYMLINK+="asm-grid01"
#SYMLINK+="asm-diskd"  修改为 SYMLINK+="asm-grid02"
#SYMLINK+="asm-diske"  修改为 SYMLINK+="asm-grid03"

#写入配置文件
vi /etc/udev/rules.d/99-oracle-asmdevices.rules

# 配置2块200g的磁盘--dgsystem
fdisk -l|grep "/dev/sd" |grep "214.7 GB"

/dev/sdf
/dev/sdg

#列出磁盘UUID
for i in f g;
do
echo "KERNEL==\"sd?\",SUBSYSTEM==\"block\",PROGRAM==\"/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/\$name\",RESULT==\"`/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/sd$i`\",SYMLINK+=\"asm-disk$i\",OWNER=\"grid\", GROUP=\"asmadmin\",MODE=\"0660\""
done

#拷贝系统输出信息
KERNEL=="sd?",SUBSYSTEM=="block",PROGRAM=="/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="36000c2980e76ae2644072ae9b0a49b43",SYMLINK+="asm-dgsystem01",OWNER="grid", GROUP="asmadmin",MODE="0660"
KERNEL=="sd?",SUBSYSTEM=="block",PROGRAM=="/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="36000c29542b6004035f27c007eb98137",SYMLINK+="asm-dgsystem02",OWNER="grid", GROUP="asmadmin",MODE="0660"

#修改SYMLINK参数
#SYMLINK+="asm-diskf"  修改为 SYMLINK+="asm-dgsystem01"
#SYMLINK+="asm-diskg"  修改为 SYMLINK+="asm-dgsystem02"

#写入配置文件
vi /etc/udev/rules.d/99-oracle-asmdevices.rules

# 配置10块200g的磁盘--dgdata
fdisk -l|grep "/dev/sd" |grep "214.7 GB"

/dev/sdh
/dev/sdi
/dev/sdj
/dev/sdk
/dev/sdl
/dev/sdm
/dev/sdn
/dev/sdp
/dev/sdp
/dev/sdq

#列出磁盘UUID         
for i in h i j k l m n o p q;
do
echo "KERNEL==\"sd?\",SUBSYSTEM==\"block\",PROGRAM==\"/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/\$name\",RESULT==\"`/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/sd$i`\",SYMLINK+=\"asm-disk$i\",OWNER=\"grid\", GROUP=\"asmadmin\",MODE=\"0660\""
done

#拷贝系统输出信息
KERNEL=="sd?",SUBSYSTEM=="block",PROGRAM=="/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="36000c29bc7b1a8929fa2d678a183fbbc",SYMLINK+="asm-dgdata0101",OWNER="grid", GROUP="asmadmin",MODE="0660"
KERNEL=="sd?",SUBSYSTEM=="block",PROGRAM=="/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="36000c29f62a53d5eeb508362942fa56d",SYMLINK+="asm-dgdata0102",OWNER="grid", GROUP="asmadmin",MODE="0660"
KERNEL=="sd?",SUBSYSTEM=="block",PROGRAM=="/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="36000c29cdc533c20711ddf95336a3f5a",SYMLINK+="asm-dgdata0103",OWNER="grid", GROUP="asmadmin",MODE="0660"
KERNEL=="sd?",SUBSYSTEM=="block",PROGRAM=="/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="36000c29c4f535899640f1abb328c8cca",SYMLINK+="asm-dgdata0104",OWNER="grid", GROUP="asmadmin",MODE="0660"
KERNEL=="sd?",SUBSYSTEM=="block",PROGRAM=="/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="36000c29ca2567eda74ab09b6c13f0a28",SYMLINK+="asm-dgdata0105",OWNER="grid", GROUP="asmadmin",MODE="0660"
KERNEL=="sd?",SUBSYSTEM=="block",PROGRAM=="/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="36000c299c8b2ac01e7fe995b618d5397",SYMLINK+="asm-dgdata0106",OWNER="grid", GROUP="asmadmin",MODE="0660"
KERNEL=="sd?",SUBSYSTEM=="block",PROGRAM=="/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="36000c29c094f0cd9a56ff6684e9d392f",SYMLINK+="asm-dgdata0107",OWNER="grid", GROUP="asmadmin",MODE="0660"
KERNEL=="sd?",SUBSYSTEM=="block",PROGRAM=="/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="36000c29d994706c6f8561724b612e9ac",SYMLINK+="asm-dgdata0108",OWNER="grid", GROUP="asmadmin",MODE="0660"
KERNEL=="sd?",SUBSYSTEM=="block",PROGRAM=="/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="36000c29674725c912fd7f1acbb8b8bbd",SYMLINK+="asm-dgdata0109",OWNER="grid", GROUP="asmadmin",MODE="0660"
KERNEL=="sd?",SUBSYSTEM=="block",PROGRAM=="/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="36000c298daba03683524d65e08164b85",SYMLINK+="asm-dgdata0110",OWNER="grid", GROUP="asmadmin",MODE="0660"

#修改SYMLINK参数
#SYMLINK+="asm-diskh"  修改为 SYMLINK+="asm-dgdata0101"
#SYMLINK+="asm-diski"  修改为 SYMLINK+="asm-dgdata0102"
#SYMLINK+="asm-diskj"  修改为 SYMLINK+="asm-dgdata0103"
#SYMLINK+="asm-diskk"  修改为 SYMLINK+="asm-dgdata0104"
#SYMLINK+="asm-diskl"  修改为 SYMLINK+="asm-dgdata0105"
#SYMLINK+="asm-diskm"  修改为 SYMLINK+="asm-dgdata0106"
#SYMLINK+="asm-diskn"  修改为 SYMLINK+="asm-dgdata0107"
#SYMLINK+="asm-disko"  修改为 SYMLINK+="asm-dgdata0108"
#SYMLINK+="asm-diskp"  修改为 SYMLINK+="asm-dgdata0109"
#SYMLINK+="asm-diskq"  修改为 SYMLINK+="asm-dgdata0110"

#写入配置文件
vi /etc/udev/rules.d/99-oracle-asmdevices.rules

#激活配置文件
/sbin/udevadm trigger --type=devices --action=change

#检查ASM设备列表
ls -lsa /dev/asm*

#检查磁盘列表
ls -lsa /dev/sd*
复制

GRID软件安装截图(grid用户)

image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png

检查grid软件安装情况,配置ASM磁盘组(grid用户)

[grid@his:/home/grid]$asmcmd
ASMCMD> ls
DGDATA/
DGGRID/
DGRECOVERY/
DGSYSTEM/
ASMCMD> lsdg
State    Type    Rebal  Sector  Block       AU  Total_MB  Free_MB  Req_mir_free_MB  Usable_file_MB  Offline_disks  Voting_files  Name
MOUNTED  EXTERN  N         512   4096  1048576   2048000  2047920                0         2047920              0             N  DGDATA/
MOUNTED  NORMAL  N         512   4096  8388608      3072     2696             1024             836              0             N  DGGRID/
MOUNTED  EXTERN  N         512   4096  1048576   2048000  2047925                0         2047925              0             N  DGRECOVERY/
MOUNTED  EXTERN  N         512   4096  1048576    409600   406731                0          406731              0             N  DGSYSTEM/
ASMCMD> exit

[grid@his:/home/grid]$asmca
复制

image.png

数据库软件安装截图(oracle用户)

参考单机

数据库创建截图(oracle用户)

除以下截图均可参考单机
image.png

最后修改时间:2021-04-07 17:49:39
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

文章被以下合辑收录

评论