Skip to main content
  • Place orders quickly and easily
  • View orders and track your shipping status
  • Enjoy members-only rewards and discounts
  • Create and access a list of your products
  • Manage your Dell EMC sites, products, and product-level contacts using Company Administration.

PowerProtect Data Manager 19.12 Administration and User Guide

Recover the reporting engine from a DR backup

PowerProtect Data Manager automatically restores the reporting engine after disaster recovery of the PowerProtect Data Manager system is complete. If the PowerProtect Data Manager system could not restore the reporting engine automatically, use the steps in this procedure to restore only the reporting engine through the REST API. Recovery of a reporting engine must be performed on an operational PowerProtect Data Manager system. Only the Administrator role can restore the reporting engine.

Prerequisites

Obtain the name of the reporting engine backup from System Settings > Disaster Recovery > Manage Backups.

About this task

Use the backup manifest file to create a new text document that will be used issue a POST command with the REST API:

CAUTION Do not edit the manifest file itself.

Steps

  1. Log in to the PowerProtect Data Manager user interface as a user with the Administrator role.
    Use the same credentials that you used before PowerProtect Data Manager was restored.
  2. Connect to the PowerProtect Data Manager console as an admin user.
  3. Change directories to /data01/server_backups/<PowerProtect Data Manager Hostname>_<NodeID> to locate the backup manifest file.
    Normally, there is only a single subdirectory in /data01/server_backups, so change to that subdirectory. However, if there is more than one subdirectory and you don't know which <NodeID> is the correct one, perform the following substeps:
    1. From /data01/server_backups, run the following commands, changing the username and password as required:
      TOKEN=$(curl -X POST https://localhost:8443/api/v2/login -k -d '{ "username": "admin","password": "admin_password" }' --header "Content-Type: application/json" | python3 -c "import sys, json; print(json.load(sys.stdin)['access_token'])")
      curl -X GET https://localhost:8443/api/v2/nodes -k --header "Content-Type: application/json" --header "Authorization:Bearer $TOKEN"
    2. Run the command grep -Rnwa -e '<Name>' --include=*.manifest.
  4. Copy the manifest file to a temporary file.
  5. Open the temporary file.
  6. Review the following example, and make the changes documented by the // comment entries.
    NOTE The // comment entries displayed here do not exist in the temporary file itself. These comment entries are displayed here only as a guide.
    {
      "id": "ca8cbb13-6f3d-4ac5-87e5-de47a634379f",
      "jobId": "990b4ea7-c0e4-4069-8dd5-7d0e084370fc",  // DELETE LINE
      "creationTime": "34e1c9dd-1b54-48b4-8283-151331d193ff",
      "lastUpdated": "2022-08-25T19:40:18.165497Z",// DELETE LINE
      "elapsedSeconds": 115,
      "sequenceNumber": 89
      "state": "Successful",// DELETE LINE
      "version": "19.12.0-1-SNAPSHOT", // DELETE LINE
      "hostname": "ldpdb141.hop.lab.emc.com", // DELETE LINE
      "name": "mercijTestDr", // DELETE LINE
      "nodeId": "a8d2df8e-5c3e-4160-87d4-32b9bfe6c283", // DELETE LINE
      "sizeInBytes": 18244130,
      "consistency": "CRASH_CONSISTENT", // DELETE LINE
      "checksum": "bbd97a04f296a8ed116e4a9272982d8e8411f3d0cf50dea131d5c2cd4ce224f8", // DELETE LINE
      "backupConsistencyType": "FULL", // DELETE LINE
      "esSnapshotState": "UNKNOWN", // DELETE LINE
      "backupTriggerSource": "USER", // DELETE LINE
      "configType": "standalone", // DELETE LINE
      "deployedPlatform": "vmware", // DELETE LINE
      "replicationTargets": [], // DELETE LINE
      "repositoryFileSystem": "BOOST_FILE_SYSTEM", // DELETE LINE
      "ddHostname": "ldpdg251.hop.lab.emc.com", // DELETE LINE and add line "recover":true,
      "Components": [   // change Components to components with lower case c
        {  // DELETE WHOLE PPDM COMPONENT LEAVING ONLY REPORTING
          "name": "PPDM",
          "id": "ca7cbb13-6f3d-4ac5-87e5-de47a634379f",
          "lastActivityId": "2bdbe7a8-7c57-446d-b072-ad8081e2953d",
          "version": "v2",
          "backupPath": "ldpdg251.hop.lab.emc.com:SysDR_ldpdb141/ldpdb141_a8d2df8e-5c3e-4160-87d4-32b9bfe6c283/PPDM",
          "backupStatus": "SUCCESSFUL",
          "backupsEnabled": true,
          "errorResults": []
        }, // STOP DELETING HERE
        {
          "name": "REPORTING",
          "id": "34e1c9dd-1b54-48b4-8283-151331d193ff",
          "lastActivityId": "ed2dc805-c1f7-42fd-b9af-71897fc1da01",
          "version": "v2",
          "backupPath": "192.168.100.109:SysDR_DPDII2201IDPA10/ppdm_64d2f00a-1ce0-47b5-9c60-914ea7d0e1e8/REPORTING",
          "backupStatus": "SUCCESSFUL",
          "backupsEnabled": true, // DELETE TRAILING COMMA 
          "errorResults": [] // DELETE LINE
        }
      ]
    }
    

    In summary:

    • remove all lines with the // DELETE LINE comment entry displayed here
    • add recover: true
    • change Components to components
    • remove all listed component blocks except for REPORTING
    • remove the trailing comma from "backupsEnabled": true,
    The result of these changes should look similar to the following:
    {
        "id":"ca8cbb13-6f3d-4ac5-87e5-de47a634379f",
        "creationTime":"2022-10-12T15:01:13.476401+0000",
        "elapsedSeconds":115,
        "sequenceNumber":89,
        "sizeInBytes":18244130,
        "recover":true,
        "components":[
            {
                "name":"REPORTING",
                "id":"ca8cbb13-6f3d-4ac5-87e5-de47a634379f",
                "lastActivityId":"ed2dc805-c1f7-42fd-b9af-71897fc1da01",
                "version":"v2",
                "backupPath":"192.168.100.109:SysDR_DPDII2201IDPA10/ppdm_64d2f00a-1ce0-47b5-9c60-914ea7d0e1e8/REPORTING",
                "backupStatus":"SUCCESSFUL",
                "backupsEnabled":true
            }
        ]
    }
  7. Copy the value of the text inside the quotation marks that follow "id":.
    This value replaces the variable <backupID> used in step 11. In this example, <backupID> is ca8cbb13-6f3d-4ac5-87e5-de47a634379f.
  8. Remove all carriage returns from the temporary file, so that all the text is on a single line.
  9. Copy all of the text from the temporary file.
    This value replaces the variable <manifestText> used in step 11.
  10. Run the following command, changing the username and password credentials as required:
    NOTE Even if you ran this command in step 3.a, run it again. The validity of the value of TOKEN is time sensitive.
    TOKEN=$(curl -X POST https://localhost:8443/api/v2/login -k -d '{ "username": "admin","password": "admin_password" }' --header "Content-Type: application/json" | python3 -c "import sys, json; print(json.load(sys.stdin)['access_token'])")
  11. Run the following command:
    curl -X PUT 'https://localhost:8443/api/v2/server-disaster-recovery-backups/<backupID>' --header "Authorization: Bearer $TOKEN" --header 'Content-Type: application/json' -k -d '<manifestText>'
    • Replace <backupID> with the value obtained in step 7.
    • Replace <manifestText> with all of the text obtained in step 9.
  12. To monitor the status of the restore process in the PowerProtect Data Manager UI, select Jobs > System Jobs and look for a job with the description Server Disaster Recovery Restore.

Next steps

Delete the temporary file created in step 4.


Rate this content

Accurate
Useful
Easy to understand
Was this article helpful?
0/3000 characters
  Please provide ratings (1-5 stars).
  Please provide ratings (1-5 stars).
  Please provide ratings (1-5 stars).
  Please select whether the article was helpful or not.
  Comments cannot contain these special characters: <>()\