Babelfish를 새 메이저 버전으로 업그레이드 - Amazon Aurora

Babelfish를 새 메이저 버전으로 업그레이드

메이저 버전 업그레이드에서는 먼저 Babelfish for Aurora PostgreSQL DB 클러스터를 메이저 버전 업그레이드를 지원하는 버전으로 업그레이드해야 합니다. 이를 위해서 패치 업데이트 또는 마이너 버전 업그레이드를 DB 클러스터에 적용하세요. 자세한 내용은 Babelfish를 새 마이너 버전으로 업그레이드를 참조하세요.

다음 테이블에는 메이저 버전 업그레이드를 지원할 수 있는 Aurora PostgreSQL 버전과 Babelfish 버전이 나와 있습니다.

현재 소스 버전

최신 업그레이드 대상

Aurora PostgreSQL(Babelfish) Aurora PostgreSQL(Babelfish)

15.8(3.7.0)

16.4(4.3.0)

15.7(3.6.0)

16.4(4.3.0), 16.3(4.2.0)

15.6(3.5.0)

16.4(4.3.0), 16.3(4.2.0), 16.2(4.1.0)

15.5(3.4.0)

16.4(4.3.0), 16.3(4.2.0), 16.2(4.1.0), 16.1(4.0.0)

15.4(3.3.0)

16.4(4.3.0), 16.3(4.2.0), 16.2(4.1.0), 16.1(4.0.0)

15.3(3.2.0)

16.4(4.3.0), 16.3(4.2.0), 16.2(4.1.0), 16.1(4.0.0)

15.2(3.1.0)

16.4(4.3.0), 16.3(4.2.0), 16.2(4.1.0), 16.1(4.0.0)

14.13(2.10.0)

16.4(4.3.0)

15.8(3.7.0)

14.12(2.9.0)

16.4(4.3.0), 16.3(4.2.0)

15.8(3.7.0), 15.7(3.6.0)

14.11(2.8.0)

16.4(4.3.0), 16.3(4.2.0), 16.2(4.1.0)

15.8(3.7.0), 15.7(3.6.0), 15.6(3.5.0)

14.10(2.7.0)

16.4(4.3.0), 16.3(4.2.0), 16.2(4.1.0), 16.1(4.0.0)

15.8(3.7.0), 15.7(3.6.0), 15.6(3.5.0), 15.5(3.4.0)

14.9(2.6.0)

16.4(4.3.0), 16.3(4.2.0), 16.2(4.1.0), 16.1(4.0.0)

15.8(3.7.0), 15.7(3.6.0), 15.6(3.5.0), 15.5(3.4.0), 15.4(3.3.0)

14.8(2.5.0)

16.4(4.3.0), 16.3(4.2.0), 16.2(4.1.0), 16.1(4.0.0)

15.8(3.7.0), 15.7(3.6.0), 15.6(3.5.0), 15.5(3.4.0), 15.4(3.3.0), 15.3(3.2.0)

14.7(2.4.0)

16.4(4.3.0), 16.3(4.2.0), 16.2(4.1.0), 16.1(4.0.0)

15.8(3.7.0), 15.7(3.6.0), 15.6(3.5.0), 15.5(3.4.0), 15.4(3.3.0), 15.3(3.2.0), 15.2(3.1.0)

14.6(2.3.0)

16.4(4.3.0), 16.3(4.2.0), 16.2(4.1.0), 16.1(4.0.0)

15.8(3.7.0), 15.7(3.6.0), 15.6(3.5.0), 15.5(3.4.0), 15.4(3.3.0), 15.3(3.2.0), 15.2(3.1.0)

13.9(1.5.0)

14.6(2.3.0)

13.8(1.4.0)

14.6(2.3.0)

13.7(1.3.0)

14.6(2.3.0)

Babelfish를 새 메이저 버전으로 업그레이드하기 전

업그레이드하는 과정에서 일시적인 중단이 발생할 수 있습니다. 따라서 유지 관리 기간 동안 또는 사용량이 많지 않은 기간에 업그레이드를 수행하거나 예약하는 것이 좋습니다.

메이저 버전 업그레이드를 수행하기 전

  1. 사용 중인 Babelfish 버전 식별에 나와 있는 명령을 사용하여 기존 Aurora PostgreSQL DB 클러스터의 Babelfish 버전을 식별합니다. Aurora PostgreSQL 버전 및 Babelfish 버전 정보는 PostgreSQL에서 처리하므로 To use the PostgreSQL port to query for version information 절차에 설명된 단계에 따라 세부 정보를 가져옵니다.

  2. 사용 중인 버전이 메이저 버전 업그레이드를 지원하는지 확인합니다. 메이저 버전 업그레이드 기능을 지원하는 버전 목록은 Babelfish를 새 마이너 버전으로 업그레이드를 참조하여 필요한 사전 업그레이드 작업을 수행하세요.

    예를 들어 Babelfish 버전이 Aurora PostgreSQL 13.5 DB 클러스터에서 실행 중이고 Aurora PostgreSQL 15.2로 업그레이드하려는 경우 먼저 모든 마이너 릴리스 및 패치를 적용하여 클러스터를 Aurora PostgreSQL 14.6 이상 버전으로 업그레이드하세요. 클러스터 버전이 14.6 이상이면 메이저 버전 업그레이드 절차를 계속 진행합니다.

  3. 현재 Babelfish DB 클러스터의 수동 스냅샷을 백업으로 생성합니다. 백업을 통해 클러스터를 Aurora PostgreSQL 버전, Babelfish 버전으로 복원하고 모든 데이터를 업그레이드 전 상태로 복원할 수 있습니다. 자세한 내용은 DB 클러스터 스냅샷 생성 단원을 참조하십시오. 이 클러스터를 업그레이드 전 상태로 복원하려면 기존 사용자 지정 DB 클러스터 파라미터 그룹을 다시 사용할 수 있도록 유지해야 합니다. 자세한 내용은 DB 클러스터 스냅샷에서 복원파라미터 그룹 고려 사항 단원을 참조하세요.

  4. 대상 Aurora PostgreSQL DB 버전에 대한 사용자 지정 DB 클러스터 파라미터 그룹을 준비합니다. 현재 Babelfish for Aurora PostgreSQL DB 클러스터에서 Babelfish 파라미터 설정을 복제합니다. 모든 Babelfish 파라미터 목록을 보려면 Babelfish용 DB 클러스터 파라미터 그룹 설정을 참조하세요. 메이저 버전 업그레이드에서 다음 파라미터에 소스 DB 클러스터와 동일한 설정이 필요합니다. 업그레이드에 성공하려면 모든 설정이 동일해야 합니다.

    • rds.babelfish_status

    • babelfishpg_tds.tds_default_numeric_precision

    • babelfishpg_tds.tds_default_numeric_scale

    • babelfishpg_tsql.database_name

    • babelfishpg_tsql.default_locale

    • babelfishpg_tsql.migration_mode

    • babelfishpg_tsql.server_collation_name

    주의

    새 Aurora PostgreSQL 버전에 대한 사용자 지정 DB 클러스터 파라미터 그룹의 Babelfish 파라미터 설정이 업그레이드 중인 클러스터의 파라미터 값과 일치하지 않으면 ModifyDBCluster 작업이 실패합니다. AWS Management Console 또는 modify-db-cluster AWS CLI 명령에서 나온 출력값에 InvalidParameterCombination 오류 메시지가 나타납니다.

  5. AWS Management Console 또는 AWS CLI에서 사용자 지정 DB 클러스터 파라미터 그룹을 생성합니다. 업그레이드하려는 Aurora PostgreSQL 버전에 해당하는 Aurora PostgreSQL 패밀리를 선택합니다.

    작은 정보

    파라미터 그룹은 AWS 리전 수준에서 관리됩니다. AWS CLI로 작업할 때 명령에서 --region을 지정하는 대신 기본 리전으로 구성할 수 있습니다. AWS CLI 사용에 대한 자세한 내용은 AWS Command Line Interface사용 설명서의 빠른 설정을 참조하세요.

메이저 버전 업그레이드 수행

  1. Aurora PostgreSQL DB 클러스터를 새 메이저 버전으로 업그레이드합니다. 자세한 내용은 Aurora PostgreSQL 엔진을 새로운 메이저 버전으로 업그레이드 단원을 참조하십시오.

  2. 파라미터 설정을 적용할 수 있도록 클러스터의 라이터 인스턴스를 재부팅합니다.

새 메이저 버전으로 업그레이드한 후

새 Aurora PostgreSQL 버전으로 메이저 버전을 업그레이드한 후 IDENTITY 열이 있는 테이블의 IDENTITY 값은 업그레이드 전 값보다 클 수 있습니다(+32). 따라서 다음 행이 이러한 테이블에 삽입될 때 생성된 ID 열 값이 +32 숫자로 이동하고 거기에서 시퀀스를 시작합니다. 이 조건은 Babelfish DB 클러스터의 기능에 부정적인 영향을 미치지 않습니다. 하지만 원하는 경우 열의 최대값을 기준으로 시퀀스 객체를 재설정할 수 있습니다. 그러려면 sqlcmd 또는 다른 SQL Server 클라이언트를 사용하여 Babelfish 작성자 인스턴스의 T-SQL 포트에 연결합니다. 자세한 내용은 SQL Server 클라이언트 도구를 사용하여 DB 클러스터에 연결 단원을 참조하십시오.

sqlcmd -S bfish-db.cluster-123456789012.aws-region.rds.amazonaws.com,1433 -U sa -P ******** -d dbname

연결되면 다음 SQL 명령을 사용하여 연결된 시퀀스 객체를 시드하는 데 사용할 수 있는 문을 생성합니다. 이 SQL 명령은 단일 데이터베이스 및 다중 데이터베이스 Babelfish 구성 모두에서 작동합니다. 이러한 두 가지 배포 모델에 대한 자세한 내용은 단일 데이터베이스 또는 여러 데이터베이스에서 Babelfish 사용을 참조하세요.

DECLARE @schema_prefix NVARCHAR(200) = '' IF current_setting('babelfishpg_tsql.migration_mode') = 'multi-db' SET @schema_prefix = db_name() + '_' SELECT 'SELECT setval(pg_get_serial_sequence(''' + @schema_prefix + schema_name(tables.schema_id) + '.' + tables.name + ''', ''' + columns.name + '''),(select max(' + columns.name + ') FROM ' + schema_name(tables.schema_id) + '.' + tables.name + ')); 'FROM sys.tables tables JOIN sys.columns columns ON tables.object_id = columns.object_id WHERE columns.is_identity = 1 GO

쿼리는 최대 IDENTITY 값을 재설정하고 간격을 좁히기 위해 실행할 수 있는 일련의 SELECT 문을 생성합니다. 다음은 Babelfish 클러스터에서 실행되는 샘플 SQL Server 데이터베이스인 Northwind를 사용할 때 나오는 출력값을 보여줍니다.

-------------------------------------------------------- SELECT setval(pg_get_serial_sequence('northwind_dbo.categories', 'categoryid'),(select max(categoryid) FROM dbo.categories)); SELECT setval(pg_get_serial_sequence('northwind_dbo.orders', 'orderid'),(select max(orderid) FROM dbo.orders)); SELECT setval(pg_get_serial_sequence('northwind_dbo.products', 'productid'),(select max(productid) FROM dbo.products)); SELECT setval(pg_get_serial_sequence('northwind_dbo.shippers', 'shipperid'),(select max(shipperid) FROM dbo.shippers)); SELECT setval(pg_get_serial_sequence('northwind_dbo.suppliers', 'supplierid'),(select max(supplierid) FROM dbo.suppliers)); (5 rows affected)

명령문을 하나씩 실행하여 시퀀스 값을 재설정합니다.

예: Babelfish DB 클러스터를 메이저 릴리스로 업그레이드

이 예시에서는 Babelfish 버전 1.2.2를 실행하는 Aurora PostgreSQL 13.6.4 DB 클러스터를 Aurora PostgreSQL 14.6으로 업그레이드하는 방법을 설명하는 일련의 AWS CLI 명령을 확인할 수 있습니다. 먼저 Aurora PostgreSQL 14에 사용할 사용자 지정 DB 클러스터 파라미터 그룹을 생성합니다. 다음으로 Aurora PostgreSQL 버전 13 소스의 파라미터 값과 일치하도록 파라미터 값을 수정합니다. 마지막으로 소스 클러스터를 수정하여 업그레이드를 수행합니다. 자세한 내용은 Babelfish용 DB 클러스터 파라미터 그룹 설정 단원을 참조하십시오. 해당 주제에서는 AWS Management Console에서 업그레이드를 수행하는 방법에 대한 내용도 찾을 수 있습니다.

create-db-cluster-parameter-group CLI 명령을 사용하여 새 버전에 사용할 DB 클러스터 파라미터 그룹을 생성합니다.

대상 LinuxmacOS, 또는Unix:

aws rds create-db-cluster-parameter-group \ --db-cluster-parameter-group-name docs-lab-babelfish-apg-14 \ --db-parameter-group-family aurora-postgresql14 \ --description 'New custom parameter group for upgrade to new major version' \ --region us-west-1

이 명령을 실행하면 사용자 지정 DB 클러스터 파라미터 그룹이 AWS 리전에 생성됩니다. 출력은 다음과 비슷합니다.

{ "DBClusterParameterGroup": { "DBClusterParameterGroupName": "docs-lab-babelfish-apg-14", "DBParameterGroupFamily": "aurora-postgresql14", "Description": "New custom parameter group for upgrade to new major version", "DBClusterParameterGroupArn": "arn:aws:rds:us-west-1:111122223333:cluster-pg:docs-lab-babelfish-apg-14" } }

자세한 내용은 Amazon Aurora에서 DB 클러스터 파라미터 그룹 생성 단원을 참조하십시오.

modify-db-cluster-parameter-group CLI 명령을 사용하여 소스 클러스터와 일치하도록 설정을 수정합니다.

Windows의 경우:

aws rds modify-db-cluster-parameter-group --db-cluster-parameter-group-name docs-lab-babelfish-apg-14 ^ --parameters "ParameterName=rds.babelfish_status,ParameterValue=on,ApplyMethod=pending-reboot" ^ "ParameterName=babelfishpg_tds.tds_default_numeric_precision,ParameterValue=38,ApplyMethod=pending-reboot" ^ "ParameterName=babelfishpg_tds.tds_default_numeric_scale,ParameterValue=8,ApplyMethod=pending-reboot" ^ "ParameterName=babelfishpg_tsql.database_name,ParameterValue=babelfish_db,ApplyMethod=pending-reboot" ^ "ParameterName=babelfishpg_tsql.default_locale,ParameterValue=en-US,ApplyMethod=pending-reboot" ^ "ParameterName=babelfishpg_tsql.migration_mode,ParameterValue=single-db,ApplyMethod=pending-reboot" ^ "ParameterName=babelfishpg_tsql.server_collation_name,ParameterValue=sql_latin1_general_cp1_ci_as,ApplyMethod=pending-reboot"

응답은 다음과 비슷합니다.

{ "DBClusterParameterGroupName": "docs-lab-babelfish-apg-14" }

modify-db-cluster CLI 명령을 사용하여 새 버전과 새 사용자 지정 DB 클러스터 파라미터 그룹을 사용하도록 클러스터를 수정합니다. 다음 샘플과 같이 --allow-major-version-upgrade 인수도 지정합니다.

aws rds modify-db-cluster \ --db-cluster-identifier docs-lab-bfish-apg-14 \ --engine-version 14.6 \ --db-cluster-parameter-group-name docs-lab-babelfish-apg-14 \ --allow-major-version-upgrade \ --region us-west-1 \ --apply-immediately

파라미터 설정을 적용할 수 있도록 reboot-db-instance CLI 명령을 사용하여 클러스터의 라이터 인스턴스를 재부팅합니다.

aws rds reboot-db-instance \ --db-instance-identifier docs-lab-bfish-apg-14-instance-1\ --region us-west-1