ALTER POSTGRES INSTANCE¶
기존 :doc:`Snowflake Postgres 인스턴스 </user-guide/snowflake-postgres/about>`의 속성을 수정합니다.
- 참고 항목:
CREATE POSTGRES INSTANCE , DESCRIBE POSTGRES INSTANCE, DROP POSTGRES INSTANCE , SHOW POSTGRES INSTANCES
구문¶
ALTER POSTGRES INSTANCE [ IF EXISTS ] <name>
RENAME TO <new_name>
ALTER POSTGRES INSTANCE [ IF EXISTS ] <name> SET
[ NETWORK_POLICY = '<network_policy>' ]
[ AUTHENTICATION_AUTHORITY = { POSTGRES | POSTGRES_OR_SNOWFLAKE } ]
[ COMMENT = '<string_literal>' ]
[ HIGH_AVAILABILITY = { TRUE | FALSE } ]
[ COMPUTE_FAMILY = '<compute_family>' ]
[ STORAGE_SIZE_GB = <storage_gb> ]
[ STORAGE_INTEGRATION = '<storage_integration_name>' ]
[ POSTGRES_VERSION = { 16 | 17 | 18 } ]
[ MAINTENANCE_WINDOW_START = <hour_of_day> ]
[ POSTGRES_SETTINGS = '<json_string>' ]
[ APPLY { IMMEDIATELY | ON '<timestamp>' } ]
ALTER POSTGRES INSTANCE [ IF EXISTS ] <name>
UNSET { COMMENT | POSTGRES_SETTINGS | NETWORK_POLICY
| MAINTENANCE_WINDOW_START | STORAGE_INTEGRATION } [ , ... ]
ALTER POSTGRES INSTANCE [ IF EXISTS ] <name> SUSPEND
ALTER POSTGRES INSTANCE [ IF EXISTS ] <name> RESUME
ALTER POSTGRES INSTANCE [IF EXISTS] <name> RESET ACCESS
FOR { 'snowflake_admin' | 'application' }
ALTER POSTGRES INSTANCE [ IF EXISTS ] <name> SET TAG <tag_name> =
'<tag_value>' [ , <tag_name> = '<tag_value>' ... ]
ALTER POSTGRES INSTANCE [ IF EXISTS ] <name> UNSET TAG <tag_name>
[ , <tag_name> ... ]
매개 변수¶
name변경할 Postgres 인스턴스의 식별자를 지정합니다.
식별자에 공백이나 특수 문자가 포함된 경우 전체 문자열을 큰따옴표로 묶어야 합니다. 큰따옴표로 묶인 식별자도 대/소문자를 구분합니다.
자세한 내용은 식별자 요구 사항 섹션을 참조하십시오.
RENAME TO new_namePostgres 인스턴스의 이름을 지정된 새 이름으로 변경합니다. 새 식별자는 계정에 대해 고유한 식별자여야 합니다.
식별자에 대한 자세한 내용은 식별자 요구 사항 섹션을 참조하십시오.
RESET ACCESS FOR { 'snowflake_admin' | 'application' }snowflake_admin또는application역할에 대한 자격 증명을 다시 생성합니다. 이 명령은 다음 열이 있는 하나의 행을 반환합니다.password
자세한 내용은 Snowflake Postgres 역할 섹션을 참조하십시오.
SET ...Postgres 인스턴스에 대해 하나 이상의 지정된 속성을 설정합니다.
NETWORK_POLICY = 'network_policy'인스턴스에 사용할 :doc:`네트워크 정책</user-guide/snowflake-postgres/postgres-network>`을 지정합니다. 정책 변경 사항이 적용되는 데 최대 2분이 걸릴 수 있습니다.
이 매개 변수를 지정하려면 네트워크 정책 오브젝트에 대한 USAGE 권한이 부여되어야 합니다.
AUTHENTICATION_AUTHORITY = { POSTGRES | POSTGRES_OR_SNOWFLAKE }인스턴스의 인증 방법을 변경합니다. POSTGRES는 Postgres에서 사용하는 비밀번호만 사용할 수 있음을 나타냅니다. POSTGRES_OR_SNOWFLAKE는 단기 액세스 토큰 비밀번호를 사용할 수도 있습니다. 자세한 내용은 Snowflake Postgres용 Snowflake 토큰 인증 섹션을 참조하십시오.
COMMENT = 'string_literal'Postgres 인스턴스에 대한 기존 설명을 추가하거나 덮어씁니다.
HIGH_AVAILABILITY = { TRUE | FALSE }인스턴스에 대해 고가용성 </user-guide/snowflake-postgres/high-availability>`을 활성화 또는 비활성화합니다. 비동기 작업으로 실행합니다. DESCRIBE POSTGRES INSTANCE 명령을 실행하고 ``operations` 필드를 모니터링하여 진행 상황을 추적합니다.
고가용성 변경은 인스턴스가 READY 상태에 있고 실행 중인 다른 작업이 없는 경우에만 시작할 수 있습니다.
참고
버스트 가능 인스턴스 크기(BURST_XS, BURST_S, BURST_M)는 고 가용성을 지원하지 않습니다. HA를 활성화하려면 먼저 STANDARD 또는 HIGHMEM 컴퓨팅 제품군으로 변경해야 합니다.
COMPUTE_FAMILY = 'compute_family'Postgres 인스턴스의 새 :doc:`인스턴스 크기 </user-guide/snowflake-postgres/postgres-instance-sizes>`를 지정합니다.
STORAGE_SIZE_GB = storage_gb새 저장소 크기를 GB로 지정합니다. 증가 및 감소가 모두 지원됩니다.
참고
저장소 크기를 줄일 때는 인스턴스에 있는 데이터 양에 너무 가까운 수준으로 양을 줄일 수 없습니다. 새 크기는 인스턴스에서 현재 사용 중인 디스크 사용량의 1.4배 이상이어야 합니다. 이를 통해 자동 저장소 증가를 트리거하지 않고도 더 많은 데이터를 추가할 수 있습니다.
STORAGE_INTEGRATION = 'storage_integration_name'POSTGRES_EXTERNAL_STORAGE유형의 저장소 통합을 Postgres 인스턴스에 연결하여 pg_lake 확장 프로그램이 외부 오브젝트 저장소의 데이터에 액세스할 수 있도록 활성화합니다. 전체 설정 프로시저는 pg_lake용 S3 저장소 구성하기 섹션을 참조하세요.POSTGRES_VERSION = { 16 | 17 | 18 }업그레이드할 Postgres 주 버전을 지정합니다. 최신 버전으로만 업그레이드할 수 있으며, 다운그레이드는 지원되지 않습니다.
MAINTENANCE_WINDOW_START = hour_of_day유지 관리 기간을 시작할 수 있는 시간(0~23, UTC)을 지정합니다. 유지 관리 기간은 지정된 시간부터 3시간입니다.
POSTGRES_SETTINGS = 'json_string'인스턴스에 대한 Postgres 서버 설정 변경 사항을 JSON 형식으로 지정합니다.
'{"component:name" = "value", ...}'일부 설정을 적용하려면 인스턴스를 다시 시작해야 합니다. ``APPLY IMMEDIATELY``를 지정하지 않는 한 이러한 변경 사항은 적용되지 않습니다.
APPLY IMMEDIATELY정의된 유지 관리 기간을 재정의하고 준비되는 즉시 지정된 작업을 적용합니다.
COMPUTE_FAMILY,STORAGE_SIZE_GB,POSTGRES_VERSION및 ``POSTGRES_SETTINGS``에 적용합니다.APPLY ON 'timestamp'정의된 유지 관리 기간을 재정의하고 주어진 타임스탬프에 지정된 작업을 적용합니다. 타임스탬프는 향후 72시간을 초과할 수 없습니다.
지원되는 타임스탬프 형식:
yyyy-MM-ddyyyy-MM-dd HH:mmyyyy-MM-dd HH:mm:ssyyyy-MM-dd HH:mm zzz
UNSET ...Postgres 인스턴스에 대해 하나 이상의 지정된 속성을 설정 해제하여 기본값으로 재설정합니다.
COMMENTPOSTGRES_SETTINGSNETWORK_POLICYMAINTENANCE_WINDOW_START- 설정을 해제하면 진행 중인 모든 작업이 완료되는 즉시 적용됩니다.STORAGE_INTEGRATION- 인스턴스에서 저장소 통합을 제거하여 외부 저장소에 대한 pg_lake 액세스를 비활성화합니다.
단일 ALTER 문으로 여러 속성 또는 매개 변수의 설정을 해제하려면 각 속성 또는 매개 변수를 쉼표로 구분합니다.
속성이나 매개 변수를 설정 취소할 때는 속성이나 매개 변수 이름만 지정하십시오(위의 구문에서 값을 지정해야 한다고 명시된 경우는 제외). 값을 지정하면 오류가 반환됩니다.
SUSPENDPostgres 인스턴스를 일시 중단합니다. 디스크 이미지가 저장소에 보관되는 동안에는 가상 머신이 비활성화됩니다. 일반적인 청구는 일시 중단되지만 저장소 비용은 계속 발생합니다. 기존 백업은 유지됩니다.
RESUME일시 중단된 Postgres 인스턴스를 재개합니다. 다시 시작을 대기 중인 작업이 있는 경우 인스턴스가 재개될 때 적용됩니다.
액세스 제어 요구 사항¶
이 작업을 실행하는 데 사용되는 역할 에는 최소한 다음 권한 이 있어야 합니다.
권한 |
오브젝트 |
참고 |
|---|---|---|
OWNERSHIP 또는 OPERATE |
Postgres 인스턴스 |
인스턴스 속성을 수정하는 데 필요합니다. |
USAGE |
네트워크 정책 |
NETWORK_POLICY를 지정하는 경우에만 필요합니다. |
USAGE |
저장소 통합 |
STORAGE_INTEGRATION를 지정하는 경우에만 필요합니다. |
지정된 권한 세트로 사용자 지정 역할을 만드는 방법에 대한 지침은 사용자 지정 역할 만들기 섹션을 참조하십시오.
보안 오브젝트 에 대해 SQL 작업을 수행하기 위한 역할과 권한 부여에 대한 일반적인 정보는 액세스 제어의 개요 섹션을 참조하십시오.
사용법 노트¶
COMPUTE_FAMILY,STORAGE_SIZE_GB및POSTGRES_VERSION``에 대한 변경 사항은 통칭하여 "업그레이드" 작업이라고 하며 함께 수행할 수 있습니다. DESCRIBE POSTGRES INSTANCE 명령을 실행하고 ``operations필드를 모니터링하여 진행 상황을 추적합니다.업그레이드 작업은 인스턴스가 READY 상태에 있고 실행 중인 다른 작업이 없는 경우에만 시작할 수 있습니다.
인스턴스에 정의된 유지 관리 기간이 있는 경우, ``APPLY IMMEDIATELY``가 지정되지 않는 한 유지 관리 기간이 시작될 때까지 변경 사항이 적용되지 않습니다. 유지 관리 기간은 인스턴스 실행 여부가 아니라 변경 사항이 적용되는 *시점*을 제어합니다. 유지 관리 작업에 대한 자세한 내용은 Snowflake Postgres 인스턴스 관리 섹션을 참조하세요.
인스턴스 관리 작업을 수행하려면 짧은 서비스 중단이 필요합니다. 애플리케이션이 데이터베이스에 자동으로 다시 연결할 수 있는지 확인합니다.
SUSPEND 및 RESUME는 인스턴스 청구를 중지하고 시작하기 위한 즉각적인 작업입니다. 이는 구성 변경(업그레이드 또는 HA 활성화 등)이 적용되는 시점을 예약하는 유지 관리 기간과는 다릅니다.
인스턴스에 대한 연결 문자열은 자격 증명을 명시적으로 다시 생성하지 않는 한, 인스턴스 관리 작업 전체에서 동일하게 유지됩니다.
메타데이터 관련:
주의
고객은 Snowflake 서비스를 사용할 때 개인 데이터(사용자 오브젝트 제외), 민감한 데이터, 수출 통제 대상 데이터 또는 기타 규제 데이터가 메타데이터로 입력되지 않도록 해야 합니다. 자세한 내용은 Snowflake의 메타데이터 필드 섹션을 참조하십시오.
예¶
Postgres 인스턴스의 컴퓨팅 제품군 및 저장소 크기를 변경합니다.
ALTER POSTGRES INSTANCE my_postgres
SET COMPUTE_FAMILY = 'STANDARD_M'
STORAGE_SIZE_GB = 100;
DESCRIBE를 사용하여 작업 진행 상황을 모니터링합니다.
DESCRIBE POSTGRES INSTANCE my_postgres
->> SELECT "property", "value"
FROM $1
WHERE "property" IN
('name', 'state', 'operations', 'compute_family',
'storage_size_gb');
-- Repeat until state shows 'READY'
인스턴스에 대해 고가용성을 활성화합니다.
-- Check current HA status
DESCRIBE POSTGRES INSTANCE my_postgres
->> SELECT "property", "value"
FROM $1
WHERE "property" IN ('name', 'high_availability',
'state');
-- Enable HA (asynchronous operation)
ALTER POSTGRES INSTANCE my_postgres
SET HIGH_AVAILABILITY = TRUE;
-- Monitor until operation completes
DESCRIBE POSTGRES INSTANCE my_postgres
->> SELECT "property", "value"
FROM $1
WHERE "property" IN ('name', 'high_availability',
'state');
Postgres 18로 업그레이드합니다.
-- Check current Postgres version using flow operator
SHOW POSTGRES INSTANCES
->> SELECT "name", "postgres_version", "state"
FROM $1
WHERE "name" = 'my_postgres';
-- Upgrade to version 18
ALTER POSTGRES INSTANCE my_postgres
SET POSTGRES_VERSION = 18;
변경 사항을 즉시 적용하여 유지 관리 기간을 재정의합니다.
ALTER POSTGRES INSTANCE my_postgres
SET COMPUTE_FAMILY = 'STANDARD_L'
APPLY IMMEDIATELY;
Postgres 인스턴스를 일시 중단합니다.
-- Check state before suspending
DESCRIBE POSTGRES INSTANCE my_postgres
->> SELECT "property", "value"
FROM $1
WHERE "property" IN ('name', 'state');
-- Suspend the instance
ALTER POSTGRES INSTANCE my_postgres SUSPEND;
-- Verify suspended state
DESCRIBE POSTGRES INSTANCE my_postgres
->> SELECT "property", "value"
FROM $1
WHERE "property" IN ('name', 'state');
일시 중단된 인스턴스를 재개합니다.
ALTER POSTGRES INSTANCE my_postgres RESUME;
Postgres 인스턴스의 이름을 바꿉니다.
ALTER POSTGRES INSTANCE my_postgres
RENAME TO prod_postgres;
참고
인스턴스 이름을 바꾸면 Snowflake에서 식별자가 변경되지만 연결 호스트 이름은 변경되지 않습니다. 호스트 이름은 동일하게 유지되므로 기존 연결과 애플리케이션은 수정하지 않고도 계속 작동합니다.
