# Upgrade database from Redis Cloud Essentials to Redis Cloud Pro

```json metadata
{
  "schema_version": 2,
  "title": "Upgrade database from Redis Cloud Essentials to Redis Cloud Pro",
  "description": "Upgrade your Redis Cloud Essentials subscription to a Redis Cloud Pro subscription.",
  "categories": ["docs","operate","rc"],
  "tableOfContents": {"sections":[{"children":[{"id":"create-rcp","title":"Create Redis Cloud Pro database"},{"id":"migrate-data","title":"Migrate data"},{"id":"redirect-database-endpoints","title":"Redirect database endpoints"},{"id":"delete-essentials-database","title":"Delete Essentials database"}],"id":"upgrade-essentials-subscription-to-pro","title":"Upgrade Essentials subscription to Pro"}]}

,
  "codeExamples": []
}
```


Redis Cloud Essentials supports low throughput workflows. It supports a range of availability, persistence, and backup options, and can be great for testing and prototyping. However, if your databases need higher throughput, or you're missing features that are not available with Redis Cloud Essentials, you may want to upgrade Redis Cloud Essentials to Redis Cloud Pro.

For more information about the different subscription plans, see [Subscription plans](https://redis.io/docs/latest/operate/rc/subscriptions#subscription-plans).

To upgrade your Essentials plan to another essential plan, see [Upgrade subscription plan](https://redis.io/docs/latest/operate/rc/subscriptions/view-essentials-subscription#upgrade-plan).

## Upgrade Essentials subscription to Pro

To follow the steps in this guide, you must have a database with [Redis Cloud Essentials](https://redis.io/docs/latest/operate/rc/subscriptions/view-essentials-subscription) that you want to upgrade to Redis Cloud Pro.

To upgrade your Essentials database to Redis Cloud Pro:

1. [Create a new database in Redis Cloud Pro](#create-rcp) with the right specifications to be able to migrate your database.

1. [Migrate the data in your Essentials database](#migrate-data) to your new Redis Cloud Pro database, if needed.

1. [Redirect the endpoints](#redirect-database-endpoints) to your new Redis Cloud Pro database.

### Create Redis Cloud Pro database {#create-rcp}

[Create a new database](https://redis.io/docs/latest/operate/rc/databases/create-database/create-pro-database-new) with the following specifications:

- Select **Redis Cloud Pro** for your subscription type.
- In the [**Sizing tab**](https://redis.io/docs/latest/operate/rc/databases/create-database/create-pro-database-new#sizing-tab), create your databases with the following specifications:
    - Set the memory limit to comply with [Active-Passive memory requirements](https://redis.io/docs/latest/operate/rc/databases/migrate-databases#active-passive-memory-requirements) if you want to migrate your database using [Active-Passive](https://redis.io/docs/latest/operate/rc/databases/migrate-databases#sync-using-active-passive).
    - In **More options**, set the **Port** to **Manually assign**, and enter the port of your Essentials database. You must set the port number to match the port of your Essentials database if you want to migrate your database endpoints. You can find the port in the endpoint of your database on the **Configuration** tab of your database.

### Migrate data

You can migrate your Redis Cloud Essentials database to your new Redis Cloud Pro subscription using any method in the [Migrate databases](https://redis.io/docs/latest/operate/rc/databases/migrate-databases) guide. This guide uses [Active-Passive](https://redis.io/docs/latest/operate/rc/databases/migrate-databases#sync-using-active-passive) to migrate databases between subscriptions in the same account.

> [!NOTE]
> Before you follow this guide, be aware of the following limitations:
>
> - This guide is for migrating databases between subscriptions in the same Redis Cloud console account. [Contact support](https://redis.io/support/) if you want to migrate a database between accounts using Active-Passive.
>
> - As long as Active-Passive is enabled, data in the target database will not expire and will not be evicted regardless of the set [data eviction policy](https://redis.io/docs/latest/operate/rc/databases/configuration/data-eviction-policies). We recommend that you turn off Active-Passive after the databases are synced. 

1. Select the database you want to migrate your data to. This will be your target database.

1. From the **Configuration** tab of the target database, select **Edit**.

    ![The Edit database button lets you change selected database properties.](https://redis.io/docs/latest/images/rc/button-database-edit.png)

1. In the **Durability** section, enable **Active-Passive Redis** and then select **Add Source**.

    ![Active-Passive settings are located in the **Durability** section of the database **Configuration** tab.](https://redis.io/docs/latest/images/rc/migrate-data-active-passive-enable.png)

    ![Use the **Add Source** button to specify the source of the Active-Passive replica.](https://redis.io/docs/latest/images/rc/button-database-uri-add.png)

1. This will open the **Add Active-Passive Redis** screen. Select **Current account** to connect a database in your current account.

    ![The Add Active-Passive Redis screen.](https://redis.io/docs/latest/images/rc/migrate-data-add-active-passive.png)

1. Select your Redis Cloud Essentials database from the **Source database** list. This will be your source database. You can type in the database's name to find it.

    ![Select the Source database from the database list.](https://redis.io/docs/latest/images/rc/database-add-account-path-list.png)

1. Select **Save Database** to begin updating the database.

    ![Use the **Save Database** button to save your changes, deploy the database, and to start data migration.](https://redis.io/docs/latest/images/rc/button-database-save.png)

    Initially, the database status is __Pending__, which means the update task is still running.  

    ![When the status is 'Pending', your changes are still being deployed.](https://redis.io/docs/latest/images/rc/icon-database-update-status-pending.png)

    The sync process doesn't begin until the database becomes `Active`.  

    ![When the status becomes 'Active', data begins to sync.](https://redis.io/docs/latest/images/rc/icon-database-status-active.png)

    When data has fully migrated to the target database, database status reports `Synced`.  

    ![When the data is migrated, the target database status displays Synced.](https://redis.io/docs/latest/images/rc/migrate-data-status-synced.png)

    Active-Passive sync lets you migrate data while apps and other connections are using the source database. Once the data is migrated, you should migrate active connections to the target database and turn off Active-Passive before you move on. 

### Redirect database endpoints

Redirecting your database endpoints after migrating your data lets you direct connections to your new database without any code changes.

> [!NOTE]
> See [Redirect dynamic endpoints](https://redis.io/docs/latest/operate/rc/databases/redirect-endpoints) for more information on the limitations and requirements for endpoint redirection.

To redirect your database endpoints:

1. From the Redis Cloud console, select **Databases** from the menu and select the source database in the list.

1. In the **General** section of the **Configuration** tab, select **Redirect endpoints**.

    ![Use the **Redirect endpoints** button to change the target database for the source database endpoints.](https://redis.io/docs/latest/images/rc/databases-configuration-redirect-endpoints.png)

1. Select the target Redis Cloud Pro database from the **Target database** list. You can type in the database's name to find it.

    You can choose whether to map the original endpoint to the **Public** or the **Private** endpoint. 

    ![Choose whether to map the original endpoint to the Public or Private endpoint.](https://redis.io/docs/latest/images/rc/migrate-data-redirect-essentials-endpoints.png)

    You must have a private connectivity method set up to be able to select the **Private** endpoint, such as:
    - [VPC peering](https://redis.io/docs/latest/operate/rc/security/vpc-peering)
    - [Google Cloud Private Service Connect](https://redis.io/docs/latest/operate/rc/security/private-service-connect) _(Google Cloud only)_
    - [AWS Transit Gateway](https://redis.io/docs/latest/operate/rc/security/aws-transit-gateway) or [AWS PrivateLink](https://redis.io/docs/latest/operate/rc/security/aws-privatelink) _(AWS only)_

1. If you want to assign the same [Role-based Access Control (RBAC) roles](https://redis.io/docs/latest/operate/rc/security/access-control/data-access-control/role-based-access-control) to the target database that are assigned to the source database, select **Assign the same ACLs to the target database**.

    ![Select **Assign the same ACLs to the target database** to assign the same roles to the target database.](https://redis.io/docs/latest/images/rc/migrate-data-redirect-assign-acls.png)

1. Select **I acknowledge this action will redirect my database endpoints** to confirm that you understand that this action will redirect your database endpoints. Then select **Redirect endpoints**.

    ![The **Redirect endpoints** button redirects the source database endpoints to the target database.](https://redis.io/docs/latest/images/rc/migrate-data-redirect-acknowledge.png)

After you redirect your database endpoints, you can go to the **Configuration** tab of the target database to verify that the endpoints now point to the target database. 

You can revert endpoint migration within 24 hours to restore the original endpoints. Select **Revert** to revert endpoint migration.

![The **Revert** button reverts endpoint migration.](https://redis.io/docs/latest/images/rc/migrate-data-redirect-revert.png)

After the 24-hour window, you can no longer revert to the endpoint to the original database.

### Delete Essentials database

After you migrate your data and redirect your endpoints, [delete the source database](https://redis.io/docs/latest/operate/rc/databases/delete-database).

