ORACLE 12.2 + ASM 安裝

ORACLE 12C ADG 之010-整體規劃

  1. 所需软件介绍
序号 类型 内容
1 数据库 linuxx64_12201_database.zip
2 集群软件 linuxx64_12201_grid_home.zip
3 操作系统 CentOS-7-x86_64-Minimal-1708.iso
4 虚拟机软件 VMware® Workstation 12 Pro 12.5.9 build-7535481
5 工具 Xmanager Enterprise 5
6 工具 rlwrap-0.42 (用于记录sqlplus、rman等命令的历史记录)
  1. IP地址规划
主机名 IP接口名稱 地址类型 IP 地址 注册位置
xag08 xag08 DB 192.168.40.108 /etc/hosts
  1. 操作系统本地磁盘分区规划
序号 分区名称 大小 用途说明
1 /boot 200MB 引导分区
2 /tmp 3G 临时空间
3 /home 1G 所有用户的home目录
4 swap 8G 交换分区(物理內存小於8G則 *2 反之 同物理內存
5 / 28G 根分区 oracle和grid的安装目录
6 +DATA 10G DATA(ASM)
7 +FRA 12G FRA(ASM)
  1. 修改網卡配置文件
/etc/sysconfig/network-scripts
[root@xag08 network-scripts]# cat ifcfg-ens33 
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="dhcp"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
NAME="ens33"
UUID="9bec102d-7f9c-4dad-b58d-e118e9b5a24b"
DEVICE="ens33"
ONBOOT="yes"
BOOTPROTO="static"
IPADDR="192.168.40.108"
GATEWAY="192.168.40.2"
NETMASK="255.255.255.0"
DNS1="8.8.8.8"
[root@xag08 network-scripts]# service network restart
  1. 安裝基本工具
[root@xag08 /]# yum -y install nano vim wget curl net-tools lsof  zip unzip

#安裝rlwrap
[root@xag08 src]# pwd
/usr/local/src
[root@xag08 src]# yum -y install perl autoconf

[root@xag08 src]# wget ftp://ftp.pbone.net/mirror/ftp5.gwdg.de/pub/opensuse/repositories/home:/Ledest:/misc/CentOS_7/x86_64/rlwrap-0.42-1.1.x86_64.rpm

[root@xag08 src]# rpm -ivh rlwrap-0.42-1.1.x86_64.rpm
  1. 修改主機名
[root@xag08 src]# hostname
xag08

[root@xag08 src]# cat /etc/hostname
xag08

[root@xag08 src]# cat /etc/sysconfig/network
# Created by anaconda
NETWORKING=yes
NOZEROCONF=yes
HOSTNAME=xag08

[root@xag08 src]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.40.108        xag08
  1. 修改防火墙
#安装centos7选择基本安装,配置完网络后首先要先关闭firewall:停止firewall
[root@XAG08 /]# systemctl stop firewalld.service

#禁止firewall开机启动
[root@XAG08 /]# systemctl disable firewalld.service

#安装iptables防火墙yum方式安装iptables
[root@XAG02 /]# yum install iptables-services

#编辑防火墙配置文件
[root@elk-node2 ~]#vim /etc/sysconfig/iptables

#添加下面三句话到默认的22端口这条规则的下面
[root@XAG02 /]#
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 1521 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 1525 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 1158 -j ACCEPT
-A INPUT -m state --state NEW -m udp -p udp --dport 161 -j ACCEPT
#最后重启防火墙使配置生效
[root@XAG02 /]# systemctl restart iptables.service

#查看防火墙状态
[root@XAG02 /]# systemctl status iptables.service

#设置防火墙开机启动
[root@XAG02 /]# systemctl enable iptables.service

8.关闭SELINUX 编辑selinux的配置文件

[root@XAG08 /]# vim /etc/selinux/config
#注释掉下面两行
#SELINUX=enforcing
#SELINUXTYPE=targeted
#增加一行
SELINUX=disabled

#重启系统
[root@XAG08 /]# reboot

9.安装系统需要的rpm包

[root@XAG08 /]#
yum install gcc gcc-c++ binutils compat-libcap1 compat-libstdc++-33 glibc glibc-devel ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel libxcb libX11 libXau libXi libXtst make net-tools nfs-utils smartmontools sysstat xterm unixODBC unixODBC-devel libXp e2fsprogs e2fsprogs-libs elfutils-libelf-devel libXrender -y

  1. 创建用户和组(这个包括数据库的用户和组)
groupadd -g 54321 oinstall
groupadd -g 54322 dba
groupadd -g 54323 oper
groupadd -g 54326 asmadmin
groupadd -g 54327 asmdba
groupadd -g 54328 asmoper
useradd -u 54331 -g oinstall -G dba,oper,asmadmin,asmdba,asmoper oracle
useradd -u 54332 -g oinstall -G dba,oper,asmadmin,asmdba,asmoper grid

#为oracle和grid用户设密码:
passwd oracle
passwd grid
#设置密码永不过期
chage -M -1 oracle
chage -M -1 grid
chage -l oracle
chage -l grid
#检查
id grid
id oracle
  1. 修改系统对用户使用资源的限制
[root@xag08 ~]# cat /etc/security/limits.conf 
####oracle
oracle           soft    nofile          1024
oracle           hard    nofile          65536
oracle           soft    nproc           2047
oracle           hard    nproc           16384
oracle           soft    stack           10240 
oracle           hard    stack           20480
oracle           soft    memlock         3145728
oracle           hard    memlock         3145728
#####grid
grid           soft    nofile          1024
grid           hard    nofile          65536
grid           soft    nproc           2047
grid           hard    nproc           16384
grid           soft    stack           10240 
grid           hard    stack           20480
  1. 修改系统的参数
[root@xag08 ~]# getconf PAGE_SIZE
4096
[root@xag08 ~]# grep MemTotal /proc/meminfo
MemTotal:        7994076 kB

shmall  = 7994076 * 1024 /4096 =1998519
shmmax  =  7994076 * 1024 *0.9 =7367340440

[root@xag08 ~]# cat /etc/sysctl.conf
fs.file-max = 6815744
kernel.sem = 250 32000 100 128
kernel.shmmni = 4096
kernel.shmall = 1998519
kernel.shmmax = 7367340440
kernel.panic_on_oops = 1
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
net.ipv4.conf.all.rp_filter = 2
net.ipv4.conf.default.rp_filter = 2
fs.aio-max-nr = 1048576
net.ipv4.ip_local_port_range = 9000 65500

[root@xag08 ~]# sysctl -p
  1. /etc/pam.d/login
[root@xag08 ~]# vim /etc/pam.d/login
#add
session    required     pam_limits.so
  1. 修改ulimit
[root@xag08 ~]# vim /etc/profile
#添加oracle 用户 limit:
if [ $USER = "oracle" ] || [ $USER = "grid" ]; then
if [ $SHELL = "/bin/ksh" ]; then 
ulimit -p 16384 
ulimit -n 65536a 
else 
ulimit -u 16384 -n 65536 
fi 
fi

[root@xag08 ~]# source /etc/profile
  1. 检查并卸载OpenJDK & 安裝JDK 1.8
[root@xag08 ~]# java -version
-bash: java: command not found
[root@xag08 ~]#  rpm -qa | grep java
#存在则卸载,命令: rpm -e --nodeps 包名

#安装jdk
[root@xag08 ~]# mkdir /u01/java -p
[root@xag08 ~]# cd /u01/java/
[root@xag08 java]# ls
jdk1.8.0_181  jdk-8u181-linux-x64.tar.gz
[root@xag08 java]# tar -zxvf jdk-8u181-linux-x64.tar.gz
#设置环境变量
[root@xag08  java]# vim /etc/profile

在profile中添加如下内容:
#set java environment
JAVA_HOME=/u01/java/jdk1.8.0_181
JRE_HOME=/u01/java/jdk1.8.0_181/jre
CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export JAVA_HOME JRE_HOME CLASS_PATH PATH

#让修改生效:
[root@xag08 java]# source /etc/profile
#输入java -version查看一下jdk版本信息:
[root@xag08 java]# java -version
java version "1.8.0_181"
Java(TM) SE Runtime Environment (build 1.8.0_181-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.181-b13, mixed mode)
  1. 创建安装目录
mkdir -p /u01/setup
mkdir -p /u01/app/oracle
mkdir -p /u01/app/grid
mkdir -p /u01/app/12.2.0/grid
mkdir -p /u01/app/oracle/product/12.2.0/db_1
mkdir -p /u01/app/oraInventory

chown -R grid:oinstall /u01/app/grid
chown -R grid:oinstall /u01/app/12.2.0
chown -R oracle:oinstall /u01/app/oracle
chown -R oracle:oinstall /u01/setup

chmod -R 775 /u01
chown -R grid:oinstall /u01/app/oraInventory
chmod -R 775 /u01/app/oraInventory
  1. 配置grid和oracle用户的环境变量文件
[root@XAG01 java]# su - oracle

[oracle@XAG01 ~]$ vim .bash_profile 
[oracle@XAG01 ~]$ cat .bash_profile 
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
    . ~/.bashrc
fi
# User specific environment and startup programs

PATH=$PATH:$HOME/.local/bin:$HOME/bin
export PATH

umask 022
export DISPLAY=10.0.0.85:0.0
export ORACLE_SID=MYDB
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/12.2.0/db_1
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export NLS_DATE_FORMAT="YYYY-MM-DD HH24:MI:SS"
export TMP=/tmp
export TMPDIR=$TMP
export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$PATH
 
export EDITOR=vi
export TNS_ADMIN=$ORACLE_HOME/network/admin
export ORACLE_PATH=.:$ORACLE_BASE/dba_scripts/sql:$ORACLE_HOME/rdbms/admin
export SQLPATH=$ORACLE_HOME/sqlplus/admin
export JAVA_HOME=/u01/java/jdk1.8.0_181

#export NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16GBK" --AL32UTF8 SELECT userenv('LANGUAGE') db_NLS_LANG FROM DUAL;

#export NLS_LANG="american_america.UTF8"
export NLS_LANG=American_America.AL32UTF8
alias sqlplus='rlwrap sqlplus'
alias rman='rlwrap rman'
alias asmcmd='rlwrap asmcmd'

[grid@XAG01 ~]$ cat .bash_profile
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
    . ~/.bashrc
fi
# User specific environment and startup programs

PATH=$PATH:$HOME/.local/bin:$HOME/bin
export PATH

umask 022
export DISPLAY=10.0.0.85:0.0
export ORACLE_SID=+ASM
export ORACLE_BASE=/u01/app/grid
export ORACLE_HOME=/u01/app/12.2.0/grid
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
export NLS_DATE_FORMAT="YYYY-MM-DD HH24:MI:SS"
export PATH=$ORACLE_HOME/bin:$PATH
alias sqlplus='rlwrap sqlplus'
alias asmcmd='rlwrap asmcmd'
  1. 解壓&安裝cvuqdisk
[grid@xag08 ~]$ cd $ORACLE_HOME
[grid@xag08 grid]$ pwd
/u01/app/12.2.0/grid
[grid@xag08 grid]$ ls
linuxx64_12201_grid_home.zip

[grid@xag08 grid]$ unzip linuxx64_12201_grid_home.zip
[grid@xag08 grid]$ rm linuxx64_12201_grid_home.zip

[grid@xag08 grid]$ su - root

[root@xag08 ~]# cd /u01/app/12.2.0/grid/cv/rpm
[root@xag08 rpm]# ls
cvuqdisk-1.0.10-1.rpm
[root@xag08 rpm]# export CVUQDISK_GRP=asmadmin
[root@xag08 rpm]# rpm -ivh cvuqdisk-1.0.10-1.rpm
  1. 分區
[root@xag08 ~]# fdisk -l | grep  "Disk /dev/sd"
Disk /dev/sda: 42.9 GB, 42949672960 bytes, 83886080 sectors
Disk /dev/sdb: 10.7 GB, 10737418240 bytes, 20971520 sectors
Disk /dev/sdc: 12.9 GB, 12884901888 bytes, 25165824 sectors

[root@xag08 ~]# fdisk /dev/sdb
Welcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Device does not contain a recognized partition table
Building a new DOS disklabel with disk identifier 0x2b7188e8.

Command (m for help): m  
Command action
   a   toggle a bootable flag
   b   edit bsd disklabel
   c   toggle the dos compatibility flag
   d   delete a partition
   g   create a new empty GPT partition table
   G   create an IRIX (SGI) partition table
   l   list known partition types
   m   print this menu
   n   add a new partition
   o   create a new empty DOS partition table
   p   print the partition table
   q   quit without saving changes
   s   create a new empty Sun disklabel
   t   change a partition's system id
   u   change display/entry units
   v   verify the partition table
   w   write table to disk and exit
   x   extra functionality (experts only)

Command (m for help): n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): 
Using default response p
Partition number (1-4, default 1): 
First sector (2048-20971519, default 2048): 
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-20971519, default 20971519): 
Using default value 20971519
Partition 1 of type Linux and of size 10 GiB is set

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.


[root@xag08 ~]# fdisk /dev/sdc
  1. 生成udev的rule文件
[root@xag08 src]# cat genasmdisk.sh
#!/bin/bash
cat /dev/null > /etc/udev/rules.d/99-oracle-asmdevices.rules
for i in b c;
do
echo "KERNEL==\"sd*\", SUBSYSTEM==\"block\", PROGRAM==\"/usr/lib/udev/scsi_id -g -u -d /dev/\$name\", RESULT==\"`/usr/lib/udev/scsi_id -g -u -d /dev/sd${i}`\", SYMLINK+=\"asm-disk$i\", OWNER=\"grid\", GROUP=\"asmadmin\", MODE=\"0660\""  >> /etc/udev/rules.d/99-oracle-asmdevices.rules
done

[root@xag08 src]# chmod +x genasmdisk.sh 
[root@xag08 src]# ./genasmdisk.sh

[root@xag08 src]# cat /etc/udev/rules.d/99-oracle-asmdevices.rules
KERNEL=="sd*", SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id -g -u -d /dev/$name", RESULT=="36000c299dfe1150b5a9592e850a7f5c4", SYMLINK+="asm-diskb", OWNER="grid", GROUP="asmadmin", MODE="0660"
KERNEL=="sd*", SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id -g -u -d /dev/$name", RESULT=="36000c2935d0e9464576326dfe672959c", SYMLINK+="asm-diskc", OWNER="grid", GROUP="asmadmin", MODE="0660"



#测试规则
[root@xag08 src]# partprobe /dev/sdb
[root@xag08 src]# partprobe /dev/sdc

[root@xag08 src]# udevadm test /sys/block/sdb
[root@xag08 src]# udevadm test /sys/block/sdc

[root@xag08 src]# ll /dev/asm*
lrwxrwxrwx 1 root root 3 Jan 28 18:30 /dev/asm-diskb -> sdb
lrwxrwxrwx 1 root root 3 Jan 28 18:31 /dev/asm-diskc -> sdc

  1. 安裝grid
[grid@xag08 ~]$ cd $ORACLE_HOME
[grid@xag08 grid]$ ./gridSetup.sh
  1. 創建FRA分區
[grid@xag08 grid]$ asmca
  1. 安裝database軟件
[oracle@xag08 setup]$ pwd
/u01/setup

[oracle@xag08 setup]$ unzip linuxx64_12201_database.zip

[oracle@xag08 setup]$ ls
database  linuxx64_12201_database.zip

[oracle@xag08 setup]$ rm linuxx64_12201_database.zip

[oracle@xag08 database]$ ./runInstaller

#software 安装后配置监听 (Grid用户下)  --add database services 
[grid@xag08 ~]$ netmgr  

[oracle@xag08 database]$ dbca

[oracle@xag08 admin]$ srvctl status asm
ASM is running on xag08
[oracle@xag08 admin]$ 
[oracle@xag08 admin]$ srvctl status database -db MYDB
Database is running.

附加說明

虚拟机的vmx文件里面加入disk.EnableUUID ="TRUE"
如果再进行任何虚拟机的设置,比如添加磁盘,修改网卡类型或者其它的操作,
disk.EnableUUID参数又会重置为FALSE,所以每次进行虚拟机设置以后,都需要手工再次修改该参数。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容