ITPub博客

首页 > 数据库 > Oracle > Oracle11gR2 RAC primary+Single standby DG搭建及主备切换实验

Oracle11gR2 RAC primary+Single standby DG搭建及主备切换实验

原创 Oracle 作者:不一样的天空w 时间:2017-08-16 22:48:32 0 删除 编辑

一:环境:

OS:Red Hat Enterprise Linux Server release 6.7 (Santiago)

要求:RAC+ADG(RAC)

主库IP:

主机名

Public ip

Vip

Private ip

Scan ip

Dbrac1

1192.168.56.2

192.168.56.3

10.10.10.10

1192.168.56.8

Dbrac2

192.168.56.4

192.168.56.5

10.10.10.11

主库:db_name/db_unique_name:都是test;

 

备库ip:

主机名

public ip

db_name

db_unique_name

备注

Dbrac_dg

192.168.56.6

test

test_adg

只安装了软件

 

 

二:关闭防火墙和selinux:

——查看selinux状态:

 [root@dbrac1 ~]# vi /etc/selinux/config

 

# This file controls the state of SELinux on the system.

# SELINUX= can take one of these three values:

#     enforcing - SELinux security policy is enforced.

#     permissive - SELinux prints warnings instead of enforcing.

#     disabled - No SELinux policy is loaded.

SELINUX=disabled

# SELINUXTYPE= can take one of these two values:

#     targeted - Targeted processes are protected,

#     mls - Multi Level Security protection.

SELINUXTYPE=targeted

~

"/etc/selinux/config" 13L, 457C written

[root@dbrac1 ~]#

——使selinux配置修改生效;

[root@dbrac1 ~]# setenforce 0

——再次查看selinux状态:

[root@dbrac1 ~]# getenforce

Permissive

 

——查看防火墙运行窗口等级

[root@dbrac1 ~]# chkconfig --list iptables

iptables        0:off   1:off   2:on    3:on    4:on    5:on    6:off

——关闭防火墙,重启后永久性生效

[root@dbrac1 ~]# chkconfig iptables off

[root@dbrac1 ~]#

[root@dbrac1 ~]# chkconfig --list iptables

iptables        0:off   1:off   2:off   3:off   4:off   5:off   6:off

——关闭防火墙,即时生效,重启后失效:

[root@dbrac1 ~]# service iptables stop

iptables: Setting chains to policy ACCEPT: filter [  OK  ]

iptables: Flushing firewall rules: [  OK  ]

iptables: Unloading modules: [  OK  ]

[root@dbrac1 ~]#  service iptables status

iptables: Firewall is not running.

[root@dbrac1 ~]#

 

三:配置解析网络等文件

——配置/etc/hosts解析文件、主机名文件/etc/sysconfig/network,及查看网络ip文件/etc/sysconfig/network-scripts/ifconfig-eth0等等;

——主机名/IP解析文件:

[root@dbrac1 ~]# cat /etc/hosts

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4

::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

 

192.168.56.2    dbrac1

192.168.56.3    dbrac1-vip

10.10.10.10     dbrac1-priv

 

192.168.56.4    dbrac2

192.168.56.5    dbrac2-vip

10.10.10.11     dbrac2-priv

 

192.168.56.8   rac-scan

 

——主机名文件

[root@dbrac1 ~]# cat /etc/sysconfig/network

NETWORKING=yes

HOSTNAME=dbrac1

GATEWAY=192.168.56.1

[root@dbrac1 ~]#

 

——网络ip配置文件

[root@dbrac1 ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0

TYPE=Ethernet

UUID=e32ed25a-0441-45e2-a498-f5373f06fcd4

ONBOOT=yes

NM_CONTROLLED=yes

BOOTPROTO=static

IPADDR=192.168.56.2

PREFIX=24

GATEWAY=192.168.56.1

DEFROUTE=yes

IPV4_FAILURE_FATAL=yes

IPV6INIT=no

NAME="System eth0"

HWADDR=08:00:27:99:8e:8a

NETMASK=255.255.255.0

[root@dbrac1 ~]#

[root@dbrac1 ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth1

DEVICE=eth1

HWADDR=08:00:27:61:71:2F

TYPE=Ethernet

BOOTPROTO=static

IPADDR=10.10.10.10

PREFIX=24

DEFROUTE=yes

IPV4_FAILURE_FATAL=yes

IPV6INIT=no

NAME="System eth1"

UUID=b697b627-827e-4b2d-8fce-fb01941045a1

ONBOOT=yes

LAST_CONNECT=1502346978

[root@dbrac1 ~]#

——使网络IP配置生效:

[root@dbrac1 network-scripts]# service network restart

Shutting down interface eth0:  Device state: 3 (disconnected)

[  OK  ]

Shutting down interface eth1:  Device state: 3 (disconnected)

[  OK  ]

Shutting down loopback interface:  [  OK  ]

Bringing up loopback interface:  [  OK  ]

Bringing up interface eth0:  Active connection state: activated

Active connection path: /org/freedesktop/NetworkManager/ActiveConnection/4

[  OK  ]

Bringing up interface eth1:  Active connection state: activated

Active connection path: /org/freedesktop/NetworkManager/ActiveConnection/5

[  OK  ]

[root@dbrac1 network-scripts]#

 

四:克隆

——关闭节点1克隆出节点2(dbrac2),克隆时要注意选择改变MAC地址,然后注意修改/etc/hosts、/etc/sysconfig/network、/etc/sysconfig/network-scripts/ifcfg-eth0(ifcfg-eth1)

此时刚克隆完可能网卡名不一致,需要结合/etc/udev/rules.d/70-persistent-net.rules文件修改!

 

五:检查系统要求(在两节点分别执行)

A.LINUX版本

 cat /etc/redhat-release

 

B.内存(至少1G,推荐2G,RAC架构更大)

grep MemTotal /proc/meminfo

 

C.SWAP分区(GI安装,内存至少2.5G以上)

  内存在2G以下 ,SWAP分区就设置为内存的1.5倍

  内存在2G至8G之间,SWAP就设置为内存大小

  内存在8G以上,SWAP就设置为内存大小的0.75倍。

  查看SWAP分区情况:

grep SwapTotal /proc/meminfo

 

D.TMP空间

  要求至少1G

  查看TMP空间

  df -k /tmp

 

F: 检查dns是否配置

cat /etc/resolv.conf

 

六: 建立oracle、grid用户及相关目录

在两节点分别执行

---创建用户、组:

groupadd  -g 1000  oinstall

groupadd  -g 1100  asmadmin

groupadd  -g 1200  dba

groupadd  -g 1201  oper

groupadd  -g 1300  asmdba

groupadd  -g 1301  asmoper

useradd -u 1100 -g oinstall -G asmadmin,asmdba,asmoper,dba grid

useradd -u 1101 -g oinstall -G dba,oper,asmdba,asmadmin oracle

passwd oracle

passwd grid

 

---建grid用户目录及授权

mkdir -p /oracle/app/11.2.0/grid  

mkdir -p /oracle/app/grid        

chown -R grid:oinstall /oracle

 

---建oracle目录及授权

mkdir –p /oracle/app/oracle

mkdir -p /oracle/app/oracle/product/11.2.0/dbhome_1

chown -R oracle:oinstall /oracle/app/oracle

chmod -R 775 /oracle/

 

七设置相关系统参数(在两节点分别执行)

更改 vi /etc/security/limits.conf

grid soft nproc 2047

grid hard nproc 16384

grid soft nofile 1024

grid hard nofile 65536

grid soft stack  10240

grid hard stack  32768

 

oracle soft nproc 2047

oracle hard nproc 16384

oracle soft nofile 1024

oracle hard nofile 65536

oracle soft stack  10240

oracle hard stack  32768

oracle soft memlock 151072000 

oracle hard memlock 151072000

——memlock标记,用于设置每个用户允许的最大内存使用情况。这个取值可以设置为数据库服务器物理内存大小。

 

更改系统参数 vi /etc/sysctl.conf

shmall 是全部允许使用的共享内存大小,shmmax 是单个段允许使用的大小。这两个可以设置为内存的 90%。例如 16G 内存,16*1024*1024*1024*90% = 15461882265,shmall 的大小为 15461882265/4k(getconf PAGESIZE可得到) = 3774873。

vm.dirty_background_ratio = 3

vm.dirty_ratio = 20

vm.dirty_expire_centisecs = 500

vm.dirty_writeback_centisecs = 100

vm.min_free_kbytes=524288

vm.swappiness = 10

net.core.rmem_default = 4194304

net.core.rmem_max = 4194304

net.core.wmem_default = 4194304

net.core.wmem_max =4194304

fs.file-max = 6815744

fs.aio-max-nr = 4194304

kernel.sem = 20000 1280000 20000 1024

kernel.shmmax = 1932735283

kernel.shmall = 471859

kernel.shmmni = 4096

net.ipv4.ip_local_port_range = 9000 65500

 

/sbin/sysctl -p

 

 

vi /etc/pam.d/login

加入以下语句

session required /lib64/security/pam_limits.so

 

vi /etc/profile

在后面加

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

 

配置:用于监视 Linux 内核是否挂起

vi /etc/modprobe.conf

options hangcheck-timer hangcheck_tick=30 hangcheck_margin=180

 

自动加载hangcheck-timer 模块(设置hangcheck内核模块开机加载)

vi /etc/rc.local

modprobe hangcheck-timer

 

检查hangcheck-timer模块是否已经加载:

lsmod | grep hangcheck_timer

 

八: 设置NTP服务

1)在节点一配置/etc/ntp.conf(以节点1向节点2做时间同步,节点2为NTP Server

vi /etc/ntp.conf

# For more information about this file, see the man pages

# ntp.conf(5), ntp_acc(5), ntp_auth(5), ntp_clock(5), ntp_misc(5), ntp_mon(5).

server 192.168.56.4  prefer

server 192.168.56.4

driftfile /var/lib/ntp/drift/ntp.drift

 

# Permit time synchronization with our time source, but do not

# permit the source to query or modify the service on this system.

restrict default kod nomodify notrap nopeer noquery

restrict -6 default kod nomodify notrap nopeer noquery

 

# Permit all access over the loopback interface.  This could

# be tightened as well, but to do so would effect some of

# the administrative functions.

restrict 127.0.0.1

restrict -6 ::1

disable monitor

 

2)分别在2个节点设置NTP服务

vi /etc/sysconfig/ntpd

# Drop root to id 'ntp:ntp' by default.

OPTIONS="-x -u ntp:ntp -p /var/run/ntpd.pid"

 

--重启ntp

在重启前可先手动使用ntpdate 192.168.11.42 进行时间同步。

service ntpd restart

chkconfig ntpd on

[root@dbrac1 sysconfig]# service ntpd restart

Shutting down ntpd: [  OK  ]

Starting ntpd: [  OK  ]

[root@dbrac1 sysconfig]# chkconfig ntpd on

[root@dbrac1 sysconfig]#

[root@dbrac1 sysconfig]#

[root@dbrac1 sysconfig]# ntpdate 192.168.56.4

 9 Mar 22:22:21 ntpdate[28554]: the NTP socket is in use, exiting

[root@dbrac1 sysconfig]#

——查看NTP服务的运行状况

[root@dbrac1 sysconfig]# ntpq -p

remote   refid      st t when poll reach   delay   offset  jitter

===========================================

 dbrac2  .INIT.  16 u   48   64    0  0.000    0.000   0.000

 

--节点2:

[root@dbrac2 ~]# service ntpd restart

Shutting down ntpd: [  OK  ]

Starting ntpd: [  OK  ]

[root@dbrac2 ~]#

[root@dbrac2 ~]# chkconfig ntpd on

 

九:yum安装系统包(在两节点分别执行)

——挂载光盘

[root@dbrac1 ~]# df -h

Filesystem      Size  Used Avail Use% Mounted on

/dev/sda3        35G  3.0G   31G   9% /

tmpfs          1004M   76K 1004M   1% /dev/shm

/dev/sda1       477M   41M  411M   9% /boot

/dev/sr0        3.6G  3.6G     0 100% /media/RHEL-6.7 Server.x86_64

[root@dbrac1 ~]#

[root@dbrac1 ~]# mount /dev/sr0  /mnt

mount: block device /dev/sr0 is write-protected, mounting read-only

 

建立相关yum源

[root@dbrac1 ~]# cd /etc/yum.repos.d/

[root@dbrac1 yum.repos.d]# ls

redhat.repo  rhel-source.repo

[root@dbrac1 yum.repos.d]vi yum.repo

[base]

name=base

baseurl=file:///mnt/Server 

enabled=1

gpgcheck=0

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

 

[HighAvailability]

name=HighAvailability

baseurl=file:///mnt/HighAvailability

enabled=1

gpgcheck=0

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

 

[ResilientStorage]

name=ResilientStorage

baseurl=file:///mnt/ResilientStorage

enabled=1

gpgcheck=0

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

 

[LoadBalancer]

name=LoadBalancer

baseurl=file:///mnt/LoadBalancer

enabled=1

gpgcheck=0

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

 

 

——清空yum缓存

yum clean all

 

——生成列表

yum list

 

安装相关软件:

——检测redhat6.7需要的安装包是否已安装:

[root@dbrac1 Packages]# rpm -q binutils compat-libcap1 compat-libstdc++-33 gcc gcc-c++ glibc glibc-devel ksh libgcc libstdc++ libstdc++-devel libaio libaio-devel make sysstat

 

binutils-2.20.51.0.2-5.43.el6.x86_64

package compat-libcap1 is not installed

package compat-libstdc++-33 is not installed

package gcc is not installed

package gcc-c++ is not installed

glibc-2.12-1.166.el6.x86_64

glibc-devel-2.12-1.166.el6.x86_64

ksh-20120801-28.el6.x86_64

libgcc-4.4.7-16.el6.x86_64

libgcc-4.4.7-16.el6.i686

libstdc++-4.4.7-16.el6.x86_64

package libstdc++-devel is not installed

libaio-0.3.107-10.el6.x86_64

libaio-0.3.107-10.el6.i686

libaio-devel-0.3.107-10.el6.x86_64

libaio-devel-0.3.107-10.el6.i686

make-3.81-20.el6.x86_64

sysstat-9.0.4-27.el6.x86_64

[root@dbrac1 Packages]#

 

——安装未安装的包:(ksh可以不装)

yum install -y compat-libcap1*

yum install -y compat-libstdc++-33*

yum install -y gcc*

yum install -y libstdc++-devel*

yum install -y libaio-devel*

 

 

十. 设置用户的环境变量(在两节点分别执行)

#gird用户

修改 ~/.bash_profile文件

 

export ORACLE_SID=+ASM1

export ORACLE_BASE=/oracle/app/grid

export ORACLE_HOME=/oracle/app/11.2.0/grid

export PATH=$ORACLE _HOME/bin:$ ORACLE _HOME/OPatch:/sbin:/bin:/usr/sbin:/usr/bin

export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$ORACLE_HOME/lib32

export TEMP=/tmp

export TMPDIR=/tmp

export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK

export NLS_DATE_FORMAT="yyyy-mm-dd hh24:mi:ss"

umask 022 [grid@dbrac1 ~]$ source .bash_profile

 

#oracle用户

修改 ~/.bash_profile文件:

 

export ORACLE_SID=dbrac1

export ORACLE_BASE=/oracle/app/oracle

export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1

export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:/sbin:/bin:/usr/sbin:/usr/bin

export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$ORACLE_HOME/lib32

export TEMP=/tmp

export TMPDIR=/tmp

export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK

export NLS_DATE_FORMAT="yyyy-mm-dd hh24:mi:ss"

umask 022

[oracle@dbrac1 ~]$ source .bash_profile

 

十一: 配置SSH

grid用户:

在两节点分别执行:

ssh-keygen -t rsa

ssh-keygen -t dsa

 

节点1:

cat .ssh/*.pub > authorized_keys

scp authorized_keys grid@节点2:/home/grid/.ssh/keys_dbs

 

节点2:

cat .ssh/keys_dbs >> authorized_keys

scp authorized_keys grid@节点1:/home/grid/.ssh/

 

oracle用户:方法同grid一样配置

ssh-keygen -t rsa

ssh-keygen -t dsa

cd .ssh

cat *.pub > authorized_keys

 

节点1:

scp authorized_keys oracle@节点2:/home/oracle/.ssh/keys_dbs

 

节点2:

cat keys_dbs >> authorized_keys

scp authorized_keys oracle@节点1:/home/oracle/.ssh/

 

测试:(每个节点的oracle/grid用户都做)

--有时集群检查会过不了,所以需要ssh自己下

在节点1上:

ssh 节点2 public_ip date

ssh 节点2 private_ip date

ssh 节点1 public_ip date

ssh 节点1 privat_ ip date

 

在节点2上:

ssh 节点1 public_ip date

ssh 节点1 private_ip date

ssh 节点2 public_ip  date 

ssh 节点2 private_ip date

 

 

 

十二:.配置共享存储:

分配固定大小的盘共7个,分别是ocr-vote盘3个,每个2G;fra盘2个,每个5G;data盘2个,每个15G.

 

同时盘划好之后在虚拟介质管理器中将以上盘设置为共享,以共rac节点共用。

 

--查看磁盘情况

fdisk -l

 

省略.............................

 

--查看共享磁盘对应的uuid:

[root@dbrac1 ~]# scsi_id -g -u /dev/sdb

1ATA_VBOX_HARDDISK_VB403dd68a-b8a5a8be

[root@dbrac1 ~]# scsi_id -g -u /dev/sdc

1ATA_VBOX_HARDDISK_VBcb1b0d8b-1ee73ac2

[root@dbrac1 ~]# scsi_id -g -u /dev/sdd

1ATA_VBOX_HARDDISK_VB5eb6b908-65677cda

[root@dbrac1 ~]# scsi_id -g -u /dev/sde

1ATA_VBOX_HARDDISK_VBb020940b-4a482e15

[root@dbrac1 ~]# scsi_id -g -u /dev/sdf

1ATA_VBOX_HARDDISK_VBd60d065d-37d1710d

[root@dbrac1 ~]# scsi_id -g -u /dev/sdg

1ATA_VBOX_HARDDISK_VBf71eae83-8c806c3b

[root@dbrac1 ~]# scsi_id -g -u /dev/sdh

1ATA_VBOX_HARDDISK_VBd46e23c6-7ece6a6e

 

--配置规则文件

——各节点文件99-oracle-asmdevices.rules添加如下信息:

[root@dbrac1 ~]# cd /etc/udev/rules.d/

[root@dbrac1 rules.d]# vi 99-oracle-asmdevices.rules

KERNEL=="sd*", PROGRAM=="/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/$name", RESULT=="1ATA_VBOX_HARDDISK_VB403dd68a-b8a5a8be", NAME="asm_ocrvote1", OWNER="grid", GROUP="asmdba", MODE="0660"

KERNEL=="sd*", PROGRAM=="/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/$name", RESULT=="1ATA_VBOX_HARDDISK_VBcb1b0d8b-1ee73ac2", NAME="asm_ocrvote2", OWNER="grid", GROUP="asmdba", MODE="0660"

KERNEL=="sd*", PROGRAM=="/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/$name", RESULT=="1ATA_VBOX_HARDDISK_VB5eb6b908-65677cda", NAME="asm_ocrvote3", OWNER="grid", GROUP="asmdba", MODE="0660"

KERNEL=="sd*", PROGRAM=="/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/$name", RESULT=="1ATA_VBOX_HARDDISK_VBb020940b-4a482e15", NAME="asm_fra1", OWNER="grid", GROUP="asmdba", MODE="0660"

KERNEL=="sd*", PROGRAM=="/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/$name", RESULT=="1ATA_VBOX_HARDDISK_VBd60d065d-37d1710d", NAME="asm_fra2", OWNER="grid", GROUP="asmdba", MODE="0660"

KERNEL=="sd*", PROGRAM=="/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/$name", RESULT=="1ATA_VBOX_HARDDISK_VBf71eae83-8c806c3b", NAME="asm_data1", OWNER="grid", GROUP="asmdba", MODE="0660"

KERNEL=="sd*", PROGRAM=="/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/$name", RESULT=="1ATA_VBOX_HARDDISK_VBd46e23c6-7ece6a6e", NAME="asm_data2", OWNER="grid", GROUP="asmdba", MODE="0660"

~

"99-oracle-asmdevices.rules"

[New] 7L, 1473C written

[root@dbrac1 rules.d]#

 

--重启服务

[root@dbrac1 rules.d]# start_udev

Starting udev: [  OK  ]

[root@dbrac1 rules.d]#

 

--验证结果;

[root@dbrac1 rules.d]# ll /dev/asm*

brw-rw---- 1 grid asmdba 8,  96 Mar 12 03:34 /dev/asm_wang_data1

brw-rw---- 1 grid asmdba 8, 112 Mar 12 03:34 /dev/asm_wang_data2

brw-rw---- 1 grid asmdba 8,  64 Mar 12 03:34 /dev/asm_wang_fra1

brw-rw---- 1 grid asmdba 8,  80 Mar 12 03:34 /dev/asm_wang_fra2

brw-rw---- 1 grid asmdba 8,  16 Mar 12 03:34 /dev/asm_wang_ocr1

brw-rw---- 1 grid asmdba 8,  32 Mar 12 03:34 /dev/asm_wang_ocr2

brw-rw---- 1 grid asmdba 8,  48 Mar 12 03:34 /dev/asm_wang_ocr3

[root@dbrac1 rules.d]#

 

 

十三:在节点一创建介质上传目录:

上传的是11.2.0.4的grid、oracle包及psu包、opatch包

mkdir /soft

chown -R oracle:oinstall /soft

chmod -R 775 /soft

解压省略……………..

 

 

十四:在安装节点执行安装GI前的检测

用grid用户进行检测:

[grid@dbrac1 ~]$ cd /soft

[grid@dbrac1 soft]$ ll

total 4514096

drwxr-xr-x 7 oracle oinstall       4096 Aug 27  2013 database

drwxr-xr-x 7 grid   oinstall       4096 Aug 27  2013 grid

-rw-r--r-- 1 oracle oinstall 1395582860 Feb 19  2016 p13390677_112040_Linux_x86_64_1of7.zip

-rw-r--r-- 1 oracle oinstall 1151304589 Feb 19  2016 p13390677_112040_Linux_x86_64_2of7.zip

-rw-r--r-- 1 oracle oinstall 1205251894 Mar 14  2016 p13390677_112040_Linux-x86-64_3of7.zip

-rw-r--r-- 1 oracle oinstall  105489166 Nov  2 15:59 p24006111_112040_Linux-x86-64.zip

-rw-r--r-- 1 oracle oinstall  712035213 Jan 19 16:59 p24436338_112040_Linux-x86-64.zip

-rw-r--r-- 1 oracle oinstall   52733900 Mar 14  2016 p6880880_112000_Linux-x86-64.zip

[grid@dbrac1 soft]$

[grid@dbrac1 soft]$ cd grid/

[grid@dbrac1 grid]$

[grid@dbrac1 grid]$ ls

install  readme.html  response  rpm  runcluvfy.sh  runInstaller  sshsetup  stage  welcome.html

[grid@dbrac1 grid]$

[grid@dbrac1 grid]$ ./runcluvfy.sh stage -pre crsinst -n dbrac1,dbrac2 -fixup -verbose

省略…………………………..

 

---检测发现pdksh  elfutils-libelf-devel这两个包未安装,且pdksh包光盘内没有,需下载或者忽略;

 

Check: Kernel parameter for "shmall"    ---后续根据安装界面也可调整

 

Check: Package existence for "elfutils-libelf-devel" –---安装

 

Check: Package existence for "pdksh"  ---可下载,或不安装都可

 

yum install -y elfutils-libelf-devel*

yum install -y pdksh*

 

注意:本次下载pdksh-5.2.14-1.i386.rpm,pdksh与ksh冲突:

[root@dbrac1 soft]#  rpm -q ksh

ksh-20120801-28.el6.x86_64

[root@dbrac1 soft]#

[root@dbrac1 soft]#  rpm -e ksh

[root@dbrac1 soft]#

[root@dbrac1 soft]#  rpm -q ksh

package ksh is not installed

 

[root@dbrac1 soft]# yum install -y pdksh-5.2.14-1.i386.rpm

………………………………………

Installed:

  pdksh.i386 0:5.2.14-1                                                                                                              

 

Dependency Installed:

  glibc.i686 0:2.12-1.166.el6                                nss-softokn-freebl.i686 0:3.14.3-22.el6_6                              

 

Complete!

[root@dbrac1 soft]#

上述节点2同样安装;

                                                                             

十五:安装GRID集群软件

——以grid用户登录安装GI软件:

[grid@dbrac1 ~]$ cd /soft

[grid@dbrac1 soft]$ ls

database                                p24006111_112040_Linux-x86-64.zip

grid                                    p24436338_112040_Linux-x86-64.zip

p13390677_112040_Linux_x86_64_1of7.zip  p6880880_112000_Linux-x86-64.zip

p13390677_112040_Linux_x86_64_2of7.zip  pdksh-5.2.14-1.i386.rpm

p13390677_112040_Linux-x86-64_3of7.zip

[grid@dbrac1 soft]$ cd grid/

[grid@dbrac1 grid]$ ls

install      response  runcluvfy.sh  sshsetup  welcome.html

readme.html  rpm       runInstaller  stage

[grid@dbrac1 grid]$ ./runInstaller

选择第一项:安装GI

选择高级安装

 

加入汉语简体:

参照/etc/hosts配置,输入集群名字、scan主机名、scan端口

添加集群节点信息

添加集群节点, 直接在此选择【setup】,输入grid用户的密码

 

 

配置和检测public、private网卡

选择voting磁盘3块,Normal类型,配置磁盘组OCRDG

  输入asm管理员的密码







       

执行安装前的检查, 确认安装前的检查结果,如果是内核参数设置问题,可通过fix自动调整,如果缺少rpm补丁包,需要对应的安装rpm补丁包。其中一些检查操作,可以选择ignore all进行忽略:

 

[root@dbrac1 soft]# /tmp/CVU_11.2.0.4.0_grid/runfixup.sh

Response file being used is :/tmp/CVU_11.2.0.4.0_grid/fixup.response

Enable file being used is :/tmp/CVU_11.2.0.4.0_grid/fixup.enable

Log file location: /tmp/CVU_11.2.0.4.0_grid/orarun.log

Installing Package /tmp/CVU_11.2.0.4.0_grid//cvuqdisk-1.0.9-1.rpm

Preparing...                ########################################### [100%]

   1:cvuqdisk               ########################################### [100%]

[root@dbrac1 soft]#




 

——节点一:

[root@dbrac1 ~]# /oracle/app/oraInventory/orainstRoot.sh

Changing permissions of /oracle/app/oraInventory.

Adding read,write permissions for group.

Removing read,write,execute permissions for world.

 

Changing groupname of /oracle/app/oraInventory to oinstall.

The execution of the script is complete.

[root@dbrac1 ~]#

[root@dbrac1 ~]# /oracle/app/11.2.0/grid/root.sh

Performing root user operation for Oracle 11g

 

The following environment variables are set as:

    ORACLE_OWNER= grid

    ORACLE_HOME=  /oracle/app/11.2.0/grid

 

Enter the full pathname of the local bin directory: [/usr/local/bin]:

   Copying dbhome to /usr/local/bin ...

   Copying oraenv to /usr/local/bin ...

   Copying coraenv to /usr/local/bin ...

 

 

Creating /etc/oratab file...

Entries will be added to the /etc/oratab file as needed by

Database Configuration Assistant when a database is created

Finished running generic part of root script.

Now product-specific root actions will be performed.

Using configuration parameter file: /oracle/app/11.2.0/grid/crs/install/crsconfig_params

Creating trace directory

User ignored Prerequisites during installation

Installing Trace File Analyzer

 OLR initialization - successful

  root wallet

  root wallet cert

  root cert export

  peer wallet

  profile reader wallet

  pa wallet

  peer wallet keys

  pa wallet keys

  peer cert request

  pa cert request

  peer cert

  pa cert

  peer root cert TP

  profile reader root cert TP

  pa root cert TP

  peer pa cert TP

  pa peer cert TP

  profile reader pa cert TP

  profile reader peer cert TP

  peer user cert

  pa user cert

 Adding Clusterware entries to upstart

       CRS-2672: Attempting to start 'ora.mdnsd' on 'dbrac1'

CRS-2676: Start of 'ora.mdnsd' on 'dbrac1' succeeded

CRS-2672: Attempting to start 'ora.gpnpd' on 'dbrac1'

CRS-2676: Start of 'ora.gpnpd' on 'dbrac1' succeeded

CRS-2672: Attempting to start 'ora.cssdmonitor' on 'dbrac1'

CRS-2672: Attempting to start 'ora.gipcd' on 'dbrac1'

CRS-2676: Start of 'ora.cssdmonitor' on 'dbrac1' succeeded

CRS-2676: Start of 'ora.gipcd' on 'dbrac1' succeeded

CRS-2672: Attempting to start 'ora.cssd' on 'dbrac1'

CRS-2672: Attempting to start 'ora.diskmon' on 'dbrac1'

CRS-2676: Start of 'ora.diskmon' on 'dbrac1' succeeded

CRS-2676: Start of 'ora.cssd' on 'dbrac1' succeeded

 

ASM created and started successfully.

 

Disk Group OCRVOTE created successfully.

 

clscfg: -install mode specified

Successfully accumulated necessary OCR keys.

Creating OCR keys for user 'root', privgrp 'root'..

Operation successful.

CRS-4256: Updating the profile

Successful addition of voting disk 75b55f8d9c4d4f56bfb3e0b44d31ae53.

Successful addition of voting disk 0422650292604f73bf0c5023a8f20298.

Successful addition of voting disk 5af0b1c940b54f23bff2ca677bcf068a.

Successfully replaced voting disk group with +OCRVOTE.

CRS-4256: Updating the profile

CRS-4266: Voting file(s) successfully replaced

##  STATE    File Universal Id                File Name Disk group

--  -----    -----------------                --------- ---------

 1. ONLINE   75b55f8d9c4d4f56bfb3e0b44d31ae53 (/dev/asm_ocrvote1) [OCRVOTE]

 2. ONLINE   0422650292604f73bf0c5023a8f20298 (/dev/asm_ocrvote2) [OCRVOTE]

 3. ONLINE   5af0b1c940b54f23bff2ca677bcf068a (/dev/asm_ocrvote3) [OCRVOTE]

Located 3 voting disk(s).

CRS-2672: Attempting to start 'ora.asm' on 'dbrac1'

CRS-2676: Start of 'ora.asm' on 'dbrac1' succeeded

CRS-2672: Attempting to start 'ora.OCRVOTE.dg' on 'dbrac1'

CRS-2676: Start of 'ora.OCRVOTE.dg' on 'dbrac1' succeeded

 Configure Oracle Grid Infrastructure for a Cluster ... succeeded

 [root@dbrac1 ~]#

——节点二:

[root@dbrac2 ~]# /oracle/app/oraInventory/orainstRoot.sh

。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

The execution of the script is complete.

[root@dbrac2 ~]# /oracle/app/11.2.0/grid/root.sh

。。。。。。。。。。。。。。。。。。。。。

CRS-4402: The CSS daemon was started in exclusive mode but found an active CSS daemon on node dbrac1, number 1, and is terminating

An active cluster was found during exclusive startup, restarting to join the cluster

Configure Oracle Grid Infrastructure for a Cluster ... succeeded

[root@dbrac2 ~]#

 


——验证:

[grid@dbrac1 ~]$ crsctl stat res -t

-----------------------------------------------------------------------

NAME           TARGET  STATE        SERVER                   STATE_DETAILS      

-----------------------------------------------------------------------

Local Resources

-----------------------------------------------------------------------ora.OCRVOTE.dg

               ONLINE  ONLINE       dbrac1                                      

               ONLINE  ONLINE       dbrac2                                       

ora.asm

               ONLINE  ONLINE       dbrac1                   Started            

               ONLINE  ONLINE       dbrac2                   Started            

ora.gsd

               OFFLINE OFFLINE      dbrac1                                       

               OFFLINE OFFLINE      dbrac2                                      

ora.net1.network

               ONLINE  ONLINE       dbrac1                                      

               ONLINE  ONLINE       dbrac2                                       

ora.ons

               ONLINE  ONLINE       dbrac1                                      

               ONLINE  ONLINE       dbrac2                                      

ora.registry.acfs

               ONLINE  ONLINE       dbrac1                                      

               ONLINE  ONLINE       dbrac2                                      

-----------------------------------------------------------------------

Cluster Resources

-----------------------------------------------------------------------

ora.LISTENER_SCAN1.lsnr

      1        ONLINE  ONLINE       dbrac1                                      

ora.cvu

      1        ONLINE  ONLINE       dbrac1                                      

ora.dbrac1.vip

      1        ONLINE  ONLINE       dbrac1                                      

ora.dbrac2.vip

      1        ONLINE  ONLINE       dbrac2                                      

ora.oc4j

      1        ONLINE  ONLINE       dbrac1                                       

ora.scan1.vip

      1        ONLINE  ONLINE       dbrac1                                      

[grid@dbrac1 ~]$  

 

十六: 安装数据库软件

——以oracle用户身份登录执行安装操作:

[oracle@dbrac1 ~]$ cd /soft

[oracle@dbrac1 soft]$ ls

database                                p24006111_112040_Linux-x86-64.zip

grid                                    p24436338_112040_Linux-x86-64.zip

p13390677_112040_Linux_x86_64_1of7.zip  p6880880_112000_Linux-x86-64.zip

p13390677_112040_Linux_x86_64_2of7.zip  pdksh-5.2.14-1.i386.rpm

p13390677_112040_Linux-x86-64_3of7.zip

[oracle@dbrac1 soft]$ cd database/

[oracle@dbrac1 database]$ ls

install  readme.html  response  rpm  runInstaller  sshsetup  stage  welcome.html

[oracle@dbrac1 database]$ ./runInstaller

只安装oracle database 软件

 

设置RAC安装项,选择所有节点进行安装,直接在此选择【setup】,输入oracle用户的密码

 




执行安装前的检查, 确认安装前的检查结果,如果是内核参数设置问题,可通过fix自动调整,如果缺少rpm补丁包,需要对应的安装rpm补丁包。一些检查操作,可以选择ignore all进行忽略

 


——节点一:

[root@dbrac1soft]# /oracle/app/oracle/product/11.2.0/dbhome_1/root.sh

Performing root user operation for Oracle 11g

 

The following environment variables are set as:

    ORACLE_OWNER= oracle

    ORACLE_HOME=  /oracle/app/oracle/product/11.2.0/dbhome_1

 

Enter the full pathname of the local bin directory: [/usr/local/bin]:

The contents of "dbhome" have not changed. No need to overwrite.

The contents of "oraenv" have not changed. No need to overwrite.

The contents of "coraenv" have not changed. No need to overwrite.

 

Entries will be added to the /etc/oratab file as needed by

Database Configuration Assistant when a database is created

Finished running generic part of root script.

Now product-specific root actions will be performed.

Finished product-specific root actions.

[root@dbrac1 soft]#

 

——节点二:

[root@dbrac2~]# /oracle/app/oracle/product/11.2.0/dbhome_1/root.sh

Performing root user operation for Oracle 11g

 

The following environment variables are set as:

    ORACLE_OWNER= oracle

    ORACLE_HOME=  /oracle/app/oracle/product/11.2.0/dbhome_1

 

Enter the full pathname of the local bin directory: [/usr/local/bin]:

The contents of "dbhome" have not changed. No need to overwrite.

The contents of "oraenv" have not changed. No need to overwrite.

The contents of "coraenv" have not changed. No need to overwrite.

 

Entries will be added to the /etc/oratab file as needed by

Database Configuration Assistant when a database is created

Finished running generic part of root script.

Now product-specific root actions will be performed.

Finished product-specific root actions.

[root@dbrac2 ~]#

                              

 

十七:ASM Diskgroup创建(asmca)

创建DATA和FRA磁盘组

——以grid用户登录,并执行asmca命令工具建立磁盘组,用xshell工具启图形

[grid@dbrac1 ~]$ asmca

 



 

十八:创建数据库(dbca建数据库)

——以oracle用户登录,用xshell工具启图形:

[oracle@dbrac1 ~]$ dbca


  选择所有节点

   

选择数据库存储磁盘

   

设置内存、字符集等

内存生产70%d的操作系统内存。

 





 


——RAC双节点数据库装好,验证:

[grid@dbrac1 ~]$ crsctl stat res -t

--------------------------------------------------------------------------------

NAME           TARGET  STATE        SERVER                   STATE_DETAILS      

--------------------------------------------------------------------------------

Local Resources

--------------------------------------------------------------------------------

ora.DATA.dg

               ONLINE  ONLINE       dbrac1                                      

               ONLINE  ONLINE       dbrac2                                      

ora.FRA.dg

               ONLINE  ONLINE       dbrac1                                      

               ONLINE  ONLINE       dbrac2                                      

ora.LISTENER.lsnr

               ONLINE  ONLINE       dbrac1                                      

               ONLINE  ONLINE       dbrac2                                      

ora.OCRVOTE.dg

               ONLINE  ONLINE       dbrac1                                       

               ONLINE  ONLINE       dbrac2                                      

ora.asm

               ONLINE  ONLINE       dbrac1                   Started            

               ONLINE  ONLINE       dbrac2                   Started             

ora.gsd

               OFFLINE OFFLINE      dbrac1                                      

               OFFLINE OFFLINE      dbrac2                                      

ora.net1.network

               ONLINE  ONLINE       dbrac1                                       

               ONLINE  ONLINE       dbrac2                                      

ora.ons

               ONLINE  ONLINE       dbrac1                                      

               ONLINE  ONLINE       dbrac2                                       

ora.registry.acfs

               ONLINE  ONLINE       dbrac1                                      

               ONLINE  ONLINE       dbrac2                                      

--------------------------------------------------------------------------------

Cluster Resources

--------------------------------------------------------------------------------

ora.LISTENER_SCAN1.lsnr

      1        ONLINE  ONLINE       dbrac1                                      

ora.cvu

      1        ONLINE  ONLINE       dbrac2                                      

ora.dbrac.db

      1        ONLINE  ONLINE       dbrac1                   Open               

      2        ONLINE  ONLINE       dbrac2                   Open                

ora.dbrac1.vip

      1        ONLINE  ONLINE       dbrac1                                      

ora.dbrac2.vip

      1        ONLINE  ONLINE       dbrac2                                      

ora.oc4j

      1        ONLINE  ONLINE       dbrac2                                       

ora.scan1.vip

      1        ONLINE  ONLINE       dbrac1                                      

[grid@dbrac1 ~]$

十九:ADG安装

——单实例,并且只安装到GI,oracle软件,不安装数据库;

本实践之安装单实例。

1.    检查

[root@racdg ~]# cat /etc/hosts

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4

::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

192.168.56.6 racdg

[root@racdg ~]#

[root@racdg ~]# cat /etc/sysconfig/network

NETWORKING=yes

HOSTNAME=racdg

GATEWAY=192.168.56.1

[root@racdg ~]#

[root@racdg ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0

TYPE=Ethernet

UUID=e32ed25a-0441-45e2-a498-f5373f06fcd4

ONBOOT=yes

NM_CONTROLLED=yes

BOOTPROTO=static

IPADDR=192.168.56.6

PREFIX=24

GATEWAY=192.168.56.1

DEFROUTE=yes

IPV4_FAILURE_FATAL=yes

IPV6INIT=no

NAME="System eth0"

HWADDR=08:00:27:9c:d5:09

[root@racdg ~]#

 

---关闭防火墙、selinux

vi /etc/selinux/config

 将SELINUX=disabled设置。

 setenforce 0

 getenforce

 

 chkconfig --list iptables

 chkconfig iptables off

 chkconfig --list iptables

 service iptables stop

 service iptables status

2.建立用户、组及相关目录

groupadd dba

groupadd oinstall

useradd oracle -g oinstall -G dba              

 passwd oracle                                                                   

                                                                      

                                                                                                                                    

 mkdir –p /oracle/app/oracle                                                     

 mkdir -p /oracle/app/oracle/product/11.2.0/dbhome_1                             

 chown -R oracle:oinstall /oracle                                   

 chmod -R 775 /oracle 

3.设置用户环境变量

oracle用户:

# .bash_profile

 

# Get the aliases and functions

if [ -f ~/.bashrc ]; then

        . ~/.bashrc

fi

 

# User specific environment and startup programs

 

PATH=$PATH:$HOME/bin

 

export PATH

 

export ORACLE_SID= dbracdg  

export ORACLE_BASE=/oracle/app/oracle

export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1

export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:/sbin:/bin:/usr/sbin:/usr/bin

export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$ORACLE_HOME/lib32

export TEMP=/tmp

export TMPDIR=/tmp

export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK

export NLS_DATE_FORMAT="yyyy-mm-dd hh24:mi:ss"

umask 022

 

source .bash_profile    

    

ORACLE_SID= dbracdg,用于指定参数文件位置。  

 

4.更改系统参数

root更改 vi /etc/security/limits.conf

oracle soft nproc 2047

oracle hard nproc 16384

oracle soft nofile 1024

oracle hard nofile 65536

oracle soft stack  10240

oracle hard stack  32768

oracle soft memlock 151072000

oracle hard memlock 151072000

 

root更改系统参数

vi /etc/sysctl.conf

shmall 是全部允许使用的共享内存大小,shmmax 是单个段允许使用的大小。这两个可以设置为内存的 90%。例如 16G 内存,16*1024*1024*1024*90% = 15461882265,shmall 的大小为 15461882265/4k(getconf PAGESIZE可得到) = 3774873。

vm.dirty_background_ratio = 3

vm.dirty_ratio = 20

vm.dirty_expire_centisecs = 500

vm.dirty_writeback_centisecs = 100

vm.min_free_kbytes=524288

vm.swappiness = 10

net.core.rmem_default = 4194304

net.core.rmem_max = 4194304

net.core.wmem_default = 4194304

net.core.wmem_max =4194304

fs.file-max = 6815744

fs.aio-max-nr = 4194304

kernel.sem = 20000 1280000 20000 1024

kernel.shmmax = 1932735283

kernel.shmall = 471859

kernel.shmmni = 4096

net.ipv4.ip_local_port_range = 9000 65500

 

/sbin/sysctl -p

 

 

vi /etc/pam.d/login

加入以下语句

session required /lib64/security/pam_limits.so

 

vi /etc/profile

在后面加

   if [ $USER = "oracle" ]; then

        if [ $SHELL = "/bin/ksh" ]

        then

          ulimit -p 16384

          ulimit -n 65536

        else

          ulimit -u 16384 -n 65536

        fi

   fi   

5.配置yum,安装包

——先挂载光盘:

[root@racdg ~]# df -h

Filesystem      Size  Used Avail Use% Mounted on

/dev/sda3        35G  2.9G   31G   9% /

tmpfs          1004M  296K 1003M   1% /dev/shm

/dev/sda1       477M   41M  411M   9% /boot

/dev/sr0        3.6G  3.6G     0 100% /media/RHEL-6.7 Server.x86_64

[root@racdg ~]#

[root@racdg ~]# mount /dev/sr0 /mnt

mount: block device /dev/sr0 is write-protected, mounting read-only

[root@racdg ~]#

[root@racdg ~]# cd /etc/yum.repos.d/

[root@racdg yum.repos.d]# vi yum.repo

[base]

name=base

baseurl=file:///mnt/Server

enabled=1

gpgcheck=0

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

 

[HighAvailability]

name=HighAvailability

baseurl=file:///mnt/HighAvailability

enabled=1

gpgcheck=0

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

 

[ResilientStorage]

name=ResilientStorage

baseurl=file:///mnt/ResilientStorage

enabled=1

gpgcheck=0

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

 

[LoadBalancer]

name=LoadBalancer

baseurl=file:///mnt/LoadBalancer

enabled=1

gpgcheck=0

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

~

"yum.repo" [New] 29L, 589C written

[root@racdg yum.repos.d]#    

[root@racdg yum.repos.d]# yum clean all

Loaded plugins: product-id, refresh-packagekit, security, subscription-manager

This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.

Cleaning repos: HighAvailability LoadBalancer ResilientStorage base

Cleaning up Everything

[root@racdg yum.repos.d]#   

[root@racdg yum.repos.d]# yum list

省略……………………………………..

 

——检查哪些系统包没装:

[root@racdg yum.repos.d]#  rpm -q binutils compat-libcap1 compat-libstdc++-33 gcc gcc-c++ glibc glibc-devel pdksh libgcc libstdc++ libstdc++-devel libaio libaio-devel make sysstat

binutils-2.20.51.0.2-5.43.el6.x86_64

package compat-libcap1 is not installed

package compat-libstdc++-33 is not installed

package gcc is not installed

package gcc-c++ is not installed

glibc-2.12-1.166.el6.x86_64

glibc-devel-2.12-1.166.el6.x86_64

package pdksh is not installed

libgcc-4.4.7-16.el6.x86_64

libstdc++-4.4.7-16.el6.x86_64

package libstdc++-devel is not installed

libaio-0.3.107-10.el6.x86_64

package libaio-devel is not installed

make-3.81-20.el6.x86_64

sysstat-9.0.4-27.el6.x86_64

[root@racdg yum.repos.d]#

 

——安装未安装的包:pdksh可忽略

yum install -y compat-libcap1*

yum install -y compat-libstdc++-33*

yum install -y gcc*

yum install -y libstdc++-devel*

yum install –y libaio-devel*

 

6.安装ORACLE软件

上传安装介质

——以oracle用户身份登录安装:

[oracle@racdg ~]$ cd /soft

[oracle@racdg soft]$ ls

database  p13390677_112040_Linux_x86_64_1of7.zip  p13390677_112040_Linux-x86-64_3of7.zip

grid      p13390677_112040_Linux_x86_64_2of7.zip

[oracle@racdg soft]$ cd database/

[oracle@racdg database]$ ls

install  readme.html  response  rpm  runInstaller  sshsetup  stage  welcome.html

[oracle@racdg database]$ ./runInstaller

  









 

以上两个报,可以下载安装,也可以忽略,本次忽略!!!!!!!!!!!!

      

[root@racdg Packages]# /oracle/app/oraInventory/orainstRoot.sh

Changing permissions of /oracle/app/oraInventory.

Adding read,write permissions for group.

Removing read,write,execute permissions for world.

 

Changing groupname of /oracle/app/oraInventory to oinstall.

The execution of the script is complete.

[root@racdg Packages]#

[root@racdg Packages]# /oracle/app/oracle/product/11.2.0/dbhome_1/root.sh

Performing root user operation for Oracle 11g

 

The following environment variables are set as:

    ORACLE_OWNER= oracle

    ORACLE_HOME=  /oracle/app/oracle/product/11.2.0/dbhome_1

 

Enter the full pathname of the local bin directory: [/usr/local/bin]:

   Copying dbhome to /usr/local/bin ...

   Copying oraenv to /usr/local/bin ...

   Copying coraenv to /usr/local/bin ...

 

 

Creating /etc/oratab file...

Entries will be added to the /etc/oratab file as needed by

Database Configuration Assistant when a database is created

Finished running generic part of root script.

Now product-specific root actions will be performed.

Finished product-specific root actions.

二十:配置DG

1.    说明

1)、准备条件:(主库)

开启归档模式;

监听参数:local_listener 默认是1521

关闭闪回---->数据库的bug,备库不能开闪回

开启force_logging,强制生成日志;

如果有外部表,外部表也要删除;

主库开启force logging,增加standby logfile;

 

2)、主要修改参数文件---->增加dg属性参数

一般是在主库修改完,需要根据参数文件创建不存在的目录,验证;

再把参数文件和口令文件传输到备库,更改环境变量,再次修改备库的参数文件及根据参数文件创建不存在的目录,最后验证;

 

3)、配置监听网络:(主备库)

需要配置主库和备库的静态监听,并且能够互相访问

备库启到Nomount时,查看监听状态,会有blocked状态。

 

4)、复制主库生成备库:(主库)

11g-->rman 执行duplicate复制命令就可以完成复制主库生成备库操作

10g-->冷备恢复、rman备份集恢复

 

备库只安装Oracle软件

2.主库检查

——检查闪回、及force_logging,默认都是关闭的;

select inst_id,name,force_logging,flashback_on from gv$database;

 

  INST_ID NAME      FOR FLASHBACK_ON

---------- --------- --- ------------------

         1 DBRAC     NO  NO

         2 DBRAC     NO  NO

 

——开启force logging:

alter database force logging;

 

Database altered.

 

select inst_id,name,force_logging,flashback_on from gv$database;

 

  INST_ID NAME      FOR FLASHBACK_ON

---------- --------- --- ------------------

         1 DBRAC     YES NO

         2 DBRAC     YES NO

 

——检查参数local_listener,其值为找1521的名为LISTENER的监听,如果端口号及监听名不是LISTENER,需要修改此参数,默认值为空;

 

col value for a60

set lines 200 pages 999

select inst_id,value from gv$parameter where name like 'local%';

 

   INST_ID VALUE

---------- ------------------------------------------------------------

         1  (ADDRESS=(PROTOCOL=TCP)(HOST=192.168.56.3)(PORT=1521))

         2  (ADDRESS=(PROTOCOL=TCP)(HOST=192.168.56.5)(PORT=1521))

 

SQL> show parameter local

 

NAME                                 TYPE        VALUE

------------------------------------ ----------- ------------------------------

local_listener                       string       (ADDRESS=(PROTOCOL=TCP)(HOST=

                                                 192.168.56.3)(PORT=1521))

log_archive_local_first              boolean     TRUE

parallel_force_local                 boolean     FALSE

 

——检查是否开启归档

SQL> archive log list;

Database log mode              Archive Mode

Automatic archival             Enabled

Archive destination            USE_DB_RECOVERY_FILE_DEST

Oldest online log sequence       24

Next log sequence to archive     25

Current log sequence           25

SQL>

SQL> show parameter recover

 

NAME                                 TYPE        VALUE

------------------------------------ ----------- ------------------------------

db_recovery_file_dest                string      +FRA

db_recovery_file_dest_size           big integer 4407M

db_unrecoverable_scn_tracking        boolean     TRUE

recovery_parallelism                 integer     0

 

[grid@dbrac1 ~]$ asmcmd -p

ASMCMD [+] > ls

DATA/

FRA/

OCRVOTE/

ASMCMD [+] > cd fra

ASMCMD [+fra] > ls

DBRAC/

ASMCMD [+fra] > cd dbrac

ASMCMD [+fra/dbrac] > ls

ARCHIVELOG/

CONTROLFILE/

ONLINELOG/

ASMCMD [+fra/dbrac] > cd archivelog

ASMCMD [+fra/dbrac/archivelog] > ls

2017_08_14/

2017_08_15/

ASMCMD [+fra/dbrac/archivelog] > pwd

+fra/dbrac/archivelog

ASMCMD [+fra/dbrac/archivelog] >

 

——检查是否存在外部表;

select * from user_external_tables;

 

no rows selected

   

3.备库配置备库的静态监听

——配置静态监听:

cd $ORACLE_HOME/network/admin

vi listener.ora   ,添加如下:

 

LISTENER =

  (DESCRIPTION_LIST =

    (DESCRIPTION =

      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.56.6)(PORT = 1521))

    )

  )

 

sid_list_listener=

  (sid_list=

    (sid_desc=

      (global_dbname=dbracdg)  ---注意

      (ORACLE_HOME=/oracle/app/oracle/product/11.2.0/dbhome_1)

      (sid_name=dbracdg)       --注意

)

   )

 

——验证:

[oracle@racdg admin]$ lsnrctl start

 

LSNRCTL for Linux: Version 11.2.0.4.0 - Production on 15-AUG-2017 10:43:31

 

Copyright (c) 1991, 2013, Oracle.  All rights reserved.

 

Starting /oracle/app/oracle/product/11.2.0/dbhome_1/bin/tnslsnr: please wait...

 

TNSLSNR for Linux: Version 11.2.0.4.0 - Production

System parameter file is /oracle/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora

Log messages written to /oracle/app/oracle/diag/tnslsnr/racdg/listener/alert/log.xml

Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.56.6)(PORT=1521)))

 

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.56.6)(PORT=1521)))

STATUS of the LISTENER

------------------------

Alias                     LISTENER

Version                   TNSLSNR for Linux: Version 11.2.0.4.0 - Production

Start Date                15-AUG-2017 10:43:31

Uptime                    0 days 0 hr. 0 min. 0 sec

Trace Level               off

Security                  ON: Local OS Authentication

SNMP                      OFF

Listener Parameter File   /oracle/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora

Listener Log File         /oracle/app/oracle/diag/tnslsnr/racdg/listener/alert/log.xml

Listening Endpoints Summary...

  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.56.6)(PORT=1521)))

Services Summary...

Service "dbracdg" has 1 instance(s).

  Instance "dbracdg", status UNKNOWN, has 1 handler(s) for this service...

The command completed successfully

[oracle@racdg admin]$

4. 主库各节点配置备库的静态监听及tnsnames.ora

1)rac节点一、节点二和备库配置tns:

cd $ORACLE_HOME/network/admin

vi tnsnames.ora

添加如下:

1 =

  (DESCRIPTION =

    (ADDRESS_LIST =

      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.56.2)(PORT = 1521))

    )

    (CONNECT_DATA =

      (SERVICE_NAME = dbrac)

      (INSTANCE_NAME = dbrac1)

    )

  )

 

2 =

  (DESCRIPTION =

    (ADDRESS_LIST =

      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.56.4)(PORT = 1521))

    )

    (CONNECT_DATA =

      (SERVICE_NAME = dbrac)

      (INSTANCE_NAME = dbrac2)

    )

  )

 

dg =

  (DESCRIPTION =

    (ADDRESS_LIST =

      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.56.6)(PORT = 1521))

    )

    (CONNECT_DATA =

      (SERVICE_NAME = dbracdg)

    )

  )

[oracle@dbrac1 admin]$

——测试:

tnsping  dg

tnsping  1

tnsping  2

 

5. 在备库创建相关目录

Oracle用户

--创建数据文件目录

mkdir -p  $ORACLE_BASE/oradata/dbracdg/datafile

mkdir -p  $ORACLE_BASE/oradata/dbracdg/tempfile

 

--创建dump日志目录

mkdir -p  $ORACLE_BASE/admin/dbracdg/adump

mkdir -p  $ORACLE_BASE/admin/dbracdg/bdump

mkdir -p  $ORACLE_BASE/admin/dbracdg/cdump

mkdir -p  $ORACLE_BASE/admin/dbracdg/dpdump

mkdir -p  $ORACLE_BASE/admin/dbracdg/hdump

mkdir -p  $ORACLE_BASE/admin/dbracdg/pfile

mkdir -p  $ORACLE_BASE/admin/dbracdg/udump

 

--创建归档日志目录:

mkdir -p  /home/oracle/arch

 

注意:因为RAC主库是用ASM来存放的,所以这里设置的目录,与ASM 目录是不一致的,这种情况下,我们就需要在参数文件里用db_file_name_convert和log_file_name_convert参数来进行转换。

6. 主库密码文件和控制文件拷贝到备库

在主库上创建备库的密码文件和控制文件,并将文件传到备库的相关位置

[oracle@dbrac1 admin]$ cd $ORACLE_HOME/dbs

[oracle@dbrac1 dbs]$ orapwd file=orapwdbracdg password=oracle

[oracle@dbrac1 dbs]$ cp orapwdbracdg orapwdbrac1

[oracle@dbrac1 dbs]$ ls ora*

orapwdbrac1  orapwdbracdg

[oracle@dbrac1 dbs]$

 

传送文件到备库:

[oracle@dbrac1 dbs]$ scp orapwdbracdg 192.168.56.6:/oracle/app/oracle/product/11.2.0/dbhome_1/dbs

The authenticity of host '192.168.56.6 (192.168.56.6)' can't be established.

RSA key fingerprint is 16:8d:5a:fb:f2:58:e1:ee:4c:98:3d:76:ec:48:bb:46.

Are you sure you want to continue connecting (yes/no)? yes

Warning: Permanently added '192.168.56.6' (RSA) to the list of known hosts.

oracle@192.168.56.6's password:

orapwdbracdg                                                                                                                         100% 1536     1.5KB/s   00:00   

[oracle@dbrac1 dbs]$

 

--传送文件到节点2:

[oracle@dbrac1 dbs]$ scp orapwdbracdg 192.168.56.4:/oracle/app/oracle/product/11.2.0/dbhome_1/dbs/orapwdbrac2

orapwdbracdg                                                                                                                         100% 1536     1.5KB/s   00:00   

[oracle@dbrac1 dbs]$

 

控制文件:

[oracle@dbrac1 ~]$ sqlplus / as sysdba

 

SQL*Plus: Release 11.2.0.4.0 Production on Mon Aug 14 01:01:32 2017

 

Copyright (c) 1982, 2013, Oracle.  All rights reserved.

 

 

Connected to:

Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production

With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,

Data Mining and Real Application Testing options

 

SQL> alter database create standby controlfile as '/home/oracle/control01.ctl';

 

Database altered.

 

--判断一个数据库是Primary还是Standby,就是通过控制文件来判断的。

传送:

[oracle@dbrac1 ~]$ scp control01.ctl 192.168.56.6:$ORACLE_BASE/oradata/dbracdg/datafile

oracle@192.168.56.6's password:

control01.ctl                                                                                                                        100%   18MB  17.6MB/s   00:01   

[oracle@dbrac1 ~]$

 

在备库上将控制文件复制2份,并命名为control02.ctl, control03.ctl

[oracle@racdg datafile]$ cp control01.ctl control02.ctl

[oracle@racdg datafile]$ cp control01.ctl control03.ctl

[oracle@racdg datafile]$ ls

control01.ctl  control02.ctl  control03.ctl

[oracle@racdg datafile]$

 

7.主库修改参数增加DG相关的属性参数

这里要注意的,不要直接用create pfile from spfile来创建

 

[oracle@dbrac1 ~]$ sqlplus / as sysdba

 

SQL*Plus: Release 11.2.0.4.0 Production on Mon Mar 13 05:25:43 2017

 

Copyright (c) 1982, 2013, Oracle.  All rights reserved.

 

Connected to:

Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production

With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,

Data Mining and Real Application Testing options

 

SQL> create pfile='/home/oracle/initdbrac1.ora' from spfile;

 

File created.

 

——修改主库参数文件:

[oracle@dbrac1 ~]$ vi  initdbrac1.ora

dbrac1.__db_cache_size=348127232

dbrac2.__db_cache_size=322961408

dbrac2.__java_pool_size=4194304

dbrac1.__java_pool_size=4194304

dbrac2.__large_pool_size=8388608

dbrac1.__large_pool_size=8388608

dbrac2.__pga_aggregate_target=390070272

dbrac1.__pga_aggregate_target=390070272

dbrac2.__sga_target=583008256

dbrac1.__sga_target=583008256

dbrac2.__shared_io_pool_size=0

dbrac1.__shared_io_pool_size=0

dbrac1.__shared_pool_size=209715200

dbrac2.__shared_pool_size=234881024

dbrac2.__streams_pool_size=0

dbrac1.__streams_pool_size=0

*.audit_file_dest='/oracle/app/oracle/admin/dbrac/adump'

*.audit_trail='db'

*.cluster_database=true

*.compatible='11.2.0.4.0'

*.control_files='+DATA/dbrac/controlfile/current.260.951838029','+FRA/dbrac/controlfile/current.256.951838031'

*.db_block_size=8192

*.db_create_file_dest='+DATA'

*.db_domain=''

*.db_name='dbrac'

*.db_recovery_file_dest='+FRA'

*.db_recovery_file_dest_size=4621074432

*.diagnostic_dest='/oracle/app/oracle'

*.dispatchers='(PROTOCOL=TCP) (SERVICE=dbracXDB)'

dbrac2.instance_number=2

dbrac1.instance_number=1

*.log_archive_format='%t_%s_%r.dbf'

*.memory_target=973078528

*.nls_territory='CHINA'

*.open_cursors=300

*.processes=150

*.remote_listener='rac-scan:1521'

*.remote_login_passwordfile='exclusive'

dbrac2.thread=2

dbrac1.thread=1

dbrac2.undo_tablespace='UNDOTBS2'

dbrac1.undo_tablespace='UNDOTBS1'

 

#rac主库pfile文件加入下列参数:

*.log_archive_format=%t_%s_%r.arc

*.log_archive_config='DG_CONFIG=(dbrac,dbracdg)'

*.LOG_ARCHIVE_DEST_1='LOCATION=+FRA/DBRAC/ARCHIVELOG/ VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=dbrac'

*.LOG_ARCHIVE_DEST_2='SERVICE=dg LGWR SYNC  VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=dbracdg'

*.log_archive_dest_state_1=ENABLE

*.log_archive_dest_state_2=ENABLE

*.LOG_ARCHIVE_MAX_PROCESSES=4

## Parameters which using for switch over from Primary to Standby.

*.fal_server=dg

dbrac1.fal_client=1                                        

dbrac2.fal_client=2

*.standby_file_management=AUTO

*.db_file_name_convert='/oracle/app/oracle/oradata/dbracdg/datafile/','+DATA/dbrac/datafile/','/oracle/app/oracle/oradata/dbracdg/tempfile/','+DATA/dbrac/tempfile/'

*.log_file_name_convert='/oracle/app/oracle/oradata/dbracdg/datafile/','+DATA/dbrac/onlinelog/','/oracle/app/oracle/oradata/dbracdg/datafile/','+FRA/dbrac/onlinelog/'

 

注意:

(1)使用ASM 作存储时,datafile 和tempfile 是分别放在两个目录下的,所以在standby 上也单独创建一个tempdata 目录,并在db_file_convert 中作相应的设置。

(2)在使用ASM的RAC中,注意不要修改db_unique_name 的参数值,因为ASM 存放文件的规则,是按照+diskgroup_name/database_unique_name/file_type/tag_name.file_number.incarnation 这样一个规则存放的,但是第二项database_unique_name 并不是db_name; 如果改变了db_unique_name,则之后创建的数据文件会放到新的目录下,会导致db_file_convert的失败,这一点需要特别注意。

(3) db_file_name_convert、log_file_name_convert是做主备切换时用到,如果不做主备切换这两参数可以不配,而且其它参数可以动态修改,不用重启生效。这两参数要重启后才能生效。为了文件存储格式的,这两参数的值是成对出现的。

(4)如果RAC中使用db_create_online_dest_n 系列的参数,要相应调整standby 上的log_file_name_convert 参数。

 

8.备库修改主库传过来的参数文件

--传送并重命名:

[oracle@dbrac1 ~]$ scp initdbrac1.ora 192.168.56.6:/oracle/app/oracle/product/11.2.0/dbhome_1/dbs/initdbracdg.ora

oracle@192.168.56.6's password:

initdbrac1.ora                                                                                                                       100% 2283     2.2KB/s   00:00   

[oracle@dbrac1 ~]$

 

--修改:

*.audit_file_dest='/oracle/app/oracle/admin/dbracdg/adump'                    --修改

*.background_dump_dest='/oracle/app/oracle/admin/dbracdg/bdump'               --添加

*.core_dump_dest='/oracle/app/oracle/admin/dbracdg/cdump'                     --添加

*.user_dump_dest='/oracle/app/oracle/admin/dbracdg/udump'                     --添加

*.audit_trail='db'

#*.cluster_database=true                                                      --删除

*.compatible='11.2.0.4.0'

*.control_files='/oracle/app/oracle/oradata/dbracdg/datafile/control01.ctl','/oracle/app/oracle/oradata/dbracdg/datafile/control02.ctl','/oracle/app/oracle/oradata/dbracdg/datafile/control03.ctl'                                                  --修改

*.db_block_size=8192

#*.db_create_file_dest='+DATA'                                                --删除

*.db_domain=''

*.db_name='dbrac'                                                             --db_name,不改动

#*.db_recovery_file_dest='+FRA'                                               --删除

#*.db_recovery_file_dest_size=4621074432                                      --删除

*.diagnostic_dest='/oracle/app/oracle'

*.dispatchers='(PROTOCOL=TCP) (SERVICE=dbracXDB)'

#dbrac2.instance_number=2                                                     --删除

#dbrac1.instance_number=1                                                     --删除

*.log_archive_format='%t_%s_%r.dbf'

*.memory_target=973078528

*.nls_territory='CHINA'

*.open_cursors=300

*.processes=150

#*.remote_listener='rac-scan:1521'                                             --删除

*.remote_login_passwordfile='exclusive'

#dbrac2.thread=2                                                               --删除

#dbrac1.thread=1                                                               --删除

thread=1                                                                       --添加

#dbrac2.undo_tablespace='UNDOTBS2'                                             --删除

#dbrac1.undo_tablespace='UNDOTBS1'                                             --删除

undo_tablespace='UNDOTBS1'                                                     --添加

*.standby_archive_dest='/home/oracle/arch'                                     --添加备库归档日志目录,可以不加,因为在11g中此参数已废弃。

 

DB_UNIQUE_NAME=dbracdg               --                                         --添加,区别dg参数

 

*.log_archive_format=%t_%s_%r.arc

*.log_archive_config='DG_CONFIG=(dbrac,dbracdg)'                                                                --db_unique_name

*.LOG_ARCHIVE_DEST_1='LOCATION=/home/oracle/arch/ VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=dbracdg'    --注意

*.LOG_ARCHIVE_DEST_2='SERVICE=1 LGWR SYNC  VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=dbrac'       --注意

*.log_archive_dest_state_1=ENABLE

*.log_archive_dest_state_2=ENABLE

*.LOG_ARCHIVE_MAX_PROCESSES=4

## Parameters which using for switch over from Primary to Standby.

*.fal_server='1','2'                                                                                             --连接字符串

fal_client=dg                                                                                                    --连接字符串

*.standby_file_management=AUTO

*.db_file_name_convert='+DATA/dbrac/datafile/','/oracle/app/oracle/oradata/dbracdg/datafile/','+DATA/dbrac/tempfile/','/oracle/app/oracle/oradata/dbracdg/tempfile/'

*.log_file_name_convert='+DATA/dbrac/onlinelog/','/oracle/app/oracle/oradata/dbracdg/datafile/','+FRA/dbrac/onlinelog/','/oracle/app/oracle/oradata/dbracdg/datafile/'

9. RMAN 备份主库并将备份文件传到standby

---1.创建备份目录

[oracle@dbrac1 ~]$ pwd

/home/oracle

[oracle@dbrac1 ~]$ mkdir rmanbackup

 

--2. 配置rman下snapshot controlfile 到共享位置

否则备份控制文件会报ORA-00245的错误

[grid@dbrac1 ~]$ asmcmd -p

ASMCMD [+] > cd data

ASMCMD [+data] > ls

DBRAC/

ASMCMD [+data] > mkdir snapshotcontrof

ASMCMD [+data] > ls

DBRAC/

snapshotcontrof/

ASMCMD [+data] > cd snapshotcontrof/

ASMCMD [+data/snapshotcontrof] > ls

ASMCMD [+data/snapshotcontrof] >   

 

RMAN>    CONFIGURE SNAPSHOT CONTROLFILE NAME TO '+DATA/snapshotcontrof/snapcf_dbracdg_0815.f';

 

old RMAN configuration parameters:

CONFIGURE SNAPSHOT CONTROLFILE NAME TO '+data';

new RMAN configuration parameters:

CONFIGURE SNAPSHOT CONTROLFILE NAME TO '+data/snapshotcontrof/ snapcf_dbracdg_0815.f ';

new RMAN configuration parameters are successfully stored

 

---执行备份:

RUN {

allocate channel c1 type disk;

allocate channel c2 type disk;

sql 'alter system archive log current';

backup current controlfile for standby format='/home/oracle/rmanbackup/control_%U';

BACKUP FORMAT='/home/oracle/rmanbackup/dbrac%U_%T' skip inaccessible filesperset 5 DATABASE ;

sql 'alter system archive log current';

BACKUP FORMAT='/home/oracle/rmanbackup/arch_%U_%T' skip inaccessible filesperset 5 ARCHIVELOG ALL DELETE INPUT;

release channel c2;

release channel c1;

}

省略…………..

Finished backup at 2017-08-14 04:32:39

 

released channel: c2

 

released channel: c1

 

RMAN> 

 

--传送备份文件:(在备库上建立相同目录)

[oracle@racdg ~]$ pwd

/home/oracle

[oracle@racdg ~]$ mkdir rmanbackup

[oracle@racdg ~]$ ls

arch  rmanbackup  soft

[oracle@racdg ~]$

 

---SCP 拷贝到 standby 上:

[oracle@dbrac1 ~]$ cd rmanbackup/

[oracle@dbrac1 rmanbackup]$ ls

arch_0tsbva42_1_1_20170815  arch_0vsbva46_1_1_20170815  dbrac0psbv9qu_1_1_20170815  dbrac0rsbva1h_1_1_20170815

arch_0usbva42_1_1_20170815  control_0osbv9q4_1_1        dbrac0qsbv9r0_1_1_20170815  dbrac0ssbva2s_1_1_20170815

[oracle@dbrac1 rmanbackup]$  

[oracle@dbrac1 rmanbackup]$ scp * oracle@192.168.56.6:/home/oracle/rmanbackup

oracle@192.168.56.6's password:

arch_0esbrrlq_1_1_20170814                                                                                                           100%   29MB  28.9MB/s   00:01   

arch_0fsbrrlq_1_1_20170814                                                                                                           100% 1095KB   1.1MB/s   00:00   

arch_0gsbrrm4_1_1_20170814                                                                                                           100%  701KB 701.0KB/s   00:00   

arch_0hsbrrm8_1_1_20170814                                                                                                           100% 5523KB   5.4MB/s   00:00   

arch_0isbrrme_1_1_20170814                                                                                                           100%   61MB  61.1MB/s   00:01   

arch_0jsbrrml_1_1_20170814                                                                                                           100%   41MB  41.0MB/s   00:01   

arch_0ksbrrmq_1_1_20170814                                                                                                           100%   37MB  36.9MB/s   00:00   

arch_0lsbrrmv_1_1_20170814                                                                                                           100%  174KB 173.5KB/s   00:00   

arch_0msbrrn1_1_1_20170814                                                                                                           100%   77KB  76.5KB/s   00:00   

arch_0nsbrrn4_1_1_20170814                                                                                                           100%   16KB  15.5KB/s   00:00   

control_09sbrrer_1_1                                                                                                                 100%   18MB 701.5KB/s   00:26   

orcl_0asbrrf7_1_1_20170814                                                                                                           100%  484MB   5.6MB/s   01:27    

orcl_0bsbrrf8_1_1_20170814                                                                                                           100%  650MB   9.0MB/s   01:12    

orcl_0csbrrio_1_1_20170814                                                                                                           100%   18MB  17.8MB/s   00:01   

orcl_0dsbrrkt_1_1_20170814                                                                                                           100%   96KB  96.0KB/s   00:00   

[oracle@dbrac1 rmanbackup]$    

 

10. 备库nomount

用之前创建的初始化参数文件将备库启动到nomount 状态

 

[oracle@racdg ~]$   sqlplus / as sysdba

 

SQL*Plus: Release 11.2.0.4.0 Production on Mon Aug 14 04:45:06 2017

 

Copyright (c) 1982, 2013, Oracle.  All rights reserved.

 

Connected to an idle instance.

 

SQL> startup nomount pfile='/oracle/app/oracle/product/11.2.0/dbhome_1/dbs/initdbracdg.ora';

ORA-32006: BACKGROUND_DUMP_DEST initialization parameter has been deprecated

ORA-32006: USER_DUMP_DEST initialization parameter has been deprecated

ORA-32006: STANDBY_ARCHIVE_DEST initialization parameter has been deprecated

 

ORACLE instance started.

 

Total System Global Area  968724480 bytes

Fixed Size                  2259120 bytes

Variable Size             612370256 bytes

Database Buffers          348127232 bytes

Redo Buffers                5967872 bytes

SQL>

SQL> select status from v$instance;

 

STATUS

------------------------

STARTED

 

SQL> show parameter spfile

 

NAME                                 TYPE

------------------------------------ ----------------------

VALUE

------------------------------

spfile                               string

 

SQL> show parameter pfile

 

NAME                                 TYPE

------------------------------------ ----------------------

VALUE

------------------------------

spfile                               string

 

s----查看监听状态:

[oracle@racdg ~]$ lsnrctl status

 

LSNRCTL for Linux: Version 11.2.0.4.0 - Production on 15-AUG-2017 13:02:34

 

Copyright (c) 1991, 2013, Oracle.  All rights reserved.

 

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.56.6)(PORT=1521)))

STATUS of the LISTENER

------------------------

Alias                     LISTENER

Version                   TNSLSNR for Linux: Version 11.2.0.4.0 - Production

Start Date                15-AUG-2017 10:43:31

Uptime                    0 days 2 hr. 19 min. 2 sec

Trace Level               off

Security                  ON: Local OS Authentication

SNMP                      OFF

Listener Parameter File   /oracle/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora

Listener Log File         /oracle/app/oracle/diag/tnslsnr/racdg/listener/alert/log.xml

Listening Endpoints Summary...

  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.56.6)(PORT=1521)))

Services Summary...

Service "dbracdg" has 2 instance(s).

  Instance "dbracdg", status UNKNOWN, has 1 handler(s) for this service...

  Instance "dbracdg", status BLOCKED, has 1 handler(s) for this service...

The command completed successfully

[oracle@racdg ~]$

 

11.主库rman还原数据库

[oracle@dbrac1 ~]$ rman target / auxiliary sys/oracle@dg

 

Recovery Manager: Release 11.2.0.4.0 - Production on Tue Aug 15 13:05:08 2017

 

Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.

 

connected to target database: DBRAC (DBID=912904205)

connected to auxiliary database: DBRAC (not mounted)

 

RMAN> duplicate target database for standby;

 

Starting Duplicate Db at 2017-08-15 13:05:35

using target database control file instead of recovery catalog

allocated channel: ORA_AUX_DISK_1

channel ORA_AUX_DISK_1: SID=20 device type=DISK

 

contents of Memory Script:

{

   restore clone standby controlfile;

}

executing Memory Script

 

Starting restore at 2017-08-15 13:05:38

using channel ORA_AUX_DISK_1

 

channel ORA_AUX_DISK_1: starting datafile backup set restore

channel ORA_AUX_DISK_1: restoring control file

channel ORA_AUX_DISK_1: reading from backup piece /home/oracle/rmanbackup/dbrac0rsbva1h_1_1_20170815

channel ORA_AUX_DISK_1: piece handle=/home/oracle/rmanbackup/dbrac0rsbva1h_1_1_20170815 tag=TAG20170815T115157

channel ORA_AUX_DISK_1: restored backup piece 1

channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:03

output file name=/oracle/app/oracle/oradata/dbracdg/datafile/control01.ctl

output file name=/oracle/app/oracle/oradata/dbracdg/datafile/control02.ctl

output file name=/oracle/app/oracle/oradata/dbracdg/datafile/control03.ctl

Finished restore at 2017-08-15 13:05:47

 

contents of Memory Script:

{

   sql clone 'alter database mount standby database';

}

executing Memory Script

 

sql statement: alter database mount standby database

 

contents of Memory Script:

{

   set newname for tempfile  1 to

 "/oracle/app/oracle/oradata/dbracdg/tempfile/temp.263.951838105";

   switch clone tempfile all;

   set newname for datafile  1 to

 "/oracle/app/oracle/oradata/dbracdg/datafile/system.256.951837831";

   set newname for datafile  2 to

 "/oracle/app/oracle/oradata/dbracdg/datafile/sysaux.257.951837833";

   set newname for datafile  3 to

 "/oracle/app/oracle/oradata/dbracdg/datafile/undotbs1.258.951837835";

   set newname for datafile  4 to

 "/oracle/app/oracle/oradata/dbracdg/datafile/users.259.951837843";

   set newname for datafile  5 to

 "/oracle/app/oracle/oradata/dbracdg/datafile/example.264.951838157";

   set newname for datafile  6 to

 "/oracle/app/oracle/oradata/dbracdg/datafile/undotbs2.265.951838723";

   restore

   clone database

   ;

}

executing Memory Script

 

executing command: SET NEWNAME

 

renamed tempfile 1 to /oracle/app/oracle/oradata/dbracdg/tempfile/temp.263.951838105 in control file

 

executing command: SET NEWNAME

 

executing command: SET NEWNAME

 

executing command: SET NEWNAME

 

executing command: SET NEWNAME

 

executing command: SET NEWNAME

 

executing command: SET NEWNAME

 

Starting restore at 2017-08-15 13:06:03

using channel ORA_AUX_DISK_1

 

channel ORA_AUX_DISK_1: starting datafile backup set restore

channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set

channel ORA_AUX_DISK_1: restoring datafile 00001 to /oracle/app/oracle/oradata/dbracdg/datafile/system.256.951837831

channel ORA_AUX_DISK_1: restoring datafile 00004 to /oracle/app/oracle/oradata/dbracdg/datafile/users.259.951837843

channel ORA_AUX_DISK_1: restoring datafile 00005 to /oracle/app/oracle/oradata/dbracdg/datafile/example.264.951838157

channel ORA_AUX_DISK_1: reading from backup piece /home/oracle/rmanbackup/dbrac0psbv9qu_1_1_20170815

 channel ORA_AUX_DISK_1: piece handle=/home/oracle/rmanbackup/dbrac0psbv9qu_1_1_20170815 tag=TAG20170815T115157

channel ORA_AUX_DISK_1: restored backup piece 1

channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:01:05

channel ORA_AUX_DISK_1: starting datafile backup set restore

channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set

channel ORA_AUX_DISK_1: restoring datafile 00002 to /oracle/app/oracle/oradata/dbracdg/datafile/sysaux.257.951837833

channel ORA_AUX_DISK_1: restoring datafile 00003 to /oracle/app/oracle/oradata/dbracdg/datafile/undotbs1.258.951837835

channel ORA_AUX_DISK_1: restoring datafile 00006 to /oracle/app/oracle/oradata/dbracdg/datafile/undotbs2.265.951838723

channel ORA_AUX_DISK_1: reading from backup piece /home/oracle/rmanbackup/dbrac0qsbv9r0_1_1_20170815

 channel ORA_AUX_DISK_1: piece handle=/home/oracle/rmanbackup/dbrac0qsbv9r0_1_1_20170815 tag=TAG20170815T115157

channel ORA_AUX_DISK_1: restored backup piece 1

channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:35

Finished restore at 2017-08-15 13:07:46

 

contents of Memory Script:

{

   switch clone datafile all;

}

executing Memory Script

 

datafile 1 switched to datafile copy

input datafile copy RECID=4 STAMP=952088866 file name=/oracle/app/oracle/oradata/dbracdg/datafile/system.256.951837831

datafile 2 switched to datafile copy

input datafile copy RECID=5 STAMP=952088866 file name=/oracle/app/oracle/oradata/dbracdg/datafile/sysaux.257.951837833

datafile 3 switched to datafile copy

input datafile copy RECID=6 STAMP=952088866 file name=/oracle/app/oracle/oradata/dbracdg/datafile/undotbs1.258.951837835

datafile 4 switched to datafile copy

input datafile copy RECID=7 STAMP=952088866 file name=/oracle/app/oracle/oradata/dbracdg/datafile/users.259.951837843

datafile 5 switched to datafile copy

input datafile copy RECID=8 STAMP=952088866 file name=/oracle/app/oracle/oradata/dbracdg/datafile/example.264.951838157

datafile 6 switched to datafile copy

input datafile copy RECID=9 STAMP=952088866 file name=/oracle/app/oracle/oradata/dbracdg/datafile/undotbs2.265.951838723

 

Finished Duplicate Db at 2017-08-15 13:08:52

 

RMAN>

 

12. 检查standby 数据库

SQL>  select status from v$instance;

 

STATUS

------------------------

MOUNTED

 

SQL> select name from v$datafile;

 

NAME

--------------------------------------------------------------------------------

/oracle/app/oracle/oradata/dbracdg/datafile/system.256.951837831

/oracle/app/oracle/oradata/dbracdg/datafile/sysaux.257.951837833

/oracle/app/oracle/oradata/dbracdg/datafile/undotbs1.258.951837835

/oracle/app/oracle/oradata/dbracdg/datafile/users.259.951837843

/oracle/app/oracle/oradata/dbracdg/datafile/example.264.951838157

/oracle/app/oracle/oradata/dbracdg/datafile/undotbs2.265.951838723

 

6 rows selected.

 

SQL> select name from v$tempfile;

 

NAME

--------------------------------------------------------------------------------

/oracle/app/oracle/oradata/dbracdg/tempfile/temp.263.951838105

 

SQL> select member from v$logfile;

 

MEMBER

--------------------------------------------------------------------------------

/oracle/app/oracle/oradata/dbracdg/datafile/group_1.274.952077535

/oracle/app/oracle/oradata/dbracdg/datafile/group_1.285.952077545

/oracle/app/oracle/oradata/dbracdg/datafile/group_2.273.952077559

/oracle/app/oracle/oradata/dbracdg/datafile/group_2.282.952077571

/oracle/app/oracle/oradata/dbracdg/datafile/group_3.272.952077585

/oracle/app/oracle/oradata/dbracdg/datafile/group_3.279.952077595

/oracle/app/oracle/oradata/dbracdg/datafile/group_4.271.952077609

/oracle/app/oracle/oradata/dbracdg/datafile/group_4.278.952077623

/oracle/app/oracle/oradata/dbracdg/datafile/group_5.279.952077643

/oracle/app/oracle/oradata/dbracdg/datafile/group_5.308.952077665

/oracle/app/oracle/oradata/dbracdg/datafile/group_6.280.952077699

 

MEMBER

--------------------------------------------------------------------------------

/oracle/app/oracle/oradata/dbracdg/datafile/group_6.309.952077725

/oracle/app/oracle/oradata/dbracdg/datafile/group_7.281.952077757

/oracle/app/oracle/oradata/dbracdg/datafile/group_7.310.952077779

/oracle/app/oracle/oradata/dbracdg/datafile/group_8.282.952077805

/oracle/app/oracle/oradata/dbracdg/datafile/group_8.311.952077825

 

16 rows selected.   

 

SQL> select name from v$controlfile;

 

NAME

--------------------------------------------------------------------------------

/oracle/app/oracle/oradata/dbracdg/datafile/control01.ctl

/oracle/app/oracle/oradata/dbracdg/datafile/control02.ctl

/oracle/app/oracle/oradata/dbracdg/datafile/control03.ctl

 

SQL> set lines 200 pages 999

SQL> show parameter name

 

NAME                                 TYPE                   VALUE

------------------------------------ ---------------------- ------------------------------

cell_offloadgroup_name               string

db_file_name_convert                 string                 +DATA/dbrac/datafile/, /oracle

                                                            /app/oracle/oradata/dbracdg/da

                                                            tafile/, +DATA/dbrac/tempfile/

                                                            , /oracle/app/oracle/oradata/d

                                                            bracdg/tempfile/

db_name                              string                 dbrac

db_unique_name                       string                 dbracdg

global_names                         boolean                FALSE

instance_name                        string                 dbracdg

lock_name_space                      string

log_file_name_convert                string                 +DATA/dbrac/onlinelog/, /oracl

                                                            e/app/oracle/oradata/dbracdg/d

                                                            atafile/, +FRA/dbrac/onlinelog

                                                            /, /oracle/app/oracle/oradata/

                                                            dbracdg/datafile/

processor_group_name                 string

service_names                        string                 dbracdg

 

--将备库启动到mount standby 状态,并启动MRP 进程:

SQL> create spfile from pfile;

 

File created.

 

SQL> show parameter spfile

 

NAME                                 TYPE                   VALUE

------------------------------------ ---------------------- ------------------------------

spfile                               string

 

SQL> shutdown immediate;

ORA-01109: database not open

 

 

Database dismounted.

ORACLE instance shut down.

SQL>

SQL> startup nomount;

ORA-32004: obsolete or deprecated parameter(s) specified for RDBMS instance

ORACLE instance started.

 

Total System Global Area  968724480 bytes

Fixed Size                  2259120 bytes

Variable Size             612370256 bytes

Database Buffers          348127232 bytes

Redo Buffers                5967872 bytes

SQL>

SQL> alter database mount standby database;

 

Database altered.

 

SQL> recover managed standby database disconnect from session;

Media recovery complete.

SQL>

SQL> show parameter spfile

 

NAME                                 TYPE        VALUE

------------------------------------ ----------- ------------------------------

spfile                               string      /oracle/app/oracle/product/11.

                                                 2.0/dbhome_1/dbs/spfiledbracdg

                                                 .ora

 

---查看备库状态:

SQL> select name,open_mode,protection_mode,database_role,switchover_status from v$database;

 

NAME      OPEN_MODE            PROTECTION_MODE      DATABASE_ROLE    SWITCHOVER_STATUS

--------- -------------------- -------------------- ---------------- --------------------

DBRAC     MOUNTED              MAXIMUM PERFORMANCE  PHYSICAL STANDBY RECOVERY NEEDED

13. 备库创建standby redo log日志

RAC每个redo thread都需要创建对应的standby redo log.创建原则和单实例一样:

包括日志文件大小相等,日志组数量要多1组。

 

查看RAC中联机日志:(备库操作)

select thread#,group#,bytes/1024/1024 size_m,MEMBERS,ARCHIVED,STATUS from v$log;

 

   THREAD#     GROUP#     SIZE_M    MEMBERS ARC STATUS

---------- ---------- ---------- ---------- --- ----------------

         1          1        100          2 YES INACTIVE

         1          2        100          2 YES INACTIVE

         1          3        100          2 NO  CURRENT

         1          4        100          2 YES INACTIVE

         2          5        100          2 NO  CURRENT

         2          6        100          2 YES INACTIVE

         2          7        100          2 YES INACTIVE

         2          8        100          2 YES INACTIVE

 

从上面的结果看出, RAC 有两个Redo Thread,每个Thread 有4个日志组,每个日志文件大小有100MB,所以要针对每个thread 需要创建5组 Standby Redo Log,大小为100MB。

 

--停备库实时应用:

alter database recover managed standby database cancel;

 

--添加备库standby redo log:

alter database add standby logfile thread 1 group 9 ('/oracle/app/oracle/oradata/dbracdg/datafile/redo_09') size 100m;

alter database add standby logfile thread 1 group 10 ('/oracle/app/oracle/oradata/dbracdg/datafile/redo_10') size 100m;

alter database add standby logfile thread 1 group 11 ('/oracle/app/oracle/oradata/dbracdg/datafile/redo_11') size 100m;

alter database add standby logfile thread 1 group 12 ('/oracle/app/oracle/oradata/dbracdg/datafile/redo_12') size 100m;

alter database add standby logfile thread 1 group 13 ('/oracle/app/oracle/oradata/dbracdg/datafile/redo_13') size 100m;

alter database add standby logfile thread 2 group 14 ('/oracle/app/oracle/oradata/dbracdg/datafile/redo_14') size 100m;

alter database add standby logfile thread 2 group 15 ('/oracle/app/oracle/oradata/dbracdg/datafile/redo_15') size 100m;

alter database add standby logfile thread 2 group 16 ('/oracle/app/oracle/oradata/dbracdg/datafile/redo_16') size 100m;

alter database add standby logfile thread 2 group 17 ('/oracle/app/oracle/oradata/dbracdg/datafile/redo_17') size 100m;

alter database add standby logfile thread 2 group 18 ('/oracle/app/oracle/oradata/dbracdg/datafile/redo_18') size 100m;

 

添加完可以:  select * from v$logfile;   查看日志情况。

col member for a70

select * from v$logfile;

14.先停止RAC 实例,然后用之前创建的pfile 启动rac 实例

[oracle@dbrac1 ~]$ srvctl stop database -d dbrac -o immediate

[oracle@dbrac1 ~]$  

[grid@dbrac1 ~]$ crsctl stat res -t

--------------------------------------------------------------------------------

NAME           TARGET  STATE        SERVER                   STATE_DETAILS      

--------------------------------------------------------------------------------

Local Resources

--------------------------------------------------------------------------------

ora.DATA.dg

               ONLINE  ONLINE       dbrac1                                      

               ONLINE  ONLINE       dbrac2                                       

ora.FRA.dg

               ONLINE  ONLINE       dbrac1                                      

               ONLINE  ONLINE       dbrac2                                      

ora.LISTENER.lsnr

               ONLINE  ONLINE       dbrac1                                       

               ONLINE  ONLINE       dbrac2                                      

ora.OCRVOTE.dg

               ONLINE  ONLINE       dbrac1                                      

               ONLINE  ONLINE       dbrac2                                       

ora.asm

               ONLINE  ONLINE       dbrac1                   Started            

               ONLINE  ONLINE       dbrac2                   Started            

ora.gsd

               OFFLINE OFFLINE      dbrac1                                      

               OFFLINE OFFLINE      dbrac2                                      

ora.net1.network

               ONLINE  ONLINE       dbrac1                                      

               ONLINE  ONLINE       dbrac2                                      

ora.ons

               ONLINE  ONLINE       dbrac1                                      

               ONLINE  ONLINE       dbrac2                                      

ora.registry.acfs

               ONLINE  ONLINE       dbrac1                                      

               ONLINE  ONLINE       dbrac2                                      

--------------------------------------------------------------------------------

Cluster Resources

--------------------------------------------------------------------------------

ora.LISTENER_SCAN1.lsnr

      1        ONLINE  ONLINE       dbrac2                                      

ora.cvu

      1        ONLINE  ONLINE       dbrac2                                       

ora.dbrac.db

      1        OFFLINE OFFLINE                               Instance Shutdown  

      2        OFFLINE OFFLINE                               Instance Shutdown  

ora.dbrac1.vip

      1        ONLINE  ONLINE       dbrac1                                       

ora.dbrac2.vip

      1        ONLINE  ONLINE       dbrac2                                      

ora.oc4j

      1        ONLINE  ONLINE       dbrac1                                      

ora.scan1.vip

      1        ONLINE  ONLINE       dbrac2                                      

[grid@dbrac1 ~]$   

 

[oracle@dbrac1 ~]$ sqlplus / as sysdba

 

SQL*Plus: Release 11.2.0.4.0 Production on Tue Aug 15 16:21:06 2017

 

Copyright (c) 1982, 2013, Oracle.  All rights reserved.

 

Connected to an idle instance.

 

SQL> create spfile='+DATA/dbrac/spfiledbrac.ora' from pfile;

 

File created.

 

SQL> startup

ORACLE instance started.

 

Total System Global Area  968724480 bytes

Fixed Size                  2259120 bytes

Variable Size             658507600 bytes

Database Buffers          301989888 bytes

Redo Buffers                5967872 bytes

Database mounted.

Database opened.

 

分别启动节点1、节点2或者用servctl命令也可。 

 

SQL> show parameter spfile

 

NAME                                 TYPE        VALUE

------------------------------------ ----------- ------------------------------

spfile                               string      +DATA/dbrac/spfiledbrac.ora

 

[grid@dbrac2 ~]$ crsctl stat res -t

--------------------------------------------------------------------------------

NAME           TARGET  STATE        SERVER                   STATE_DETAILS      

--------------------------------------------------------------------------------

Local Resources

--------------------------------------------------------------------------------

ora.DATA.dg

               ONLINE  ONLINE       dbrac1                                      

               ONLINE  ONLINE       dbrac2                                      

ora.FRA.dg

               ONLINE  ONLINE       dbrac1                                       

               ONLINE  ONLINE       dbrac2                                      

ora.LISTENER.lsnr

               ONLINE  ONLINE       dbrac1                                      

               ONLINE  ONLINE       dbrac2                                       

ora.OCRVOTE.dg

               ONLINE  ONLINE       dbrac1                                      

               ONLINE  ONLINE       dbrac2                                      

ora.asm

               ONLINE  ONLINE       dbrac1                   Started            

               ONLINE  ONLINE       dbrac2                   Started            

ora.gsd

               OFFLINE OFFLINE      dbrac1                                      

               OFFLINE OFFLINE      dbrac2                                      

ora.net1.network

               ONLINE  ONLINE       dbrac1                                      

               ONLINE  ONLINE       dbrac2                                      

ora.ons

               ONLINE  ONLINE       dbrac1                                      

               ONLINE  ONLINE       dbrac2                                      

ora.registry.acfs

               ONLINE  ONLINE       dbrac1                                      

               ONLINE  ONLINE       dbrac2                                      

--------------------------------------------------------------------------------

Cluster Resources

--------------------------------------------------------------------------------

ora.LISTENER_SCAN1.lsnr

      1        ONLINE  ONLINE       dbrac2                                      

ora.cvu

      1        ONLINE  ONLINE       dbrac2                                      

ora.dbrac.db

      1        ONLINE  ONLINE       dbrac1                   Open               

      2        ONLINE  ONLINE       dbrac2                   Open               

ora.dbrac1.vip

      1        ONLINE  ONLINE       dbrac1                                      

ora.dbrac2.vip

      1        ONLINE  ONLINE       dbrac2                                      

ora.oc4j

      1        ONLINE  ONLINE       dbrac1                                      

ora.scan1.vip

      1        ONLINE  ONLINE       dbrac2                                      

[grid@dbrac2 ~]$

 

15. 在RAC各实例上查看日志同步情况

col dest_name for a30

col error for a39

Select dest_name,status,error From v$archive_dest;

 

DEST_NAME                      STATUS    ERROR

------------------------------ --------- ---------------------------------------

LOG_ARCHIVE_DEST_1             VALID

LOG_ARCHIVE_DEST_2             VALID

LOG_ARCHIVE_DEST_3             INACTIVE

LOG_ARCHIVE_DEST_4             INACTIVE

LOG_ARCHIVE_DEST_5             INACTIVE

LOG_ARCHIVE_DEST_6             INACTIVE

LOG_ARCHIVE_DEST_7             INACTIVE

LOG_ARCHIVE_DEST_8             INACTIVE

LOG_ARCHIVE_DEST_9             INACTIVE

LOG_ARCHIVE_DEST_10            INACTIVE

LOG_ARCHIVE_DEST_11            INACTIVE

 

DEST_NAME                      STATUS    ERROR

------------------------------ --------- ---------------------------------------

LOG_ARCHIVE_DEST_12            INACTIVE

LOG_ARCHIVE_DEST_13            INACTIVE

LOG_ARCHIVE_DEST_14            INACTIVE

LOG_ARCHIVE_DEST_15            INACTIVE

LOG_ARCHIVE_DEST_16            INACTIVE

LOG_ARCHIVE_DEST_17            INACTIVE

LOG_ARCHIVE_DEST_18            INACTIVE

LOG_ARCHIVE_DEST_19            INACTIVE

LOG_ARCHIVE_DEST_20            INACTIVE

LOG_ARCHIVE_DEST_21            INACTIVE

LOG_ARCHIVE_DEST_22            INACTIVE

 

DEST_NAME                      STATUS    ERROR

------------------------------ --------- ---------------------------------------

LOG_ARCHIVE_DEST_23            INACTIVE

LOG_ARCHIVE_DEST_24            INACTIVE

LOG_ARCHIVE_DEST_25            INACTIVE

LOG_ARCHIVE_DEST_26            INACTIVE

LOG_ARCHIVE_DEST_27            INACTIVE

LOG_ARCHIVE_DEST_28            INACTIVE

LOG_ARCHIVE_DEST_29            INACTIVE

LOG_ARCHIVE_DEST_30            INACTIVE

LOG_ARCHIVE_DEST_31            INACTIVE

 

31 rows selected.

 

注意:正常状态是VALID或INACTIVE

 

16.验证同步情况

在主备库分别切换日志:

--应用日志

recover managed standby database disconnect from session;

 

--实时应用日志

recover managed standby database using current logfile disconnect from session;

 

--结束应用日志

recover managed standby database cancel;

 

--查看备库状态、角色

select name,open_mode,protection_mode,database_role,switchover_status from v$database;

 

--查看备库日志应用情况

select sequence#,dest_id,archived,applied from v$archived_log order by 1,2;

 

---查看是否在实时应用:

col DEST_NAME for a30

select DEST_NAME,STATUS,RECOVERY_MODE from v$archive_dest_status;

 

 

总结:不管是主库还是备库:
recover_mode是 MANAGED REAL TIME APPLY是实时应用;是MANAGED是非实时应用。

 

综上, 建议从备库上进行查看,毕竟是不是实时应用,是备库的事情。

 

查找备库缺失的GAP:

select * from V$ARCHIVE_GAP;

 

 

验证:(备库)

SQL> select sequence#,dest_id,archived,applied from v$archived_log order by 1,2;

 

 SEQUENCE#    DEST_ID ARC APPLIED

---------- ---------- --- ---------

        84          2 YES YES

        85          2 YES YES

        86          2 YES YES

        87          2 YES YES

        88          1 YES YES

        89          1 YES YES

        90          1 YES YES

        91          2 YES YES

        92          1 YES YES

        93          1 YES YES

        94          1 YES YES

        95          2 YES YES

        96          2 YES YES

        97          1 YES IN-MEMORY

       111          2 YES YES

       112          2 YES YES

       113          2 YES YES

       114          1 YES YES

       115          1 YES YES

       116          1 YES YES

       117          1 YES YES

       118          2 YES YES

       119          2 YES YES

       120          1 YES YES

       121          1 YES YES

       122          2 YES YES

       123          1 YES YES

 

27 rows selected.

 

SQL> 

SQL> select name,open_mode,protection_mode,database_role,switchover_status from v$database;

 

NAME      OPEN_MODE            PROTECTION_MODE      DATABASE_ROLE    SWITCHOVER_STATUS

--------- -------------------- -------------------- ---------------- --------------------

DBRAC     MOUNTED              MAXIMUM PERFORMANCE  PHYSICAL STANDBY NOT ALLOWED

 

SQL> col DEST_NAME for a30

SQL> select DEST_NAME,STATUS,RECOVERY_MODE from v$archive_dest_status;

 

DEST_NAME                      STATUS    RECOVERY_MODE

------------------------------ --------- -----------------------

LOG_ARCHIVE_DEST_1             VALID     MANAGED REAL TIME APPLY

LOG_ARCHIVE_DEST_2             VALID     IDLE

LOG_ARCHIVE_DEST_3             INACTIVE  IDLE

LOG_ARCHIVE_DEST_4             INACTIVE  IDLE

LOG_ARCHIVE_DEST_5             INACTIVE  IDLE

LOG_ARCHIVE_DEST_6             INACTIVE  IDLE

LOG_ARCHIVE_DEST_7             INACTIVE  IDLE

LOG_ARCHIVE_DEST_8             INACTIVE  IDLE

LOG_ARCHIVE_DEST_9             INACTIVE  IDLE

LOG_ARCHIVE_DEST_10            INACTIVE  IDLE

LOG_ARCHIVE_DEST_11            INACTIVE  IDLE

LOG_ARCHIVE_DEST_12            INACTIVE  IDLE

LOG_ARCHIVE_DEST_13            INACTIVE  IDLE

LOG_ARCHIVE_DEST_14            INACTIVE  IDLE

LOG_ARCHIVE_DEST_15            INACTIVE  IDLE

LOG_ARCHIVE_DEST_16            INACTIVE  IDLE

LOG_ARCHIVE_DEST_17            INACTIVE  IDLE

LOG_ARCHIVE_DEST_18            INACTIVE  IDLE

LOG_ARCHIVE_DEST_19            INACTIVE  IDLE

LOG_ARCHIVE_DEST_20            INACTIVE  IDLE

LOG_ARCHIVE_DEST_21            INACTIVE  IDLE

LOG_ARCHIVE_DEST_22            INACTIVE  IDLE

LOG_ARCHIVE_DEST_23            INACTIVE  IDLE

LOG_ARCHIVE_DEST_24            INACTIVE  IDLE

LOG_ARCHIVE_DEST_25            INACTIVE  IDLE

LOG_ARCHIVE_DEST_26            INACTIVE  IDLE

LOG_ARCHIVE_DEST_27            INACTIVE  IDLE

LOG_ARCHIVE_DEST_28            INACTIVE  IDLE

LOG_ARCHIVE_DEST_29            INACTIVE  IDLE

LOG_ARCHIVE_DEST_30            INACTIVE  IDLE

LOG_ARCHIVE_DEST_31            INACTIVE  IDLE

STANDBY_ARCHIVE_DEST           VALID     IDLE

 

32 rows selected.

 

同步成功。 至此RAC 为主库的,备库为单实例的 Oracle 的Data Guard 环境已经搭建完成。

 

17.主备切换Switchover 切换

RAC 环境下,切换Primary 和 Standby 时,只能有一个实例是活动的, 其他实例必须关闭。

这里我们关闭rac2节点。

 

--检查主备状态:

备库:

SQL> select name,open_mode,protection_mode,database_role,switchover_status from v$database;

 

NAME      OPEN_MODE            PROTECTION_MODE      DATABASE_ROLE    SWITCHOVER_STATUS

--------- -------------------- -------------------- ---------------- --------------------

DBRAC     MOUNTED              MAXIMUM PERFORMANCE  PHYSICAL STANDBY NOT ALLOWED

 

主库:

SQL>  select name,open_mode,protection_mode,database_role,switchover_status from v$database;

 

NAME      OPEN_MODE            PROTECTION_MODE      DATABASE_ROLE    SWITCHOVER_STATUS

--------- -------------------- -------------------- ---------------- --------------------

DBRAC     READ WRITE           MAXIMUM PERFORMANCE  PRIMARY          SESSIONS ACTIVE

 

--关闭节点2:

SQL> select instance_name from v$instance;

 

INSTANCE_NAME

----------------

dbrac2

 

SQL> shutdown immediate;

Database closed.

Database dismounted.

ORACLE instance shut down.

SQL>

 

--在节点1将主库切换到备库:

QL> select instance_name from v$instance;

 

INSTANCE_NAME

----------------

dbrac1

 

SQL> alter database commit to switchover to physical standby with session shutdown;

 

Database altered.

 

SQL> select status from v$instance;

select status from v$instance

*

ERROR at line 1:

ORA-01034: ORACLE not available

Process ID: 15185

Session ID: 65 Serial number: 113

 

 

SQL> startup mount;

ORACLE instance started.

 

Total System Global Area  968724480 bytes

Fixed Size                  2259120 bytes

Variable Size             658507600 bytes

Database Buffers          301989888 bytes

Redo Buffers                5967872 bytes

Database mounted.

SQL>

SQL> select database_role,switchover_status from v$database;

 

DATABASE_ROLE    SWITCHOVER_STATUS

---------------- --------------------

PHYSICAL STANDBY RECOVERY NEEDED

 

---将备库切换成主库:

SQL> SELECT SWITCHOVER_STATUS FROM V$DATABASE;

 

SWITCHOVER_STATUS

--------------------

SESSIONS ACTIVE       (或者TO PRIMARY)

 

SQL>

SQL>  ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY with session shutdown;

 

Database altered.

 

SQL> select status from v$instance;

 

STATUS

------------

MOUNTED

 

SQL> shutdown immediate;

ORA-01109: database not open

 

 

Database dismounted.

ORACLE instance shut down.

SQL>

 

---在rac1(原来的主库)节点上创建standby redo log file:

查询:

SQL> select thread#,group#,bytes/1024/1024 from v$log;

 

   THREAD#     GROUP# BYTES/1024/1024

---------- ---------- ---------------

         1          1             100

         1          2             100

         1          3             100

         1          4             100

         2          5             100

         2          6             100

         2          7             100

         2          8             100

 

8 rows selected.

 

--添加standby redo日志组:

alter database add standby logfile thread 1 group 9 size 100m;

alter database add standby logfile thread 1 group 10 size 100m;

alter database add standby logfile thread 1 group 11 size 100m;

alter database add standby logfile thread 1 group 12 size 100m;

alter database add standby logfile thread 1 group 13 size 100m;

alter database add standby logfile thread 2 group 14 size 100m;

alter database add standby logfile thread 2 group 15 size 100m;

alter database add standby logfile thread 2 group 16 size 100m;

alter database add standby logfile thread 2 group 17 size 100m;

alter database add standby logfile thread 2 group 18 size 100m;

 

添加之后可以通过v$logfile 视图查看

set lines 200 pages 999

col member for a60

select * from v$logfile;

 

---开启新主库:

SQL> startup;

ORA-32004: obsolete or deprecated parameter(s) specified for RDBMS instance

ORACLE instance started.

 

Total System Global Area  968724480 bytes

Fixed Size                  2259120 bytes

Variable Size             612370256 bytes

Database Buffers          348127232 bytes

Redo Buffers                5967872 bytes

Database mounted.

Database opened.

SQL>

SQL> select name,open_mode,protection_mode,database_role,switchover_status from v$database;

 

NAME      OPEN_MODE            PROTECTION_MODE      DATABASE_ROLE    SWITCHOVER_STATUS

--------- -------------------- -------------------- ---------------- --------------------

DBRAC     READ WRITE           MAXIMUM PERFORMANCE  PRIMARY          SESSIONS ACTIVE

 

--新备库开启实时应用:

SQL> recover managed standby database using current logfile disconnect from session;

Media recovery complete.

 

SQL> select name,open_mode,protection_mode,database_role,switchover_status from v$database;

 

NAME      OPEN_MODE            PROTECTION_MODE      DATABASE_ROLE    SWITCHOVER_STATUS

--------- -------------------- -------------------- ---------------- --------------------

DBRAC     MOUNTED              MAXIMUM PERFORMANCE  PHYSICAL STANDBY RECOVERY NEEDED

 

过一会查询(后台正在实时应用)

SQL> select sequence#,dest_id,archived,applied from v$archived_log order by 1,2;

 

 

 SEQUENCE#    DEST_ID ARC APPLIED

---------- ---------- --- ---------

         1          1 YES NO

         2          1 YES NO

………………………………………………………..

       125          1 YES YES

       125          2 YES NO

       126          2 YES YES

       127          1 YES YES

 

302 rows selected.

 

--查询有无gap:

SQL> select * from V$ARCHIVE_GAP;

 

no rows selected

 

SQL>

 

---再次查询备库状态:

SQL> select name,open_mode,protection_mode,database_role,switchover_status from v$database;

 

NAME      OPEN_MODE            PROTECTION_MODE      DATABASE_ROLE    SWITCHOVER_STATUS

--------- -------------------- -------------------- ---------------- --------------------

DBRAC     MOUNTED              MAXIMUM PERFORMANCE  PHYSICAL STANDBY NOT ALLOWED

 

---将节点2打开:

SQL> startup mount;

ORACLE instance started.

 

Total System Global Area  968724480 bytes

Fixed Size                  2259120 bytes

Variable Size             658507600 bytes

Database Buffers          301989888 bytes

Redo Buffers                5967872 bytes

Database mounted.

SQL>

SQL> select inst_id,name,open_mode,protection_mode,database_role,switchover_status from gv$database;

 

   INST_ID NAME      OPEN_MODE            PROTECTION_MODE      DATABASE_ROLE    SWITCHOVER_STATUS

---------- --------- -------------------- -------------------- ---------------- --------------------

         2 DBRAC     MOUNTED              MAXIMUM PERFORMANCE  PHYSICAL STANDBY NOT ALLOWED

         1 DBRAC     MOUNTED              MAXIMUM PERFORMANCE  PHYSICAL STANDBY NOT ALLOWED

 

18.再次主备切换

--先查询备库备状态:

select inst_id,name,open_mode,protection_mode,database_role,switchover_status from gv$database;

 

INST_ID NAME      OPEN_MODE            PROTECTION_MODE      DATABASE_ROLE    SWITCHOVER_STATUS

---------- --------- -------------------- -------------------- ---------------- --------------------

         2 DBRAC     MOUNTED              MAXIMUM PERFORMANCE  PHYSICAL STANDBY NOT ALLOWED

         1 DBRAC     MOUNTED              MAXIMUM PERFORMANCE  PHYSICAL STANDBY NOT ALLOWED

 

--查询主库状态:

SQL> select name,open_mode,protection_mode,database_role,switchover_status from v$database;

 

NAME      OPEN_MODE            PROTECTION_MODE      DATABASE_ROLE    SWITCHOVER_STATUS

--------- -------------------- -------------------- ---------------- --------------------

DBRAC     READ WRITE           MAXIMUM PERFORMANCE  PRIMARY          TO STANDBY

 

将主切成备库:

SQL> alter database commit to switchover to physical standby with session shutdown;

 

Database altered.

 

SQL> select status from v$instance;

select status from v$instance

*

ERROR at line 1:

ORA-01034: ORACLE not available

Process ID: 4532

Session ID: 1 Serial number: 5

 

 

SQL> startup mount;

ORA-32004: obsolete or deprecated parameter(s) specified for RDBMS instance

ORACLE instance started.

 

Total System Global Area  968724480 bytes

Fixed Size                  2259120 bytes

Variable Size             612370256 bytes

Database Buffers          348127232 bytes

Redo Buffers                5967872 bytes

Database mounted.

SQL>

SQL> select database_role,switchover_status from v$database;

 

DATABASE_ROLE    SWITCHOVER_STATUS

---------------- --------------------

PHYSICAL STANDBY RECOVERY NEEDED

 

--将备库切主库:

SQL> alter database commit to switchover to primary with session shutdown;

 

Database altered.

 

---查看新主库状态:

SQL> select inst_id,name,open_mode,protection_mode,database_role,switchover_status from gv$database;

 

   INST_ID NAME      OPEN_MODE            PROTECTION_MODE      DATABASE_ROLE    SWITCHOVER_STATUS

---------- --------- -------------------- -------------------- ---------------- --------------------

         1 DBRAC     MOUNTED              MAXIMUM PERFORMANCE  PRIMARY          NOT ALLOWED

         2 DBRAC     MOUNTED              MAXIMUM PERFORMANCE  PRIMARY          NOT ALLOWED

 

--在2个节点上分别启库:

SQL> select instance_name from v$instance;

 

INSTANCE_NAME

----------------

dbrac1

 

SQL> alter database open;

 

Database altered.

 

SQL> select instance_name from v$instance;

 

INSTANCE_NAME

----------------

dbrac2

 

SQL> alter database open;

 

 

Database altered.

 

SQL>

 

再次查询新主库状态:

SQL> select inst_id,name,open_mode,protection_mode,database_role,switchover_status from gv$database;

 

   INST_ID NAME      OPEN_MODE            PROTECTION_MODE      DATABASE_ROLE    SWITCHOVER_STATUS

---------- --------- -------------------- -------------------- ---------------- --------------------

         2 DBRAC     READ WRITE           MAXIMUM PERFORMANCE  PRIMARY          SESSIONS ACTIVE

         1 DBRAC     READ WRITE           MAXIMUM PERFORMANCE  PRIMARY          SESSIONS ACTIVE

 

--最后开启新备库实时应用:

recover managed standby database using current logfile disconnect from session;

 

--查看新备库日志应用情况

select sequence#,dest_id,archived,applied from v$archived_log order by 1,2;

 

SEQUENCE#    DEST_ID ARC APPLIED

---------- ---------- --- ---------

        84          2 YES YES

        85          2 YES YES

……………………………………………………………………………..            

       129          2 YES YES

       130          1 YES YES

       131          1 YES IN-MEMORY

 

42 rows selected.

 

---新主备库上查看日志号是否一致:

select distinct thread#,max(sequence#) over(partition by thread#) a from v$archived_log;

 

   THREAD#          A

---------- ----------

         1        131

         2        101

 

经查询一致且已经实施应用,Oracle11gR2 RAC primary+Single standby DG配置完成!

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/31397003/viewspace-2143668/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2016-09-22

  • 博文量
    916
  • 访问量
    1408707