@@ -20,9 +20,9 @@ def setUp(self):
20
20
self .node = self .make_simple_node (
21
21
base_dir = "{0}/{1}/node" .format (module_name , self .fname ),
22
22
set_replication = True ,
23
+ ptrack_enable = True ,
23
24
initdb_params = ['--data-checksums' ],
24
25
pg_options = {
25
- 'ptrack_enable' : 'on' ,
26
26
'cfs_encryption' : 'off' ,
27
27
'max_wal_senders' : '2' ,
28
28
'shared_buffers' : '200MB'
@@ -35,18 +35,27 @@ def setUp(self):
35
35
36
36
self .node .slow_start ()
37
37
38
+ if self .node .major_version >= 12 :
39
+ self .node .safe_psql (
40
+ "postgres" ,
41
+ "CREATE EXTENSION ptrack" )
42
+
38
43
self .create_tblspace_in_node (self .node , tblspace_name , cfs = True )
39
44
40
45
tblspace = self .node .safe_psql (
41
46
"postgres" ,
42
47
"SELECT * FROM pg_tablespace WHERE spcname='{0}'" .format (
43
- tblspace_name )
44
- )
45
- self .assertTrue (
46
- tblspace_name in tblspace and "compression=true" in tblspace ,
48
+ tblspace_name ))
49
+
50
+ self .assertIn (
51
+ tblspace_name , str ( tblspace ) ,
47
52
"ERROR: The tablespace not created "
48
- "or it create without compressions"
49
- )
53
+ "or it create without compressions" )
54
+
55
+ self .assertIn (
56
+ "compression=true" , str (tblspace ),
57
+ "ERROR: The tablespace not created "
58
+ "or it create without compressions" )
50
59
51
60
self .assertTrue (
52
61
find_by_name (
@@ -473,7 +482,7 @@ def test_fullbackup_empty_tablespace_page_after_create_table_stream(self):
473
482
)
474
483
475
484
# --- Section: Incremental from fill tablespace --- #
476
- @unittest .expectedFailure
485
+ # @unittest.expectedFailure
477
486
# @unittest.skip("skip")
478
487
@unittest .skipUnless (ProbackupTest .enterprise , 'skip' )
479
488
def test_fullbackup_after_create_table_ptrack_after_create_table (self ):
@@ -537,7 +546,7 @@ def test_fullbackup_after_create_table_ptrack_after_create_table(self):
537
546
)
538
547
)
539
548
540
- @unittest .expectedFailure
549
+ # @unittest.expectedFailure
541
550
# @unittest.skip("skip")
542
551
@unittest .skipUnless (ProbackupTest .enterprise , 'skip' )
543
552
def test_fullbackup_after_create_table_ptrack_after_create_table_stream (self ):
@@ -603,7 +612,7 @@ def test_fullbackup_after_create_table_ptrack_after_create_table_stream(self):
603
612
)
604
613
)
605
614
606
- @unittest .expectedFailure
615
+ # @unittest.expectedFailure
607
616
# @unittest.skip("skip")
608
617
@unittest .skipUnless (ProbackupTest .enterprise , 'skip' )
609
618
def test_fullbackup_after_create_table_page_after_create_table (self ):
@@ -738,12 +747,14 @@ def test_multiple_segments(self):
738
747
# CHECK FULL BACKUP
739
748
self .node .stop ()
740
749
self .node .cleanup ()
741
- shutil .rmtree (
742
- self .get_tblspace_path (self .node , tblspace_name ),
743
- ignore_errors = True )
750
+ shutil .rmtree (self .get_tblspace_path (self .node , tblspace_name ))
744
751
self .restore_node (
745
- self .backup_dir , 'node' , self .node ,
746
- backup_id = backup_id_full , options = ["-j" , "4" ])
752
+ self .backup_dir , 'node' , self .node , backup_id = backup_id_full ,
753
+ options = [
754
+ "-j" , "4" ,
755
+ "--recovery-target=immediate" ,
756
+ "--recovery-target-action=promote" ])
757
+
747
758
self .node .slow_start ()
748
759
self .assertEqual (
749
760
full_result ,
@@ -757,8 +768,12 @@ def test_multiple_segments(self):
757
768
self .get_tblspace_path (self .node , tblspace_name ),
758
769
ignore_errors = True )
759
770
self .restore_node (
760
- self .backup_dir , 'node' , self .node ,
761
- backup_id = backup_id_page , options = ["-j" , "4" ])
771
+ self .backup_dir , 'node' , self .node , backup_id = backup_id_page ,
772
+ options = [
773
+ "-j" , "4" ,
774
+ "--recovery-target=immediate" ,
775
+ "--recovery-target-action=promote" ])
776
+
762
777
self .node .slow_start ()
763
778
self .assertEqual (
764
779
page_result ,
@@ -786,17 +801,15 @@ def test_multiple_segments_in_multiple_tablespaces(self):
786
801
"AS SELECT i AS id, MD5(i::text) AS text, "
787
802
"MD5(repeat(i::text,10))::tsvector AS tsvector "
788
803
"FROM generate_series(0,1005000) i" .format (
789
- 't_heap_1' , tblspace_name_1 )
790
- )
804
+ 't_heap_1' , tblspace_name_1 ))
791
805
792
806
self .node .safe_psql (
793
807
"postgres" ,
794
808
"CREATE TABLE {0} TABLESPACE {1} "
795
809
"AS SELECT i AS id, MD5(i::text) AS text, "
796
810
"MD5(repeat(i::text,10))::tsvector AS tsvector "
797
811
"FROM generate_series(0,1005000) i" .format (
798
- 't_heap_2' , tblspace_name_2 )
799
- )
812
+ 't_heap_2' , tblspace_name_2 ))
800
813
801
814
full_result_1 = self .node .safe_psql (
802
815
"postgres" , "SELECT * FROM t_heap_1" )
@@ -864,21 +877,16 @@ def test_multiple_segments_in_multiple_tablespaces(self):
864
877
865
878
# CHECK FULL BACKUP
866
879
self .node .stop ()
867
- self .node .cleanup ()
868
- shutil .rmtree (
869
- self .get_tblspace_path (self .node , tblspace_name ),
870
- ignore_errors = True )
871
- shutil .rmtree (
872
- self .get_tblspace_path (self .node , tblspace_name_1 ),
873
- ignore_errors = True )
874
- shutil .rmtree (
875
- self .get_tblspace_path (self .node , tblspace_name_2 ),
876
- ignore_errors = True )
877
880
878
881
self .restore_node (
879
882
self .backup_dir , 'node' , self .node ,
880
- backup_id = backup_id_full , options = ["-j" , "4" ])
883
+ backup_id = backup_id_full ,
884
+ options = [
885
+ "-j" , "4" , "--incremental-mode=checksum" ,
886
+ "--recovery-target=immediate" ,
887
+ "--recovery-target-action=promote" ])
881
888
self .node .slow_start ()
889
+
882
890
self .assertEqual (
883
891
full_result_1 ,
884
892
self .node .safe_psql ("postgres" , "SELECT * FROM t_heap_1" ),
@@ -890,21 +898,16 @@ def test_multiple_segments_in_multiple_tablespaces(self):
890
898
891
899
# CHECK PAGE BACKUP
892
900
self .node .stop ()
893
- self .node .cleanup ()
894
- shutil .rmtree (
895
- self .get_tblspace_path (self .node , tblspace_name ),
896
- ignore_errors = True )
897
- shutil .rmtree (
898
- self .get_tblspace_path (self .node , tblspace_name_1 ),
899
- ignore_errors = True )
900
- shutil .rmtree (
901
- self .get_tblspace_path (self .node , tblspace_name_2 ),
902
- ignore_errors = True )
903
901
904
902
self .restore_node (
905
903
self .backup_dir , 'node' , self .node ,
906
- backup_id = backup_id_page , options = ["-j" , "4" ])
904
+ backup_id = backup_id_page ,
905
+ options = [
906
+ "-j" , "4" , "--incremental-mode=checksum" ,
907
+ "--recovery-target=immediate" ,
908
+ "--recovery-target-action=promote" ])
907
909
self .node .slow_start ()
910
+
908
911
self .assertEqual (
909
912
page_result_1 ,
910
913
self .node .safe_psql ("postgres" , "SELECT * FROM t_heap_1" ),
@@ -914,7 +917,7 @@ def test_multiple_segments_in_multiple_tablespaces(self):
914
917
self .node .safe_psql ("postgres" , "SELECT * FROM t_heap_2" ),
915
918
'Lost data after restore' )
916
919
917
- @unittest .expectedFailure
920
+ # @unittest.expectedFailure
918
921
# @unittest.skip("skip")
919
922
@unittest .skipUnless (ProbackupTest .enterprise , 'skip' )
920
923
def test_fullbackup_after_create_table_page_after_create_table_stream (self ):
0 commit comments