Migrate from the Cloudera Manager External PostgreSQL Database Server to a MySQL/Oracle Database Server

When you migrate from the Cloudera Manager External PostgreSQL database server to a MySQL or Oracle database server, you export the Cloudera Manager configuration, prepare the target database for Cloudera Manager, and complete other tasks.

Minimum Required Role: Operator (also provided by Configurator, Cluster Administrator, Limited Cluster Administrator , Full Administrator)

  1. Migrate from the embedded PostgreSQL database server to an external PostgreSQL database server as described in the topic Migrating from the Cloudera Manager Embedded PostgreSQL Database Server to an External PostgreSQL Database.
  2. Export your Cloudera Manager Configuration. First, get the latest supported API version:
    curl -u <admin_username>:<admin_password> "http://<cm_server_host>:7180/api/version"
    curl -u <admin_username>:<admin_password> "http://<cm_server_host>:7180/api/<api_version> /cm/deployment" > <path_to_file>/cm-deployment.json

    The following is an example of the API version command:

    curl -u admin:admin "http://10.17.103.191:7180/api/v19/cm/deployment" > /root/cm-deployment.json
  3. Preserve Cloudera Manager's GUID by running the following command to create a /etc/cloudera-scm-server/uuid file. On a host that has an agent, run:
    sudo -u postgres psql -qtAX scm -c "select GUID from CM_VERSION" > uuid

    Then move the UUID file to Cloudera Manager server's /etc/cloudera-scm-server directory.

  4. Stop the cluster and the Cloudera Management Services.
  5. Stop the Cloudera Manager Server:
    sudo service cloudera-scm-server stop
  6. Prepare the target database for Cloudera Manager. For details, refer to the topics Install and Configure MySQL for Cloudera Software or Install and Configure Oracle Database for Cloudera Software.
  7. The process directory (/var/run/cloudera-scm-agent/process/) must be cleaned out for all of the hosts that have agents running on them. The agent completes this cleanup with a server reboot. However, if a server reboot is not a viable option, use one of the following options to accomplish the same task.
      1. Stop the agent and supervisor:
        service cloudera-scm-agent hard_stop
      2. Confirm that the agent and supervisor process are stopped:
        ps -ef | grep -i cmf-agent; ps -ef | grep -i supervisor
      3. Perform a clean start:
        service cloudera-scm-agent next_start_clean
        Alternatively, run the following command to view the start options available on your platform:
        service cloudera-scm-agent clean_start
      4. Ensure that the process is empty:
        ls -la /var/run/cloudera-scm-agent/process/
    • Alternatively:
      1. Stop the agent and supervisor:
        service cloudera-scm-agent hard_stop
      2. Confirm that the agent and supervisor process are stopped:
        ps -ef | grep -i cmf-agent; ps -ef | grep -i supervisor
      3. Move the existing /var/run/cloudera-scm-agent/ directory:
        mv /var/run/cloudera-scm-agent /var/run/cloudera-scm-agent-BU

    The agent will recreate the directory. Delete the backed up copy after confirming that the migration was successful.

  8. Start the Cloudera Manager server:
    service cloudera-scm-server start
  9. Log in to Cloudera Manager. Exit the installation wizard by clicking the product log in the upper-left corner to stop the wizard and return to the Cloudera Manager home page.
  10. Upgrade the Cloudera Manager Enterprise License by navigating to Administration > Licenses and installing a valid Cloudera Manager license.
  11. Restore the Cloudera Manager configuration:
    curl -H "Content-Type: application/json" --upload-file <path_to_file>/cm-deployment.json -u <admin_username>:<admin_password> "http://<cm_server_host>:7180/api/<api_version>/cm/deployment?deleteCurrentDeployment=true"
    The following example shows how to restore a Cloudera Manager configuration:
    curl -H "Content-Type: application/json" --upload-file /root/cm-deployment.json -u admin:admin "http://172.31.113.146:7180/api/v19/cm/deployment?deleteCurrentDeployment=true"
  12. Start the following: Cloudera Management Service, Host Monitor, and Services Monitor. Verify that all the services in the Cloudera Management Service started and are Healthy.
  13. Select the Home > Status tab for the cluster(s) that you previously stopped, and in the Actions dropdown, select Start.