@@ -391,14 +391,15 @@ def test_create_db(self):
391
391
node .safe_psql ("postgres" ,
392
392
"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" )
393
393
node .safe_psql ("postgres" , "SELECT * FROM t_heap" )
394
- self .backup_node (backup_dir , 'node' , node , options = ["--stream" ])
394
+ self .backup_node (backup_dir , 'node' , node , options = ["--stream" , "-l" , "--log-level=verbose" ])
395
+ #sys.exit(1)
395
396
396
397
# CREATE DATABASE DB1
397
398
node .safe_psql ("postgres" , "create database db1" )
398
399
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" )
399
400
400
401
# PTRACK BACKUP
401
- backup_id = self .backup_node (backup_dir , 'node' , node , backup_type = 'ptrack' , options = ["--stream" ])
402
+ backup_id = self .backup_node (backup_dir , 'node' , node , backup_type = 'ptrack' , options = ["--stream" , "-l" , "--log-level=verbose" ])
402
403
pgdata = self .pgdata_content (node .data_dir )
403
404
404
405
# RESTORE
@@ -475,12 +476,13 @@ def test_alter_table_set_tablespace_ptrack(self):
475
476
node .safe_psql (
476
477
"postgres" , "alter table t_heap set tablespace somedata_new" )
477
478
479
+ # sys.exit(1)
478
480
# PTRACK BACKUP
479
481
result = node .safe_psql ("postgres" , "select * from t_heap" )
480
- self .backup_node (backup_dir , 'node' , node , backup_type = 'ptrack' , options = ["--stream" ])
482
+ self .backup_node (backup_dir , 'node' , node , backup_type = 'ptrack' , options = ["--stream" , "-l" , "--log-level=verbose" ])
481
483
pgdata = self .pgdata_content (node .data_dir )
482
- node .stop ()
483
- node .cleanup ()
484
+ # node.stop()
485
+ # node.cleanup()
484
486
485
487
# RESTORE
486
488
node_restored = self .make_simple_node (base_dir = "{0}/{1}/node_restored" .format (module_name , fname ))
@@ -533,9 +535,10 @@ def test_alter_database_set_tablespace_ptrack(self):
533
535
# ALTER DATABASE
534
536
node .safe_psql ("template1" ,
535
537
"alter database postgres set tablespace somedata" )
538
+ #sys.exit(1)
536
539
537
540
# PTRACK BACKUP
538
- self .backup_node (backup_dir , 'node' , node , backup_type = 'ptrack' , options = ["--stream" ])
541
+ self .backup_node (backup_dir , 'node' , node , backup_type = 'ptrack' , options = ["--stream" , "-l" , '--log-level=verbose' ])
539
542
pgdata = self .pgdata_content (node .data_dir )
540
543
node .stop ()
541
544
@@ -625,14 +628,17 @@ def test_ptrack_alter_tablespace(self):
625
628
node = self .make_simple_node (base_dir = "{0}/{1}/node" .format (module_name , fname ),
626
629
set_replication = True ,
627
630
initdb_params = ['--data-checksums' ],
628
- pg_options = {'wal_level' : 'replica' , 'max_wal_senders' : '2' , 'checkpoint_timeout' : '30s' , 'ptrack_enable' : 'on' }
631
+ pg_options = {'wal_level' : 'replica' , 'max_wal_senders' : '2' ,
632
+ 'checkpoint_timeout' : '30s' , 'ptrack_enable' : 'on' ,
633
+ 'autovacuum' : 'off' }
629
634
)
630
635
631
636
self .init_pb (backup_dir )
632
637
self .add_instance (backup_dir , 'node' , node )
633
638
node .start ()
634
639
635
640
self .create_tblspace_in_node (node , 'somedata' )
641
+ tblspc_path = self .get_tblspace_path (node , 'somedata' )
636
642
637
643
# CREATE TABLE
638
644
node .safe_psql (
@@ -645,19 +651,23 @@ def test_ptrack_alter_tablespace(self):
645
651
# Move table to separate tablespace
646
652
node .safe_psql (
647
653
"postgres" , "alter table t_heap set tablespace somedata" )
654
+ # GET LOGICAL CONTENT FROM NODE
655
+ result = node .safe_psql ("postgres" , "select * from t_heap" )
656
+
648
657
# FIRTS PTRACK BACKUP
649
- self .backup_node (backup_dir , 'node' , node , backup_type = 'ptrack' , options = ["--stream" ])
658
+ self .backup_node (backup_dir , 'node' , node , backup_type = 'ptrack' , options = ["--stream" , "-l" , "--log-level=verbose" ])
659
+
660
+ # GET PHYSICAL CONTENT FROM NODE
650
661
pgdata = self .pgdata_content (node .data_dir )
651
662
652
- # Restore ptrack backup and check table consistency
663
+ # Restore ptrack backup
653
664
restored_node = self .make_simple_node (base_dir = "{0}/{1}/restored_node" .format (module_name , fname ))
654
665
restored_node .cleanup ()
655
- tblspc_path = self .get_tblspace_path (node , 'somedata' )
656
666
tblspc_path_new = self .get_tblspace_path (restored_node , 'somedata_restored' )
657
667
self .restore_node (backup_dir , 'node' , restored_node , options = [
658
668
"-j" , "4" , "-T" , "{0}={1}" .format (tblspc_path , tblspc_path_new )])
659
- result = node .safe_psql ("postgres" , "select * from t_heap" )
660
669
670
+ # GET PHYSICAL CONTENT FROM RESTORED NODE
661
671
pgdata_restored = self .pgdata_content (restored_node .data_dir )
662
672
663
673
# START RESTORED NODE
@@ -666,6 +676,7 @@ def test_ptrack_alter_tablespace(self):
666
676
while restored_node .safe_psql ("postgres" , "select pg_is_in_recovery()" ) == 't\n ' :
667
677
time .sleep (1 )
668
678
679
+ # COMPARE LOGICAL CONTENT
669
680
result_new = restored_node .safe_psql ("postgres" , "select * from t_heap" )
670
681
self .assertEqual (result , result_new )
671
682
@@ -680,18 +691,18 @@ def test_ptrack_alter_tablespace(self):
680
691
node .safe_psql (
681
692
"postgres" , "alter table t_heap set tablespace pg_default" )
682
693
# SECOND PTRACK BACKUP
683
- self .backup_node (backup_dir , 'node' , node , backup_type = 'ptrack' , options = ["--stream" ])
694
+ self .backup_node (backup_dir , 'node' , node , backup_type = 'ptrack' , options = ["--stream" , "-l" , "--log-level=verbose" ])
684
695
pgdata = self .pgdata_content (node .data_dir )
685
696
686
697
# Restore second ptrack backup and check table consistency
687
698
self .restore_node (backup_dir , 'node' , restored_node , options = [
688
699
"-j" , "4" , "-T" , "{0}={1}" .format (tblspc_path , tblspc_path_new )])
689
- restored_node .append_conf ("postgresql.auto.conf" , "port = {0}" .format (restored_node .port ))
690
700
691
- # GET PHYSICAL CONTENT
701
+ # GET PHYSICAL CONTENT FROM RESTORED NODE
692
702
pgdata_restored = self .pgdata_content (restored_node .data_dir )
693
703
694
704
# START RESTORED NODE
705
+ restored_node .append_conf ("postgresql.auto.conf" , "port = {0}" .format (restored_node .port ))
695
706
restored_node .start ()
696
707
while restored_node .safe_psql ("postgres" , "select pg_is_in_recovery()" ) == 't\n ' :
697
708
time .sleep (1 )
@@ -707,7 +718,7 @@ def test_ptrack_alter_tablespace(self):
707
718
self .del_test_dir (module_name , fname )
708
719
709
720
# @unittest.skip("skip")
710
- def test_relation_with_multiple_segments (self ):
721
+ def test_ptrack_multiple_segments (self ):
711
722
"""Make node, create table, alter table tablespace, take ptrack backup, move table from tablespace, take ptrack backup"""
712
723
fname = self .id ().split ('.' )[3 ]
713
724
backup_dir = os .path .join (self .tmp_path , module_name , fname , 'backup' )
@@ -729,38 +740,31 @@ def test_relation_with_multiple_segments(self):
729
740
# CREATE TABLE
730
741
node .pgbench_init (scale = 100 , options = ['--tablespace=somedata' ])
731
742
# FULL BACKUP
732
- #self.backup_node(backup_dir, 'node', node, options=["--stream"])
733
743
self .backup_node (backup_dir , 'node' , node )
734
744
735
745
# PTRACK STUFF
736
746
idx_ptrack = {'type' : 'heap' }
737
-
738
747
idx_ptrack ['path' ] = self .get_fork_path (node , 'pgbench_accounts' )
739
748
idx_ptrack ['old_size' ] = self .get_fork_size (node , 'pgbench_accounts' )
740
749
idx_ptrack ['old_pages' ] = self .get_md5_per_page_for_fork (
741
750
idx_ptrack ['path' ], idx_ptrack ['old_size' ])
742
751
743
- pgbench = node .pgbench (options = ['-T' , '50 ' , '-c' , '2' , '--no-vacuum' ])
752
+ pgbench = node .pgbench (options = ['-T' , '150 ' , '-c' , '2' , '--no-vacuum' ])
744
753
pgbench .wait ()
745
- #node.safe_psql("postgres", "update pgbench_accounts set bid = bid +1")
746
754
node .safe_psql ("postgres" , "checkpoint" )
747
755
748
756
idx_ptrack ['new_size' ] = self .get_fork_size (node , 'pgbench_accounts' )
749
757
idx_ptrack ['new_pages' ] = self .get_md5_per_page_for_fork (idx_ptrack ['path' ], idx_ptrack ['new_size' ])
750
- idx_ptrack ['ptrack' ] = self .get_ptrack_bits_per_page_for_fork (
751
- node , idx_ptrack ['path' ], [idx_ptrack ['old_size' ], idx_ptrack ['new_size' ]])
752
-
758
+ idx_ptrack ['ptrack' ] = self .get_ptrack_bits_per_page_for_fork (node , idx_ptrack ['path' ])
753
759
self .check_ptrack_sanity (idx_ptrack )
754
- ## PTRACK STUFF
760
+
755
761
756
762
# GET LOGICAL CONTENT FROM NODE
757
763
result = node .safe_psql ("postgres" , "select * from pgbench_accounts" )
758
764
# FIRTS PTRACK BACKUP
759
- #self.backup_node(backup_dir, 'node', node, backup_type='ptrack', options=["--stream"])
760
- self .backup_node (backup_dir , 'node' , node , backup_type = 'ptrack' )
765
+ self .backup_node (backup_dir , 'node' , node , backup_type = 'ptrack' , options = ["-l" , "--log-level=verbose" ])
761
766
# GET PHYSICAL CONTENT FROM NODE
762
767
pgdata = self .pgdata_content (node .data_dir )
763
- #get_md5_per_page_for_fork
764
768
765
769
# RESTORE NODE
766
770
restored_node = self .make_simple_node (base_dir = "{0}/{1}/restored_node" .format (module_name , fname ))
@@ -789,4 +793,4 @@ def test_relation_with_multiple_segments(self):
789
793
self .compare_pgdata (pgdata , pgdata_restored )
790
794
791
795
# Clean after yourself
792
- # self.del_test_dir(module_name, fname)
796
+ self .del_test_dir (module_name , fname )
0 commit comments