You've already forked pg_probackup
mirror of
https://github.com/postgrespro/pg_probackup.git
synced 2025-07-06 05:57:21 +02:00
tests: fixes
This commit is contained in:
@ -12,6 +12,7 @@ from . import init_test, option_test, show_test, \
|
|||||||
|
|
||||||
def load_tests(loader, tests, pattern):
|
def load_tests(loader, tests, pattern):
|
||||||
suite = unittest.TestSuite()
|
suite = unittest.TestSuite()
|
||||||
|
# suite.addTests(loader.loadTestsFromModule(auth_test))
|
||||||
suite.addTests(loader.loadTestsFromModule(archive))
|
suite.addTests(loader.loadTestsFromModule(archive))
|
||||||
suite.addTests(loader.loadTestsFromModule(backup_test))
|
suite.addTests(loader.loadTestsFromModule(backup_test))
|
||||||
# suite.addTests(loader.loadTestsFromModule(cfs_backup))
|
# suite.addTests(loader.loadTestsFromModule(cfs_backup))
|
||||||
@ -42,7 +43,6 @@ def load_tests(loader, tests, pattern):
|
|||||||
suite.addTests(loader.loadTestsFromModule(validate_test))
|
suite.addTests(loader.loadTestsFromModule(validate_test))
|
||||||
suite.addTests(loader.loadTestsFromModule(pgpro560))
|
suite.addTests(loader.loadTestsFromModule(pgpro560))
|
||||||
suite.addTests(loader.loadTestsFromModule(pgpro589))
|
suite.addTests(loader.loadTestsFromModule(pgpro589))
|
||||||
suite.addTests(loader.loadTestsFromModule(auth_test))
|
|
||||||
|
|
||||||
return suite
|
return suite
|
||||||
|
|
||||||
|
@ -382,3 +382,38 @@ class ArchiveTest(ProbackupTest, unittest.TestCase):
|
|||||||
backup_id = self.backup_node(backup_dir, 'master', master)
|
backup_id = self.backup_node(backup_dir, 'master', master)
|
||||||
self.validate_pb(backup_dir, 'master')
|
self.validate_pb(backup_dir, 'master')
|
||||||
self.assertEqual('OK', self.show_pb(backup_dir, 'master', backup_id)['status'])
|
self.assertEqual('OK', self.show_pb(backup_dir, 'master', backup_id)['status'])
|
||||||
|
|
||||||
|
# @unittest.expectedFailure
|
||||||
|
@unittest.skip("skip")
|
||||||
|
def test_archive_compress(self):
|
||||||
|
"""Description in jira issue PGPRO-434"""
|
||||||
|
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),
|
||||||
|
set_replication=True,
|
||||||
|
initdb_params=['--data-checksums'],
|
||||||
|
pg_options={'wal_level': 'replica', 'max_wal_senders': '2', 'checkpoint_timeout': '30s'}
|
||||||
|
)
|
||||||
|
self.init_pb(backup_dir)
|
||||||
|
self.add_instance(backup_dir, 'node', node)
|
||||||
|
self.set_archiving(backup_dir, 'node', node)
|
||||||
|
# force more frequent wal switch
|
||||||
|
node.append_conf('postgresql.auto.conf', 'archive_timeout = 30')
|
||||||
|
node.start()
|
||||||
|
|
||||||
|
node.safe_psql(
|
||||||
|
"postgres",
|
||||||
|
"create table t_heap as select 1 as id, md5(i::text) as text, md5(repeat(i::text,10))::tsvector as tsvector from generate_series(0,100) i")
|
||||||
|
|
||||||
|
result = node.safe_psql("postgres", "SELECT * FROM t_heap")
|
||||||
|
self.backup_node(backup_dir, 'node', node)
|
||||||
|
|
||||||
|
node.cleanup()
|
||||||
|
|
||||||
|
self.restore_node(backup_dir, 'node', node)
|
||||||
|
node.start()
|
||||||
|
|
||||||
|
self.assertEqual(result, node.safe_psql("postgres", "SELECT * FROM t_heap"),
|
||||||
|
'data after restore not equal to original data')
|
||||||
|
# Clean after yourself
|
||||||
|
# self.del_test_dir(module_name, fname)
|
||||||
|
@ -113,9 +113,10 @@ class BackupTest(ProbackupTest, unittest.TestCase):
|
|||||||
self.assertEqual(1, 0, "Expecting Error because page backup should not be possible without valid full backup.\n Output: {0} \n CMD: {1}".format(
|
self.assertEqual(1, 0, "Expecting Error because page backup should not be possible without valid full backup.\n Output: {0} \n CMD: {1}".format(
|
||||||
repr(self.output), self.cmd))
|
repr(self.output), self.cmd))
|
||||||
except ProbackupException as e:
|
except ProbackupException as e:
|
||||||
self.assertEqual(e.message,
|
self.assertIn(
|
||||||
'ERROR: Valid backup on current timeline is not found. Create new FULL backup before an incremental one.\n',
|
"ERROR: Valid backup on current timeline is not found. Create new FULL backup before an incremental one.",
|
||||||
'\n Unexpected Error Message: {0}\n CMD: {1}'.format(repr(e.message), self.cmd))
|
e.message,
|
||||||
|
"\n Unexpected Error Message: {0}\n CMD: {1}".format(repr(e.message), self.cmd))
|
||||||
|
|
||||||
sleep(1)
|
sleep(1)
|
||||||
|
|
||||||
@ -125,9 +126,10 @@ class BackupTest(ProbackupTest, unittest.TestCase):
|
|||||||
self.assertEqual(1, 0, "Expecting Error because page backup should not be possible without valid full backup.\n Output: {0} \n CMD: {1}".format(
|
self.assertEqual(1, 0, "Expecting Error because page backup should not be possible without valid full backup.\n Output: {0} \n CMD: {1}".format(
|
||||||
repr(self.output), self.cmd))
|
repr(self.output), self.cmd))
|
||||||
except ProbackupException as e:
|
except ProbackupException as e:
|
||||||
self.assertEqual(e.message,
|
self.assertIn(
|
||||||
'ERROR: Valid backup on current timeline is not found. Create new FULL backup before an incremental one.\n',
|
"ERROR: Valid backup on current timeline is not found. Create new FULL backup before an incremental one.",
|
||||||
'\n Unexpected Error Message: {0}\n CMD: {1}'.format(repr(e.message), self.cmd))
|
e.message,
|
||||||
|
"\n Unexpected Error Message: {0}\n CMD: {1}".format(repr(e.message), self.cmd))
|
||||||
|
|
||||||
self.assertEqual(self.show_pb(backup_dir, 'node')[0]['Status'], "ERROR")
|
self.assertEqual(self.show_pb(backup_dir, 'node')[0]['Status'], "ERROR")
|
||||||
|
|
||||||
@ -170,8 +172,9 @@ class BackupTest(ProbackupTest, unittest.TestCase):
|
|||||||
self.assertEqual(1, 0, "Expecting Error because page backup should not be possible without valid full backup.\n Output: {0} \n CMD: {1}".format(
|
self.assertEqual(1, 0, "Expecting Error because page backup should not be possible without valid full backup.\n Output: {0} \n CMD: {1}".format(
|
||||||
repr(self.output), self.cmd))
|
repr(self.output), self.cmd))
|
||||||
except ProbackupException as e:
|
except ProbackupException as e:
|
||||||
self.assertEqual(e.message,
|
self.assertIn(
|
||||||
"ERROR: Valid backup on current timeline is not found. Create new FULL backup before an incremental one.\n",
|
"ERROR: Valid backup on current timeline is not found. Create new FULL backup before an incremental one.",
|
||||||
|
e.message,
|
||||||
"\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))
|
||||||
|
|
||||||
# sleep(1)
|
# sleep(1)
|
||||||
|
@ -5,10 +5,11 @@ pg_probackup - utility to manage backup/recovery of PostgreSQL database.
|
|||||||
|
|
||||||
pg_probackup version
|
pg_probackup version
|
||||||
|
|
||||||
pg_probackup init -B backup-path [-l]
|
pg_probackup init -B backup-path
|
||||||
|
|
||||||
pg_probackup set-config -B backup-dir --instance=instance_name
|
pg_probackup set-config -B backup-dir --instance=instance_name
|
||||||
[--log-level=log-level]
|
[--log-level-console=log-level-console]
|
||||||
|
[--log-level-file=log-level-file]
|
||||||
[--log-filename=log-filename]
|
[--log-filename=log-filename]
|
||||||
[--error-log-filename=error-log-filename]
|
[--error-log-filename=error-log-filename]
|
||||||
[--log-directory=log-directory]
|
[--log-directory=log-directory]
|
||||||
@ -26,7 +27,7 @@ pg_probackup - utility to manage backup/recovery of PostgreSQL database.
|
|||||||
pg_probackup show-config -B backup-dir --instance=instance_name
|
pg_probackup show-config -B backup-dir --instance=instance_name
|
||||||
|
|
||||||
pg_probackup backup -B backup-path -b backup-mode --instance=instance_name
|
pg_probackup backup -B backup-path -b backup-mode --instance=instance_name
|
||||||
[-C] [-l] [--stream [-S slot-name]] [--backup-pg-log]
|
[-C] [--stream [-S slot-name]] [--backup-pg-log]
|
||||||
[-j num-threads] [--archive-timeout=archive-timeout]
|
[-j num-threads] [--archive-timeout=archive-timeout]
|
||||||
[--compress-algorithm=compress-algorithm]
|
[--compress-algorithm=compress-algorithm]
|
||||||
[--compress-level=compress-level]
|
[--compress-level=compress-level]
|
||||||
@ -37,12 +38,12 @@ pg_probackup - utility to manage backup/recovery of PostgreSQL database.
|
|||||||
[--replica-timeout=timeout]
|
[--replica-timeout=timeout]
|
||||||
|
|
||||||
pg_probackup restore -B backup-dir --instance=instance_name
|
pg_probackup restore -B backup-dir --instance=instance_name
|
||||||
[-D pgdata-dir] [-l] [-i backup-id] [--progress]
|
[-D pgdata-dir] [-i backup-id] [--progress]
|
||||||
[--time=time|--xid=xid [--inclusive=boolean]]
|
[--time=time|--xid=xid [--inclusive=boolean]]
|
||||||
[--timeline=timeline] [-T OLDDIR=NEWDIR]
|
[--timeline=timeline] [-T OLDDIR=NEWDIR]
|
||||||
|
|
||||||
pg_probackup validate -B backup-dir [--instance=instance_name]
|
pg_probackup validate -B backup-dir [--instance=instance_name]
|
||||||
[-i backup-id] [-l] [--progress]
|
[-i backup-id] [--progress]
|
||||||
[--time=time|--xid=xid [--inclusive=boolean]]
|
[--time=time|--xid=xid [--inclusive=boolean]]
|
||||||
[--timeline=timeline]
|
[--timeline=timeline]
|
||||||
|
|
||||||
@ -50,7 +51,7 @@ pg_probackup - utility to manage backup/recovery of PostgreSQL database.
|
|||||||
[--instance=instance_name [-i backup-id]]
|
[--instance=instance_name [-i backup-id]]
|
||||||
|
|
||||||
pg_probackup delete -B backup-dir --instance=instance_name
|
pg_probackup delete -B backup-dir --instance=instance_name
|
||||||
[--wal] [-i backup-id | --expired] [-l]
|
[--wal] [-i backup-id | --expired]
|
||||||
|
|
||||||
pg_probackup add-instance -B backup-dir -D pgdata-dir
|
pg_probackup add-instance -B backup-dir -D pgdata-dir
|
||||||
--instance=instance_name
|
--instance=instance_name
|
||||||
|
@ -559,7 +559,7 @@ class ProbackupTest(object):
|
|||||||
out_dict[key.strip()] = value.strip(" '").replace("'\n", "")
|
out_dict[key.strip()] = value.strip(" '").replace("'\n", "")
|
||||||
return out_dict
|
return out_dict
|
||||||
|
|
||||||
def set_archiving(self, backup_dir, instance, node, replica=False):
|
def set_archiving(self, backup_dir, instance, node, replica=False, compress=False):
|
||||||
|
|
||||||
if replica:
|
if replica:
|
||||||
archive_mode = 'always'
|
archive_mode = 'always'
|
||||||
@ -576,6 +576,12 @@ class ProbackupTest(object):
|
|||||||
"archive_mode = {0}".format(archive_mode)
|
"archive_mode = {0}".format(archive_mode)
|
||||||
)
|
)
|
||||||
if os.name == 'posix':
|
if os.name == 'posix':
|
||||||
|
if compress:
|
||||||
|
node.append_conf(
|
||||||
|
"postgresql.auto.conf",
|
||||||
|
"archive_command = '{0} archive-push -B {1} --instance={2} --compress --wal-file-path %p --wal-file-name %f'".format(
|
||||||
|
self.probackup_path, backup_dir, instance))
|
||||||
|
else:
|
||||||
node.append_conf(
|
node.append_conf(
|
||||||
"postgresql.auto.conf",
|
"postgresql.auto.conf",
|
||||||
"archive_command = '{0} archive-push -B {1} --instance={2} --wal-file-path %p --wal-file-name %f'".format(
|
"archive_command = '{0} archive-push -B {1} --instance={2} --wal-file-path %p --wal-file-name %f'".format(
|
||||||
|
@ -26,9 +26,9 @@ class OptionTest(ProbackupTest, unittest.TestCase):
|
|||||||
fname = self.id().split(".")[3]
|
fname = self.id().split(".")[3]
|
||||||
backup_dir = os.path.join(self.tmp_path, module_name, fname, 'backup')
|
backup_dir = os.path.join(self.tmp_path, module_name, fname, 'backup')
|
||||||
with open(os.path.join(self.dir_path, "expected/option_version.out"), "rb") as version_out:
|
with open(os.path.join(self.dir_path, "expected/option_version.out"), "rb") as version_out:
|
||||||
self.assertEqual(
|
self.assertIn(
|
||||||
self.run_pb(["--version"]),
|
version_out.read().decode("utf-8"),
|
||||||
version_out.read().decode("utf-8")
|
self.run_pb(["--version"])
|
||||||
)
|
)
|
||||||
|
|
||||||
# @unittest.skip("skip")
|
# @unittest.skip("skip")
|
||||||
@ -76,8 +76,8 @@ class OptionTest(ProbackupTest, unittest.TestCase):
|
|||||||
self.assertEqual(1, 0, "Expecting Error because '-b' parameter is not specified.\n Output: {0} \n CMD: {1}".format(
|
self.assertEqual(1, 0, "Expecting Error because '-b' parameter is not specified.\n Output: {0} \n CMD: {1}".format(
|
||||||
repr(self.output), self.cmd))
|
repr(self.output), self.cmd))
|
||||||
except ProbackupException as e:
|
except ProbackupException as e:
|
||||||
self.assertEqual(e.message,
|
self.assertIn('ERROR: required parameter not specified: BACKUP_MODE (-b, --backup-mode)',
|
||||||
'ERROR: required parameter not specified: BACKUP_MODE (-b, --backup-mode)\n',
|
e.message,
|
||||||
'\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))
|
||||||
|
|
||||||
# backup command failure with invalid backup mode option
|
# backup command failure with invalid backup mode option
|
||||||
|
@ -10,34 +10,34 @@ module_name = 'page'
|
|||||||
|
|
||||||
class PageBackupTest(ProbackupTest, unittest.TestCase):
|
class PageBackupTest(ProbackupTest, unittest.TestCase):
|
||||||
|
|
||||||
# @unittest.skip("skip")
|
# # @unittest.skip("skip")
|
||||||
# @unittest.expectedFailure
|
# # @unittest.expectedFailure
|
||||||
def test_page_check_archive_enabled(self):
|
# def test_page_check_archive_enabled(self):
|
||||||
"""make node, take page backup without enabled archive, should result in error"""
|
# """make node, take page backup without enabled archive, should result in error"""
|
||||||
self.maxDiff = None
|
# self.maxDiff = None
|
||||||
fname = self.id().split('.')[3]
|
# fname = self.id().split('.')[3]
|
||||||
backup_dir = os.path.join(self.tmp_path, module_name, fname, 'backup')
|
# 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,
|
# set_replication=True,
|
||||||
initdb_params=['--data-checksums'],
|
# 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)
|
# self.init_pb(backup_dir)
|
||||||
self.add_instance(backup_dir, 'node', node)
|
# self.add_instance(backup_dir, 'node', node)
|
||||||
node.start()
|
# node.start()
|
||||||
|
#
|
||||||
try:
|
# try:
|
||||||
self.backup_node(backup_dir, 'node', node, backup_type='page', options=['--stream'])
|
# self.backup_node(backup_dir, 'node', node, backup_type='page', options=['--stream'])
|
||||||
# we should die here because exception is what we expect to happen
|
# # we should die here because exception is what we expect to happen
|
||||||
self.assertEqual(1, 0, "Expecting Error because archive_mode disabled.\n Output: {0} \n CMD: {1}".format(
|
# self.assertEqual(1, 0, "Expecting Error because archive_mode disabled.\n Output: {0} \n CMD: {1}".format(
|
||||||
repr(self.output), self.cmd))
|
# repr(self.output), self.cmd))
|
||||||
except ProbackupException as e:
|
# except ProbackupException as e:
|
||||||
self.assertEqual('ERROR: Archiving must be enabled for PAGE backup\n', e.message,
|
# self.assertIn('ERROR: Archiving must be enabled for PAGE backup\n', e.message,
|
||||||
'\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
|
# # Clean after yourself
|
||||||
self.del_test_dir(module_name, fname)
|
# self.del_test_dir(module_name, fname)
|
||||||
|
|
||||||
# @unittest.skip("skip")
|
# @unittest.skip("skip")
|
||||||
def test_page_stream(self):
|
def test_page_stream(self):
|
||||||
@ -182,7 +182,7 @@ class PageBackupTest(ProbackupTest, unittest.TestCase):
|
|||||||
# GET LOGICAL CONTENT FROM NODE
|
# GET LOGICAL CONTENT FROM NODE
|
||||||
result = node.safe_psql("postgres", "select * from pgbench_accounts")
|
result = node.safe_psql("postgres", "select * from pgbench_accounts")
|
||||||
# PAGE BACKUP
|
# PAGE BACKUP
|
||||||
self.backup_node(backup_dir, 'node', node, backup_type='page', options=["-l", "--log-level=verbose"])
|
self.backup_node(backup_dir, 'node', node, backup_type='page', options=["--log-level-file=verbose"])
|
||||||
# GET PHYSICAL CONTENT FROM NODE
|
# GET PHYSICAL CONTENT FROM NODE
|
||||||
pgdata = self.pgdata_content(node.data_dir)
|
pgdata = self.pgdata_content(node.data_dir)
|
||||||
|
|
||||||
|
@ -10,45 +10,6 @@ module_name = 'pgpro589'
|
|||||||
|
|
||||||
class ArchiveCheck(ProbackupTest, unittest.TestCase):
|
class ArchiveCheck(ProbackupTest, unittest.TestCase):
|
||||||
|
|
||||||
# @unittest.skip("skip")
|
|
||||||
# @unittest.expectedFailure
|
|
||||||
def test_archive_mode(self):
|
|
||||||
"""
|
|
||||||
https://jira.postgrespro.ru/browse/PGPRO-589
|
|
||||||
make node without archive support, make backup which should fail
|
|
||||||
check ERROR text
|
|
||||||
"""
|
|
||||||
fname = self.id().split('.')[3]
|
|
||||||
node = self.make_simple_node(base_dir="{0}/{1}/node".format(module_name, fname),
|
|
||||||
initdb_params=['--data-checksums'],
|
|
||||||
pg_options={'wal_level': 'replica'}
|
|
||||||
)
|
|
||||||
backup_dir = os.path.join(self.tmp_path, module_name, fname, 'backup')
|
|
||||||
self.init_pb(backup_dir)
|
|
||||||
self.add_instance(backup_dir, 'node', node)
|
|
||||||
node.start()
|
|
||||||
|
|
||||||
node.pgbench_init(scale=5)
|
|
||||||
pgbench = node.pgbench(
|
|
||||||
stdout=subprocess.PIPE,
|
|
||||||
stderr=subprocess.STDOUT,
|
|
||||||
options=["-c", "4", "-T", "10"]
|
|
||||||
)
|
|
||||||
pgbench.wait()
|
|
||||||
pgbench.stdout.close()
|
|
||||||
|
|
||||||
try:
|
|
||||||
self.backup_node(backup_dir, 'node', node, options=['--archive-timeout=10'])
|
|
||||||
# we should die here because exception is what we expect to happen
|
|
||||||
self.assertEqual(1, 0, "Expecting Error because of disabled archive_mode.\n Output: {0} \n CMD: {1}".format(
|
|
||||||
repr(self.output), self.cmd))
|
|
||||||
except ProbackupException as e:
|
|
||||||
self.assertEqual(e.message, 'ERROR: Archiving must be enabled for archive backup\n',
|
|
||||||
'\n Unexpected Error Message: {0}\n CMD: {1}'.format(repr(e.message), self.cmd))
|
|
||||||
|
|
||||||
# Clean after yourself
|
|
||||||
self.del_test_dir(module_name, fname)
|
|
||||||
|
|
||||||
def test_pgpro589(self):
|
def test_pgpro589(self):
|
||||||
"""
|
"""
|
||||||
https://jira.postgrespro.ru/browse/PGPRO-589
|
https://jira.postgrespro.ru/browse/PGPRO-589
|
||||||
|
@ -36,7 +36,7 @@ class PtrackBackupTest(ProbackupTest, unittest.TestCase):
|
|||||||
self.assertEqual(1, 0, "Expecting Error because ptrack disabled.\n Output: {0} \n CMD: {1}".format(
|
self.assertEqual(1, 0, "Expecting Error because ptrack disabled.\n Output: {0} \n CMD: {1}".format(
|
||||||
repr(self.output), self.cmd))
|
repr(self.output), self.cmd))
|
||||||
except ProbackupException as e:
|
except ProbackupException as e:
|
||||||
self.assertEqual('ERROR: Ptrack is disabled\n', e.message,
|
self.assertIn('ERROR: Ptrack is disabled\n', e.message,
|
||||||
'\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
|
# Clean after yourself
|
||||||
@ -391,7 +391,7 @@ class PtrackBackupTest(ProbackupTest, unittest.TestCase):
|
|||||||
node.safe_psql("postgres",
|
node.safe_psql("postgres",
|
||||||
"create table t_heap as select i as id, md5(i::text) as text, md5(i::text)::tsvector as tsvector from generate_series(0,100) i")
|
"create table t_heap as select i as id, md5(i::text) as text, md5(i::text)::tsvector as tsvector from generate_series(0,100) i")
|
||||||
node.safe_psql("postgres", "SELECT * FROM t_heap")
|
node.safe_psql("postgres", "SELECT * FROM t_heap")
|
||||||
self.backup_node(backup_dir, 'node', node, options=["--stream", "-l", "--log-level=verbose"])
|
self.backup_node(backup_dir, 'node', node, options=["--stream", "--log-level-file=verbose"])
|
||||||
#sys.exit(1)
|
#sys.exit(1)
|
||||||
|
|
||||||
# CREATE DATABASE DB1
|
# CREATE DATABASE DB1
|
||||||
@ -399,7 +399,7 @@ class PtrackBackupTest(ProbackupTest, unittest.TestCase):
|
|||||||
node.safe_psql("db1", "create table t_heap as select i as id, md5(i::text) as text, md5(i::text)::tsvector as tsvector from generate_series(0,100) i")
|
node.safe_psql("db1", "create table t_heap as select i as id, md5(i::text) as text, md5(i::text)::tsvector as tsvector from generate_series(0,100) i")
|
||||||
|
|
||||||
# PTRACK BACKUP
|
# PTRACK BACKUP
|
||||||
backup_id = self.backup_node(backup_dir, 'node', node, backup_type='ptrack', options=["--stream", "-l", "--log-level=verbose"])
|
backup_id = self.backup_node(backup_dir, 'node', node, backup_type='ptrack', options=["--stream", "--log-level-file=verbose"])
|
||||||
pgdata = self.pgdata_content(node.data_dir)
|
pgdata = self.pgdata_content(node.data_dir)
|
||||||
|
|
||||||
# RESTORE
|
# RESTORE
|
||||||
@ -479,7 +479,7 @@ class PtrackBackupTest(ProbackupTest, unittest.TestCase):
|
|||||||
# sys.exit(1)
|
# sys.exit(1)
|
||||||
# PTRACK BACKUP
|
# PTRACK BACKUP
|
||||||
result = node.safe_psql("postgres", "select * from t_heap")
|
result = node.safe_psql("postgres", "select * from t_heap")
|
||||||
self.backup_node(backup_dir, 'node', node, backup_type='ptrack', options=["--stream", "-l", "--log-level=verbose"])
|
self.backup_node(backup_dir, 'node', node, backup_type='ptrack', options=["--stream", "--log-level-file=verbose"])
|
||||||
pgdata = self.pgdata_content(node.data_dir)
|
pgdata = self.pgdata_content(node.data_dir)
|
||||||
#node.stop()
|
#node.stop()
|
||||||
#node.cleanup()
|
#node.cleanup()
|
||||||
@ -538,7 +538,7 @@ class PtrackBackupTest(ProbackupTest, unittest.TestCase):
|
|||||||
#sys.exit(1)
|
#sys.exit(1)
|
||||||
|
|
||||||
# PTRACK BACKUP
|
# PTRACK BACKUP
|
||||||
self.backup_node(backup_dir, 'node', node, backup_type='ptrack', options=["--stream", "-l", '--log-level=verbose'])
|
self.backup_node(backup_dir, 'node', node, backup_type='ptrack', options=["--stream", '--log-level-file=verbose'])
|
||||||
pgdata= self.pgdata_content(node.data_dir)
|
pgdata= self.pgdata_content(node.data_dir)
|
||||||
node.stop()
|
node.stop()
|
||||||
|
|
||||||
@ -655,7 +655,7 @@ class PtrackBackupTest(ProbackupTest, unittest.TestCase):
|
|||||||
result = node.safe_psql("postgres", "select * from t_heap")
|
result = node.safe_psql("postgres", "select * from t_heap")
|
||||||
|
|
||||||
# FIRTS PTRACK BACKUP
|
# FIRTS PTRACK BACKUP
|
||||||
self.backup_node(backup_dir, 'node', node, backup_type='ptrack', options=["--stream", "-l", "--log-level=verbose"])
|
self.backup_node(backup_dir, 'node', node, backup_type='ptrack', options=["--stream", "--log-level-file=verbose"])
|
||||||
|
|
||||||
# GET PHYSICAL CONTENT FROM NODE
|
# GET PHYSICAL CONTENT FROM NODE
|
||||||
pgdata = self.pgdata_content(node.data_dir)
|
pgdata = self.pgdata_content(node.data_dir)
|
||||||
@ -691,7 +691,7 @@ class PtrackBackupTest(ProbackupTest, unittest.TestCase):
|
|||||||
node.safe_psql(
|
node.safe_psql(
|
||||||
"postgres", "alter table t_heap set tablespace pg_default")
|
"postgres", "alter table t_heap set tablespace pg_default")
|
||||||
# SECOND PTRACK BACKUP
|
# SECOND PTRACK BACKUP
|
||||||
self.backup_node(backup_dir, 'node', node, backup_type='ptrack', options=["--stream", "-l", "--log-level=verbose"])
|
self.backup_node(backup_dir, 'node', node, backup_type='ptrack', options=["--stream", "--log-level-file=verbose"])
|
||||||
pgdata = self.pgdata_content(node.data_dir)
|
pgdata = self.pgdata_content(node.data_dir)
|
||||||
|
|
||||||
# Restore second ptrack backup and check table consistency
|
# Restore second ptrack backup and check table consistency
|
||||||
@ -762,7 +762,7 @@ class PtrackBackupTest(ProbackupTest, unittest.TestCase):
|
|||||||
# GET LOGICAL CONTENT FROM NODE
|
# GET LOGICAL CONTENT FROM NODE
|
||||||
result = node.safe_psql("postgres", "select * from pgbench_accounts")
|
result = node.safe_psql("postgres", "select * from pgbench_accounts")
|
||||||
# FIRTS PTRACK BACKUP
|
# FIRTS PTRACK BACKUP
|
||||||
self.backup_node(backup_dir, 'node', node, backup_type='ptrack', options=["-l", "--log-level=verbose"])
|
self.backup_node(backup_dir, 'node', node, backup_type='ptrack', options=["--log-level-file=verbose"])
|
||||||
# GET PHYSICAL CONTENT FROM NODE
|
# GET PHYSICAL CONTENT FROM NODE
|
||||||
pgdata = self.pgdata_content(node.data_dir)
|
pgdata = self.pgdata_content(node.data_dir)
|
||||||
|
|
||||||
|
@ -25,7 +25,7 @@ class OptionTest(ProbackupTest, unittest.TestCase):
|
|||||||
node.start()
|
node.start()
|
||||||
|
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
self.backup_node(backup_dir, 'node', node, options=["--log-level=panic"]),
|
self.backup_node(backup_dir, 'node', node, options=["--log-level-console=panic"]),
|
||||||
None
|
None
|
||||||
)
|
)
|
||||||
self.assertIn("OK", self.show_pb(backup_dir, 'node', as_text=True))
|
self.assertIn("OK", self.show_pb(backup_dir, 'node', as_text=True))
|
||||||
|
Reference in New Issue
Block a user