1
0
mirror of https://github.com/postgrespro/pg_probackup.git synced 2025-02-03 14:01:57 +02:00

tests: update tests due to recovery target action been set to "pause"

This commit is contained in:
Grigory Smolkin 2018-04-11 19:47:19 +03:00
parent 5f62980cb6
commit b1f9043564
7 changed files with 149 additions and 45 deletions

View File

@ -44,7 +44,9 @@ class ArchiveTest(ProbackupTest, unittest.TestCase):
options=["--log-level-file=verbose"])
node.cleanup()
self.restore_node(backup_dir, 'node', node)
self.restore_node(
backup_dir, 'node', node,
options=["--recovery-target-action=promote"])
node.start()
while node.safe_psql(
"postgres",
@ -62,7 +64,9 @@ class ArchiveTest(ProbackupTest, unittest.TestCase):
node.cleanup()
# Restore Database
self.restore_node(backup_dir, 'node', node)
self.restore_node(
backup_dir, 'node', node,
options=["--recovery-target-action=promote"])
node.start()
while node.safe_psql(
"postgres",

View File

@ -297,10 +297,15 @@ class CompressionTest(ProbackupTest, unittest.TestCase):
self.maxDiff = None
fname = self.id().split('.')[3]
backup_dir = os.path.join(self.tmp_path, module_name, fname, 'backup')
node = self.make_simple_node(base_dir="{0}/{1}/node".format(module_name, fname),
node = self.make_simple_node(
base_dir="{0}/{1}/node".format(module_name, fname),
set_replication=True,
initdb_params=['--data-checksums'],
pg_options={'wal_level': 'replica', 'max_wal_senders': '2', 'checkpoint_timeout': '30s', 'ptrack_enable': 'on'}
pg_options={
'wal_level': 'replica',
'max_wal_senders': '2',
'checkpoint_timeout': '30s',
'ptrack_enable': 'on'}
)
self.init_pb(backup_dir)
@ -309,14 +314,21 @@ class CompressionTest(ProbackupTest, unittest.TestCase):
node.start()
try:
self.backup_node(backup_dir, 'node', node, backup_type='full', options=['--compress-algorithm=bla-blah'])
self.backup_node(
backup_dir, 'node', node,
backup_type='full', options=['--compress-algorithm=bla-blah'])
# we should die here because exception is what we expect to happen
self.assertEqual(1, 0, "Expecting Error because restore destionation is not empty.\n Output: {0} \n CMD: {1}".format(
repr(self.output), self.cmd))
self.assertEqual(
1, 0,
"Expecting Error because compress-algorithm is invalid.\n "
"Output: {0} \n CMD: {1}".format(
repr(self.output), self.cmd))
except ProbackupException as e:
self.assertEqual(e.message,
self.assertEqual(
e.message,
'ERROR: invalid compress algorithm value "bla-blah"\n',
'\n Unexpected Error Message: {0}\n CMD: {1}'.format(repr(e.message), self.cmd))
'\n Unexpected Error Message: {0}\n CMD: {1}'.format(
repr(e.message), self.cmd))
# Clean after yourself
self.del_test_dir(module_name, fname)

View File

@ -487,7 +487,8 @@ class DeltaTest(ProbackupTest, unittest.TestCase):
restored_node, 'somedata_restored')
self.restore_node(backup_dir, 'node', restored_node, options=[
"-j", "4", "-T", "{0}={1}".format(tblspc_path, tblspc_path_new)])
"-j", "4", "-T", "{0}={1}".format(tblspc_path, tblspc_path_new),
"--recovery-target-action=promote"])
# GET PHYSICAL CONTENT FROM NODE_RESTORED
pgdata_restored = self.pgdata_content(restored_node.data_dir)
@ -911,7 +912,8 @@ class DeltaTest(ProbackupTest, unittest.TestCase):
"-T", "{0}={1}".format(
self.get_tblspace_path(node, 'somedata_new'),
self.get_tblspace_path(node_restored, 'somedata_new')
)
),
"--recovery-target-action=promote"
]
)

View File

@ -29,19 +29,34 @@ pg_probackup - utility to manage backup/recovery of PostgreSQL database.
pg_probackup backup -B backup-path -b backup-mode --instance=instance_name
[-C] [--stream [-S slot-name]] [--backup-pg-log]
[-j num-threads] [--archive-timeout=archive-timeout]
[--progress]
[--log-level-console=log-level-console]
[--log-level-file=log-level-file]
[--log-filename=log-filename]
[--error-log-filename=error-log-filename]
[--log-directory=log-directory]
[--log-rotation-size=log-rotation-size]
[--log-rotation-age=log-rotation-age]
[--delete-expired] [--delete-wal]
[--retention-redundancy=retention-redundancy]
[--retention-window=retention-window]
[--compress]
[--compress-algorithm=compress-algorithm]
[--compress-level=compress-level]
[--progress] [--delete-expired]
[-d dbname] [-h host] [-p port] [-U username]
[-w --no-password] [-W --password]
[--master-db=db_name] [--master-host=host_name]
[--master-port=port] [--master-user=user_name]
[--replica-timeout=timeout]
pg_probackup restore -B backup-dir --instance=instance_name
[-D pgdata-dir] [-i backup-id] [--progress]
[--time=time|--xid=xid [--inclusive=boolean]]
[--timeline=timeline] [-T OLDDIR=NEWDIR]
[--immediate] [--recovery-target-name=target-name]
[--recovery-target-action=pause|promote|shutdown]
[--restore-as-replica]
pg_probackup validate -B backup-dir [--instance=instance_name]
[-i backup-id] [--progress]

View File

@ -84,8 +84,10 @@ class PageBackupTest(ProbackupTest, unittest.TestCase):
self.restore_node(
backup_dir, 'node', node_restored,
options=["-j", "4", "-T", "{0}={1}".format(
old_tablespace, new_tablespace)]
options=[
"-j", "4",
"-T", "{0}={1}".format(old_tablespace, new_tablespace),
"--recovery-target-action=promote"]
)
# Physical comparison
@ -331,8 +333,12 @@ class PageBackupTest(ProbackupTest, unittest.TestCase):
tblspc_path_new = self.get_tblspace_path(
restored_node, 'somedata_restored')
self.restore_node(backup_dir, 'node', restored_node, options=[
"-j", "4", "-T", "{0}={1}".format(tblspc_path, tblspc_path_new)])
self.restore_node(
backup_dir, 'node', restored_node,
options=[
"-j", "4",
"--recovery-target-action=promote",
"-T", "{0}={1}".format(tblspc_path, tblspc_path_new)])
# GET PHYSICAL CONTENT FROM NODE_RESTORED
pgdata_restored = self.pgdata_content(restored_node.data_dir)

View File

@ -759,7 +759,7 @@ class PtrackTest(ProbackupTest, unittest.TestCase):
self.restore_node(
backup_dir, 'node', node,
backup_id=full_backup_id,
options=["-j", "4"]
options=["-j", "4", "--recovery-target-action=promote"]
),
'\n Unexpected Error Message: {0}\n CMD: {1}'.format(
repr(self.output), self.cmd)
@ -778,7 +778,7 @@ class PtrackTest(ProbackupTest, unittest.TestCase):
self.restore_node(
backup_dir, 'node', node,
backup_id=ptrack_backup_id,
options=["-j", "4"]
options=["-j", "4", "--recovery-target-action=promote"]
),
'\n Unexpected Error Message: {0}\n CMD: {1}'.format(
repr(self.output), self.cmd)
@ -861,7 +861,9 @@ class PtrackTest(ProbackupTest, unittest.TestCase):
self.restore_node(
backup_dir, 'node', node,
backup_id=full_backup_id,
options=["-j", "4", "--time={0}".format(full_target_time)]
options=[
"-j", "4", "--recovery-target-action=promote",
"--time={0}".format(full_target_time)]
),
'\n Unexpected Error Message: {0}\n CMD: {1}'.format(
repr(self.output), self.cmd)
@ -880,7 +882,10 @@ class PtrackTest(ProbackupTest, unittest.TestCase):
self.restore_node(
backup_dir, 'node', node,
backup_id=ptrack_backup_id,
options=["-j", "4", "--time={0}".format(ptrack_target_time)]
options=[
"-j", "4",
"--time={0}".format(ptrack_target_time),
"--recovery-target-action=promote"]
),
'\n Unexpected Error Message: {0}\n CMD: {1}'.format(
repr(self.output), self.cmd)
@ -1320,7 +1325,8 @@ class PtrackTest(ProbackupTest, unittest.TestCase):
"-T", "{0}={1}".format(
self.get_tblspace_path(node, 'somedata_new'),
self.get_tblspace_path(node_restored, 'somedata_new')
)
),
"--recovery-target-action=promote"
]
)
@ -1549,7 +1555,8 @@ class PtrackTest(ProbackupTest, unittest.TestCase):
tblspc_path_new = self.get_tblspace_path(
restored_node, 'somedata_restored')
self.restore_node(backup_dir, 'node', restored_node, options=[
"-j", "4", "-T", "{0}={1}".format(tblspc_path, tblspc_path_new)])
"-j", "4", "-T", "{0}={1}".format(tblspc_path, tblspc_path_new),
"--recovery-target-action=promote"])
# GET PHYSICAL CONTENT FROM RESTORED NODE and COMPARE PHYSICAL CONTENT
if self.paranoia:
@ -1585,7 +1592,8 @@ class PtrackTest(ProbackupTest, unittest.TestCase):
# Restore second ptrack backup and check table consistency
self.restore_node(backup_dir, 'node', restored_node, options=[
"-j", "4", "-T", "{0}={1}".format(tblspc_path, tblspc_path_new)])
"-j", "4", "-T", "{0}={1}".format(tblspc_path, tblspc_path_new),
"--recovery-target-action=promote"])
# GET PHYSICAL CONTENT FROM RESTORED NODE and COMPARE PHYSICAL CONTENT
if self.paranoia:
@ -1682,7 +1690,8 @@ class PtrackTest(ProbackupTest, unittest.TestCase):
)
self.restore_node(backup_dir, 'node', restored_node, options=[
"-j", "4", "-T", "{0}={1}".format(tblspc_path, tblspc_path_new)])
"-j", "4", "-T", "{0}={1}".format(tblspc_path, tblspc_path_new),
"--recovery-target-action=promote"])
# GET PHYSICAL CONTENT FROM NODE_RESTORED
if self.paranoia:

View File

@ -43,7 +43,9 @@ class RestoreTest(ProbackupTest, unittest.TestCase):
# 1 - Test recovery from latest
self.assertIn(
"INFO: Restore of backup {0} completed.".format(backup_id),
self.restore_node(backup_dir, 'node', node, options=["-j", "4"]),
self.restore_node(
backup_dir, 'node', node,
options=["-j", "4", "--recovery-target-action=promote"]),
'\n Unexpected Error Message: {0}\n CMD: {1}'.format(
repr(self.output), self.cmd))
@ -96,7 +98,9 @@ class RestoreTest(ProbackupTest, unittest.TestCase):
self.assertIn(
"INFO: Restore of backup {0} completed.".format(backup_id),
self.restore_node(backup_dir, 'node', node, options=["-j", "4"]),
self.restore_node(
backup_dir, 'node', node,
options=["-j", "4", "--recovery-target-action=promote"]),
'\n Unexpected Error Message: {0}\n CMD: {1}'.format(
repr(self.output), self.cmd))
@ -139,7 +143,9 @@ class RestoreTest(ProbackupTest, unittest.TestCase):
self.assertIn(
"INFO: Restore of backup {0} completed.".format(backup_id),
self.restore_node(backup_dir, 'node', node, options=["-j", "4"]),
self.restore_node(
backup_dir, 'node', node,
options=["-j", "4", "--recovery-target-action=promote"]),
'\n Unexpected Error Message: {0}\n CMD: {1}'.format(
repr(self.output), self.cmd))
@ -164,7 +170,10 @@ class RestoreTest(ProbackupTest, unittest.TestCase):
"INFO: Restore of backup {0} completed.".format(backup_id),
self.restore_node(
backup_dir, 'node', node,
options=["-j", "4", "--timeline={0}".format(target_tli)]),
options=[
"-j", "4", "--timeline={0}".format(target_tli),
"--recovery-target-action=promote"]
),
'\n Unexpected Error Message: {0}\n CMD: {1}'.format(
repr(self.output), self.cmd))
@ -217,7 +226,11 @@ class RestoreTest(ProbackupTest, unittest.TestCase):
"INFO: Restore of backup {0} completed.".format(backup_id),
self.restore_node(
backup_dir, 'node', node,
options=["-j", "4", '--time={0}'.format(target_time)]),
options=[
"-j", "4", '--time={0}'.format(target_time),
"--recovery-target-action=promote"
]
),
'\n Unexpected Error Message: {0}\n CMD: {1}'.format(
repr(self.output), self.cmd))
@ -277,7 +290,10 @@ class RestoreTest(ProbackupTest, unittest.TestCase):
"INFO: Restore of backup {0} completed.".format(backup_id),
self.restore_node(
backup_dir, 'node', node,
options=["-j", "4", '--xid={0}'.format(target_xid)]),
options=[
"-j", "4", '--xid={0}'.format(target_xid),
"--recovery-target-action=promote"]
),
'\n Unexpected Error Message: {0}\n CMD: {1}'.format(
repr(self.output), self.cmd))
@ -345,7 +361,8 @@ class RestoreTest(ProbackupTest, unittest.TestCase):
options=[
"-j", "4",
'--xid={0}'.format(target_xid),
"--inclusive=false"]),
"--inclusive=false",
"--recovery-target-action=promote"]),
'\n Unexpected Error Message: {0}\n CMD: {1}'.format(
repr(self.output), self.cmd))
@ -396,7 +413,10 @@ class RestoreTest(ProbackupTest, unittest.TestCase):
self.assertIn(
"INFO: Restore of backup {0} completed.".format(backup_id),
self.restore_node(backup_dir, 'node', node, options=["-j", "4"]),
self.restore_node(
backup_dir, 'node', node,
options=[
"-j", "4", "--recovery-target-action=promote"]),
'\n Unexpected Error Message: {0}\n CMD: {1}'.format(
repr(self.output), self.cmd))
@ -452,7 +472,10 @@ class RestoreTest(ProbackupTest, unittest.TestCase):
self.assertIn(
"INFO: Restore of backup {0} completed.".format(backup_id),
self.restore_node(backup_dir, 'node', node, options=["-j", "4"]),
self.restore_node(
backup_dir, 'node', node,
options=[
"-j", "4", "--recovery-target-action=promote"]),
'\n Unexpected Error Message: {0}\n CMD: {1}'.format(
repr(self.output), self.cmd))
@ -506,7 +529,9 @@ class RestoreTest(ProbackupTest, unittest.TestCase):
self.assertIn(
"INFO: Restore of backup {0} completed.".format(backup_id),
self.restore_node(backup_dir, 'node', node, options=["-j", "4"]),
self.restore_node(
backup_dir, 'node', node,
options=["-j", "4", "--recovery-target-action=promote"]),
'\n Unexpected Error Message: {0}\n CMD: {1}'.format(
repr(self.output), self.cmd))
@ -571,7 +596,9 @@ class RestoreTest(ProbackupTest, unittest.TestCase):
self.assertIn(
"INFO: Restore of backup {0} completed.".format(backup_id),
self.restore_node(backup_dir, 'node', node, options=["-j", "4"]),
self.restore_node(
backup_dir, 'node', node,
options=["-j", "4", "--recovery-target-action=promote"]),
'\n Unexpected Error Message: {0}\n CMD: {1}'.format(
repr(self.output), self.cmd))
@ -642,7 +669,9 @@ class RestoreTest(ProbackupTest, unittest.TestCase):
self.assertIn(
"INFO: Restore of backup {0} completed.".format(backup_id),
self.restore_node(backup_dir, 'node', node, options=["-j", "4"]),
self.restore_node(
backup_dir, 'node', node,
options=["-j", "4", "--recovery-target-action=promote"]),
'\n Unexpected Error Message: {0}\n CMD: {1}'.format(
repr(self.output), self.cmd))
node.start()
@ -733,7 +762,10 @@ class RestoreTest(ProbackupTest, unittest.TestCase):
"INFO: Restore of backup {0} completed.".format(backup_id),
self.restore_node(
backup_dir, 'node', node,
options=["-T", "%s=%s" % (tblspc_path, tblspc_path_new)]),
options=[
"-T", "%s=%s" % (tblspc_path, tblspc_path_new),
"--recovery-target-action=promote"]
),
'\n Unexpected Error Message: {0}\n CMD: {1}'.format(
repr(self.output), self.cmd))
@ -764,7 +796,9 @@ class RestoreTest(ProbackupTest, unittest.TestCase):
"INFO: Restore of backup {0} completed.".format(backup_id),
self.restore_node(
backup_dir, 'node', node,
options=["-T", "%s=%s" % (tblspc_path_new, tblspc_path_page)]),
options=[
"-T", "%s=%s" % (tblspc_path_new, tblspc_path_page),
"--recovery-target-action=promote"]),
'\n Unexpected Error Message: {0}\n CMD: {1}'.format(
repr(self.output), self.cmd))
@ -804,7 +838,9 @@ class RestoreTest(ProbackupTest, unittest.TestCase):
con.connection.autocommit = True
con.execute("CREATE TABLESPACE tblspc LOCATION '%s'" % tblspc_path)
con.connection.autocommit = False
con.execute("CREATE TABLE tbl AS SELECT * FROM generate_series(0,3) AS integer")
con.execute(
"CREATE TABLE tbl AS SELECT * "
"FROM generate_series(0,3) AS integer")
con.commit()
# First page backup
@ -818,7 +854,9 @@ class RestoreTest(ProbackupTest, unittest.TestCase):
con.execute("CHECKPOINT")
con.connection.autocommit = False
con.execute("CREATE TABLE tbl1 (a int) TABLESPACE tblspc")
con.execute("INSERT INTO tbl1 SELECT * FROM generate_series(0,3) AS integer")
con.execute(
"INSERT INTO tbl1 SELECT * "
"FROM generate_series(0,3) AS integer")
con.commit()
# Second page backup
@ -836,7 +874,9 @@ class RestoreTest(ProbackupTest, unittest.TestCase):
"INFO: Restore of backup {0} completed.".format(backup_id),
self.restore_node(
backup_dir, 'node', node,
options=["-T", "%s=%s" % (tblspc_path, tblspc_path_new)]),
options=[
"-T", "%s=%s" % (tblspc_path, tblspc_path_new),
"--recovery-target-action=promote"]),
'\n Unexpected Error Message: {0}\n CMD: {1}'.format(
repr(self.output), self.cmd))
node.start()
@ -885,7 +925,11 @@ class RestoreTest(ProbackupTest, unittest.TestCase):
"INFO: Restore of backup {0} completed.".format(backup_id),
self.restore_node(
backup_dir, 'node', node,
options=["-j", "4", '--time={0}'.format(recovery_time)]),
options=[
"-j", "4", '--time={0}'.format(recovery_time),
"--recovery-target-action=promote"
]
),
'\n Unexpected Error Message: {0}\n CMD: {1}'.format(
repr(self.output), self.cmd))
@ -933,7 +977,11 @@ class RestoreTest(ProbackupTest, unittest.TestCase):
"INFO: Restore of backup {0} completed.".format(backup_id),
self.restore_node(
backup_dir, 'node', node,
options=["-j", "4", '--time={0}'.format(recovery_time)]),
options=[
"-j", "4", '--time={0}'.format(recovery_time),
"--recovery-target-action=promote"
]
),
'\n Unexpected Error Message: {0}\n CMD: {1}'.format(
repr(self.output), self.cmd))
@ -981,7 +1029,11 @@ class RestoreTest(ProbackupTest, unittest.TestCase):
"INFO: Restore of backup {0} completed.".format(backup_id),
self.restore_node(
backup_dir, 'node', node,
options=["-j", "4", '--time={0}'.format(recovery_time)]),
options=[
"-j", "4", '--time={0}'.format(recovery_time),
"--recovery-target-action=promote"
]
),
'\n Unexpected Error Message: {0}\n CMD: {1}'.format(
repr(self.output), self.cmd))
@ -1031,7 +1083,11 @@ class RestoreTest(ProbackupTest, unittest.TestCase):
"INFO: Restore of backup {0} completed.".format(backup_id),
self.restore_node(
backup_dir, 'node', node,
options=["-j", "4", '--time={0}'.format(recovery_time)]),
options=[
"-j", "4", '--time={0}'.format(recovery_time),
"--recovery-target-action=promote"
]
),
'\n Unexpected Error Message: {0}\n CMD: {1}'.format(
repr(self.output), self.cmd))