Amazon RDS for PostgreSQL에서 지원되는 PostgreSQL 기능 작업 - Amazon Relational Database Service

Amazon RDS for PostgreSQL에서 지원되는 PostgreSQL 기능 작업

Amazon RDS for PostgreSQL 가장 일반적인 기타 기능을 많이 지원합니다. 예를 들어 PostgreSQL에는 데이터베이스에서 일상적인 유지 관리를 수행하는 자동 autovacuum 기능이 있습니다. 자동 정리 실행 기능은 기본적으로 활성화되어 있습니다. 이 기능을 끌 수 있지만 계속 사용하는 것이 좋습니다. 이 기능을 이해하고 제대로 작동하는지 확인하기 위해 수행할 수 있는 작업은 모든 DBA의 기본 작업입니다. autovacuum에 대한 자세한 내용은 Amazon RDS for PostgreSQL에서 PostgreSQL Autovacuum 사용 섹션을 참조하세요. 기타 일반적인 DBA 작업에 대해 자세히 알아보려면 Amazon RDS for PostgreSQL의 일반적인 DBA 태스크 섹션을 참조하세요.

RDS for PostgreSQL은 DB 인스턴스에 중요한 기능을 추가하는 확장도 지원합니다. 예를 들어 PostGIS 확장을 사용하여 공간 데이터로 작업하거나 pg_cron 확장을 사용하여 인스턴스 내에서 유지 관리를 예약할 수 있습니다. PostgreSQL 확장에 대한 자세한 내용은 Amazon RDS for PostgreSQL로 PostgreSQL 확장 사용 섹션을 참조하세요.

외부 데이터 래퍼는 RDS for PostgreSQL DB 인스턴스가 다른 상용 데이터베이스 또는 데이터 유형과 함께 작동하도록 설계된 특정 유형의 확장입니다. RDS for PostgreSQL에서 지원되는 외부 데이터 래퍼에 대한 자세한 내용은 Amazon RDS for PostgreSQL용 지원되는 외부 데이터 래퍼 작업 섹션을 참조하세요.

다음에서 RDS for PostgreSQL이 지원하는 일부 다른 기능에 대한 정보를 확인할 수 있습니다.

RDS for PostgreSQL을 사용한 사용자 지정 데이터 유형 및 열거

PostgreSQL은 사용자 지정 데이터 형식을 만들고 열거형 작업을 지원합니다. 열거형 및 기타 데이터 유형을 생성하고 사용하는 방법에 대한 자세한 내용은 PostgreSQL 문서의 열거 형식을 참조하세요.

다음은 유형을 열거형으로 만든 다음 테이블에 값을 삽입하는 예입니다.

CREATE TYPE rainbow AS ENUM ('red', 'orange', 'yellow', 'green', 'blue', 'purple'); CREATE TYPE CREATE TABLE t1 (colors rainbow); CREATE TABLE INSERT INTO t1 VALUES ('red'), ( 'orange'); INSERT 0 2 SELECT * from t1; colors -------- red orange (2 rows) postgres=> ALTER TYPE rainbow RENAME VALUE 'red' TO 'crimson'; ALTER TYPE postgres=> SELECT * from t1; colors --------- crimson orange (2 rows)

RDS for PostgreSQL용 이벤트 트리거

현재 모든 PostgreSQL 버전은 이벤트 트리거를 지원하며 사용 가능한 모든 RDS for PostgreSQL 버전도 지원합니다. 기본 사용자 계정(기본값, postgres)을 사용하여 이벤트 트리거를 생성, 수정, 이름 변경 및 삭제할 수 있습니다. 이벤트 트리거는 DB 인스턴스 레벨에서 수행되므로 인스턴스에 대한 모든 데이터베이스에 적용될 수 있습니다.

예를 들어 다음 코드는 모든 데이터 정의 언어(DDL) 명령의 끝에 현재 사용자를 인쇄하는 이벤트 트리거를 생성합니다.

CREATE OR REPLACE FUNCTION raise_notice_func() RETURNS event_trigger LANGUAGE plpgsql AS $$ BEGIN RAISE NOTICE 'In trigger function: %', current_user; END; $$; CREATE EVENT TRIGGER event_trigger_1 ON ddl_command_end EXECUTE PROCEDURE raise_notice_func();

PostgreSQL 이벤트 트리거에 대한 자세한 내용은 PostgreSQL 문서의 Event Triggers 단원을 참조하세요.

Amazon RDS에서 PostgreSQL 이벤트 트리거를 사용하는 데 대한 몇 가지 제한 사항이 있습니다. 여기에는 다음이 포함됩니다.

  • 읽기 전용 복제본에 대한 이벤트 트리거를 생성할 수 없지만, 읽기 전용 복제 원본에 대한 이벤트 트리거는 생성할 수 있습니다. 그러면 이벤트 트리거가 읽기 전용 복제본으로 복사됩니다. 읽기 전용 복제본으로 복사된 이벤트 트리거는 변경 내용이 원본에서 푸시되더라도 읽기 전용 복제본에서 발생하지 않습니다. 하지만 읽기 전용 복제본이 승격되면 데이터베이스 작업이 있을 때 기존 이벤트 트리거가 발생합니다.

  • 이벤트 트리거를 사용하는 PostgreSQL DB 인스턴스로의 메이저 버전 업그레이드를 수행하려면 인스턴스를 업그레이드하기 전에 이벤트 트리거를 삭제해야 합니다.

RDS for PostgreSQL용 방대한 페이지

방대한 페이지는 DB 인스턴스가 공유 버퍼에서 사용하는 것과 같은 대규모 연속 메모리 청크로 작업할 때 오버헤드를 줄이는 메모리 관리 기능입니다. 이 PostgreSQL 기능은 현재 사용 가능한 모든 RDS for PostgreSQL 버전에서 지원됩니다. 애플리케이션에 방대한 페이지를 할당하려면 mmap 또는 SYSV 공유 메모리 호출을 사용합니다. RDS for PostgreSQL은 4KB 페이지 크기와 2MB 페이지 크기를 모두 지원합니다.

huge_pages 파라미터의 값을 변경하여 방대한 페이지를 활성화하거나 비활성화할 수 있습니다. 이 기능은 마이크로, 스몰, 미디엄 DB 인스턴스 클래스를 제외한 모든 DB 인스턴스 클래스에 대해 기본적으로 사용 설정되어 있습니다.

RDS for PostgreSQL는 사용 가능한 공유 메모리를 기반으로 방대한 페이지를 사용합니다. DB 인스턴스가 공유 메모리 제약 때문에 방대한 페이지를 사용할 수 없을 경우 Amazon RDS는 DB 인스턴스 시작을 금지합니다. 이 경우 Amazon RDS는 DB 인스턴스 상태를 파라미터 호환 불가 상태로 설정합니다. 이렇게 되면 huge_pages 파라미터를 off로 설정하여 Amazon RDS가 DB 인스턴스를 시작하도록 허용할 수 있습니다.

shared_buffers 파라미터가 방대한 페이지를 사용하는 데 필요한 공유 메모리 풀을 설정하는 관건입니다. shared_buffers 파라미터의 기본값은 데이터베이스 파라미터 매크로를 사용합니다. 이 매크로는 DB 인스턴스 메모리에서 사용 가능한 총 8KB 페이지 중 백분율을 설정합니다. 방대한 페이지를 사용할 때 이러한 페이지는 방대한 페이지에 할당됩니다. 공유 메모리 파라미터를 DB 인스턴스 메모리의 90% 이상을 요구하도록 설정할 경우 Amazon RDS가 DB 인스턴스를 파라미터 호환 장애 상태로 설정하므로 유의해야 합니다.

PostgreSQL 메모리 관리에 대한 자세한 내용은 PostgreSQL 설명서의 Resource Consumption(리소스 소비)을 참조하세요.

Amazon RDS for PostgreSQL에 대한 논리적 복제 수행

버전 10.4부터 RDS for PostgreSQL는 PostgreSQL 10에 도입된 게시 및 구독 SQL 구문을 지원합니다. 자세한 내용은 PostgreSQL의 논리적 복제 문서를 참조하세요.

참고

RDS for PostgreSQL은 PostgreSQL 10에 도입된 기본 PostgreSQL 논리적 복제 기능 외에 pglogical 확장도 지원합니다. 자세한 내용은 pglogical을 사용하여 인스턴스 간 데이터 동기화 섹션을 참조하세요.

다음에서 RDS for PostgreSQL DB 인스턴스의 논리적 복제 설정에 관한 정보를 확인할 수 있습니다.

논리적 복제 및 논리적 디코딩 이해

RDS for PostgreSQL은 PostgreSQL의 논리적 복제 슬롯을 사용하여 미리 쓰기 로그(WAL) 변경 사항 스트리밍을 지원합니다. 또한 논리적 디코딩 사용을 지원합니다. 인스턴스에 대한 논리적 복제 슬롯을 설정하고 해당 슬롯을 통해 데이터베이스 변경을 클라이언트(예: pg_recvlogical)에 스트리밍할 수 있습니다. 논리적 복제 슬롯은 데이터베이스 수준에서 생성되며 단일 데이터베이스에 대한 복제 연결을 지원합니다.

가장 일반적인 PostgreSQL 논리적 복제용 클라이언트는 Amazon EC2 인스턴스의 사용자 지정 관리형 호스트 또는 AWS Database Migration Service입니다. 논리적 복제 슬롯에는 스트림 수신기에 대한 정보가 없습니다. 또한 대상이 복제본 데이터베이스일 필요는 없습니다. 논리적 복제 슬롯을 설정하고 슬롯에서 데이터를 읽지 않을 경우 데이터가 DB 인스턴스의 스토리지에 기록되고 빠르게 가득 찰 수 있습니다.

Amazon RDS의 PostgreSQL 논리적 복제 및 논리적 디코딩은 파라미터, 복제 연결 유형 및 보안 역할에 의해 활성화됩니다. PostgreSQL DB 인스턴스의 데이터베이스에 대한 복제 연결을 설정할 수 있는 모든 클라이언트는 논리적 디코딩용 클라이언트가 될 수 있습니다.

RDS for PostgreSQL DB 인스턴스에 논리적 디코딩 사용 설정
  1. 사용 중인 사용자 계정에 다음과 같은 역할이 있는지 확인합니다.

    • 논리 복제를 설정할 수 있는 rds_superuser 역할

    • 논리적 슬롯을 관리하고 논리적 슬롯을 사용하여 데이터를 스트리밍할 수 있는 권한을 부여하는 rds_replication 역할

  2. rds.logical_replication 정적 파라미터를 1로 설정합니다. 이 파라미터를 적용하는 중에 wal_level, max_wal_senders, max_replication_slots, max_connections 파라미터 또한 설정합니다. 이러한 파라미터 변경은 WAL 생성을 강화하므로 논리적 슬롯을 사용할 때 rds.logical_replication 파라미터만 설정하면 됩니다.

  3. 정적 rds.logical_replication 파라미터가 적용되도록 DB 인스턴스를 재부팅합니다.

  4. 다음 섹션에 설명된 대로 논리적 복제 슬롯을 생성합니다. 이 프로세스에서는 디코딩 플러그인을 지정해야 합니다. 현재 RDS for PostgreSQL은 PostgreSQL과 함께 배송되는 test_decoding 및 wal2json 출력 플러그 인을 지원합니다.

PostgreSQL 논리적 디코딩에 대한 자세한 내용은 PostgreSQL 설명서를 참조하세요.

논리적 복제 슬롯 작업

SQL 명령을 사용하여 논리적 슬롯 작업을 수행할 수 있습니다. 예를 들어 다음 명령은 기본 PostgreSQL 출력 플러그인인 test_slot을 사용하여 test_decoding 논리적 슬롯을 생성합니다.

SELECT * FROM pg_create_logical_replication_slot('test_slot', 'test_decoding'); slot_name | xlog_position -----------------+--------------- regression_slot | 0/16B1970 (1 row)

논리적 슬롯 목록을 보려면 다음 명령을 사용합니다.

SELECT * FROM pg_replication_slots;

논리적 슬롯을 삭제하려면 다음 명령을 사용합니다.

SELECT pg_drop_replication_slot('test_slot'); pg_drop_replication_slot ----------------------- (1 row)

논리적 복제 슬롯 작업에 대한 더 많은 예제는 PostgreSQL 문서의 Logical Decoding Examples를 참조하세요.

논리적 복제 슬롯을 생성한 후 스트리밍을 시작할 수 있습니다. 다음 예에서는 스트리밍 복제 프로토콜을 통해 논리적 디코딩을 제어하는 방법을 보여 줍니다. 이 예에서는 PostgreSQL 배포판에 포함된 pg_recvlogical 프로그램을 사용합니다. 이렇게 하려면 복제 연결을 허용하도록 클라이언트 인증을 설정해야 합니다.

pg_recvlogical -d postgres --slot test_slot -U postgres --host -instance-name.111122223333.aws-region.rds.amazonaws.com -f - --start

pg_replication_origin_status 보기의 내용을 보려면 pg_show_replication_origin_status 함수를 쿼리합니다.

SELECT * FROM pg_show_replication_origin_status(); local_id | external_id | remote_lsn | local_lsn ----------+-------------+------------+----------- (0 rows)

stats_temp_directory에 대한 RAM 디스크

RDS for PostgreSQL의 파라미터 rds.pg_stat_ramdisk_size를 사용하여 PostgreSQL stats_temp_directory 저장용 RAM 디스크에 할당되는 시스템 메모리를 지정할 수 있습니다. RAM 디스크 파라미터는 Amazon RDS의 모든 PostgreSQL 버전에 사용할 수 있습니다.

특정 워크로드에서 이 파라미터를 설정하면 성능이 향상되고 I/O 요구 사항이 감소될 수 있습니다. stats_temp_directory에 대한 자세한 내용은 PostgreSQL 문서 단원을 참조하세요.

stats_temp_directory에 대한 RAM 디스크를 설정하려면 DB 인스턴스에 사용되는 파라미터 그룹에서 rds.pg_stat_ramdisk_size 파라미터를 정수 리터럴 값으로 설정합니다. 이 파라미터는 MB를 나타내므로 정수 값을 사용해야 합니다. 표현식, 공식 및 함수는 rds.pg_stat_ramdisk_size 파라미터에 유효하지 않습니다. 변경 사항을 적용하려면 DB 인스턴스를 재부팅해야 합니다. 파라미터 설정에 대한 자세한 내용은 파라미터 그룹 작업을 참조하세요.

예를 들어 다음 AWS CLI 명령은 RAM 디스크 파라미터를 256MB로 설정합니다.

aws rds modify-db-parameter-group \ --db-parameter-group-name pg-95-ramdisk-testing \ --parameters "ParameterName=rds.pg_stat_ramdisk_size, ParameterValue=256, ApplyMethod=pending-reboot"

재부팅 후 다음 명령을 실행하여 stats_temp_directory의 상태를 확인합니다.

postgres=> SHOW stats_temp_directory;

명령은 다음을 반환합니다.

stats_temp_directory --------------------------- /rdsdbramdisk/pg_stat_tmp (1 row)

RDS for PostgreSQL용 테이블스페이스

RDS for PostgreSQL은 호환성을 위해 테이블스페이스를 지원합니다. 모든 스토리지가 단일 논리 볼륨에 있으므로 I/O 분할 또는 격리를 위해 테이블스페이스를 사용할 수 없습니다. Amazon의 벤치마크 결과와 실용적 경험에 따르면 단일 논리 볼륨이 대부분의 사용 사례에 최선의 설정입니다.

RDS for PostgreSQL DB 인스턴스로 테이블스페이스를 생성하고 사용하려면 rds_superuser 역할이 필요합니다. RDS for PostgreSQL DB 인스턴스의 기본 사용자 계정(기본 이름, postgres)은 이 역할의 멤버입니다. 자세한 정보는 PostgreSQL 역할 및 권한 이해의 내용을 참조하세요.

테이블스페이스를 생성할 때 파일 이름을 지정하는 경우, 경로 접두사는 /rdsdbdata/db/base/tablespace입니다. 다음 예제에서는 테이블스페이스 파일을 /rdsdbdata/db/base/tablespace/data에 배치합니다. 이 예에서는 dbadmin 사용자(역할)가 존재하고 테이블스페이스 작업에 필요한 rds_superuser 역할이 부여되었다고 가정합니다.

postgres=> CREATE TABLESPACE act_data OWNER dbadmin LOCATION '/data'; CREATE TABLESPACE

PostgreSQL 테이블스페이스에 대한 자세한 내용은 Tablespaces(테이블스페이스)를 참조하세요.

EBCDIC 및 기타 메인프레임 마이그레이션을 위한 RDS for PostgreSQL 데이터 정렬

PostgreSQL용 RDS 버전 10 이상에는 유니코드 10.0을 기반으로 하고 유니코드 공통 로케일 데이터 저리포지토리(CLDR 32)의 데이터 정렬이 포함된 ICU 버전 60.2가 포함되어 있습니다. 이러한 소프트웨어 국제화 라이브러리는 운영 체제나 플랫폼에 관계없이 문자 인코딩이 일관된 방식으로 표시되도록 합니다. 유니코드 CLDR-32에 대한 자세한 내용은 유니코드 CLDR 웹 사이트의 CLDR 32 릴리스 노트에서 확인할 수 있습니다. ICU 기술 위원회(ICU-TC) 웹 사이트에서 유니코드(ICU)의 국제화 구성 요소에 대해 자세히 알아볼 수 있습니다. ICU-60에 대한 정보는 ICU 60 다운로드를 참조하세요.

14.3 버전부터 PostgreSQL용 RDS에는 EBCDIC 기반 시스템에서 데이터 통합 및 변환을 지원하는 데이터 정렬도 포함됩니다. 확장 이진 코딩 십진 교환 코드 또는 EBCDIC 인코딩은 일반적으로 메인프레임 운영 체제에서 사용됩니다. Amazon RDS에서 제공하는 이러한 데이터 정렬은 EBCDIC 코드 페이지에 직접 매핑되는 유니코드 문자만 정렬하도록 좁게 정의되어 있습니다. 문자는 변환 후 데이터 유효성 검사가 가능하도록 EBCDIC 코드 포인트 순서로 정렬됩니다. 이러한 데이터 정렬에는 비정규화된 형식이 포함되지 않으며 소스 EBCDIC 코드 페이지의 문자에 직접 매핑되지 않는 유니코드 문자도 포함되지 않습니다.

EBCDIC 코드 페이지와 유니코드 코드 포인트 간의 문자 매핑은 IBM에서 게시한 테이블을 기반으로 합니다. 전체 세트는 다운로드용 압축 파일로 IBM에서 사용할 수 있습니다. PostgreSQL용 RDS는 ICU에서 제공하는 도구와 함께 이러한 매핑을 사용하여 이 섹션의 표에 나열된 데이터 정렬을 만들었습니다. 데이터 정렬 이름에는 ICU에서 요구하는 언어 및 국가가 포함됩니다. 그러나 EBCDIC 코드 페이지는 언어를 지정하지 않으며 일부 EBCDIC 코드 페이지는 여러 국가를 포함합니다. 따라서 테이블에 있는 데이터 정렬 이름의 언어 및 국가 부분이 임의적이며 현재 로케일과 일치할 필요가 없습니다. 코드 페이지 번호는 이 표의 데이터 정렬 이름에서 가장 중요한 부분입니다. RDS for PostgreSQL 데이터베이스에서 다음 표에 나열된 모든 데이터 정렬을 사용할 수 있습니다.

  • Unicode to EBCDIC collations table - 일부 메인프레임 데이터 마이그레이션 툴은 내부적으로 LATIN1 또는 LATIN9 을 사용하여 데이터를 인코딩하고 처리합니다. 이러한 도구는 왕복 방식을 사용하여 데이터 무결성을 유지하고 역변환을 지원합니다. 이 표의 데이터 정렬은 특별한 처리가 필요하지 않은 LATIN1 인코딩을 사용하여 데이터를 처리하는 도구에서 사용할 수 있습니다.

  • Unicode to LATIN9 collations table - 모든 RDS for PostgreSQL 데이터베이스에서 이러한 데이터 정렬을 사용할 수 있습니다.

다음 표에는 EBCDIC 코드 페이지를 유니코드 코드 포인트에 매핑하는 RDS for PostgreSQL에서 사용할 수 있는 데이터 정렬이 나와 있습니다. IBM 코드 페이지의 순서를 기준으로 정렬해야 하는 애플리케이션 개발에는 이 테이블의 데이터 정렬을 사용하는 것이 좋습니다.

PostgreSQL 데이터 정렬 이름 코드 페이지 매핑 및 정렬 순서에 대한 설명

da-DK-cp277-x-icu

IBM EBCDIC 코드 페이지 277에 직접 매핑되는 유니코드 문자(변환 테이블당)는 IBM CP 277 코드 포인트 순서로 정렬됩니다.

de-DE-cp273-x-icu

IBM EBCDIC 코드 페이지 273에 직접 매핑되는 유니코드 문자(변환 테이블당)는 IBM CP 273 코드 포인트 순서로 정렬됩니다.

en-GB-cp285-x-icu

IBM EBCDIC 코드 페이지 285에 직접 매핑되는 유니코드 문자(변환 테이블당)는 IBM CP 285 코드 포인트 순서로 정렬됩니다.

en-US-cp037-x-icu

IBM EBCDIC 코드 페이지 037에 직접 매핑되는 유니코드 문자(변환 테이블당)는 IBM CP 37 코드 포인트 순서로 정렬됩니다.

es-ES-cp284-x-icu

IBM EBCDIC 코드 페이지 284에 직접 매핑되는 유니코드 문자(변환 테이블당)는 IBM CP 284 코드 포인트 순서로 정렬됩니다.

fi-FI-cp278-x-icu

IBM EBCDIC 코드 페이지 278에 직접 매핑되는 유니코드 문자(변환 테이블당)는 IBM CP 278 코드 포인트 순서로 정렬됩니다.

fr-FR-cp297-x-icu

IBM EBCDIC 코드 페이지 297에 직접 매핑되는 유니코드 문자(변환 테이블당)는 IBM CP 297 코드 포인트 순서로 정렬됩니다.

it-IT-cp280-x-icu

IBM EBCDIC 코드 페이지 280에 직접 매핑되는 유니코드 문자(변환 테이블당)는 IBM CP 280 코드 포인트 순서로 정렬됩니다.

nl-BE-cp500-x-icu

IBM EBCDIC 코드 페이지 500에 직접 매핑되는 유니코드 문자(변환 테이블당)는 IBM CP 500 코드 포인트 순서로 정렬됩니다.

Amazon RDS는 소스 데이터의 EBCDIC 코드 페이지에 따라 원래 코드 포인트의 순서로 IBM에서 게시한 테이블을 사용하여 LATIN9 문자에 매핑되는 유니코드 코드 포인트를 정렬하는 추가 데이터 정렬 세트를 제공합니다.

PostgreSQL 데이터 정렬 이름 코드 페이지 매핑 및 정렬 순서에 대한 설명

da-DK-cp1142b-x-icu

IBM EBCDIC 코드 페이지 1142(변환 테이블당)에서 원래 변환된 LATIN9 문자에 매핑되는 유니코드 문자는 IBM CP 1142 코드 포인트 순서로 정렬됩니다.

de-DE-cp1141m-x-icu

IBM EBCDIC 코드 페이지 1141(변환 테이블당)에서 원래 변환된 LATIN9 문자에 매핑되는 유니코드 문자는 IBM CP 1141 코드 포인트 순서로 정렬됩니다.

en-GB-cp1146m-x-icu

IBM EBCDIC 코드 페이지 1146(변환 테이블당)에서 원래 변환된 LATIN9 문자에 매핑되는 유니코드 문자는 IBM CP 1146 코드 포인트 순서로 정렬됩니다.

en-US-cp1140m-x-icu

IBM EBCDIC 코드 페이지 1140(변환 테이블당)에서 원래 변환된 LATIN9 문자에 매핑되는 유니코드 문자는 IBM CP 1140 코드 포인트 순서로 정렬됩니다.

es-ES-cp1145m-x-icu

IBM EBCDIC 코드 페이지 1145(변환 테이블당)에서 원래 변환된 LATIN9 문자에 매핑되는 유니코드 문자는 IBM CP 1145 코드 포인트 순서로 정렬됩니다.

fi-FI-cp1143m-x-icu

IBM EBCDIC 코드 페이지 1143(변환 테이블당) 에서 원래 변환된 LATIN9 문자에 매핑되는 유니코드 문자는 IBM CP 1143 코드 포인트 순서로 정렬됩니다.

fr-FR-cp1147m-x-icu

IBM EBCDIC 코드 페이지 1147(변환 테이블당) 에서 원래 변환된 LATIN9 문자에 매핑되는 유니코드 문자는 IBM CP 1147 코드 포인트 순서로 정렬됩니다.

it-IT-cp1144m-x-icu

IBM EBCDIC 코드 페이지 1144(변환 테이블당) 에서 원래 변환된 LATIN9 문자에 매핑되는 유니코드 문자는 IBM CP 1144 코드 포인트 순서로 정렬됩니다.

nl-BE-cp1148m-x-icu

IBM EBCDIC 코드 페이지 1148(변환 테이블당) 에서 원래 변환된 LATIN9 문자에 매핑되는 유니코드 문자는 IBM CP 1148 코드 포인트 순서로 정렬됩니다.

RDS for PostgreSQL 데이터 정렬 사용 예를 찾아볼 수 있습니다.

db1=> SELECT pg_import_system_collations('pg_catalog'); pg_import_system_collations ----------------------------- 36 db1=> SELECT '¤' < 'a' col1; col1 ------ t db1=> SELECT '¤' < 'a' COLLATE "da-DK-cp277-x-icu" col1; col1 ------ f

IBM 코드 페이지의 순서를 기반으로 정렬해야 하는 애플리케이션 개발의 경우 Unicode to EBCDIC collations tableUnicode to LATIN9 collations table의 데이터 정렬을 사용하는 것이 좋습니다. 다음 데이터 정렬(문자 "b" 접미사)도 pg_collation에서 볼 수 있지만 특정 코드 포인트 이동이 있는 코드 페이지를 매핑하고 데이터 정렬에서 특별한 처리가 필요한 AWS의 메인프레임 데이터 통합 및 마이그레이션 도구에서 사용하기 위한 것입니다. 즉, 다음과 같은 데이터 정렬 데이터 정렬 방식은 권장되지 않습니다.

  • da-DK-cp1142b-x-icu

  • da-DK-cp1142b-x-icu

  • de-DE-cp273b-x-icu

  • de-DE-cp1141b-x-icu

  • en-GB-cp1146b-x-icu

  • en-GB-cp285b-x-icu

  • en-US-cp037b-x-icu

  • en-US-cp1140b-x-icu

  • es-ES-cp1145b-x-icu

  • es-ES-cp284b-x-icu

  • fi-FI-cp1143b-x-icu

  • fr-FR-cp1147b-x-icu

  • fr-FR-cp297b-x-icu

  • it-IT-cp1144b-x-icu

  • it-IT-cp280b-x-icu

  • nl-BE-cp1148b-x-icu

  • nl-BE-cp500b-x-icu

메인프레임 환경에서 AWS로 애플리케이션을 마이그레이션하는 방법에 대한 자세한 내용은 AWS Mainframe Modernization 무엇입니까?를 참조하세요.

PostgreSQL의 데이터 정렬에 대한 자세한 내용은 PostgreSQL 설명서의 데이터 정렬 지원을 참조하세요.