Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit66055c2

Browse files
committed
tests: added test_multiple_segments_in_multiple_tablespaces
1 parent15b457d commit66055c2

File tree

1 file changed

+106
-0
lines changed

1 file changed

+106
-0
lines changed

‎tests/cfs_backup.py

Lines changed: 106 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -657,6 +657,112 @@ def test_multiple_segments(self):
657657
self.assertEqual(page_result,self.node.safe_psql("postgres","SELECT * FROM t_heap"),'Lost data after restore')
658658

659659

660+
# @unittest.expectedFailure
661+
# @unittest.skip("skip")
662+
deftest_multiple_segments_in_multiple_tablespaces(self):
663+
"""
664+
Case: Make full backup before created table in the tablespace.
665+
Make ptrack backup after create table.
666+
Check: incremental backup will not greater as full
667+
"""
668+
tblspace_name_1='tblspace_name_1'
669+
tblspace_name_2='tblspace_name_2'
670+
671+
self.create_tblspace_in_node(self.node,tblspace_name_1,True)
672+
self.create_tblspace_in_node(self.node,tblspace_name_2,True)
673+
674+
self.node.safe_psql(
675+
"postgres",
676+
"CREATE TABLE {0} TABLESPACE {1}\
677+
AS SELECT i AS id, MD5(i::text) AS text,\
678+
MD5(repeat(i::text,10))::tsvector AS tsvector\
679+
FROM generate_series(0,10050000) i".format('t_heap_1',tblspace_name_1)
680+
)
681+
682+
self.node.safe_psql(
683+
"postgres",
684+
"CREATE TABLE {0} TABLESPACE {1}\
685+
AS SELECT i AS id, MD5(i::text) AS text,\
686+
MD5(repeat(i::text,10))::tsvector AS tsvector\
687+
FROM generate_series(0,10050000) i".format('t_heap_2',tblspace_name_2)
688+
)
689+
690+
full_result_1=self.node.safe_psql("postgres","SELECT * FROM t_heap_1")
691+
full_result_2=self.node.safe_psql("postgres","SELECT * FROM t_heap_2")
692+
693+
try:
694+
backup_id_full=self.backup_node(self.backup_dir,'node',self.node,backup_type='full')
695+
exceptProbackupExceptionase:
696+
self.fail(
697+
"ERROR: Full backup failed.\n {0}\n {1}".format(
698+
repr(self.cmd),
699+
repr(e.message)
700+
)
701+
)
702+
703+
self.node.safe_psql(
704+
"postgres",
705+
'INSERT INTO {0}\
706+
SELECT i AS id, MD5(i::text) AS text,\
707+
MD5(repeat(i::text,10))::tsvector AS tsvector\
708+
FROM generate_series(0,10050000) i'.format('t_heap_1')
709+
)
710+
711+
self.node.safe_psql(
712+
"postgres",
713+
'INSERT INTO {0}\
714+
SELECT i AS id, MD5(i::text) AS text,\
715+
MD5(repeat(i::text,10))::tsvector AS tsvector\
716+
FROM generate_series(0,10050000) i'.format('t_heap_2')
717+
)
718+
719+
page_result_1=self.node.safe_psql("postgres","SELECT * FROM t_heap_1")
720+
page_result_2=self.node.safe_psql("postgres","SELECT * FROM t_heap_2")
721+
722+
try:
723+
backup_id_page=self.backup_node(self.backup_dir,'node',self.node,backup_type='page')
724+
exceptProbackupExceptionase:
725+
self.fail(
726+
"ERROR: Incremental backup failed.\n {0}\n {1}".format(
727+
repr(self.cmd),
728+
repr(e.message)
729+
)
730+
)
731+
732+
show_backup_full=self.show_pb(self.backup_dir,'node',backup_id_full)
733+
show_backup_page=self.show_pb(self.backup_dir,'node',backup_id_page)
734+
self.assertGreater(
735+
show_backup_page["data-bytes"],
736+
show_backup_full["data-bytes"],
737+
"ERROR: Size of incremental backup greater as full.\n INFO: {0} >{1}".format(
738+
show_backup_page["data-bytes"],
739+
show_backup_full["data-bytes"]
740+
)
741+
)
742+
743+
# CHECK FULL BACKUP
744+
self.node.stop()
745+
self.node.cleanup()
746+
shutil.rmtree(self.get_tblspace_path(self.node,tblspace_name),ignore_errors=True)
747+
shutil.rmtree(self.get_tblspace_path(self.node,tblspace_name_1),ignore_errors=True)
748+
shutil.rmtree(self.get_tblspace_path(self.node,tblspace_name_2),ignore_errors=True)
749+
self.restore_node(self.backup_dir,'node',self.node,backup_id=backup_id_full,options=["-j","4"])
750+
self.node.start()
751+
self.assertEqual(full_result_1,self.node.safe_psql("postgres","SELECT * FROM t_heap_1"),'Lost data after restore')
752+
self.assertEqual(full_result_2,self.node.safe_psql("postgres","SELECT * FROM t_heap_2"),'Lost data after restore')
753+
754+
# CHECK PAGE BACKUP
755+
self.node.stop()
756+
self.node.cleanup()
757+
shutil.rmtree(self.get_tblspace_path(self.node,tblspace_name),ignore_errors=True)
758+
shutil.rmtree(self.get_tblspace_path(self.node,tblspace_name_1),ignore_errors=True)
759+
shutil.rmtree(self.get_tblspace_path(self.node,tblspace_name_2),ignore_errors=True)
760+
self.restore_node(self.backup_dir,'node',self.node,backup_id=backup_id_page,options=["-j","4"])
761+
self.node.start()
762+
self.assertEqual(page_result_1,self.node.safe_psql("postgres","SELECT * FROM t_heap_1"),'Lost data after restore')
763+
self.assertEqual(page_result_2,self.node.safe_psql("postgres","SELECT * FROM t_heap_2"),'Lost data after restore')
764+
765+
660766
# @unittest.expectedFailure
661767
# @unittest.skip("skip")
662768
deftest_fullbackup_after_create_table_page_after_create_table_stream(self):

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp