Oracle_19c_RAC_部署

系统规划

服务器网络规划

服务器
(HostName)
Domain 项目 网卡 IP 所属网络 备注
node1 node1
node1.racdb.local
public ip 网卡1 192.168.0.181 业务网
node1-vip
node1-vip.racdb.local
vip 网卡1 192.168.0.191 业务网
node1-priv
node1-priv.racdb.local
private ip 网卡2 192.168.122.181 私网
X BMC 管理口 192.168.100.181 管理网 可连外网
node2 node2
node2.racdb.local
public ip 网卡1 192.168.0.182 业务网
node2-vip
node2-vip.racdb.local
vip 网卡1 192.168.0.192 业务网
node-scan
node-scan.racdb.local
scan ip 网卡1 192.168.0.202 业务网
node2-priv
node2-priv.racdb.local
private ip 网卡2 192.168.122.182 私网
BMC 管理口 192.168.100.181 管理网 可连外网
node-scan
node-scan.racdb.local
scan ip 网卡1 192.168.0.201 业务网 如采用/etc/hosts解析 则只能使用一个ip
建议采用DNS解析 配置3个IP以上的A记录

存储规划

磁盘阵列(RAID 10)

磁盘组

磁盘组名称 磁盘大小 ASM磁盘名称 作用
OCR 10G ocr1 OCR
OCR 10G ocr2 OCR
OCR 10G ocr3 OCR
DATA 2T data1 Data Files
FRA 1T fra1 Fast Recovery area

数据库软件及补丁程序

软件名称 描述 版本 平台 下载地址
Oracle Database 19c Grid Infrastructure 数据网格基础设施 19.3 Linux x86-64 下载链接
Oracle Database 19c 数据库 19.3 Linux x86-64 下载链接
Oracle Enterprise Manager Cloud Control 集群及数据库管理 13c Release 5 (13.5.0.0.0) Linux x86-64 下载链接
p6880880 OPatch补丁 12.2.0.1.41 Linux x86-64 商业补丁 不提供下载
p35940989 Grid Infrastructure补丁 19.22.0.0.240116 Linux x86-64 商业补丁 不提供下载
p35943157 Database补丁 19.22.0.0.240116 Linux x86-64 商业补丁 不提供下载

操作系统安装及设置

操作系统安装及设置

安装必要支持包及系统更新

1
2
3
4
5
6
7
8
9
yum install epel-release oracle-database-preinstall-19c chrony -y
yum update -y

#启用时间同步服务
systemctl enable --now chronyd

#禁用avahi服务
chkconfig avahi-daemon off
service avahi-daemon stop

主机名设置

1
hostnamectl set-hostname node1
1
hostnamectl set-hostname node2

网络设置

只需要设置public 和 private IP即可

1
2
nmcli connection add con-name "public" type ethernet ifname enp1s0 ipv4.method manual ipv4.addresses 192.168.0.181/24 ipv4.gateway 192.168.0.1 ipv4.dns 202.99.166.4
nmcli connection add con-name "private" type ethernet ifname enp2s0 ipv4.method manual ipv4.addresses 192.168.122.181/24 ipv4.gateway 192.168.122.1
1
2
nmcli connection add con-name "public" type ethernet ifname enp1s0 ipv4.method manual ipv4.addresses 192.168.0.182/24 ipv4.gateway 192.168.0.1 ipv4.dns 202.99.166.4
nmcli connection add con-name "private" type ethernet ifname enp2s0 ipv4.method manual ipv4.addresses 192.168.122.182/24 ipv4.gateway 192.168.122.1

主机名解析设置

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
cat >> /etc/hosts << EOF
# Public
192.168.0.181 node1 node1.racdb.local
192.168.0.182 node2 node2.racdb.local

# Private
192.168.122.181 node1-priv node1-priv.racdb.local
192.168.122.182 node2-priv node2-priv.racdb.local

# Virtual
192.168.0.191 node1-vip node1-vip.racdb.local
192.168.0.192 node2-vip node2-vip.racdb.local

# SCAN
192.168.0.201 node-cluster-scan node-cluster-scan.racdb.local
EOF

安全设置

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
#SELinux
sed -i 's/^SELINUX=.*/SELINUX=permissive/g' /etc/sysconfig/selinux
setenforce permissive

#关闭防火墙
systemctl disable --now firewalld

#启用shm
#cat >>/etc/fstab<<EOF
#tmpfs /dev/shm tmpfs defaults,size=4G 0 0
EOF

创建用户和组

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# 创建用户组
groupadd -g 54321 oinstall
groupadd -g 54322 dba
groupadd -g 54323 oper
groupadd -g 54324 backupdba
groupadd -g 54325 dgdba
groupadd -g 54326 kmdba
groupadd -g 54327 asmdba
groupadd -g 54328 asmoper
groupadd -g 54329 asmadmin
groupadd -g 54330 racdba

# 创建用户并加入组
useradd -u 54321 -g oinstall -G dba,asmdba,backupdba,dgdba,kmdba,racdba,oper oracle 
useradd -u 54331 -g oinstall -G dba,asmdba,asmoper,asmadmin,racdba grid

# 以上命令会与perinstall软件包创建的用户和组冲突 需将oracle用户加入asmdba组
usermod -aG asmdba oracle

# 设置用户密码
echo "oracle" | passwd oracle --stdin
echo "grid" | passwd grid --stdin

#登录配置
#cat >>/etc/pam.d/login<<EOF
#ORACLE SETTING
#session required pam_limits.so

创建安装目录

1
2
3
4
5
6
7
mkdir -p /u01/app/19.3.0/grid
mkdir -p /u01/app/grid
mkdir -p /u01/app/oracle/product/19.3.0/dbhome_1

chown -R grid:oinstall /u01
chown -R oracle:oinstall /u01/app/oracle
chmod -R 775 /u01/

设置环境变量

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# grid用户
cat >> /home/grid/.bash_profile << EOF
# oracle grid
export TMP=/tmp
export TMPDIR=$TMP
export ORACLE_HOSTNAME=node1.racdb.local
export ORACLE_BASE=/u01/app/grid
export ORACLE_HOME=/u01/app/19.3.0/grid
export ORACLE_SID=+ASM1
export ORACLE_TERM=xterm
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
export CV_ASSUME_DISTID=OL8
EOF

# oracle用户
cat >> /home/oracle/.bash_profile << EOF
# oracle
export TMP=/tmp
export TMPDIR=$TMP
export ORACLE_HOSTNAME=node1.racdb.local
export ORACLE_UNQNAME=racdb
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=/u01/app/19.3.0/dbhome_1
export ORACLE_SID=racdb1
export ORACLE_TERM=xterm
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
export CV_ASSUME_DISTID=OL8
EOF
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# grid用户
cat >> /home/grid/.bash_profile << EOF
# oracle grid
export TMP=/tmp
export TMPDIR=$TMP
export ORACLE_HOSTNAME=node2.racdb.local
export ORACLE_BASE=/u01/app/grid
export ORACLE_HOME=/u01/app/19.3.0/grid
export ORACLE_SID=+ASM2
export ORACLE_TERM=xterm
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
export CV_ASSUME_DISTID=OL8
EOF

# oracle用户
cat >> /home/oracle/.bash_profile << EOF
# oracle
export TMP=/tmp
export TMPDIR=$TMP
export ORACLE_HOSTNAME=node.racdb.local
export ORACLE_UNQNAME=racdb
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=/u01/app/19.3.0/dbhome_1
export ORACLE_SID=racdb2
export ORACLE_TERM=xterm
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
export CV_ASSUME_DISTID=OL8
EOF

SSH免验证设置

1
2
3
4
5
6
7
8
9
su - grid
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
ssh-copy-id node2
exit
 
su - oracle
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
ssh-copy-id node2
exit
1
2
3
4
5
6
7
8
9
su - grid
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
ssh-copy-id node1
exit
 
su - oracle
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
ssh-copy-id node1
exit

解决图形安装程序中文乱码问题

1
2
mkdir -p /usr/share/fonts/zh_CN/TrueType/
将中文字体文件放入

ASMFD存储设置

存储规划

LUN 磁盘组 容量 磁盘
ocr1 OCR 10GiB vdb
ocr2 OCR 10GiB vdc
ocr3 OCR 10GiB vdd
data1 DATA vde
fra1 FRA vdf

存储服务器配置

iscsi启动器配置

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#iscsi发现
#iqn.1988-12.com.oracle:3579aec2ca8f:为客户端/etc/iscsi/initiatorname.iscsi配置的值 各个服务节点此值均不相同 请修改该值
#192.168.0.183:存储服务器地址
#192.168.0.183:3260,1:存储服务器门户地址
[root@localhost ~]# iscsiadm -m discovery -t st -p 192.168.0.183 192.168.0.183:3260,1 iqn.1988-12.com.oracle:3579aec2ca8f
192.168.0.183:3260,1 iqn.2003-01.org.linux-iscsi.storage.x8664:sn.1fa9ee27b863

#Login登录
#iqn.2003-01.org.linux-iscsi.storage.x8664:sn.1fa9ee27b863:为上一步发现的Target名称
iscsiadm -m node -T iqn.2003-01.org.linux-iscsi.storage.x8664:sn.1fa9ee27b863 -l
#自动登录 一般情况下不需要执行 除非无法自动登录
#iscsiadm -m node -T iqn.2003-01.org.linux-iscsi.storage.x8664:sn.1fa9ee27b863 -p 192.168.1.183 -o update -n node.startup -v automatic

#查看已发现的磁盘
[root@localhost ~]# tree /var/lib/iscsi/
/var/lib/iscsi/
├── ifaces
├── isns
├── nodes
│   └── iqn.2003-01.org.linux-iscsi.storage.x8664:sn.1fa9ee27b863
│       └── 192.168.0.183,3260,1
│           └── default
├── send_targets
│   ├── 192.168.0.18*,3260
│   │   └── st_config
│   ├── 192.168.0.183,3260
│   │   ├── iqn.2003-01.org.linux-iscsi.storage.x8664:sn.1fa9ee27b863,192.168.0.183,3260,1,default -> /var/lib/iscsi/nodes/iqn.2003-01.org.linux-iscsi.storage.x8664:sn.1fa9ee27b863/192.168.0.183,3260,1
│   │   └── st_config
│   └── 192.168.0.*,3260
│       └── st_config
├── slp
└── static

[root@localhost ~]# lsblk 
NAME        MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda           8:0    0    8G  0 disk 
sdb           8:16   0   20G  0 disk 
sdc           8:32   0   20G  0 disk 
sr0          11:0    1 13.2G  0 rom  
vda         251:0    0   40G  0 disk 
├─vda1      251:1    0  600M  0 part /boot/efi
├─vda2      251:2    0    1G  0 part /boot
└─vda3      251:3    0 38.4G  0 part 
  ├─ol-root 252:0    0 34.5G  0 lvm  /
  └─ol-swap 252:1    0    4G  0 lvm  [SWAP]

其他常用命令

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
#增加iscsi存储
(1)发现iscsi存储: iscsiadm -m discovery -t st -p ISCSI_IP
(2)查看iscsi发现记录: iscsiadm -m node
(3)登录iscsi存储: iscsiadm -m node -T LUN_NAME -p ISCSI_IP -l
(4)开机自动: iscsiadm -m node –T LUN_NAME -p ISCSI_IP --opupdate -n node.startup -vautomatic
 
删除iscsi存储
(1)登出iscsi存储 iscsiadm -m node -T LUN_NAME -p ISCSI_IP -u
(2)退出iscsi所有登录 iscsiadm -m node --logoutall=all
(3)删除iscsi发现记录:iscsiadm -m node -o delete -T LUN_NAME -p ISCSI_IP

建立ASM存储

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#设置环境变量
[root@node1 bin]# export ORACLE_HOME=/u01/app/19.3.0/grid
[root@node1 bin]# export ORACLE_BASE=/tmp
[root@node1 bin]# export PATH=$ORACLE_HOME/bin:$PATH

#检查是否支持AF
[root@node1 bin]# afddriverstate supported
AFD-9200: Supported

#标记磁盘为ASMFD
[root@node1 bin]# asmcmd afd_label OCR1 /dev/vdb --migrate --init
[root@node1 bin]# asmcmd afd_label OCR2 /dev/vdc --migrate --init
[root@node1 bin]# asmcmd afd_label OCR3 /dev/vdd --migrate --init
[root@node1 bin]# asmcmd afd_label DATA1 /dev/vde --migrate --init
[root@node1 bin]# asmcmd afd_label FRA1 /dev/vdf --migrate --init

# asmcmd afd_label OCR1 /dev/vdb --migrate --init
# asmcmd afd_label DATA1 /dev/vdc --migrate --init
# asmcmd afd_label FRA1 /dev/vdd --migrate --init

#查看标记成果
[root@node1 bin]# asmcmd afd_lslbl /dev/mapper/mpatha
--------------------------------------------------------------------------------
Label                     Duplicate  Path
================================================================================
OCR1                                  /dev/mapper/mpatha
[root@node1 bin]# asmcmd afd_lslbl /dev/mapper/mpathb
--------------------------------------------------------------------------------
Label                     Duplicate  Path
================================================================================
DATA1                                 /dev/mapper/mpathb
[root@node1 bin]# asmcmd afd_lslbl /dev/mapper/mpathc
--------------------------------------------------------------------------------
Label                     Duplicate  Path
================================================================================
FRA1                                  /dev/mapper/mpathc


#更改权限
[root@node1 bin]# chown grid:asmadmin /dev/vd[b,c,d,e,f]

#扫描磁盘
[root@node1 bin]# asmcmd afd_scan
[root@node1 bin]# ls /dev/oracleafd/disks/
DATA1  FRA1  OCR1

其他指令

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
[root@node1 grid]# asmcmd afd_lsdsk
--------------------------------------------------------------------------------
Label                     Filtering   Path
================================================================================
DATA1                       ENABLED   /dev/mapper/mpathb
FRA1                        ENABLED   /dev/mapper/mpathc
OCR1                        ENABLED   /dev/mapper/mpatha

asmcmd afd_configure

[root@node1 bin]# afdload start
AFD-641: Checking for existing AFD installation.
AFD-643: Validating AFD installation files for operating system.
AFD-9393: Verifying ASM administrator setup.
AFD-637: Loading installed AFD drivers.
AFD-9154: Loading 'oracleafd.ko' driver.
AFD-649: Verifying AFD devices.
AFD-9156: Detecting control device '/dev/oracleafd/admin'.
AFD-9294: updating file /etc/sysconfig/oracledrivers.conf
AFD-9322: completed

查看日志/u01/app/grid/diag/afdboot/user_root/host_3462916399_110/trace/alert.log


[grid@node1 bin]$ asmcmd lsdsk --discovery
Path
AFD:DATA1
AFD:FRA1
AFD:OCR1


#静默安装Grid
$ORACLE_HOME/gridSetup.sh -silent -skipPrereqs -waitForCompletion  -printtime  \
INVENTORY_LOCATION=/oracle/app/oraInventory \
SELECTED_LANGUAGES=en \
oracle.install.option=CRS_CONFIG \
ORACLE_BASE=/oracle/app/grid \
ORACLE_HOME=/oracle/app/19.3.0/grid \
oracle.install.asm.OSDBA=dba \
oracle.install.asm.OSOPER=oinstall \
oracle.install.asm.OSASM=oinstall \
oracle.install.crs.config.scanType=LOCAL_SCAN \
oracle.install.crs.config.gpnp.scanName=rac19c-scan \
oracle.install.crs.config.gpnp.scanPort=1521 \
oracle.install.crs.config.gpnp.configureGNS=false \
oracle.install.crs.config.ClusterConfiguration=STANDALONE \
oracle.install.crs.config.clusterName=rac19ccluster \
oracle.install.crs.config.gpnp.configureGNS=false \
oracle.install.crs.config.clusterNodes=19crac1:19crac1-vip \
oracle.install.crs.config.networkInterfaceList=ens192:10.10.10.0:1,ens224:10.10.11.0:5 \
oracle.install.crs.configureGIMR=false \
oracle.install.asm.configureGIMRDataDG=false \
oracle.install.asm.configureAFD=true \
oracle.install.crs.configureRHPS=false \
oracle.install.crs.config.storageOption=FLEX_ASM_STORAGE \
oracle.install.crs.config.useIPMI=false \
oracle.install.asm.SYSASMPassword=Htzoracle123 \
oracle.install.asm.diskGroup.diskDiscoveryString=/dev/mapper/* \
oracle.install.asm.diskGroup.name=rac19c_ocr \
oracle.install.asm.diskGroup.disksWithFailureGroupNames=/dev/mapper/ocr1,,/dev/mapper/ocr2,,/dev/mapper/ocr3, \
oracle.install.asm.diskGroup.disks=/dev/mapper/ocr1,/dev/mapper/ocr2,/dev/mapper/ocr3 \
oracle.install.asm.diskGroup.redundancy=NORMAL \
oracle.install.asm.diskGroup.AUSize=4 \
oracle.install.asm.monitorPassword=Htzoracle123 \
oracle.install.asm.configureGIMRDataDG=false

注意事项

多路径问题

Oracle 19c AFD不支持存储的多路径 详见文章

https://www.cnblogs.com/PiscesCanon/p/14829991.html

参考资料

ASMFD的教程

https://dbtan.com/2020/03/oracle-19c-rac-installation-and-upgrade-ru.html#32_%E7%A6%81%E7%94%A8_ASM_%E5%AE%9E%E4%BE%8B%E7%9A%84_AMM

官方安装教程

链接

其他教程

链接

链接

英文

Grid Infrastruct安装

解压文件及升级补丁

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
su grid
source ~/.bash_profile

#GI软件
unzip LINUX.X64_193000_grid_home.zip -d $ORACLE_HOME
#OPatch
unzip p6880880_190000_Linux-x86-64.zip -d $ORACLE_HOME
#GI补丁
unzip p35940989_190000_Linux-x86-64.zip -d $ORACLE_HOME
#打补丁及安装 必须在X11桌面环境下启动安装程序
$ORACLE_HOME/gridSetup.sh -applyRU /soft/33182768 

# cat >> $ORACLE_HOME/cv/admin/cvu_config << EOF
# CV_ASSUME_DISTID=OL8
# EOF

# #root下执行
# CVUQDISK_GRP=oinstall; export CVUQDISK_GRP
# rpm -iv /u01/app/19.3.0/grid/cv/rpm/cvuqdisk-1.0.10-1.rpm
# scp $ORACLE_HOME/cv/rpm/cvuqdisk-1.0.10-1.rpm root@node2:/tmp
1
2
3
4
5
6
7
8
# #grid下执行
# cat >> $ORACLE_HOME/cv/admin/cvu_config << EOF
# CV_ASSUME_DISTID=OL8
# EOF

# #root下执行
# CVUQDISK_GRP=oinstall; export CVUQDISK_GRP
# rpm -iv /tmp/cvuqdisk-1.0.10-1.rpm

安装GRID

图形界面安装Grid Infrastructure

点击下一步之前 运行

1
2
3
4
5
6
7
# mv /usr/bin/scp /usr/bin/scp.orig

# cat > /usr/bin/scp << 'EOF'
# /usr/bin/scp.orig -T $*
# EOF

# chmod 555 /usr/bin/scp

安装完成之后 执行

1
# mv /usr/bin/scp.orig /usr/bin/scp

如果不显示ASM磁盘 root运行oracleasm scandisks命令

密码 TongYongMiMa2025

物理内存 至少8G

SWAP 至少4G

SCAN IP 至少为3个

AVAHI-DAEMON

shm 2048

忽略这个错误

安装后检查

查看资源状态

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
[grid@node1 grid]$ /u01/app/19.3.0/grid/bin/crsctl status resource -t
--------------------------------------------------------------------------------
Name           Target  State        Server                   State details       
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.LISTENER.lsnr
               ONLINE  ONLINE       node1                    STABLE
               ONLINE  ONLINE       node2                    STABLE
ora.chad
               ONLINE  ONLINE       node1                    STABLE
               ONLINE  ONLINE       node2                    STABLE
ora.net1.network
               ONLINE  ONLINE       node1                    STABLE
               ONLINE  ONLINE       node2                    STABLE
ora.ons
               ONLINE  ONLINE       node1                    STABLE
               ONLINE  ONLINE       node2                    STABLE
ora.proxy_advm
               OFFLINE OFFLINE      node1                    STABLE
               OFFLINE OFFLINE      node2                    STABLE
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.ASMNET1LSNR_ASM.lsnr(ora.asmgroup)
      1        ONLINE  ONLINE       node1                    STABLE
      2        ONLINE  ONLINE       node2                    STABLE
ora.LISTENER_SCAN1.lsnr
      1        ONLINE  ONLINE       node2                    STABLE
ora.LISTENER_SCAN2.lsnr
      1        ONLINE  ONLINE       node1                    STABLE
ora.LISTENER_SCAN3.lsnr
      1        ONLINE  ONLINE       node1                    STABLE
ora.OCR.dg(ora.asmgroup)
      1        ONLINE  ONLINE       node1                    STABLE
      2        ONLINE  ONLINE       node2                    STABLE
ora.asm(ora.asmgroup)
      1        ONLINE  ONLINE       node1                    Started,STABLE
      2        ONLINE  ONLINE       node2                    Started,STABLE
ora.asmnet1.asmnetwork(ora.asmgroup)
      1        ONLINE  ONLINE       node1                    STABLE
      2        ONLINE  ONLINE       node2                    STABLE
ora.cvu
      1        ONLINE  ONLINE       node1                    STABLE
ora.node1.vip
      1        ONLINE  ONLINE       node1                    STABLE
ora.node2.vip
      1        ONLINE  ONLINE       node2                    STABLE
ora.qosmserver
      1        ONLINE  ONLINE       node1                    STABLE
ora.scan1.vip
      1        ONLINE  ONLINE       node2                    STABLE
ora.scan2.vip
      1        ONLINE  ONLINE       node1                    STABLE
ora.scan3.vip
      1        ONLINE  ONLINE       node1                    STABLE
--------------------------------------------------------------------------------

检查CRS

1
2
3
4
5
[grid@node1 grid]$ /u01/app/19.3.0/grid/bin/crsctl check crs
CRS-4638: Oracle High Availability Services is online
CRS-4537: Cluster Ready Services is online
CRS-4529: Cluster Synchronization Services is online
CRS-4533: Event Manager is online

查询磁盘组状态

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
[grid@node1 bin]$ ./sqlplus / as sysasm

SQL*Plus: Release 19.0.0.0.0 - Production on Sat May 17 14:56:40 2025
Version 19.22.0.0.0

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


Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.22.0.0.0

SQL> select Name, state from v$asm_diskgroup;

NAME			       STATE
------------------------------ -----------
OCR			       MOUNTED
DATA			       MOUNTED
FRA			       MOUNTED

SQL> 

常见问题及解决

执行root.sh失败

查看如下位置日志文件

1
/u01/app/grid/crsdata/node1/crsconfig/rootcrs_node1_2025-05-16_09-15-52PM.log

Database安装

解压文件及升级补丁

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
su oracle
source ~/.bash_profile

#Database软件
unzip LINUX.X64_193000_db_home.zip -d $ORACLE_HOME
#OPatch
unzip p6880880_190000_Linux-x86-64.zip -d $ORACLE_HOME
#DB补丁
unzip p35943157_190000_Linux-x86-64.zip -d $ORACLE_HOME
#打补丁及安装 必须在X11桌面环境下启动安装程序
$ORACLE_HOME/runInstaller.sh -applyRU /soft/35943157 

# cat >> $ORACLE_HOME/cv/admin/cvu_config << EOF
# CV_ASSUME_DISTID=OL8
# EOF

# #root下执行
# CVUQDISK_GRP=oinstall; export CVUQDISK_GRP
# rpm -iv /u01/app/19.3.0/grid/cv/rpm/cvuqdisk-1.0.10-1.rpm
# scp $ORACLE_HOME/cv/rpm/cvuqdisk-1.0.10-1.rpm root@node2:/tmp

图形界面安装DB

创建数据库

1
[oracle@node1 app]$ $ORACLE_HOME/bin/dbca

EMCC安装

https://blog.csdn.net/jnrjian/article/details/125181210

日常运维

https://blog.csdn.net/weixin_63131036/article/details/135789164

最佳实践参数配置

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
--开启强制归档
ALTER DATABASE FORCE LOGGING;
--设置 30分钟 强制归档
ALTER SYSTEM SET ARCHIVE_LAG_TARGET=1800 SCOPE=BOTH SID='*';
--设置期望undo保持时间3h
ALTER SYSTEM SET UNDO_RETENTION=21600 SCOPE=BOTH SID='*';
--关闭UNDO_RETENTION的自动调整
ALTER SYSTEM SET "_undo_autotune"=FALSE SCOPE=BOTH SID='*';
--调整session最大打开cursor数量
ALTER SYSTEM SET OPEN_CURSORS=2000 SCOPE=BOTH SID='*';
--调整trace、alert日志最大为2048m
ALTER SYSTEM SET MAX_DUMP_FILE_SIZE='2048m' SCOPE=BOTH SID='*';
--设置standby file自动管理,DG环境用处大
ALTER SYSTEM SET STANDBY_FILE_MANAGEMENT=AUTO SCOPE=BOTH SID='*';
--db_cache_advice,建议采用手工内存管理,避免系统性能下降
ALTER SYSTEM SET DB_CACHE_ADVICE='off' SCOPE=BOTH SID='*';
--关闭初始化extent的延迟创建功能
ALTER SYSTEM SET DEFERRED_SEGMENT_CREATION=FALSE SCOPE=BOTH SID='*';
--将DDL操作写入alert文件
ALTER SYSTEM SET ENABLE_DDL_LOGGING=TRUE SCOPE=BOTH SID='*';
--db_block_checksum 是对 block 做物理性检查,用于 DBWn 和 direct loader 数据块写入到磁盘时,基于块内的所有字节计算得出一个校验值并将其写入块头.
ALTER SYSTEM SET DB_BLOCK_CHECKSUM=FULL SCOPE=BOTH SID='*';
--启用profile 的 RESOURCE_LIMIT
ALTER SYSTEM SET RESOURCE_LIMIT=TRUE SCOPE=BOTH SID='*';
--禁用资源计划resource_manager_plan
ALTER SYSTEM SET RESOURCE_MANAGER_PLAN='force:' SCOPE=BOTH SID='*';
ALTER SYSTEM SET "_resource_manager_always_off"=TRUE SCOPE=SPFILE SID='*';
--设置控制文件保留1个月信息
ALTER SYSTEM SET CONTROL_FILE_RECORD_KEEP_TIME=31 SCOPE=BOTH SID='*';
--调整job作业能够使用的总进程数
ALTER SYSTEM SET JOB_QUEUE_PROCESSES=100 SCOPE=BOTH SID='*';
--关闭merge join connection
ALTER SYSTEM SET "_optimizer_mjc_enabled"=FALSE SCOPE=BOTH SID='*';
--关闭result_cache查询结果缓存,场景更适用OLAT环境
ALTER SYSTEM SET RESULT_CACHE_MAX_SIZE=0 SCOPE=BOTH SID='*';
--关闭result cache功能启用情况下优化器自适应功能
ALTER SYSTEM SET "_optimizer_ads_use_result_cache" = FALSE SCOPE=BOTH SID='*';
ALTER SYSTEM SET "_optimizer_cartesian_enabled"=FALSE SCOPE=BOTH SID='*';
-- 关闭自适应游标共享参数,12c版本的自适应游标共享(隐藏参数)会带来过多子游标和ORA-04031的问题,为了避免19c遇到同样问题,建议先将其关闭(重启库后生效)。整合考虑建议保持默认值,即:开启自适应游标(默认也开启绑定变量窥探及cursor_sharing=EXACT)
--ALTER SYSTEM SET "_optimizer_adaptive_cursor_sharing"=FALSE SID='*' SCOPE=BOTH;
--ALTER SYSTEM SET "_optimizer_extended_cursor_sharing"=NONE SID='*' SCOPE=BOTH;
--ALTER SYSTEM SET "_optimizer_extended_cursor_sharing_rel"=NONE SID='*' SCOPE=BOTH;
--关闭RAC隐藏参数"_gc_bypass_reader""_gc_read_mostly_lock",为了避免RAC的用户进程卡死在"gc current request"这个数据库内部等待,大多与隐藏参数"_gc_bypass_reader""_gc_read_mostly_lock", 在参数关闭后会发现RAC稳定性提升明显(不会影响性能),同时还发现这两个参数也有其他不少bug,因此建议关闭:
ALTER SYSTEM SET "_gc_bypass_readers"=FALSE SCOPE=BOTH SID='*';
ALTER SYSTEM SET "_gc_read_mostly_locking"=FALSE SCOPE=SPFILE SID='*';
--关闭RAC全局事务支持隐藏参数
ALTER SYSTEM SET "_clusterwide_global_transactions"=FALSE SID='*' SCOPE=SPFILE;
--关闭跨实例并行参数
ALTER SYSTEM SET PARALLEL_FORCE_LOCAL=TRUE SCOPE=BOTH SID='*';
--关闭Cardinality feedback,12c版本的Cardinality feedback可能会导致执行计划的不稳定,为了避免19c发生,建议关闭
ALTER SYSTEM SET "_optimizer_use_feedback"=FALSE SCOPE=BOTH SID='*';
ALTER SYSTEM SET "_partition_large_extents"=FALSE SCOPE=BOTH SID='*';
--alter system set "_optimizer_adaptive_plans"=FALSE scope=spfile sid='*';
ALTER SYSTEM SET OPTIMIZER_ADAPTIVE_PLANS=FALSE SCOPE=BOTH SID='*';
--禁止polling模式和post/wait切换,只使用post/wait模式,否则可能造成CPU占用高
ALTER SYSTEM SET "_use_adaptive_log_file_sync"=FALSE SCOPE=BOTH SID='*';
--加快回滚速度
ALTER SYSTEM SET "_cleanup_rollback_entries"=5000 SCOPE=SPFILE SID='*';
ALTER SYSTEM SET "_rollback_segment_count"=4000 SCOPE=BOTH SID='*';
ALTER SYSTEM SET "_cursor_obsolete_threshold"=1024 SCOPE=SPFILE SID='*';
ALTER SYSTEM SET "_keep_remote_column_size"=TRUE SCOPE=SPFILE SID='*';
--建议启用大池(Large Pool)分配并行进程内存,减少对共享池(Shared Pool)的争用。
ALTER SYSTEM SET "_PX_use_large_pool"=TRUE SCOPE=SPFILE SID='*';
--适当增加shared pool保留比率 5 --> 20
ALTER SYSTEM SET "_shared_pool_reserved_pct"=20 SCOPE=SPFILE SID='*';
--设置审计日志级别,记录SQL语句,禁用设置为none,启用设置为DB或'db,extended'
-- ALTER SYSTEM SET AUDIT_TRAIL=NONE SCOPE=SPFILE SID='*';
-- alter system set audit_trail=db,extended scope=spfile;
--调大数据文件数量上线--RAC要求必须所有节点参数设置一致
ALTER SYSTEM SET DB_FILES=2000 SCOPE=SPFILE SID='*';
-- 28401:使用错误密码登陆尝试会导致很高的Library Cache Locks或row cache lock。
-- 10949:事件用于关闭11g的自动serial direct path read特性,避免出现过多的直接路径读,消耗过多的IO资源。
-- 19823:With Oracle 11.2 and onwards, Oracle will start to purge the files in the FRA when the SPACE_USED reaches 80% of SPACE_LIMIT as specified by the db_recovery_file_dest_size parameter,快速恢复区空间使用率达到90%以后开始删除文件(归档日志),默认80%,调大延迟Oracle删除归档日志
ALTER SYSTEM SET EVENT='10949 trace name context forever, level 1:28401 trace name context forever, level 1:10849 trace name context forever, level 1:19823 trace name context forever, level 90:60025 trace name context forever:10943 trace name context level 2097152' SCOPE=SPFILE SID='*';
--指定并行执行 (并行查询、PDML、并行恢复和复制) 消息的大小,RAC要求必须所有节点参数设置一致
ALTER SYSTEM SET PARALLEL_EXECUTION_MESSAGE_SIZE=32768 SCOPE=SPFILE SID='*';
--调整会话进程上限
ALTER SYSTEM SET PROCESSES=8000 SCOPE=SPFILE SID='*';
--调整每个session 最多可以缓存关闭掉的 cursor 数量
ALTER SYSTEM SET SESSION_CACHED_CURSORS=500 SCOPE=SPFILE SID='*';
--设置异步IO,存在IO性能时建议启用,重启生效
ALTER SYSTEM SET FILESYSTEMIO_OPTIONS=SETALL SCOPE=SPFILE SID='*';
--关闭RAC的DRM(dynamic remastering)特性,避免频繁的DRM使系统性能不稳定、严重的时候使数据库挂起。同时也关闭关闭集群 Undo Affinity,降低集群交互,Read-mostly Locking新特性,这个特性目前会触发大量的BUG,严重时使数据库实例宕掉
ALTER SYSTEM SET "_gc_undo_affinity"=FALSE SCOPE=SPFILE SID='*';
ALTER SYSTEM SET "_gc_policy_time"=0 SCOPE=SPFILE SID='*';
--调整归档日志文件格式
ALTER SYSTEM SET LOG_ARCHIVE_FORMAT = 'arch_%t_%s_%r.arc' SCOPE=SPFILE SID='*';
alter system set "_serial_direct_read"=never scope=both sid='*';
--启用块跟踪,优化增量备份速度
ALTER DATABASE ENABLE BLOCK CHANGE TRACKING USING FILE '+DATA' REUSE;

--回退命令
alter system set "_cleanup_rollback_entries"=100 scope=spfile sid='*';
alter system set "_cursor_obsolete_threshold"=8192 scope=spfile sid='*';
alter system set "_keep_remote_column_size"=true scope=spfile sid='*';
alter system set "_PX_use_large_pool"=FALSE scope=spfile sid='*';
alter system set "_shared_pool_reserved_pct"=5 scope=SPFILE sid='*';
alter system set audit_trail=DB scope=SPFILE sid='*';
ALTER SYSTEM RESET EVENT SCOPE=SPFILE SID='*';
alter system set parallel_execution_message_size=16384 scope=spfile sid='*';
alter system set db_files=200 scope=spfile sid='*';
alter system set processes=6400 scope=spfile sid='*';
alter system set sec_max_failed_login_attempts=3 scope=spfile sid='*';
alter system set session_cached_cursors=50 scope=SPFILE sid='*';
alter system set "_resource_manager_always_off"=FALSE scope=spfile sid='*';
alter system set filesystemio_options=none scope=spfile sid='*';
alter system set LOG_ARCHIVE_FORMAT = '%t_%s_%r.dbf' scope=spfile sid='*';
alter system set "_gc_undo_affinity"=TRUE scope=spfile sid='*';
alter system set "_gc_policy_time"=20 scope=spfile sid='*';

crsctl

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
[grid@node1 ~]$ crsctl status res -t
--------------------------------------------------------------------------------
Name           Target  State        Server                   State details       
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.LISTENER.lsnr
               ONLINE  ONLINE       node1                    STABLE
               ONLINE  ONLINE       node2                    STABLE
ora.chad
               ONLINE  ONLINE       node1                    STABLE
               ONLINE  ONLINE       node2                    STABLE
ora.net1.network
               ONLINE  ONLINE       node1                    STABLE
               ONLINE  ONLINE       node2                    STABLE
ora.ons
               ONLINE  ONLINE       node1                    STABLE
               ONLINE  ONLINE       node2                    STABLE
ora.proxy_advm
               OFFLINE OFFLINE      node1                    STABLE
               OFFLINE OFFLINE      node2                    STABLE
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.ASMNET1LSNR_ASM.lsnr(ora.asmgroup)
      1        ONLINE  ONLINE       node1                    STABLE
      2        ONLINE  ONLINE       node2                    STABLE
ora.DATA.dg(ora.asmgroup)
      1        ONLINE  ONLINE       node1                    STABLE
      2        ONLINE  ONLINE       node2                    STABLE
ora.FRA.dg(ora.asmgroup)
      1        ONLINE  ONLINE       node1                    STABLE
      2        ONLINE  ONLINE       node2                    STABLE
ora.LISTENER_SCAN1.lsnr
      1        ONLINE  ONLINE       node1                    STABLE
ora.LISTENER_SCAN2.lsnr
      1        ONLINE  ONLINE       node2                    STABLE
ora.LISTENER_SCAN3.lsnr
      1        ONLINE  ONLINE       node2                    STABLE
ora.OCR.dg(ora.asmgroup)
      1        ONLINE  ONLINE       node1                    STABLE
      2        ONLINE  ONLINE       node2                    STABLE
ora.asm(ora.asmgroup)
      1        ONLINE  ONLINE       node1                    Started,STABLE
      2        ONLINE  ONLINE       node2                    Started,STABLE
ora.asmnet1.asmnetwork(ora.asmgroup)
      1        ONLINE  ONLINE       node1                    STABLE
      2        ONLINE  ONLINE       node2                    STABLE
ora.cvu
      1        ONLINE  ONLINE       node2                    STABLE
ora.node1.vip
      1        ONLINE  ONLINE       node1                    STABLE
ora.node2.vip
      1        ONLINE  ONLINE       node2                    STABLE
ora.orcl.db
      1        ONLINE  ONLINE       node1                    Open,HOME=/u01/app/1
                                                             9.3.0/dbhome_1,STABL
                                                             E
      2        ONLINE  ONLINE       node2                    Open,HOME=/u01/app/1
                                                             9.3.0/dbhome_1,STABL
                                                             E
ora.qosmserver
      1        ONLINE  ONLINE       node2                    STABLE
ora.scan1.vip
      1        ONLINE  ONLINE       node1                    STABLE
ora.scan2.vip
      1        ONLINE  ONLINE       node2                    STABLE
ora.scan3.vip
      1        ONLINE  ONLINE       node2                    STABLE
--------------------------------------------------------------------------------
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
[grid@node1 ~]$ crsctl status res -t -init 
--------------------------------------------------------------------------------
Name           Target  State        Server                   State details       
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.asm
      1        ONLINE  ONLINE       node1                    STABLE
ora.cluster_interconnect.haip
      1        ONLINE  ONLINE       node1                    STABLE
ora.crf
      1        ONLINE  ONLINE       node1                    STABLE
ora.crsd
      1        ONLINE  ONLINE       node1                    STABLE
ora.cssd
      1        ONLINE  ONLINE       node1                    STABLE
ora.cssdmonitor
      1        ONLINE  ONLINE       node1                    STABLE
ora.ctssd
      1        ONLINE  ONLINE       node1                    OBSERVER,STABLE
ora.diskmon
      1        OFFLINE OFFLINE                               STABLE
ora.driver.afd
      1        ONLINE  ONLINE       node1                    STABLE
ora.drivers.acfs
      1        ONLINE  ONLINE       node1                    STABLE
ora.evmd
      1        ONLINE  ONLINE       node1                    STABLE
ora.gipcd
      1        ONLINE  ONLINE       node1                    STABLE
ora.gpnpd
      1        ONLINE  ONLINE       node1                    STABLE
ora.mdnsd
      1        ONLINE  ONLINE       node1                    STABLE
ora.storage
      1        ONLINE  ONLINE       node1                    STABLE
--------------------------------------------------------------------------------
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
#单机
[grid@node1 ~]$ crsctl check crs 
CRS-4638: Oracle High Availability Services is online
CRS-4537: Cluster Ready Services is online
CRS-4529: Cluster Synchronization Services is online
CRS-4533: Event Manager is online

#集群
[grid@node1 ~]$ crsctl check cluster
CRS-4537: Cluster Ready Services is online
CRS-4529: Cluster Synchronization Services is online
CRS-4533: Event Manager is online
1
2
3
crsctl start cluster 可以对集群的所有节点资源进行操作。(前提是目标节点OHASD进程必须已经启动)

crsctl start crs   对当前节点的资源进行操作,包含OHAS。
1
2
3
crsctl stop cluster 可以对集群的所有节点资源进行操作。(前提是目标节点OHASD进程必须已经启动)

crsctl stop crs   对当前节点的资源进行操作,包含OHAS。
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33


启动/关闭 集群服务:

crsctl start/stop crs

独占模式启动集群:

crsctl start crs -excl -nocrs



关闭启动指定资源:

crsctl start/stop res res_name //有的无法单独关闭,因为存在资源依赖关系

查看资源属性:

crsctl status res res_name -f

修改资源属性 :

crsctl modify resource res_name -attr 

从12c开始crsctl start/stop resource 与 crsctl modify resource 不再支持

但是可以添加-unsupported使用

crsctl modify resource res_name -attr  <> -unsupported 

crsctl start/stop res res_name -unsupported 

----

srvctl

1
2
3
[grid@node1 ~]$ srvctl status database -d orcl
实例 orcl1 正在节点 node1 上运行
实例 orcl2 正在节点 node2 上运行
1
2
[grid@node1 ~]$ srvctl status instance -db orcl -node node1
实例 orcl1 正在节点 node1 上运行
1
srvctl stop database -d orcl 
1
2
3
4
[grid@node1 ~]$ srvctl stop instance -db orcl -node node2
[grid@node1 ~]$ srvctl status database -d orcl
实例 orcl1 正在节点 node1 上运行
实例 orcl2 没有在 node2 节点上运行
1
2
3
4
[grid@node1 ~]$ srvctl stop database -d orcl 
[grid@node1 ~]$ srvctl status database -d orcl
实例 orcl1 没有在 node1 节点上运行
实例 orcl2 没有在 node2 节点上运行
1
2
3
4
[grid@node1 ~]$ srvctl start instance -db orcl -node node2
[grid@node1 ~]$ srvctl status database -d orcl
实例 orcl1 正在节点 node1 上运行
实例 orcl2 正在节点 node2 上运行
1
2
3
4
[grid@node1 ~]$ srvctl start database -d orcl 
[grid@node1 ~]$ srvctl status database -d orcl
实例 orcl1 正在节点 node1 上运行
实例 orcl2 正在节点 node2 上运行
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
[grid@node1 ~]$ srvctl config database -d orcl
数据库唯一名称: orcl
数据库名: orcl
Oracle 主目录: /u01/app/19.3.0/dbhome_1
Oracle 用户: oracle
Spfile: +DATA/ORCL/PARAMETERFILE/spfile.268.1201371483
口令文件: +DATA/ORCL/PASSWORD/pwdorcl.256.1201371017
域: 
启动选项: open
停止选项: immediate
数据库角色: PRIMARY
管理策略: AUTOMATIC
服务器池: 
磁盘组: FRA,DATA
装载点路径: 
服务: 
类型: RAC
启动并行: 
停止并行: 
OSDBA 组: dba
OSOPER 组: oper
数据库实例: orcl1,orcl2
已配置的节点: node1,node2
CSS 关键型: no
CPU 计数: 0
内存目标: 0
最大内存: 0
数据库服务的默认网络编号: 
数据库是管理员管理的
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
# 显示配置了 Oracle Grid Infrastructure 网络资源的详细信息,例如子网、节点名称、IP 地址等。
[grid@node1 ~]$ srvctl config network
网络1存在
子网 IPv4: 192.168.0.0/255.255.255.0/enp1s0, static
子网 IPv6: 
试通目标: 
网络已启用
网络已在以下节点上分别启用: 
网络已在以下节点上分别禁用: 



# 显示配置了虚拟 IP(VIP)资源的详细信息,包括 VIP 名称、所在节点和 VIP 地址等。
[grid@node1 ~]$ srvctl config vip -node node1
VIP 存在: 网络编号 1, 托管节点 node1
VIP 名称: node1-vip.racdb.local
VIP IPv4 地址: 192.168.0.191
VIP IPv6 地址: 
VIP 已启用。
VIP 已在以下节点上分别启用: 
VIP 已在以下节点上分别禁用: 


# 显示当前运行状态下的虚拟 IP(VIP)资源的详细信息,例如节点名称、VIP 地址和状态。
[grid@node1 ~]$ srvctl status vip -node node1
VIP 192.168.0.191 已启用
VIP 192.168.0.191 正在节点上运行: node1

# 显示配置了 SCAN(Single Client Access Name)的详细信息,包括 SCAN 名称和地址列表。
[grid@node1 ~]$ srvctl config scan
SCAN 名称: node-cluster-scan, 网络: 1
子网 IPv4: 192.168.0.0/255.255.255.0/enp1s0, static
子网 IPv6: 
SCAN 1 IPv4 VIP: 192.168.0.201
SCAN VIP 已启用。
SCAN 2 IPv4 VIP: 192.168.0.202
SCAN VIP 已启用。
SCAN 3 IPv4 VIP: 192.168.0.203
SCAN VIP 已启用。

# 显示当前运行状态下的 SCAN(Single Client Access Name)资源的详细信息,例如名称、地址和状态。
[grid@node1 ~]$ srvctl status scan
SCAN VIP scan1 已启用
SCAN VIP scan1 正在节点 node2 上运行
SCAN VIP scan2 已启用
SCAN VIP scan2 正在节点 node1 上运行
SCAN VIP scan3 已启用
SCAN VIP scan3 正在节点 node1 上运行

# 显示配置了监听器的详细信息,包括监听器名称、所在节点和监听端口。
[grid@node1 ~]$ srvctl config listener
名称: LISTENER
类型: Database Listener
网络: 1, 所有者: grid
主目录: <CRS home>
端点: TCP:1521
监听程序已启用。
监听程序已在以下节点上分别启用: 
监听程序已在以下节点上分别禁用: 

# 显示当前运行状态下的监听器的详细信息,例如名称、监听地址和状态。
[grid@node1 ~]$ srvctl status listener
监听程序 LISTENER 已启用
监听程序 LISTENER 正在节点上运行: node2,node1

# 停止指定的监听器
[grid@node1 ~]$ srvctl stop listener
[grid@node1 ~]$ srvctl status listener
监听程序 LISTENER 已启用
监听程序 LISTENER 未运行

[grid@node1 ~]$ srvctl start listener
[grid@node1 ~]$ srvctl status listener
监听程序 LISTENER 已启用
监听程序 LISTENER 正在节点上运行: node2,node1


# 显示配置了 SCAN 监听器的详细信息,包括监听器名称、所在节点和监听端口。
[grid@node1 ~]$ srvctl config scan_listener
网络 1 的 SCAN 监听程序:
注册邀请的节点: 
注册邀请的子网: 
端点:TCP:1521
已存在 SCAN 监听程序 LISTENER_SCAN1
SCAN 监听程序已启用。
已存在 SCAN 监听程序 LISTENER_SCAN2
SCAN 监听程序已启用。
已存在 SCAN 监听程序 LISTENER_SCAN3
SCAN 监听程序已启用。


# 显示当前运行状态下的 SCAN 监听器的详细信息,例如名称、监听地址和状态。
[grid@node1 ~]$ srvctl status scan_listener
SCAN 监听程序 LISTENER_SCAN1 已启用
SCAN 监听程序 LISTENER_SCAN1 正在节点 node2 上运行
SCAN 监听程序 LISTENER_SCAN2 已启用
SCAN 监听程序 LISTENER_SCAN2 正在节点 node1 上运行
SCAN 监听程序 LISTENER_SCAN3 已启用
SCAN 监听程序 LISTENER_SCAN3 正在节点 node1 上运行

# 显示配置了 Automatic Storage Management (ASM) 的详细信息,包括 ASM 实例名称、监听器名称和磁盘组名称等。
[grid@node1 ~]$ srvctl config asm
ASM 主目录: <CRS home>
口令文件: +OCR/orapwASM
口令文件备份: +OCR/orapwASM_backup
ASM 监听程序: LISTENER
ASM 实例计数: 2
集群 ASM 监听程序: ASMNET1LSNR_ASM

# 显示当前运行状态下的 ASM 实例的详细信息,例如实例名称、ASM 状态和监听器状态。
[grid@node1 ~]$ srvctl status asm
ASM 正在 node2,node1 上运行

# 显示指定磁盘组(这里是 data)的详细信息,包括磁盘组名称、状态和成员磁盘列表。
[grid@node1 ~]$ srvctl status diskgroup -g data
磁盘组 data 正在 node2,node1 上运行

# 移除指定的数据库(这里是 orcl),将删除与数据库相关的资源配置。
[grid@node1 ~]$ srvctl remove database -d orcl:

# 查看集群VIP
[grid@node1 ~]$ srvctl config nodeapps -a
网络1存在
子网 IPv4: 192.168.0.0/255.255.255.0/enp1s0, static
子网 IPv6: 
试通目标: 
网络已启用
网络已在以下节点上分别启用: 
网络已在以下节点上分别禁用: 
VIP 存在: 网络编号 1, 托管节点 node1
VIP 名称: node1-vip.racdb.local
VIP IPv4 地址: 192.168.0.191
VIP IPv6 地址: 
VIP 已启用。
VIP 已在以下节点上分别启用: 
VIP 已在以下节点上分别禁用: 
VIP 存在: 网络编号 1, 托管节点 node2
VIP 名称: node2-vip.racdb.local
VIP IPv4 地址: 192.168.0.192
VIP IPv6 地址: 
VIP 已启用。
VIP 已在以下节点上分别启用: 
VIP 已在以下节点上分别禁用: 

# 查看集群网卡
[grid@node1 ~]$ oifcfg getif
enp1s0  192.168.0.0  global  public
enp2s0  192.168.122.0  global  cluster_interconnect,asm

# 删除集群网卡
oifcfg delif

# 重新配置集群网卡
oifcfg setif    

ASM

SQL

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
[grid@node1 ~]$ sqlplus / as sysasm

SQL*Plus: Release 19.0.0.0.0 - Production on Sun May 18 15:43:08 2025
Version 19.22.0.0.0

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


Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.22.0.0.0

# 查看磁盘组状态
SQL> select name,state from v$asm_diskgroup;

NAME                           STATE
------------------------------ -----------
DATA                           MOUNTED
FRA                            MOUNTED
OCR                            MOUNTED

# 查看磁盘名与设备的关系:
SQL> select name,path from v$asm_disk_stat;

NAME
------------------------------
PATH
--------------------------------------------------------------------------------
OCR1
AFD:OCR1

DATA1
AFD:DATA1

FRA1
AFD:FRA1

# 查看每个磁盘组可用大小:
SQL> select name,allocation_unit_size,free_mb,total_mb from v$asm_diskgroup;

NAME                           ALLOCATION_UNIT_SIZE    FREE_MB   TOTAL_MB
------------------------------ -------------------- ---------- ----------
DATA                                        4194304      16464      20480
FRA                                         4194304       9252      10240
OCR                                         4194304       7836       8192




# =======================未实践命令============================================


创建磁盘组:

create diskgroup FLASH_DISK external redundancy disk '/dev/oracleasm/disks/ASMDISK1' ;

磁盘组挂载与卸载:

alter diskgroup FLASH_DISK mount/dismount;

向磁盘组中增加一个磁盘:

ALTER DISKGROUP ARCH_DISK ADD DISK '/dev/oracleasm/disks/ASMDISK3' (name ARCHDISK2);

从磁盘组中删除一个磁盘:

ALTER DISKGROUP ARCH_DISK DROP DISK ARCHDISK2;

删除一个磁盘组:(确保该磁盘被所有实例所卸载dismount)

drop diskgroup FLASH_DISK;

删除一个有内容的磁盘组:

drop diskgroup ocr2 including contents; 

手动重新平衡磁盘组:

ALTER DISKGROUP data2 REBALANCE    

ALTER DISKGROUP data2 REBALANCE   power 5

如果不指定power,以初始化参数值ASM_POWER_LIMIT为默认值



对于ASM磁盘组兼容性设定为11.2.0.2或更高,值的操作范围是0到1024用于重新平衡能力。

对于ASM磁盘组兼容性设定为小于11.2.0.2,该值的操作范围是0到11。如果ASM_POWER_LIMIT大于11,则使用11.

关闭ASM:
(需要与crs一起关闭) srvctl stop crs 

ASMCMD

asmcmd

https://www.cnblogs.com/zhangshengdong/p/11935035.html

ASMCA

CRS

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# 检查OCR
[grid@node1 ~]$ ocrcheck
Status of Oracle Cluster Registry is as follows :
         Version                  :          4
         Total space (kbytes)     :     901284
         Used space (kbytes)      :      84616
         Available space (kbytes) :     816668
         ID                       :  492086818
         Device/File Name         :       +OCR
                                    Device/File integrity check succeeded

                                    Device/File not configured

                                    Device/File not configured

                                    Device/File not configured

                                    Device/File not configured

         Cluster registry integrity check succeeded

         Logical corruption check bypassed due to non-privileged user




ocrconfig -add +data2   //添加OCR镜像盘

ocrconfig -delete +data2  //删除OCR镜像盘

ocrconfig -manualbackup   //触发OCR备份

ocrconfig -showbackup    //查看OCR备份

ocrconfig -export file_name  //导出OCR

ocrconfig -import file_name  //导入OCR

OLR

1
2
3
/etc/oracle/ocr.loc

/etc/oracle/olr.loc

表决盘

1
2
3
4
5
6
7
crsctl replace votedisk diskgroup_name   //替换VF(常用于更换存储)

crsctl query css votedisk              //集群层面查看VF信息

v$asm_disk           v$asm_diskgroup    // 这两个视图中包含voting_file列。

select name,path,voting_file from v$asm_disk;    //查看某个磁盘是否为VF

参考文章

https://blog.csdn.net/weixin_63131036/article/details/135789164

运维实践

停止集群

查看集群参数

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
[grid@node1 ~]$ sqlplus / as sysasm

SQL*Plus: Release 19.0.0.0.0 - Production on Sun May 18 15:43:08 2025
Version 19.22.0.0.0

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


Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.22.0.0.0

SQL> show parameter name

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_unique_name                       string      +ASM
instance_name                        string      +ASM1
lock_name_space                      string
service_names                        string      +ASM
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
[oracle@node1 ~]$ sqlplus system/[email protected]/orcl 

SQL*Plus: Release 19.0.0.0.0 - Production on Sun May 18 15:55:01 2025
Version 19.22.0.0.0

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

????????: ???    5?   18 2025 15:26:40 +08:00

???: 
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.22.0.0.0

SQL> show parameter name

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
cdb_cluster_name                     string
cell_offloadgroup_name               string
db_file_name_convert                 string
db_name                              string      orcl
db_unique_name                       string      orcl
global_names                         boolean     FALSE
instance_name                        string      orcl1
lock_name_space                      string
log_file_name_convert                string
pdb_file_name_convert                string
processor_group_name                 string

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
service_names                        string      orcl

SQL>  select instance_name,status from gv$instance;

INSTANCE_NAME    STATUS
---------------- ------------
orcl1            OPEN
orcl2            OPEN


SQL> select * from product_component_version;

PRODUCT
--------------------------------------------------------------------------------
VERSION
--------------------------------------------------------------------------------
VERSION_FULL
--------------------------------------------------------------------------------
STATUS
--------------------------------------------------------------------------------
Oracle Database 19c Enterprise Edition
19.0.0.0.0
19.22.0.0.0
Production

确定数据库ID为orcl, 实例名称为orcl1和orcl2,数据库版本为19.0.0.0.0 EE,补丁版本为19.22.0.0.0

停止数据库并查看状态

1
2
3
4
[grid@node1 ~]$ srvctl stop database -d orcl
[grid@node1 ~]$ srvctl status database -d orcl
实例 orcl1 没有在 node1 节点上运行
实例 orcl2 没有在 node2 节点上运行

停止集群服务

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
[root@node1 ~]# /u01/app/19.3.0/grid/bin/crsctl stop cluster -all
CRS-2673: 尝试停止 'ora.crsd' ('node1')
CRS-2673: 尝试停止 'ora.crsd' ('node2')
CRS-2790: 正在开始关闭服务器 'node1' 上集群就绪服务管理的资源的操作
CRS-2673: 尝试停止 'ora.LISTENER_SCAN2.lsnr' ('node1')
CRS-2673: 尝试停止 'ora.LISTENER.lsnr' ('node1')
CRS-2673: 尝试停止 'ora.LISTENER_SCAN3.lsnr' ('node1')
CRS-2673: 尝试停止 'ora.cvu' ('node1')
CRS-2673: 尝试停止 'ora.chad' ('node1')
CRS-2673: 尝试停止 'ora.qosmserver' ('node1')
CRS-33673: 尝试在服务器 'node1' 上停止资源组 'ora.asmgroup'
CRS-2673: 尝试停止 'ora.OCR.dg' ('node1')
CRS-2673: 尝试停止 'ora.DATA.dg' ('node1')
CRS-2673: 尝试停止 'ora.FRA.dg' ('node1')
CRS-2677: 成功停止 'ora.OCR.dg' ('node1')
CRS-2790: 正在开始关闭服务器 'node2' 上集群就绪服务管理的资源的操作
CRS-2677: 成功停止 'ora.FRA.dg' ('node1')
CRS-2673: 尝试停止 'ora.LISTENER_SCAN1.lsnr' ('node2')
CRS-2673: 尝试停止 'ora.LISTENER.lsnr' ('node2')
CRS-2677: 成功停止 'ora.DATA.dg' ('node1')
CRS-2673: 尝试停止 'ora.asm' ('node1')
CRS-2673: 尝试停止 'ora.chad' ('node2')
CRS-2677: 成功停止 'ora.cvu' ('node1')
CRS-2677: 成功停止 'ora.LISTENER_SCAN2.lsnr' ('node1')
CRS-2673: 尝试停止 'ora.scan2.vip' ('node1')
CRS-2677: 成功停止 'ora.LISTENER.lsnr' ('node1')
CRS-2673: 尝试停止 'ora.node1.vip' ('node1')
CRS-2677: 成功停止 'ora.LISTENER_SCAN3.lsnr' ('node1')
CRS-2673: 尝试停止 'ora.scan3.vip' ('node1')
CRS-2677: 成功停止 'ora.LISTENER_SCAN1.lsnr' ('node2')
CRS-2673: 尝试停止 'ora.scan1.vip' ('node2')
CRS-2677: 成功停止 'ora.LISTENER.lsnr' ('node2')
CRS-2673: 尝试停止 'ora.node2.vip' ('node2')
CRS-2677: 成功停止 'ora.scan2.vip' ('node1')
CRS-2677: 成功停止 'ora.scan1.vip' ('node2')
CRS-2677: 成功停止 'ora.node1.vip' ('node1')
CRS-2677: 成功停止 'ora.node2.vip' ('node2')
CRS-2677: 成功停止 'ora.scan3.vip' ('node1')
CRS-2677: 成功停止 'ora.asm' ('node1')
CRS-2673: 尝试停止 'ora.ASMNET1LSNR_ASM.lsnr' ('node1')
CRS-2677: 成功停止 'ora.chad' ('node1')
CRS-2677: 成功停止 'ora.chad' ('node2')
CRS-2677: 成功停止 'ora.qosmserver' ('node1')
CRS-2677: 成功停止 'ora.ASMNET1LSNR_ASM.lsnr' ('node1')
CRS-2673: 尝试停止 'ora.asmnet1.asmnetwork' ('node1')
CRS-2677: 成功停止 'ora.asmnet1.asmnetwork' ('node1')
CRS-33677: 在服务器 'node1' 上停止资源组 'ora.asmgroup' 成功。
CRS-33673: 尝试在服务器 'node2' 上停止资源组 'ora.asmgroup'
CRS-2673: 尝试停止 'ora.OCR.dg' ('node2')
CRS-2673: 尝试停止 'ora.DATA.dg' ('node2')
CRS-2673: 尝试停止 'ora.FRA.dg' ('node2')
CRS-2677: 成功停止 'ora.DATA.dg' ('node2')
CRS-2677: 成功停止 'ora.OCR.dg' ('node2')
CRS-2677: 成功停止 'ora.FRA.dg' ('node2')
CRS-2673: 尝试停止 'ora.asm' ('node2')
CRS-2677: 成功停止 'ora.asm' ('node2')
CRS-2673: 尝试停止 'ora.ASMNET1LSNR_ASM.lsnr' ('node2')
CRS-2677: 成功停止 'ora.ASMNET1LSNR_ASM.lsnr' ('node2')
CRS-2673: 尝试停止 'ora.asmnet1.asmnetwork' ('node2')
CRS-2677: 成功停止 'ora.asmnet1.asmnetwork' ('node2')
CRS-33677: 在服务器 'node2' 上停止资源组 'ora.asmgroup' 成功。
CRS-2673: 尝试停止 'ora.ons' ('node2')
CRS-2677: 成功停止 'ora.ons' ('node2')
CRS-2673: 尝试停止 'ora.net1.network' ('node2')
CRS-2677: 成功停止 'ora.net1.network' ('node2')
CRS-2792: 关闭 'node2' 上集群就绪服务管理的资源的操作已完成
CRS-2673: 尝试停止 'ora.ons' ('node1')
CRS-2677: 成功停止 'ora.ons' ('node1')
CRS-2673: 尝试停止 'ora.net1.network' ('node1')
CRS-2677: 成功停止 'ora.net1.network' ('node1')
CRS-2792: 关闭 'node1' 上集群就绪服务管理的资源的操作已完成
CRS-2677: 成功停止 'ora.crsd' ('node2')
CRS-2673: 尝试停止 'ora.storage' ('node2')
CRS-2673: 尝试停止 'ora.evmd' ('node2')
CRS-2677: 成功停止 'ora.storage' ('node2')
CRS-2673: 尝试停止 'ora.asm' ('node2')
CRS-2677: 成功停止 'ora.crsd' ('node1')
CRS-2673: 尝试停止 'ora.evmd' ('node1')
CRS-2673: 尝试停止 'ora.ctssd' ('node1')
CRS-2673: 尝试停止 'ora.storage' ('node1')
CRS-2677: 成功停止 'ora.storage' ('node1')
CRS-2673: 尝试停止 'ora.asm' ('node1')
CRS-2677: 成功停止 'ora.evmd' ('node2')
CRS-2677: 成功停止 'ora.ctssd' ('node1')
CRS-2677: 成功停止 'ora.evmd' ('node1')
CRS-2677: 成功停止 'ora.asm' ('node2')
CRS-2673: 尝试停止 'ora.ctssd' ('node2')
CRS-2673: 尝试停止 'ora.cluster_interconnect.haip' ('node2')
CRS-2677: 成功停止 'ora.cluster_interconnect.haip' ('node2')
CRS-2677: 成功停止 'ora.ctssd' ('node2')
CRS-2673: 尝试停止 'ora.cssd' ('node2')
CRS-2677: 成功停止 'ora.cssd' ('node2')
CRS-2677: 成功停止 'ora.asm' ('node1')
CRS-2673: 尝试停止 'ora.cluster_interconnect.haip' ('node1')
CRS-2677: 成功停止 'ora.cluster_interconnect.haip' ('node1')
CRS-2673: 尝试停止 'ora.cssd' ('node1')
CRS-2677: 成功停止 'ora.cssd' ('node1')

启动集群

启动集群

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
[root@node1 ~]# /u01/app/19.3.0/grid/bin/crsctl start cluster -all
CRS-2672: 尝试启动 'ora.cssdmonitor' ('node1')
CRS-2672: 尝试启动 'ora.evmd' ('node1')
CRS-2672: 尝试启动 'ora.evmd' ('node2')
CRS-2672: 尝试启动 'ora.cssdmonitor' ('node2')
CRS-2676: 成功启动 'ora.cssdmonitor' ('node2')
CRS-2676: 成功启动 'ora.cssdmonitor' ('node1')
CRS-2672: 尝试启动 'ora.cssd' ('node1')
CRS-2672: 尝试启动 'ora.diskmon' ('node1')
CRS-2676: 成功启动 'ora.diskmon' ('node1')
CRS-2672: 尝试启动 'ora.cssd' ('node2')
CRS-2672: 尝试启动 'ora.diskmon' ('node2')
CRS-2676: 成功启动 'ora.evmd' ('node1')
CRS-2676: 成功启动 'ora.diskmon' ('node2')
CRS-2676: 成功启动 'ora.evmd' ('node2')
CRS-2676: 成功启动 'ora.cssd' ('node1')
CRS-2672: 尝试启动 'ora.ctssd' ('node1')
CRS-2672: 尝试启动 'ora.cluster_interconnect.haip' ('node1')
CRS-2676: 成功启动 'ora.cssd' ('node2')
CRS-2672: 尝试启动 'ora.cluster_interconnect.haip' ('node2')
CRS-2672: 尝试启动 'ora.ctssd' ('node2')
CRS-2676: 成功启动 'ora.ctssd' ('node1')
CRS-2676: 成功启动 'ora.ctssd' ('node2')
CRS-2676: 成功启动 'ora.cluster_interconnect.haip' ('node2')
CRS-2672: 尝试启动 'ora.asm' ('node2')
CRS-2676: 成功启动 'ora.cluster_interconnect.haip' ('node1')
CRS-2672: 尝试启动 'ora.asm' ('node1')
CRS-2676: 成功启动 'ora.asm' ('node1')
CRS-2672: 尝试启动 'ora.storage' ('node1')
CRS-2676: 成功启动 'ora.asm' ('node2')
CRS-2672: 尝试启动 'ora.storage' ('node2')
CRS-2676: 成功启动 'ora.storage' ('node2')
CRS-2672: 尝试启动 'ora.crsd' ('node2')
CRS-2676: 成功启动 'ora.crsd' ('node2')
CRS-2676: 成功启动 'ora.storage' ('node1')
CRS-2672: 尝试启动 'ora.crsd' ('node1')
CRS-2676: 成功启动 'ora.crsd' ('node1')

启动数据库并查看状态

1
2
3
4
[grid@node1 ~]$ srvctl start database -d orcl
[grid@node1 ~]$ srvctl status database -d orcl 
实例 orcl1 正在节点 node1 上运行
实例 orcl2 正在节点 node2 上运行

数据库操作

表空间

1
 drop tablespace tablespace_name including contents and datafiles CASCADE CONSTRAINTS;

用户

1
alter user 用户名 identified by 新密码;
1
ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
1
DROP USER WEAVER CASCADE;
1
ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;

综合示例

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
 /*
  步骤:
  1、创建表空间
  2、创建用户
  3、用户授权
  */
  
/*创建表空间*/
  CREATE TABLESPACE WEAVER
-- 这种方式指定表空间物理文件位置
 DATAFILE '+DATA/ORCL/DATAFILE/WEAVER.dbf'
-- 大小 500M,每次 5M 自动增大,最大不限制
  SIZE 1 G autoextend ON
NEXT 1 G maxsize unlimited;
  
/* 创建用户*/
  CREATE USER WEAVER 
  IDENTIFIED BY ABCabc123
--用户密码
  DEFAULT TABLESPACE WEAVER
-- 表空间是上面创建的
  TEMPORARY TABLESPACE TEMP
-- 临时表空间默认 TEMP
profile DEFAULT;
   /*密码过期需要重设密码,意思是当你用这个新建立的密码过期用户首次登录后,系统会提示你重新输入新密码,不然会拒绝你登陆,重设新密码后就可以登录,该用户的密码就是你新设的密码,相当于首次登录修改密码这样的选项。*/
  
   /* 用户授权_2*/
GRANT CONNECT TO WEAVER WITH admin OPTION ;
GRANT dba TO WEAVER WITH admin OPTION ;
GRANT resource TO WEAVER WITH admin OPTION ;
  
  
  /* 删除表空间*/
ALTER TABLESPACE WEAVER OFFLINE;
DROP TABLESPACE WEAVER INCLUDING contents AND datafiles;


/*其他命令*/
  /*查询所有表空间物理位置*/
  select name from v$datafile;
  /*查询当前用户的表空间*/
  select username,default_tablespace from user_users;
  /*修改用户的默认表空间*/
  alter user 用户名 default tablespace 新表空间; 
  /*查询所有的表空间*/
  select * from user_tablespaces; 

  
--为表空间ZCGL增加数据文件
ALTER TABLESPACE ZCGL ADD DATAFILE 'J:\MYORACLE\PRODUCT\11.2.0\DBHOME_1\DATABASE\ZCGL01.DBF' 
SIZE 50M AUTOEXTEND ON NEXT 5M MAXSIZE UNLIMITED;

其他

ASMLIB

方案已过时 不建议采用

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
wget -c https://yum.oracle.com/repo/OracleLinux/OL8/addons/x86_64/getPackage/oracleasm-support-3.1.0-10.el8.x86_64.rpm
wget -c https://epd-akam-intl.oracle.com/adcarurepos/vol/patch27/EPD/oracleasmlib-3.1.0-6.el8.x86_64.rpm?FilePath=/adcarurepos/vol/patch27/EPD/oracleasmlib-3.1.0-6.el8.x86_64.rpm&File=oracleasmlib-3.1.0-6.el8.x86_64.rpm&params=TVZDcmkrRUpmRFlBT1lRLzdENlJHUTpmaWxlX2lkPTEyMDYwMjExMyZzaXplPTUyMTEyJnVzZXJpZD1FUEQtR0dHWU5JSURUQEdNQUlMLkNPTSZkb3dubG9hZF9pZD00ODYzNjA1NjYmbGljZW5zZV9pZD0xMTAwJmRhdGVfYWNjZXB0ZWQ9MjUvMDUvMTAgMDMzMDI5JmFydT0yNzEyMTcwMyZlbWFpbD1nZ2d5bmlpZHRAZ21haWwuY29tJnBhdGNoX2ZpbGU9b3JhY2xlYXNtbGliLTMuMS4wLTYuZWw4Lng4Nl82NC5ycG0mYWdyZWVtZW50X0lkPTExNzc1NTQzJmNvbnRleHQ9QUA5K0hAYWFydTIwMS5vcmFjbGUuY29tK1BA&AuthParam=1746873344_31a539cba1fceca0c165ac882a4328a1
 
yum install ./*.rpm
systemctl start oracleasm.service
oracleasm init
oracleasm configure -e -u grid -g asmadmin
systemctl restart oracleasm.service
#查看配置
oracleasm configure -i

磁盘分区

1
2
3
4
parted /dev/vdb -s -- mklabel gpt mkpart primary 1 -1
parted /dev/vdc -s -- mklabel gpt mkpart primary 1 -1
parted /dev/vdd -s -- mklabel gpt mkpart primary 1 -1
lsblk

如何采用多路径 则采用以下命令

1
2
3
4
parted /dev/mapper/mpatha -s -- mklabel gpt mkpart primary 1 -1
parted /dev/mapper/mpathb -s -- mklabel gpt mkpart primary 1 -1
parted /dev/mapper/mpathc -s -- mklabel gpt mkpart primary 1 -1
lsblk
1
2
3
oracleasm createdisk OCR1 /dev/mapper/mpatha1
oracleasm createdisk DATA1 /dev/mapper/mpathb1
oracleasm createdisk FRA1 /dev/mapper/mpathc1

如何采用多路径 则采用以下命令

1
2
3
oracleasm createdisk OCR1 /dev/vdb1
oracleasm createdisk DATA1 /dev/vdc1
oracleasm createdisk FRA1 /dev/vdd1
1
2
oracleasm scandisks
oracleasm listdisks

注意事项

1.表决盘OCR至少1.2G

2.如果错误检查报如下错误

1
2
3
4
5
6
7
ASM 的设备检查 - 此先决条件检查将验证指定的设备是否满足 ASM 的要求。
  以下节点上的检查失败: [node2] 以下节点上的检查成功: [node1]  
失败节点上的验证结果: node2  详细资料: 
 - 
PRVF-9991 : 设备 "/dev/mapper/mpatha1" 的所有者与预期的所有者不匹配。在以下节点上应为 "grid"; 但找到的是 "root": [node2]  - 原因:  列出的设备的所有者与所需的所有者不同。  - 操作:  更改列出的设备的所有者, 或指定其他设备。 
 - 
PRVF-9992 : 设备 "/dev/mapper/mpatha1" 的组与预期的组不匹配。在以下节点上应为 "asmadmin"; 但找到的是 "disk": [node2]  - 原因:  列出的设备的组与所需的组不同。  - 操作:  更改列出的设备的组, 或指定其他设备

可在相应节点上重新执行 oracleasm scandisks命令即可

ASMLib官方安装文档

https://docs.oracle.com/en/database/oracle/oracle-database/19/ladbi/installing-and-configuring-oracle-asmlib-software.html

https://docs.oracle.com/en/operating-systems/oracle-linux/asmlib/asmlib-ConfiguringASMLib.html#check_asmlib_configuration_status

https://docs.oracle.com/en/database/oracle/oracle-database/19/ladbi/administering-oracle-asmlib-and-disks.html

参考文章

安装教程

当前教程

https://blog.csdn.net/networken/article/details/120788623

另一套教程

https://www.cnblogs.com/jyzhao/p/11273271.html#1.3

补丁相关

https://blog.csdn.net/yushaoyyds/article/details/136878386

存储

服务端

target

https://docs.redhat.com/zh-cn/documentation/red_hat_enterprise_linux/9/html/managing_storage_devices/creating-an-iscsi-acl_configuring-an-iscsi-target#creating-an-iscsi-acl_configuring-an-iscsi-target

客户端

Iscsi 启动器

https://docs.redhat.com/zh-cn/documentation/red_hat_enterprise_linux/9/html/managing_storage_devices/configuring-an-iscsi-initiator_managing-storage-devices#creating-an-iscsi-initiator_configuring-an-iscsi-initiator

多路径

多路径配置

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
yum install -y device-mapper-multipath
mpathconf --enable
systemctl enable multipathd
systemctl restart multipathd


[root@node2 ~]# cat /etc/iscsi/initiatorname.iscsi 
InitiatorName=iqn.1988-12.com.oracle:3579aec2ca8g

[root@node2 ~]# iscsiadm -m discovery -t st -p 192.168.0.183 192.168.0.183:3260,1 iqn.1988-12.com.oracle:3579aec2ca8g
192.168.0.183:3260,1 iqn.2003-01.org.linux-iscsi.storage.x8664:sn.1fa9ee27b863
[root@node2 ~]# iscsiadm -m discovery -t st -p 192.168.0.184 192.168.0.184:3260,1 iqn.1988-12.com.oracle:3579aec2ca8g
192.168.0.184:3260,1 iqn.2003-01.org.linux-iscsi.storage.x8664:sn.1fa9ee27b863


#Login登录
[root@node2 ~]# iscsiadm -m node -T iqn.2003-01.org.linux-iscsi.storage.x8664:sn.1fa9ee27b863 -l
Login to [iface: default, target: iqn.2003-01.org.linux-iscsi.storage.x8664:sn.1fa9ee27b863, portal: 192.168.0.183,3260] successful.
Login to [iface: default, target: iqn.2003-01.org.linux-iscsi.storage.x8664:sn.1fa9ee27b863, portal: 192.168.0.184,3260] successful.

#查看路径
[root@node1 ~]# iscsiadm -m node ll
192.168.0.183:3260,1 iqn.2003-01.org.linux-iscsi.storage.x8664:sn.1fa9ee27b863
192.168.0.184:3260,1 iqn.2003-01.org.linux-iscsi.storage.x8664:sn.1fa9ee27b863

#验证
[root@node2 ~]# multipath -ll
mpatha (360014059e104a7b8a1040b78527cfca6) dm-2 LIO-ORG,ocr1
size=8.0G features='0' hwhandler='1 alua' wp=rw
|-+- policy='service-time 0' prio=50 status=active
| `- 7:0:0:0 sda 8:0  active ready running
`-+- policy='service-time 0' prio=50 status=enabled
  `- 8:0:0:0 sdb 8:16 active ready running
mpathb (360014055e33fafff1f94de7b49f9850c) dm-3 LIO-ORG,fra1
size=20G features='0' hwhandler='1 alua' wp=rw
|-+- policy='service-time 0' prio=50 status=active
| `- 7:0:0:2 sdf 8:80 active ready running
`-+- policy='service-time 0' prio=50 status=enabled
  `- 8:0:0:2 sdd 8:48 active ready running
mpathc (3600140513c30b4475824808b7c234418) dm-4 LIO-ORG,data1
size=20G features='0' hwhandler='1 alua' wp=rw
|-+- policy='service-time 0' prio=50 status=active
| `- 7:0:0:1 sde 8:64 active ready running
`-+- policy='service-time 0' prio=50 status=enabled
  `- 8:0:0:1 sdc 8:32 active ready running
[root@node2 ~]# iscsiadm -m session 
tcp: [3] 192.168.0.183:3260,1 iqn.2003-01.org.linux-iscsi.storage.x8664:sn.1fa9ee27b863 (non-flash)
tcp: [4] 192.168.0.184:3260,1 iqn.2003-01.org.linux-iscsi.storage.x8664:sn.1fa9ee27b863 (non-flash)
[root@node2 ~]# 


#其他命令
加载内核模块: modprobe dm-multipath; modprobe dm-round-robin
刷新所有多路径配置: multipath -F
查看多路径: multipath -ll


多路径残余设备清空
停止服务multipathd服务 清空/etc/multipath/bindings和/etc/multipath/wwids文件中的相关设备名称 
multipath -F
partprobe


重建MultiPath过程 
service iscsid stop
service multipathd stop
multipath -F
停止服务multipathd服务 清空/etc/multipath/bindings和/etc/multipath/wwids文件中的相关设备名称 
partprobe
service iscsid start
service multipathd start
multipath -ll
lsblk
tree /var/lib/iscsi
如果不显示设备  等待一会再执行相关命令

KVM虚拟机扩容

1
2
3
4
#离线扩容 增加20G
qemu-img resize ./rac02.qcow2 +20G
#在线扩容 目标大小60G
virsh blockresize rac02 /var/lib/libvirt/images/rac02.qcow2 60G

操作系统存储扩容

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
parted /dev/sda
print //查看扩容前状态
resizepart 1  //1为分区标号 选择 需要扩容的分区输入分区终止容量,一般是虚拟系统硬盘扩容的最大容量;
100%
print   //扩容后状态
quit   //保存退出

pvdisplay // 查看PV 状态
pvresize /dev/sda1  //扩容 PV 物理卷
pvdisplay //扩容完毕后查看PV物理卷容量

lvdisplay // 查看LV 逻辑卷容量
lvextend -l +100%FREE /dev/mapper/centos-root   //扩容逻辑卷容量
lvdisplay // 查看扩容后LV 逻辑卷容量

xfs_growfs /dev/mapper/centos-root //扩容文件系统
df -h  // 查看存储状态

代理服务器配置

1
2
3
4
export https_proxy=http://192.168.0.200:7890;export http_proxy=http://192.168.0.200:7890;export all_proxy=socks5://192.168.0.200:7890
yum config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo
yum remove -y runc
dnf install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

多网卡绑定

https://www.modb.pro/db/1779692089902698496

打补丁

https://blog.csdn.net/yushaoyyds/article/details/136878386

Licensed under CC BY-NC-SA 4.0
comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计