Oracle 19c数据库基于ASM的安装

概述

基本情况

用户情况如下:

$ id oracle
uid=54321(oracle) gid=54321(oinstall) groups=54321(oinstall),54322(dba),54323(oper),54324(backupdba),54325(dgdba),54326(kmdba),54330(racdba)
$ id grid
uid=54322(grid) gid=54321(oinstall) groups=54321(oinstall),54322(dba),54327(asmdba),54328(asmoper),54329(asmadmin)

磁盘情况(grid用户执行):

$ asmcmd lsdg
State    Type    Rebal  Sector  Logical_Sector  Block       AU  Total_MB  Free_MB  Req_mir_free_MB  Usable_file_MB  Offline_disks  Voting_files  Name
MOUNTED  NORMAL  N         512             512   4096  4194304     24568    24344                0           12172              0             N  DATA/
$ asmcmd lsdsk
Connected to an idle instance.
$ echo $ORACLE_SID

$ export ORACLE_SID=+ASM
$ asmcmd lsdsk
Path
/dev/sdc1
/dev/sdd1

赋予oracle用户组权限访问ASM磁盘组的权限

oracle用户需要asmdba组的权限:

$ sudo usermod -a -G asmdba oracle
$ id oracle
uid=54321(oracle) gid=54321(oinstall) groups=54321(oinstall),54322(dba),54323(oper),54324(backupdba),54325(dgdba),54326(kmdba),54330(racdba),54327(asmdba)

准备用于FRA的磁盘组

之前创建了12G的+DATA磁盘组用于数据库,此处再创建+12G的+FRA磁盘组用于FRA(Fast Recovery Area)。
停止主机,首先为主机添加两块12G的磁盘(asm3和asm4,就是每组命令中的后两条,前两条是DATA磁盘组的),然后启动主机。

## VBoxManage位于C:\Program Files\Oracle\VirtualBox目录下
REM VBoxManage createhd --filename asm1.vdi --size 10240 --format VDI --variant Fixed
REM VBoxManage createhd --filename asm2.vdi --size 10240 --format VDI --variant Fixed
VBoxManage createhd --filename asm3.vdi --size 10240 --format VDI --variant Fixed
VBoxManage createhd --filename asm4.vdi --size 10240 --format VDI --variant Fixed

REM VBoxManage storageattach ol7-vagrant --storagectl "SATA" --port 1 --device 0 --type hdd --medium asm1.vdi
REM VBoxManage storageattach ol7-vagrant --storagectl "SATA" --port 2 --device 0 --type hdd --medium asm2.vdi
VBoxManage storageattach ol7-vagrant --storagectl "SATA" --port 3 --device 0 --type hdd --medium asm3.vdi
VBoxManage storageattach ol7-vagrant --storagectl "SATA" --port 4 --device 0 --type hdd --medium asm4.vdi

主机认到这两块磁盘sde和sdf:

# lsblk
NAME                MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sdf                   8:80   0   12G  0 disk
sdd                   8:48   0   12G  0 disk
└─sdd1                8:49   0   12G  0 part
sdb                   8:16   0 15.6G  0 disk
sde                   8:64   0   12G  0 disk
sdc                   8:32   0   12G  0 disk
└─sdc1                8:33   0   12G  0 part
sda                   8:0    0 36.5G  0 disk
├─sda2                8:2    0   36G  0 part
│ ├─vg_main-lv_swap 252:1    0    4G  0 lvm  [SWAP]
│ └─vg_main-lv_root 252:0    0   32G  0 lvm  /
└─sda1                8:1    0  500M  0 part /boot

为两块磁盘建立primary分区:

# fdisk /dev/sde
# fdisk /dev/sdf

确认:

# lsblk
NAME                MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sdf                   8:80   0   12G  0 disk
└─sdf1                8:81   0   12G  0 part
sdd                   8:48   0   12G  0 disk
└─sdd1                8:49   0   12G  0 part
sdb                   8:16   0 15.6G  0 disk
sde                   8:64   0   12G  0 disk
└─sde1                8:65   0   12G  0 part
sdc                   8:32   0   12G  0 disk
└─sdc1                8:33   0   12G  0 part
sda                   8:0    0 36.5G  0 disk
├─sda2                8:2    0   36G  0 part
│ ├─vg_main-lv_swap 252:1    0    4G  0 lvm  [SWAP]
│ └─vg_main-lv_root 252:0    0   32G  0 lvm  /
└─sda1                8:1    0  500M  0 part /boot

查看两块磁盘的SCSI ID:

# /usr/lib/udev/scsi_id -g -u -d /dev/sde
1ATA_VBOX_HARDDISK_VB069e4ea7-5587c453
# /usr/lib/udev/scsi_id -g -u -d /dev/sdf
1ATA_VBOX_HARDDISK_VBe653ccf2-2af8cb71

添加ASM磁盘规则:

# cat /etc/udev/rules.d/99-oracle-asmdevices.rules
# for +DATA disk group
KERNEL=="sd?1", SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id -g -u -d /dev/$parent", RESULT=="1ATA_VBOX_HARDDISK_VBb483d0cb-d9040f2a", SYMLINK+="asm-disk1", OWNER="grid", GROUP="dba", MODE="0660"
KERNEL=="sd?1", SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id -g -u -d /dev/$parent", RESULT=="1ATA_VBOX_HARDDISK_VBbc3d0f6f-2c4d4511", SYMLINK+="asm-disk2", OWNER="grid", GROUP="dba", MODE="0660"
# for +FRA disk group
KERNEL=="sd?1", SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id -g -u -d /dev/$parent", RESULT=="1ATA_VBOX_HARDDISK_VB069e4ea7-5587c453", SYMLINK+="asm-disk3", OWNER="grid", GROUP="dba", MODE="0660"
KERNEL=="sd?1", SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id -g -u -d /dev/$parent", RESULT=="1ATA_VBOX_HARDDISK_VBe653ccf2-2af8cb71", SYMLINK+="asm-disk4", OWNER="grid", GROUP="dba", MODE="0660"

通知系统设备变更:

# /sbin/partprobe /dev/sde1
# /sbin/partprobe /dev/sdf1

确认:

# ls -l /dev/sd?1
brw-rw----. 1 root disk 8,  1 Sep  8 14:11 /dev/sda1
brw-rw----. 1 grid dba  8, 33 Sep  8 14:31 /dev/sdc1
brw-rw----. 1 grid dba  8, 49 Sep  8 14:31 /dev/sdd1
brw-rw----. 1 grid dba  8, 65 Sep  8 14:31 /dev/sde1
brw-rw----. 1 grid dba  8, 81 Sep  8 14:31 /dev/sdf1
# ls -l /dev/asm*
lrwxrwxrwx. 1 root root 4 Sep  8 14:31 /dev/asm-disk1 -> sdc1
lrwxrwxrwx. 1 root root 4 Sep  8 14:31 /dev/asm-disk2 -> sdd1
lrwxrwxrwx. 1 root root 4 Sep  8 14:31 /dev/asm-disk3 -> sde1
lrwxrwxrwx. 1 root root 4 Sep  8 14:31 /dev/asm-disk4 -> sdf1

测试udev设置:

# udevadm test /block/sdc/sde1
# udevadm test /block/sdd/sdf1

然后asmca建立磁盘组:
在这里插入图片描述
在这里插入图片描述
asmcmd再次确认:

$ asmcmd lsdsk
Path
/dev/sdc1
/dev/sdd1
/dev/sde1
/dev/sdf1
[grid@ol7-vagrant ~]$ asmcmd lsdg
State    Type    Rebal  Sector  Logical_Sector  Block       AU  Total_MB  Free_MB  Req_mir_free_MB  Usable_file_MB  Offline_disks  Voting_files  Name
MOUNTED  NORMAL  N         512             512   4096  4194304     24568    24344                0           12172              0             N  DATA/
MOUNTED  NORMAL  N         512             512   4096  4194304     24568    24368                0           12184              0             N  FRA/

DBCA创建数据库

oracle用户启动dbca。
在这里插入图片描述
选择典型安装,数据库文件和FRA分布选择+DATA和+FRA:
在这里插入图片描述
这里说明一点,如果之前oracle用户没有加到asmdba组,是看不到+DATA这个磁盘组的。

安装前回顾,保留响应文件:
在这里插入图片描述
开始安装,创建和启动实例这步耗时最长。:
在这里插入图片描述
安装过程中报错:

PRCR-1079 : Failed to start resource ora.orcl.db
CRS-5017: The resource action "ora.orcl.db start" encountered the following error:
ORA-01017: invalid username/password; logon denied
. For details refer to "(:CLSN00107:)" in "/u01/app/grid/diag/crs/ol7-vagrant/crs/trace/ohasd_oraagent_grid.trc".

CRS-2674: Start of 'ora.orcl.db' on 'ol7-vagrant' failed
ORA-01017: invalid username/password; logon denied

可以模拟这个错误:

$ srvctl start database -d orcl
PRCR-1079 : Failed to start resource ora.orcl.db
CRS-5017: The resource action "ora.orcl.db start" encountered the following error:
ORA-01017: invalid username/password; logon denied
. For details refer to "(:CLSN00107:)" in "/u01/app/grid/diag/crs/ol7-vagrant/crs/trace/ohasd_oraagent_grid.trc".

CRS-2674: Start of 'ora.orcl.db' on 'ol7-vagrant' failed
ORA-01017: invalid username/password; logon denied

原来是GI用户需要racdba组:

$ sudo usermod -a -G racdba grid
$ srvctl status database -database orcl
Database is running.
$ srvctl status database -db orcl -verbose
Database orcl is running. Instance status: Open.


然后启动数据库就可以了:

$ srvctl start database -d orcl

dbca删除这个数据库然后重建,最终看到了成功界面:
在这里插入图片描述
查看一下空间使用:

$ asmcmd lsdg
State    Type    Rebal  Sector  Logical_Sector  Block       AU  Total_MB  Free_MB  Req_mir_free_MB  Usable_file_MB  Offline_disks  Voting_files  Name
MOUNTED  NORMAL  N         512             512   4096  4194304     20472    12376                0            6188              0             N  DATA/
MOUNTED  NORMAL  N         512             512   4096  4194304     20472    18952                0            9476              0             N  FRA/

DATA磁盘组用了约4G,FRA磁盘组用了约0.7G。

参考

  1. https://www.anbob.com/archives/1477.html
  2. ASM Diskgroup Can Not Be Shown When Creating Database With DBCA (文档 ID 1269734.1)
  3. 12.2 Oracle Restart: SRVCTL start database fails with error ORA-01017 (文档 ID 2313555.1)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值