현상
Tibero Active Cluster(이하 TAS) 재 구축 시 nomount 모드에서 create diskspace를 수행하는 경우,
이미 disk가 mount되어있다는 의미인 TBR-31009 에러가 발생하며 diskspace 재 생성이 불가합니다.
1.
TAS 첫번째 구축 완료
2.
TAS 재구축: nomount 모드에서 create diskspace 수행
SQL> CREATE DISKSPACE DS0 external redundancy
2 failgroup ds0_fg0 DISK '/data/tastac_new/tbdata/disk0' SIZE 8g,
3 '/data/tastac_new/tbdata/disk1' SIZE 8g;
TBR-31009: The disk, '/data/tastac_new/tbdata/disk0', has already been mounted.
SQL
복사
원인
TAS diskspace의 신규 및 추가 생성에 따라 수행하는 모드가 다르며, 구문의 syntax는 동일합니다.
•
nomount에서 수행 시: diskspace 신규 생성
•
mount 이상에서 수행 시: diskspace 추가
기존에 사용자 실수로, nomount에서 diskspace 추가를 수행해 기 diskspace가 초기화 되는 문제가 발생한 경우가 있어 이를 방지하고자 별도 패치를 생성해 적용했습니다. (적용패치: 203789)
패치 적용 후 nomount 모드에서 create diskspace 수행 시, 생성하고자 하는 공간이 완전히 비어 있지 않으면 에러가 출력됩니다.
해결
Case 1. 203789a 패치 적용 시
‘ddcopy’ 명령어를 이용해 디스크를 초기화합니다.
dd if=/dev/zero of=/data/tastac_new/tbdata/disk0 bs=1M count=10240
SQL
복사
Case 2. 203789b 이후 패치 적용 시
아래 2개의 방법 중 선택적으로 사용할 수 있습니다.
_AS_CREATE_DISKSPACE_FORCE 파라미터 추가
_AS_CREATE_DISKSPACE_FORCE=Y로 설정할 경우, nomount 모드에서 create diskspace 수행 시 disk header를 체크하지 않고 건너뛰게 되므로, 이전에 TAS에서 사용한 이력이 있는 disk라도 에러 메시지 없이 diskspace를 생성합니다. (default = N)
create diskspace 구문에 force 키워드 추가
create diskspace 시 아래 예시와 같이 DS명 뒤에 force를 입력하면 disk header를 체크하지 않고 diskspace를 생성할 수 있습니다.
SQL> create diskspace DS0 force normal redundancy
failgroup FG0 disk
'/dev/disk0' name DISK0
failgroup FG1 disk
'/dev/disk1' name DISK1
attribute 'AU_SIZE' = '1M';
Diskspace 'DS0' created.
SQL
복사