이 페이지에서는 이후 버전의 PostgreSQL을 실행하는 인스턴스로 데이터를 마이그레이션하는 방법을 설명합니다. 이 방법을 수행하려면 먼저 현재의 데이터베이스 주 버전을 업그레이드하는 것이 좋습니다.
데이터를 마이그레이션하여 PostgreSQL용 Cloud SQL 인스턴스의 데이터베이스 주 버전을 업그레이드하는 데에는 두 가지 방법이 있습니다.
옵션 1. Database Migration Service(DMS)를 사용합니다.
DMS는 PostgreSQL용 Cloud SQL 인스턴스에서 마이그레이션을 지원합니다. 또한 이를 사용하여 데이터베이스 버전을 업그레이드할 수 있습니다.
옵션 2. PostgreSQL의 데이터를 한 버전에서 다른 버전으로 옮기려면 현재 인스턴스에서 데이터를 내보낸 후 최신 버전의 PostgreSQL을 실행하는 새로운 인스턴스로 이 데이터를 가져와야 합니다. 이 과정에서 다운타임이 발생합니다. 따라서 데이터를 내보내기 전에 현재 인스턴스를 읽기 전용 모드로 전환해야 합니다.
새로운 주 버전에는 데이터베이스 인스턴스를 업그레이드하기 전 애플리케이션 코드, 스키마, 데이터베이스 설정을 수정해야 할 수 있는 호환되지 않는 변경사항이 포함됩니다. 대상 주 버전의 출시 노트를 참조해서 해결해야 할 비호환성 문제를 확인해야 합니다. 주 버전을 건너뛸 경우에는 건너뛰는 각 버전에 대해 나열된 비호환성 문제를 해결해야 합니다.
프로덕션 데이터베이스를 업그레이드하기 전 테스트 인스턴스에서 엔드 투 엔드 업그레이드 프로세스의 시험 이전을 수행합니다. 프로덕션 워크로드에 내보내기로 인한 성능 영향을 방지하기 위해 프로덕션 데이터베이스 대신 클론을 사용하여 업그레이드를 테스트할 수 있습니다.
업그레이드가 성공적으로 완료되는지 검증하는 것 외에도 업그레이드의 예상 다운타임을 파악하고, 업그레이드 워크플로를 확인하고, 업그레이드된 데이터베이스에서 애플리케이션이 예상한 대로 작동하는지 확인하는 테스트를 실행합니다. 자동 스토리지 증가를 사용 설정하지 않았으면 업그레이드된 시험 이전 인스턴스에 사용되는 디스크 스토리지를 기록해서 업그레이드 전 프로덕션 인스턴스의 스토리지 용량을 늘려야 하는지 확인합니다.
postgres 시스템 데이터베이스를 내보내지 마세요. postgres 데이터베이스는 다른 데이터베이스를 만들기 전에 연결되는 기본 데이터베이스입니다. 다른 데이터베이스를 만든 다음 테이블을 만들고 데이터를 삽입하려면 해당 데이터베이스로 전환합니다. 애플리케이션 데이터에 postgres 데이터베이스를 사용하지 마세요.
[[["이해하기 쉬움","easyToUnderstand","thumb-up"],["문제가 해결됨","solvedMyProblem","thumb-up"],["기타","otherUp","thumb-up"]],[["이해하기 어려움","hardToUnderstand","thumb-down"],["잘못된 정보 또는 샘플 코드","incorrectInformationOrSampleCode","thumb-down"],["필요한 정보/샘플이 없음","missingTheInformationSamplesINeed","thumb-down"],["번역 문제","translationIssue","thumb-down"],["기타","otherDown","thumb-down"]],["최종 업데이트: 2025-08-19(UTC)"],[],[],null,["# Upgrade the database major version by migrating data\n\n\u003cbr /\u003e\n\n[MySQL](/sql/docs/mysql/upgrade-major-db-version-migrate \"View this page for the MySQL database engine\") \\| PostgreSQL \\| [SQL Server](/sql/docs/sqlserver/upgrade-major-db-version-migrate \"View this page for the SQL Server database engine\")\n\n\u003cbr /\u003e\n\nThis page describes how to migrate your data to an instance running a later\nversion of PostgreSQL. Before proceeding with this method, consider\n[upgrading the database major version in-place](/sql/docs/postgres/upgrade-major-db-version-inplace).\n\nThere are two ways to upgrade the database major version of your Cloud SQL\nfor PostgreSQL instance by migrating your data.\n\n- **Option 1** . Use the [Database Migration Service (DMS)](/database-migration/docs/postgres/configure-source-database). DMS supports migrating from a Cloud SQL for PostgreSQL instance. You can also use it to upgrade your database version.\n- **Option 2** . Move your data from one version of PostgreSQL to another by *exporting* data from the current instance and *importing* that data into a new instance running the later version of PostgreSQL. This process involves downtime; you put the current instance into read-only mode before starting the export.\n\nThe rest of this page discusses the second option.\n\nPlan a major version upgrade\n----------------------------\n\n1. Choose a target major version.\n\n See the [list of versions that Cloud SQL supports](/sql/docs/postgres/db-versions).\n2. Consider the features offered in each PostgreSQL version and address\n incompatibilities.\n\n New major versions introduce incompatible changes that might require you to\n modify the application code, the schema, or the database settings before\n you can upgrade your database instance. Review the release notes of your\n target major version to determine the incompatibilities that you need to\n address. If you're skipping major versions, address the incompatibilities\n listed for each version that you're skipping.\n - [PostgreSQL 17](https://www.postgresql.org/docs/17/release-17.html)\n - [PostgreSQL 16](https://www.postgresql.org/docs/16/release-16.html)\n - [PostgreSQL 15](https://www.postgresql.org/docs/15/release-15.html)\n - [PostgreSQL 14](https://www.postgresql.org/docs/14/static/release-14.html)\n - [PostgreSQL 13](https://www.postgresql.org/docs/13/static/release-13.html)\n - [PostgreSQL 12](https://www.postgresql.org/docs/12/static/release-12.html)\n - [PostgreSQL 11](https://www.postgresql.org/docs/11/static/release-11.html)\n - [PostgreSQL 10](https://www.postgresql.org/docs/10/static/release-10.html)\n3. Test the upgrade with a dry run.\n\n Perform a dry run of the end-to-end upgrade process with a test instance\n before you upgrade the production database. You might want to test the upgrade\n using a [clone](/sql/docs/postgres/clone-instance)\n instead of your production database to avoid any performance impact from the\n export on your production workload.\n\n In addition to validating that the upgrade completes successfully, run\n tests to understand the expected downtime of the upgrade, confirm your\n upgrade workflow, and ensure that the application behaves as expected on the upgraded\n database. If you haven't enabled [automatic storage increases](/sql/docs/postgres/instance-settings#automatic-storage-increase-2ndgen),\n take note of the disk storage used by the upgraded dry run instance to\n determine whether you need to increase the storage capacity for the\n production instance before upgrading.\n4. Decide when you want to upgrade.\n\n | **Note:** Upgrades require the instance to become unavailable for a period of time. Be sure to schedule your upgrade when database activity is low.\n\nMigrate your data\n-----------------\n\nMigrating entails using the [`pg_dump`](https://www.postgresql.org/docs/14/static/app-pgdump.html)\ncommand to [export the data](/sql/docs/postgres/import-export/import-export-dmp#export)\nfrom the source instance and the [`pg_restore`](https://www.postgresql.org/docs/14/static/app-pgrestore.html)\ncommand to [import the data](/sql/docs/postgres/import-export/import-export-dmp#import)\ninto the target instance.\n\nTo migrate your data to a Cloud SQL instance running a more recent database\nversion, follow these steps:\n\n1. Create the target instance with the desired PostgreSQL version.\n\n Make sure the target instance has:\n - Sufficient storage to hold all of the current instance's data.\n - The same authorized networks as the current instance. [Learn more](/sql/docs/postgres/configure-ip).\n - The same user accounts, with the same PostgreSQL privileges and passwords.\n\n For more information, see [Creating an instance](/sql/docs/postgres/create-instance).\n2. Confirm that you can [connect to the new instance](/sql/docs/postgres/connect-admin-ip) with your local PostgreSQL\n tools and update them, if necessary.\n\n3. Export the current instance's data to a PostgreSQL dump file, following the\n instructions in\n [Exporting data for Import into Cloud SQL](/sql/docs/postgres/import-export/import-export-dmp#external-server).\n\n Do *not* export the `postgres` system database. The `postgres` database is\n the default database you connect to before you have created any other\n databases. Once you create another database, switch to it in order\n to create tables and insert data. Don't use the `postgres` database for your\n application's data.\n4. [Create a Cloud Storage bucket](/storage/docs/creating-buckets)\n if needed, and upload your SQL dump file to the bucket.\n\n5. Import the data to the target instance, following the instructions in\n [Importing PostgreSQL databases from Cloud Storage](/sql/docs/postgres/import-export/import-export-dmp#import_data_using_pg_restore_).\n\n6. Optional. After completing the upgrade process, set up replication\n between the source and target instances using `pglogical` to update the\n target with all changes that have occurred since the initial dump was\n started. Once the two instances are in sync, you can promote the target\n instance.\n\n For information about using `pglogical` to implement continuous replication,\n see [Configure your source](/database-migration/docs/postgres/configure-source-database).\n7. Update your applications to connect to the new instance.\n\n8. When you're confident that your new instance is operating successfully,\n delete the old instance.\n\nWhat's next\n-----------\n\n- Learn about [importing and exporting data](/sql/docs/postgres/import-export).\n- Learn about [options for connecting to an instance](/sql/docs/postgres/external-connection-methods).\n- Learn more about [setting PostgreSQL flags](/sql/docs/postgres/flags)."]]