현상
TAC에서 TAS DISKSPACE를 생성하는 SQL 문 실행 시 생성에 실패합니다.
1. TAS DISKSPACE 생성 수행
TAS DISKSPACE를 생성하는 SQL 문 실행 시 정상적으로 DISKSPACE가 생성되어야 합니다.
[tibero@tac1 ~]$ tbsql sys/tibero
tbSQL 7
TmaxTibero Corporation Copyright (c) 2020-. All rights reserved.
Connected to Tibero.
SQL> CREATE DISKSPACE DS0 EXTERNAL REDUNDANCY
FAILGROUP FG1 DISK '/dev/tas/disk01' name disk01
FAILGROUP FG2 DISK '/dev/tas/disk02' name disk02
FAILGROUP FG3 DISK '/dev/tas/disk03' name disk03
ATTRIBUTE 'AU_SIZE'='4M';
TBR-31006: Cannot create the diskspace.
SQL>
SQL> !tberr 31006
/*
err: -31006
name: ERROR_AS_CREATE_DS
desc: Cannot create the diskspace.
cause: Cannot create the given diskspace.
action: For more information, refer to the logs.;
*/
SQL>
SQL
복사
2. TAS 인스턴스 로그
로그에서 알 수 있듯이, 지정된 디스크(/dev/tas/disk01, disk02, disk03)에 접근할 수 없어 DISKSPACE 생성이 실패한 것을 확인할 수 있습니다.
디스크 접근 권한 문제로 확인이 필요합니다.
[2025-04-11T16:54:47.787239] [DDL-68] [I] Executing DDL: CREATE DISKSPACE DS0 EXTERNAL REDUNDANCY
FAILGROUP FG1 DISK '/dev/tas/disk01' name disk01
FAILGROUP FG2 DISK '/dev/tas/disk02' name disk02
FAILGROUP FG3 DISK '/dev/tas/disk03' name disk03
ATTRIBUTE 'AU_SIZE'='4M'
[2025-04-11T16:54:47.787283] [AS-68] [I] create diskspace[DS0] master 1
[2025-04-11T16:54:47.787340] [AS-68] [F] cannot open or get disk size for "/dev/tas/disk01"
[2025-04-11T16:54:47.787342] [AS-68] [F] cannot open or get disk size for "/dev/tas/disk02"
[2025-04-11T16:54:47.787343] [AS-68] [F] cannot open or get disk size for "/dev/tas/disk03"
[2025-04-11T16:54:47.787345] [AS-68] [W] failed to discover disks (rc=-1)
[2025-04-11T16:54:47.787355] [FRM-68] [I] THROW. ec=ERROR_AS_CREATE_DS(-31006) [ Cannot create the diskspace. ] (sql_id:fd1x6nuw8n5ya, sub_sql_id:(null), user:SYS, ap_module:(null), program:tbsql, host:tac1) [as_ds.c:1534:as_create_diskspace]
SQL
복사
원인
udev rule 적용 누락으로 인해 디스크 접근 권한이 부족하여 DISKSPACE 생성에 실패했습니다.
•
udev rule 설정 이후 udevadm 또는 reboot을 통해 적용하지 않아 /dev/tas/ 디렉토리 내 디스크 심볼릭 링크가 root 권한으로 남아 있었고,
실제 디스크(/dev/sdb, /dev/sdc, /dev/sdd)의 소유자가 tibero가 아닌 경우 create diskspace 수행 시 디스크 접근 불가로 DISKSPACE 생성에 실패했습니다.
해결
udev rule 점검 후 재적용하여 디스크 권한을 DB User로 수정합니다.
•
아래와 같이 udev rule을 설정하여 /dev/tas/ 하위 디스크에 대해 OWNER=tibero 설정
•
udevadm trigger 명령어를 사용하여 rule을 즉시 적용하거나 시스템 Reboot 수행
•
재적용 방법은 아래와 같이 rebooting 또는 udevadm 명령어를 사용
[root@tac1 ~]# reboot
또는
[root@tac1 ~]# udevadm control --reload-rules
[root@tac1 ~]# udevadm trigger --type=devices --action=change
SQL
복사
이후, DISKSPACE 정상 생성됨을 확인할 수 있습니다.
[root@tac1 ~]# cat /etc/udev/rules.d/99-tas.rules
ACTION=="add|change", KERNEL=="sdb", ENV{ID_SERIAL}=="device system unique id", SYMLINK+="tas/disk01", OWNER="tibero", GROUP="dba", MODE="0660"
ACTION=="add|change", KERNEL=="sdc", ENV{ID_SERIAL}=="device system unique id", SYMLINK+="tas/disk02", OWNER="tibero", GROUP="dba", MODE="0660"
ACTION=="add|change", KERNEL=="sdd", ENV{ID_SERIAL}=="#디스크의 WWID 값", SYMLINK+="tas/disk03", OWNER="tibero", GROUP="dba", MODE="0660"
SQL
복사