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状态:
[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
在两节点分别执行
---创建用户、组:
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
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
——挂载光盘
[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
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
解压省略……………..
用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用户登录安装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 ~]#
创建DATA和FRA磁盘组
——以grid用户登录,并执行asmca命令工具建立磁盘组,用xshell工具启图形
[grid@dbrac1 ~]$ asmca
——以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 ~]$
——单实例,并且只安装到GI,oracle软件,不安装数据库;
本实践之安装单实例。
[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
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
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,用于指定参数文件位置。
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
——先挂载光盘:
[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*
上传安装介质
——以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.
1)、准备条件:(主库)
开启归档模式;
监听参数:local_listener 默认是1521
关闭闪回---->数据库的bug,备库不能开闪回
开启force_logging,强制生成日志;
如果有外部表,外部表也要删除;
主库开启force logging,增加standby logfile;
2)、主要修改参数文件---->增加dg属性参数
一般是在主库修改完,需要根据参数文件创建不存在的目录,验证;
再把参数文件和口令文件传输到备库,更改环境变量,再次修改备库的参数文件及根据参数文件创建不存在的目录,最后验证;
3)、配置监听网络:(主备库)
需要配置主库和备库的静态监听,并且能够互相访问
备库启到Nomount时,查看监听状态,会有blocked状态。
4)、复制主库生成备库:(主库)
11g-->rman 执行duplicate复制命令就可以完成复制主库生成备库操作
10g-->冷备恢复、rman备份集恢复
备库只安装Oracle软件
——检查闪回、及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
——配置静态监听:
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]$
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
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参数来进行转换。
在主库上创建备库的密码文件和控制文件,并将文件传到备库的相关位置
[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]$
这里要注意的,不要直接用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 参数。
--传送并重命名:
[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/'
---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]$
用之前创建的初始化参数文件将备库启动到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 ~]$
[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>
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
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;
[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 ~]$
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
在主备库分别切换日志:
--应用日志
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 环境已经搭建完成。
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
--先查询备库备状态:
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/ ,如需转载,请注明出处,否则将追究法律责任。