Start-VEPSQLDatabaseExport

Short Description

Starts an export process for a backed-up or a published PostgreSQL database.

Applies to

Veeam Backup & Replication

Product Edition: Community, Enterprise, Enterprise Plus, Veeam Universal License

Syntax

This cmdlet provides parameter sets that allow you to:

  • Export a backed-up PostgreSQL database to a target server with Linux.

Start-VEPSQLDatabaseExport [-Database] <VEPSQLDatabase> [-LinuxStagingCredentials] <VEPSQLLinuxCredential> [-StagingServerName] <String> [-StagingSshPort <Int32>] [-ToPointInTimeUTC <DateTime>] -Path <String> [-DisableCompression <SwitchParameter>] [-LinuxTargetCredentials] <VEPSQLLinuxCredential> [-LinuxTargetHost] <String> [-LinuxTargetSshPort <Int32>] [-Force <SwitchParameter>] [<CommonParameters>]

  • Export a backed-up PostgreSQL database to the local host on which the Veeam Backup & Replication console is installed.

Start-VEPSQLDatabaseExport [-Database] <VEPSQLDatabase> [-LinuxStagingCredentials] <VEPSQLLinuxCredential> [-StagingServerName] <String> [-StagingSshPort <Int32>] [-ToPointInTimeUTC <DateTime>] -Path <String> [-DisableCompression <SwitchParameter>] [-WindowsTargetCredentials] <PSCredential> [-Force <SwitchParameter>] [<CommonParameters>]

  • Export a published PostgreSQL database to a target server with Linux.

Start-VEPSQLDatabaseExport [-PublishedDatabase] <VEPSQLPublishedDatabase> -Path <String> [-DisableCompression <SwitchParameter>] [-LinuxTargetCredentials] <VEPSQLLinuxCredential> [-LinuxTargetHost] <String> [-LinuxTargetSshPort <Int32>] [-Force <SwitchParameter>] [<CommonParameters>]

  • Export a published PostgreSQL database to to the local host on which the Veeam Backup & Replication console is installed.

Start-VEPSQLDatabaseExport [-PublishedDatabase] <VEPSQLPublishedDatabase> -Path <String> [-DisableCompression <SwitchParameter>] [-WindowsTargetCredentials] <PSCredential> [-Force <SwitchParameter>] [<CommonParameters>]

Detailed Description

This cmdlet starts an export process for a backed-up or a published PostgreSQL database. You can export the necessary PostgreSQL database to the local host on which the Veeam Backup & Replication console is installed or any Linux server.

After you run the Start-VEPSQLDatabaseExport cmdlet, you can use the following cmdlets:

Parameters

Parameter

Description

Type

Required

Position

Accept Pipeline Input

Database

Specifies a backed-up PostgreSQL database. The cmdlet will export this database.

Accepts the VEPSQLDatabase type. To get this object, run the Get-VEPSQLDatabase cmdlet.

True

0

True (ByValue)

PublishedDatabase

Specifies a published PostgreSQL database. The cmdlet will export this database.

Accepts the VEPSQLPublishedDatabase type. To get this object, run the Get-VEPSQLPublishedDatabase cmdlet.

True

0

True (ByValue)

LinuxStagingCredentials

Specifies the credentials for the staging server.

Accepts the VEPSQLLinuxCredential type. To get this object, run the New-VEPSQLLinuxCredential cmdlet.

True

1

True (ByValue)

StagingServerName

Specifies the name of the staging server.

String

True

2

True (ByValue)

LinuxTargetCredentials

Specifies the credentials for the target Linux machine.

Accepts the VEPSQLLinuxCredential type. To get this object, run the New-VEPSQLLinuxCredential cmdlet.

True

3

True (ByValue)

WindowsTargetCredentials

Specifies the credentials for the local host on which the Veeam Backup & Replication console is installed.

Accepts the PSCredential type. To get this object, run the Get-Credential cmdlet.

True

3

True (ByValue)

LinuxTargetHost

Specifies the name of the target Linux server.

String

True

4

True (ByValue)

DisableCompression

Defines that the cmdlet will not compress the output file.

SwitchParameter

False

Named

False

Force

Defines that the cmdlet will overwrite the existing PostgreSQL database files with the database files from the backup.

If you provide this parameter, the cmdlet will show no prompt before executing the command.

SwitchParameter

False

Named

False

LinuxTargetSshPort

Specifies an SSH port number that the cmdlet will use to access the target Linux machine.

Int32

False

Named

False

Path

Specifies the target path. The cmdlet will export a database to the location specified in this path.

Note: This parameter works for both Windows and Linux target machines.

String

True

Named

False

StagingSshPort

Specifies an SSH port number that the cmdlet will use to connect to the staging server

Int32

False

Named

False

ToPointInTimeUTC

Specifies the point in time in the UTC format within a restore interval of the PostgreSQL database.

The cmdlet will export the specified database to the state of the specified point in time. If you do not use this parameter, the cmdlet will restore the instance to the point in time when the restore point for which you started the restore session was created.

DateTime

False

Named

False

<CommonParameters>

This cmdlet supports Microsoft PowerShell common parameters. For more information on common parameters, see the About CommonParameters section of Microsoft Docs.

Output Object

The cmdlet returns the VEPSQLDatabaseExport object that contains information about the specified export session.

Examples

Start-VEPSQLDatabaseExportExample 1. Exporting Latest State of Published Database to Backup Server

This example shows how to export a backed-up database to the local host on which the Veeam Backup & Replication console is installed, using its latest state on the backup file.

$publisheddatabase = Get-VEPSQLPublishedDatabase -Name "database_1"

$wincreds = Get-Credential

$export = Start-VEPSQLDatabaseExport -PublishedDatabase $publisheddatabase -WindowsTargetCredentials $wincreds -Path "C:\Users\Administrator\Desktop\rhel01_5433_postgres.dump" -DisableCompression

Perform the following steps:

  1. Run the Get-VEPSQLPublishedDatabase cmdlet. Specify the Name parameter value. Save the result to the $publisheddatabase variable.
  2. Run the Get-Credential cmdlet to create a credential object. Enter credentials that will be used to connect to the local host on which the Veeam Backup & Replication console is installed. Save the result to the $wincreds variable.
  3. Run the Start-VEPSQLDatabaseExport cmdlet. Specify the following settings:
  • Set the $publisheddatabase variable as the Database parameter value and select the necessary database.
  • Set the $wincreds variable as the WindowsTargetCredentials parameter value.
  • Specify the Path parameter value.
  • Provide the DisableCompression parameter so that the cmdlet does not reduce size of the output.

Save the result to the $export variable to use it with other cmdlets.

Start-VEPSQLDatabaseExportExample 2. Exporting Point-in-Time State of Backed-Up Database to Linux Server

This example shows how to export a backed-up PostgreSQL database to a Linux server, using a point-in-time state on the backup file.

$session = Get-VEPSQLRestoreSession

$databases = Get-VEPSQLDatabase -Session $session[0]

$time = Get-Date -Date "2023-11-24 13:00:00"

$timeutc = $time.ToUniversalTime()

$securepassword = Read-Host -Prompt "Enter password" -AsSecureString

$linuxcreds = New-VEPSQLLinuxCredential -Account "root" -Password $securepassword

$targetsecurepassword = Read-Host -Prompt "Enter password" -AsSecureString

$targetlinuxcreds = New-VEPSQLLinuxCredential -Account "root" -Password $targetsecurepassword

$export = Start-VEPSQLDatabaseExport -Database $databases[0] -LinuxStagingCredentials $linuxcreds -StagingServerName "rhel01" -LinuxTargetCredentials $targetlinuxcreds -LinuxTargetHost "rhel02" -LinuxTargetSshPort 22 -ToPointInTimeUTC $timeutc -Path "/var/lib/postgresql/rhel01_5433_postgres.dump"

Perform the following steps:

  1. Run the Get-VEPSQLRestoreSession cmdlet. Save the result to the $session variable.

The cmdlet will return an array of active restore sessions. Note the ordinal number of the necessary restore session. In our example, it is the first restore session in the array.

  1. Run the Get-VEPSQLDatabase cmdlet. Set the $session variable as the Session parameter value and select the necessary restore session. Save the result to the $databases variable.
  2. Run the Get-Date cmdlet and specify the date and time when switchover must be performed. Save the result to the $time variable.
  3. Convert the scheduled time to the UTC format using the ToUniversalTime() method. Save the result to the $TimeUtc variable.
  4. Run the Read-Host cmdlet to create a secure password. Enter credentials that will be used to connect to the staging server. Provide the AsSecureString parameter. Save the result to the $securepassword variable.
  5. Run the New-VEPSQLLinuxCredential cmdlet. Specify the Account parameter value. Set the $securepassword variable as the Password parameter value. Save the result to the $linuxcreds variable.
  6. Run the Read-Host cmdlet to create a secure password. Enter credentials that will be used to connect to the target Linux server. Provide the AsSecureString parameter. Save the result to the $securetargetpassword variable.
  7. Run the New-VEPSQLLinuxCredential cmdlet. Specify the Account parameter value. Set the $targetsecurepassword variable as the Password parameter value. Save the result to the $targetlinuxcreds variable.
  8. Run the Start-VEPSQLDatabaseExport cmdlet. Specify the following settings:
  • Set the $database variable as the Database parameter value and select the necessary database.
  • Set the $linuxcreds variable as the LinuxStagingCredentials parameter value.
  • Specify the StagingServerName parameter value.
  • Set the $targetlinuxcreds variable as the LinuxTargetCredentials parameter value.
  • Specify the LinuxTargetHost parameter value.
  • Specify the LinuxTargetSshPort parameter value.
  • Set the $timeutc variable as the ToPointInTimeUTC parameter value.
  • Specify the Path parameter value.

Save the result to the $export variable to use it with other cmdlets.

Related Commands