SYSTEM$PIPE_REBINDING_WITH_NOTIFICATION_CHANNEL
SYSTEM$PIPE_REBINDING_WITH_NOTIFICATION_CHANNEL
복제된 파이프(pipe)가 복제(replication) 중에 알림 채널(notification channel)에 성공적으로 바인딩되지 않았을 때 알림 채널 바인딩 과정을 재시도하는 시스템 함수예요. 바인딩은 다음 이유 중 하나로 실패할 수 있어요:
- 복제 중에 보조(secondary) 배포에서 클라우드 메시징이 올바르게 설정되지 않았어요. 예를 들어 같은 이름의 알림 통합(notification integration)이 수동으로 생성되지 않았거나, SNS 정책이 구독을 허용하도록 설정되지 않은 경우 등이에요.
- Snowpipe가 파이프를 알림 채널에 바인딩하려고 할 때 클라우드 제공자 오류가 발생했어요.
- 파이프와 그 원본 스테이지(source stage)가 서로 다른 복제 그룹에 있고, 파이프가 복제될 때 스테이지가 복제되지 않았어요.
복제 그룹이나 데이터베이스를 새로고침(refresh)해 알림 바인딩을 재시도할 수도 있어요. 하지만 기본(primary) 계정이 다운되었거나 페일오버(failover)가 이미 완료된 경우에는 이 시스템 함수를 호출하는 것이 유일한 방법이에요.
자세한 내용은 Snowpipe and Stage, pipe, and load history replication을 참고하세요.
본문
Syntax
SYSTEM$PIPE_REBINDING_WITH_NOTIFICATION_CHANNEL( '<pipe_name>' )
Arguments
'pipe_name':
리바인드 알림(re-bind notification) 과정을 거쳐야 하는 파이프의 이름이에요.
Access control requirements
- 파이프 소유자(즉 파이프에 대한 OWNERSHIP 권한이 있는 역할) 또는 파이프에 대한 OPERATE 권한이 있는 역할만 이 SQL 함수를 호출할 수 있어요. 스키마의 객체를 조작하려면 상위 데이터베이스에 대한 권한이 하나 이상, 상위 스키마에 대한 권한이 하나 이상 필요해요.
Usage notes
- pipe_name은 문자열이므로 작은따옴표로 묶어야 해요. 이름이 정규화(fully qualified)된 경우 데이터베이스와 스키마를 포함한 전체 이름을 작은따옴표로 묶어야 해요, 즉
'db.schema.pipe_name'처럼요. 파이프 이름이 대소문자를 구분하거나 특수 문자·공백을 포함하면 대소문자/문자를 처리하기 위해 큰따옴표가 필요해요. 큰따옴표는 작은따옴표 안에 묶여야 해요, 즉'"pipe_name"'처럼요.
Examples
mypipe의 알림 채널 바인딩 과정 재시도하기:
SELECT SYSTEM$PIPE_REBINDING_WITH_NOTIFICATION_CHANNEL('mydb.myschema.mypipe');