文章 > Oracle > oracle 19C RAC+ADG部署

oracle 19C RAC+ADG部署

泡杯长岛冰茶 · 2024-03-08 516 Oracle
分享 收藏

oracle 19C RAC+ADG 部署

一.数据安装部署

1.OS系统与用户信息

主机名/vip9操作系统版本用户名密码服务IP地址
shucairac01oracle linux 7.9rootoracle192.168.225.7/24
shucairac01-vip
oracleoracle192.168.225.9/24
sc-scan
gridoracle192.168.225.11/24
shucairac01oracle linux 7.9rootoracle192.168.225.8/24
shucairac01-vip
oracleoracle192.168.225.10/24
sc-scan
gridoracle192.168.225.11/24

2.主机配置

#2.1配置主机名与IP地址
# 节点1
hostnamectl set-hostname shucairac01 && bash
nmcli connection add con-name ens1f0 type ethernet ifname ens1f0  ipv4.address 192.168.225.7/24 ipv4.method manual autoconnect yes
nmcli connection add con-name ens1f1 type ethernet ifname ens1f1  ipv4.address 192.168.100.201/24 ipv4.method manual autoconnect yes
nmcli connection add con-name ens1f2 type ethernet ifname ens1f2  ipv4.address 192.168.200.201/24 ipv4.method manual autoconnect yes

# 节点2
hostnamectl set-hostname shucairac02 && bash
nmcli connection add con-name ens1f0 type ethernet ifname ens1f0  ipv4.address 192.168.225.8/24 ipv4.method manual autoconnect yes
nmcli connection add con-name ens1f1 type ethernet ifname ens1f1  ipv4.address 192.168.100.202/24 ipv4.method manual autoconnect yes
nmcli connection add con-name ens1f2 type ethernet ifname ens1f2  ipv4.address 192.168.200.202/24 ipv4.method manual autoconnect yes

# 节点1/2
cat <<EOF>> /etc/hosts
192.168.225.7   shucairac01
192.168.225.8   shucairac02
192.168.225.9   shucairac01-vip
192.168.225.10  shucairac02-vip
192.168.225.11  sc-scan
192.168.225.12  ora-adg

192.168.100.201   shucairac01-pri1
192.168.100.202   shucairac02-pri1
192.168.200.201   shucairac01-pri2
192.168.200.202   shucairac02-pri2
EOF


# 2.2 节点1/2,关闭系统防火墙与selinux
systemctl disable firewalld --now
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
setenforce 0

# 2.3 安装依赖包

# 配置本地yum源
mount  /soft/OracleLinux-R7-U9-Server-x86_64-dvd.iso /media/  & >/dev/null
rm -rf /etc/yum.repos.d/*
cat <<EOF>> /etc/yum.repos.d/base.repo
[baseos]
name=baseos
baseurl=file:///media/
enable = 1
gpgcheck= 0
EOF

yum clean all && yum makecache && clear
yum install tigervnc-server.x86_64  -y
yum install -y bc \
binutils \
compat-libcap1 \
compat-libstdc++-33 \
gcc \
gcc-c++ \
elfutils-libelf \
elfutils-libelf-devel \
glibc \
glibc-devel \
ksh \
libaio \
libaio-devel \
libgcc \
libstdc++ \
libstdc++-devel \
libxcb \
libX11 \
libXau \
libXi \
libXtst \
libXrender \
libXrender-devel \
make \
net-tools \
nfs-utils \
smartmontools \
sysstat \
e2fsprogs \
e2fsprogs-libs \
fontconfig-devel \
expect \
unzip \
openssh-clients \
readline* \
tigervnc* \
psmisc --skip-broken

3.配置内核可调项

# 1.关闭内存大页
sed -i 's/quiet/quiet transparent_hugepage=never numa=off/' /etc/default/grub
grub2-mkconfig -o /boot/grub2/grub.cfg
cat /sys/kernel/mm/transparent_hugepage/enabled
cat /proc/cmdline

cat <<EOF>>/etc/sysconfig/network
NOZEROCONF=yes
EOF
# 2 调整内核参数
memTotal=$(grep MemTotal /proc/meminfo | awk '{print $2}')
totalMemory=$((memTotal / 2048))
shmall=$((memTotal / 4))
if [ $shmall -lt 2097152 ]; then
shmall=2097152
fi
shmmax=$((memTotal * 1024 - 1))
if [ "$shmmax" -lt 4294967295 ]; then
shmmax=4294967295
fi
cat <<EOF>>/etc/sysctl.conf
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = $shmall
kernel.shmmax = $shmmax
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
net.ipv4.conf.ens1f0.rp_filter = 1
net.ipv4.conf.ens161.rp_filter = 2
net.ipv4.conf.ens193.rp_filter = 2
net.ipv6.conf.all.disable_ipv6 = 1
EOF
sysctl -p

# 内存限制
cat <<EOF>>/etc/security/limits.conf
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
oracle hard stack 32768
oracle soft nproc 2047
oracle hard nproc 16384
oracle hard memlock 134217728
oracle soft memlock 134217728

grid soft nofile 1024
grid hard nofile 65536
grid soft stack 10240
grid hard stack 32768
grid soft nproc 2047
grid hard nproc 16384
EOF

cat <<EOF>>/etc/pam.d/login
session required pam_limits.so
session required /lib64/security/pam_limits.so
EOF

5.存储配置主库

## 多路径配置
/usr/lib/udev/scsi_id -g -u /dev/sda

4cat /etc/multipath.conf
devices {
device {
vendor "LENOVO"
product "DE_Series"
product_blacklist "Universal Xport"
path_grouping_policy "group_by_prio"
path_checker "rdac"
features "2 pg_init_retries 50"
hardware_handler "1 rdac"
prio "rdac"
failback immediate
rr_weight "uniform"
no_path_retry 30
retain_attached_hw_handler yes
detect_prio yes
}

}
multipaths {
      multipath {
              wwid                    36d039ea0005663f6000000a865463f86
              alias                   ocr1
      }
           multipath {
              wwid                    36d039ea0005677390000007565463f82
              alias                   ocr2
      }
           multipath {
              wwid                    36d039ea0005663f6000000a965463f88
              alias                   ocr3
      }主库
           multipath {
              wwid                    36d039ea0005677390000007965463ff1
              alias                   data1
      }
           multipath {
              wwid                    36d039ea0005663f6000000ad65463ff7
              alias                   data2
      }
           multipath {
              wwid                    36d039ea0005677390000007a65463ff3
              alias                   data3
      }
           multipath {
              wwid                    36d039ea0005663f6000000ae65463ff9
              alias                   data4
      }
           multipath {
              wwid                    36d039ea0005677390000007665463feb
              alias                   data5
      }
           multipath {
              wwid                    36d039ea0005663f6000000aa65463ff2
              alias                   data6
      }
           multipath {
              wwid                    36d039ea0005677390000007765463fed
              alias                   data7
      }
           multipath {
              wwid                    36d039ea0005663f6000000ab65463ff3
              alias                   data8
      }
           multipath {
              wwid                    36d039ea0005677390000007865463fef
              alias                   arc01
      }
           multipath {
              wwid                    36d039ea0005663f6000000ac65463ff5
              alias                   arc02
      }

}
blacklist {
      wwid 3600062b215db09402cd377b067737790  # 替换/usr/lib/udev/scsi_id -g -u /dev/sda的值
       devnode "^(ram|raw|loop|fd|md|dm-|sr|scd|st)[0-9]*"
       devnode "^hd[a-z]"
}sql

# 启动多路径服务
systemctl enable multipathd.service --now
multipath -F
multipath -v2

# 节点1 磁盘格式化
parted /dev/mapper/ocr1 mklabel gpt mkpart primary "1 -1"
parted /dev/mapper/ocr2 mklabel gpt mkpart primary "1 -1"
parted /dev/mapper/ocr3 mklabel gpt mkpart primary "1 -1"
parted /dev/mapper/data1 mklabel gpt mkpart primary "1 -1"
parted /dev/mapper/data2 mklabel gpt mkpart primary "1 -1"
parted /dev/mapper/data3 mklabel gpt mkpart primary "1 -1"
parted /dev/mapper/data4 mklabel gpt mkpart primary "1 -1"
parted /dev/mapper/data5 mklabel gpt mkpart primary "1 -1"
parted /dev/mapper/data6 mklabel gpt mkpart primary "1 -1"
parted /dev/mapper/data7 mklabel gpt mkpart primary "1 -1"
parted /dev/mapper/data8 mklabel gpt mkpart primary "1 -1"
parted /dev/mapper/arch01 mklabel gpt mkpart primary "1 -1"
parted /dev/mapper/arch02 mklabel gpt mkpart primary "1 -1"
partprobe
# 节点2 刷新分区表
partprobe

# 节点1 /2 初始化oracleasm信息
# configure asm disk
yum install kmod-oracleasm.x86_64  -y
yum install oracleasm-support.x86_64  -y
[root@db01 ~]# oracleasm init
[root@db01 ~]# oracleasm configure -i主库
Default user to own the driver interface []: grid
Default group to own the driver interface []: asmadmin
Start Oracle ASM library driver on boot (y/n) [n]: y
Scan for Oracle ASM disks on boot (y/n) [y]: y
Writing Oracle ASM library driver configuration: done
# 节点1 创建asm磁盘
oracleasm createdisk  asmdisk1 /dev/mapper/ocr1 p1
oracleasm createdisk  asmdisk2/dev/mapper/ocr2  p1
oracleasm createdisk  asmdisk3 /dev/mapper/ocr3  p1
oracleasm createdisk  asmdisk4 /dev/mapper/data1 p1
oracleasm createdisk  asmdisk5 /dev/mapper/data2 p1
oracleasm createdisk  asmdisk6 /dev/mapper/data3 p1
oracleasm createdisk  asmdisk7 /dev/mapper/data4 p1
oracleasm createdisk  asmdisk8 /dev/mapper/data5 p1
oracleasm createdisk  asmdisk9 /dev/mapper/data6 p1
oracleasm createdisk  asmdisk10 /dev/mapper/data7 p1
oracleasm createdisk  asmdisk11 /dev/mapper/data8 p1
oracleasm createdisk  asmdisk12 /dev/mapper/arch01p1
oracleasm createdisk  asmdisk13 /dev/mapper/arch02p1

# 节点2 查看信息
oracleasm scandisks
oracleasm listdisks

6.grid软件部署

6.1.解压对应的安装包

# 软件包位置 
[root@shucairac01 soft]# tree -R ./
./主库
|-- Linux
|   |-- p35319490_190000_Linux-x86-64.zip
|   |-- p35320081_190000_Linux-x86-64.zip
|   |-- p35354406_190000_Linux-x86-64.zip
|   |-- p6880880_190000_Linux-x86-64.zip
|   `-- PatchSearch.xml
|-- LINUX.X64_193000_db_home.zip
|-- LINUX.X64_193000_grid_home.zip
`-- OracleLinux-R7-U9-Server-x86_64-dvd.iso

# 解压grid软件包
chown -R grid:oinstall /soft
su - grid -c "unzip -q /soft/LINUX.X64_193000_grid_home.zip -d /u01/app/19.3.0/grid/"
su - grid -c "unzip -q -o /soft/p6880880_190000_Linux-x86-64.zip -d /u01/app/19.3.0/grid"
# 解压DB软件包
chown -R oracle:oinstall /soft
su - oracle -c "unzip -q /soft/LINUX.X64_193000_db_home.zip -d /u01/app/oracle/product/19.3.0/db/"
su - oracle -c "unzip -q -o /soft/p6880880_190000_Linux-x86-64.zip -d /u01/app/oracle/product/19.3.0/db"

# 解压grid补订包
cd /soft/Linux/ && unzip p35319490_190000_Linux-x86-64.zip
chown grid:oinstall 35319490 -R

# 安装cvuqdisk-1.0.10-1.rpm 包
rpm -ivh /u01/app/19.3.0/grid/cv/rpm/cvuqdisk-1.0.10-1.rpm
##传输到节点二安装
scp cvuqdisk-1.0.10-1.rpm p19c02:/soft
rpm -ivh /soft/cvuqdisk-1.0.10-1.rpm

6.2.安装grid

su - grid
vncserver :2

在 vnc 客户端界面输入 shucairac01_ip:2,输入刚才输入的密码即可连接:

image-20231110111842412

image-20231110112043003

image-20231110111955679

image-20231110112110798

image-20231110112213475

添加两个节点的互信

image-20231110112241726

输入 grid 用户密码,创建用户时两节点必须保持一致。先执行 setup,再执行 test,开始互信:

image-20231110112310984

image-20231110112330470

/home/zhangzhen/桌面/天能数据库安装/数采oracle RAC + ADG.assets确保对应网卡和IP网段对应即可,19C 心跳网段需要选 ASM & Private,用于 ASM 实例的托管:

image-20231110112420041

image-20231110112455651

image-20231110112519266


image-20231110112620303

image-20231110112631034

image-20231110112641830

image-20231110112652779

image-20231110112703211

image-20231110112713419

image-20231110112730727

安装预检查,由于我们只配了一个SCAN,所以关于 DNS 相关的都无视,继续:

image-20231110112755552

两个节点执行以上脚本

image-20231110112820297

image-20231110112830121

两节点顺序执行 root.sh,先节点一执行完,再节点二执行:

image-20231110112849084

两个节点的 root.sh 都执行完之后,继续安装:

image-20231110112924324

检查集群状态:

image-20231110113055800

6.3.创建磁盘

image-20231110113211699

image-20231110113222633

7.数据库软件部署

7.1.数据库软件安装image-20231110113725939

与安装grid类似,打开vncserver :3


image-20231110113301737

image-20231110113412586

image-20231110113448061

输入 oracle 用户密码,先执行 setup,再执行 test,开始互信:

image-20231110113510024

image-20231110113525189

image-20231110113535428

image-20231110113549007

image-20231110113558865

image-20231110113607926

安装预检查,由于我们只配了一个 SCAN,所以关于 DNS 相关的都无视,继续:

image-20231110113623158

image-20231110113632262

root 用户下,两个节点顺序执行 root.sh:

image-20231110113645538

image-20231110113659199

7.2.数据库软件打补订

[root@shucairac01 Linux]# /u01/app/oracle/product/19.3.0/db/OPatch/opatchauto apply ./35320081/ -oh /u01/app/oracle/product/19.3.0/db
[root@shucairac01 Linux]# /u01/app/oracle/product/19.3.0/db/OPatch/opatchauto apply ./35354406/ -oh /u01/app/oracle/product/19.3.0/db

[oracle@shucairac01:/home/oracle]$ opatch lspatches
35354406;OJVM RELEASE UPDATE: 19.20.0.0.230718 (35354406)
35320149;OCW RELEASE UPDATE 19.20.0.0.0 (35320149)
35320081;Database Release Update : 19.20.0.0.230718 (35320081)

OPatch succeeded.

7.3.创建数据库实例

这里建库还是在第四步安装 Oracle 软件的 vnc 界面中继续:dbca

image-20231110114040620

image-20231110114051676

image-20231110114101592

image-20231110114115910

image-20231110114338853

image-20231110114349836

image-20231110114411671image-20231110114402857

image-20231110114415114

image-20231110114447466

image-20231110114457466

image-20231110114515219image-20231110114506898

image-20231110114518164

安装预检查,DNS 相关忽略:

image-20231110114532345

image-20231110114541114

image-20231110114617356

image-20231110114808911

7.4.数据库性能调整

# 登录到数据库
su - oracle
sqlplus / as sysdba;
# 备份spfile文件
create pfile='/home/oracle/pfile.ora' from spfile;

# 执行下面sql
alter system set session_cached_cursors=2000 scope=spfile;
alter system set undo_retention=5400 scope=spfile;  
alter system set processes=3000 scope=spfile;
alter system set sessions=4500 scope=spfile;
alter system set cursor_sharing=force;
alter system set archive_lag_target=1800;
alter system set memory_max_target=0 scope=spfile;
alter system set memory_target=0  scope=spfile;
alter system set sga_max_size= 287G scope=spfile;    (物理机的内存*0.7*0.8)
alter system set sga_target= 287G scope=spfile;      (物理机的内存*0.7*0.8)
alter system set pga_aggregate_limit=0     scope=spfile;
alter system set pga_aggregate_target=16G  scope=spfile;
alter system set audit_trail=none  scope=spfile;
alter system set parallel_force_local=True scope=spfile;

8.集群管理

################## grid 资源管理
# 查看集群资源
crsctl stat res -t
# 关闭某个资源
crsctl stop  res_nane
# 启动某个资源
crsctl start  res_nane
# 关闭集群 (以root身份执行)
/u01/app/19.3.0/grid/bin/crsctl stop cluster -all
# 启动集群 (以root身份执行)
/u01/app/19.3.0/grid/bin/crsctl start cluster -all
################## Oracle 资源管理
# 数据库管理
su - oracle
# 查看数据库的状态
srvctl status database -d shucai
# 关闭数据库
srvctl status database -d shucai
# 启动数据库
srvctl start database -d shucai

8.ADG 部署

注意:19C ADG可以通过 borker来配置,可以省略复杂的参数配置,本文以borker配置ADG。

8.1.主库配置静态监听

[grid@shucairac01:/home/grid]$ cat /u01/app/19.3.0/grid/network/admin/listener.ora
# listener.ora Network Configuration File: /u01/app/19.3.0/grid/network/admin/listener.ora
# Generated by Oracle configuration tools.

ENABLE_GLOBAL_DYNAMIC_ENDPOINT_LISTENER_SCAN1 = ON

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (GLOBAL_DBNAME = shucai_rw)
      (ORACLE_HOME = /u01/app/oracle/product/19.3.0/db)
      (SID_NAME = shucai1)
    )
    (SID_DESC =
      (GLOBAL_DBNAME = shucai_DGMGR)
      (ORACLE_HOME = /u01/app/oracle/product/19.3.0/db)
      (SID_NAME = shucai1)
    )
  )

VALID_NODE_CHECKING_REGISTRATION_LISTENER_SCAN1 = OFF

VALID_NODE_CHECKING_REGISTRATION_ASMNET2LSNR_ASM = SUBNET

VALID_NODE_CHECKING_REGISTRATION_ASMNET1LSNR_ASM = SUBNET

ASMNET2LSNR_ASM =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = IPC)(KEY = ASMNET2LSNR_ASM))
  )

ASMNET1LSNR_ASM =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = IPC)(KEY = ASMNET1LSNR_ASM))
  )

VALID_NODE_CHECKING_REGISTRATION_LISTENER = SUBNET

LISTENER =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = IPC)(KEY = LISTENER))
  )

ADR_BASE_LISTENER = /u01/app/grid

ENABLE_GLOBAL_DYNAMIC_ENDPOINT_ASMNET2LSNR_ASM = ON

ENABLE_GLOBAL_DYNAMIC_ENDPOINT_ASMNET1LSNR_ASM = ON

ENABLE_GLOBAL_DYNAMIC_ENDPOINT_LISTENER = ON

ADR_BASE_ASMNET2LSNR_ASM = /u01/app/grid

ADR_BASE_ASMNET1LSNR_ASM = /u01/app/grid

LISTENER_SCAN1 =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = IPC)(KEY = LISTENER_SCAN1))
  )

ADR_BASE_LISTENER_SCAN1 = /u01/app/grid


8.2.备库配置静态监听

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (GLOBAL_DBNAME = mon_ro)
      (ORACLE_HOME = /u01/app/oracle/product/19.3.0/db)
      (SID_NAME = mon)
    )
    (SID_DESC =
      (GLOBAL_DBNAME = mondg_DGMGRL)
      (ORACLE_HOME = /u01/app/oracle/product/19.3.0/db)
      (SID_NAME = mon)
    )
    (SID_DESC =
      (GLOBAL_DBNAME = shucai_ro)
      (ORACLE_HOME = /u01/app/oracle/product/19.3.0/db)
      (SID_NAME = shucai)
    )
    (SID_DESC =
      (GLOBAL_DBNAME = shucaidg_DGMGRL)
      (ORACLE_HOME = /u01/app/oracle/product/19.3.0/db)
      (SID_NAME = shucai)
    )
  )

LISTENER =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = ora-adg)(PORT = 1521))
  )

ADR_BASE_LISTENER = /u01/app/oracle


8.3.主备库tnsname配置

SHUCAI_RW =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.225.9)(PORT = 1521))
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.225.10)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = shucai_rw)
    )
  )

SHUCAI_RO =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.225.12)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = shucai_ro)
    )
  )

MON_RW =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.225.3)(PORT = 1521))
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.225.4)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = mon_rw)
    )
  )

MON_RO =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.225.12)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = mon_ro)
    )
  )

8.4.配置sys密码

# 主库
asmcmd
cp +DATADG/SHUCAI/PASSWORD/pwdshucai.282.1093287491 /tmp/orapwshucai
su - oracle
scp /tmp/orapwshucai oracle@ora-adg:$ORACLE_HOME/dbs/
# 测试登录
sqlplus sys/oracle@shucai_rw as sysdba;
sqlplus sys/oracle@shucai_ro as sysdba;

8.5.修改主库spfile文件

alter database force logging;
alter system set  log_archive_dest_1='LOCATION=+ARCDG'  scope=both;
alter system set "_disk_sector_size_override"=TRUE scope=both;
alter system set log_archive_config='DG_CONFIG=(shucai,shucaidg)';
alter system set db_unique_name='shucai' scope=spfile;
alter system set standby_file_management='AUTO';                                        
alter system set db_file_name_convert='/oradata/shucai','+DATADG' scope=spfile;
alter system set log_file_name_convert='/oradata/shucai','+DATADG' scope=spfile;
alter system set fal_server='shucai_ro' scope=both; 

select * from v$dataguard_config;

ALTER DATABASE ADD STANDBY LOGFILE THREAD 1 GROUP 11  size 200M;
ALTER DATABASE ADD STANDBY LOGFILE THREAD 1 GROUP 12  size 200M;
ALTER DATABASE ADD STANDBY LOGFILE THREAD 1 GROUP 13  size 200M;
ALTER DATABASE ADD STANDBY LOGFILE THREAD 2 GROUP 14  size 200M;
ALTER DATABASE ADD STANDBY LOGFILE THREAD 2 GROUP 15  size 200M;
ALTER DATABASE ADD STANDBY LOGFILE THREAD 2 GROUP 16  size 200M;

create pfile='/home/oracle/pfile.bak' from spfile;

8.6.修改备库spfile文件

cat $ORACLE_HOME/dbs/initshucai.ora
*._disk_sector_size_override=TRUE
*.archive_lag_target=1800
*.audit_file_dest='/u01/app/oracle/admin/shucaidg/adump'
*.audit_trail='NONE'
*.cluster_database=false
*.compatible='19.0.0'
*.control_files='/oradata/shucai/controlfile/control01.ctl'
*.cursor_sharing='FORCE'
*.db_block_size=8192
*.db_file_name_convert='+DATADG','/oradata/shucai'
*.log_file_name_convert='+DATADG','/oradata/shucai'
*.db_name='shucai'
*.db_unique_name='shucaidg'
*.diagnostic_dest='/u01/app/oracle'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=shucaiXDB)'
family:dw_helper.instance_mode='read-only'
*.local_listener='-oraagent-dummy-'
*.log_archive_config='DG_CONFIG=(shucai,shucaidg)'
*.log_archive_dest_1='LOCATION=/arch/shucai/'
*.memory_max_target=0
*.memory_target=0
*.nls_language='AMERICAN'
*.nls_territory='AMERICA'
*.open_cursors=300
*.parallel_force_local=TRUE
*.pga_aggregate_limit=0
*.pga_aggregate_target=16G
*.processes=3000
*.remote_login_passwordfile='exclusive'
*.session_cached_cursors=2000
*.sessions=4500
*.sga_max_size=128G
*.sga_target=128G
*.standby_file_management='AUTO'
*.undo_retention=5400
*.undo_tablespace='UNDOTBS1'

# 创建一个数采的spfile文件
export ORACLE_SID=shucai
sqlplus / as sysdba;
create spfile from pfile="$ORACLE_HOME/dbs/initshucai.ora"
startup nomount;

8.7.创建备库

# 备库创建对应的目录
mkdir -p /u01/app/oracle/admin/shucaidg/adump
mkdir -p /oradata/shucai/controlfile/
mkdir -p /oradata/shucai/shucai/onlinelog/

# 克隆一个备库
rman target sys/oracle@shucai_rw auxiliary sys/oracle@shucai_ro
duplicate target database for standby from active database dorecover nofilenamecheck;

#  打开broker
asmcmd 
mkdir DATADG/SHUCAI/BROKER/
asmcmd 
mkdir ARCDG/SHUCAI/BROKER/
ALTER SYSTEM SET DG_BROKER_CONFIG_FILE1 = '+DATADG/SHUCAI/BROKER/DR1.DAT' SCOPE=BOTH;
ALTER SYSTEM SET DG_BROKER_CONFIG_FILE2 = '+ARCDG/SHUCAI/BROKER/DR2.DAT' SCOPE=BOTH;
alter system set dg_broker_start=true;


mkdir -p /oradata/shucai/BROKER
mkdir -p /arch/shucai/BROKER
ALTER SYSTEM SET DG_BROKER_CONFIG_FILE1 = '/oradata/shucai/BROKER/DR1.DAT' SCOPE=BOTH;
ALTER SYSTEM SET DG_BROKER_CONFIG_FILE2 = '/arch/shucai/BROKERDR2.DAT' SCOPE=BOTH;
alter system set dg_broker_start=true;

8.8.配置ADG

# 添加主库与备库
dgmgrl sys/oracle@shucai_rw
# 添加主库(database is : 是数据库的unique_name, connect identifieris : 是数据库的tnsname)
CREATE CONFIGURATION shucai_config AS  PRIMARY DATABASE IS  shucai  CONNECT IDENTIFIER IS shucai_rw;
# 添加备库
ADD DATABASE shucaidg AS CONNECT IDENTIFIER IS shucai_ro MAINTAINED AS PHYSICAL; 
# 激活配置
ENABLE CONFIGURATION;
# 查看配置
SHOW CONFIGURATION ;

Configuration - shucai_config           ##  配置名称

  Protection Mode: MaxPerformance       ##  数据库ADG保护模式
  Members:
  shucai   - Primary database                 ##  数据库当前的角色为主库
    shucaidg - Physical standby database      ##  数据库当前的角色备库

Fast-Start Failover:  Disabled                # observer的配置(需要一个仲裁节点,生产不建议使用)   

Configuration Status:
SUCCESS   (status updated 51 seconds ago

# 查看切换帮忙命令
help SWITCHOVER;
SWITCHOVER TO <standby database name> [WAIT [<timeout in seconds>]];
# 切换测试(主备切换,把数据库换到备库)
SWITCHOVER TO shucaidg

image-20231110113222633

15.集群管理

################## grid 资源管理
# 查看集群资源
crsctl stat res -t 
# 关闭某个资源 
crsctl stop  res_nane
# 启动某个资源 
crsctl start  res_nane
# 关闭集群 (以root身份执行)
/u01/app/19.3.0/grid/bin/crsctl stop cluster -all
# 启动集群 (以root身份执行)
/u01/app/19.3.0/grid/bin/crsctl start cluster -all
################## Oracle 资源管理
# 数据库管理
su - oracle
# 查看数据库的状态
srvctl status database -d mom
# 关闭数据库
srvctl status database -d mom
# 启动数据库
srvctl start database -d mom

16.9.测试sql

# 在数据库节点1创建一个t1表插入一条数据
su - oracle
sas
create table t1(id int,name varchar2(20));
insert into t1 values(100,'test1');
commit;
alter system switch logfile;
/
# 在数据库节点2查看你的创建信息
su - oracle
sas
 # 查看是否能查看到t1查的信息
select * from t1; 
create table t1(id int,name varchar2(20));
insert into t1 values(200,'test2');
commit;
# 查看节点二是否能查看到t1查的信息,以及新插入的数据
select * from t1;   
alter system switch logfile;
/

#  执行您要发测试(RAC/ADG),ADG 切换测试与上步骤一样
su - oracle
sas
create table t1(id int,name varchar2(20));
insert into t1 values(300,'test3');
commit;
alter system switch logfile;


点击加载更多