@@ -3409,3 +3409,73 @@ def test_restore_primary_slot_info(self):
3409
3409
3410
3410
# Clean after yourself
3411
3411
self .del_test_dir (module_name , fname )
3412
+
3413
+ def test_issue_249 (self ):
3414
+ """
3415
+ https://github.com/postgrespro/pg_probackup/issues/249
3416
+ """
3417
+ fname = self .id ().split ('.' )[3 ]
3418
+ backup_dir = os .path .join (self .tmp_path , module_name , fname , 'backup' )
3419
+ node = self .make_simple_node (
3420
+ base_dir = os .path .join (module_name , fname , 'node' ),
3421
+ initdb_params = ['--data-checksums' ],
3422
+ pg_options = {'autovacuum' : 'off' })
3423
+
3424
+ self .init_pb (backup_dir )
3425
+ self .add_instance (backup_dir , 'node' , node )
3426
+ self .set_archiving (backup_dir , 'node' , node )
3427
+ node .slow_start ()
3428
+
3429
+ node .safe_psql (
3430
+ 'postgres' ,
3431
+ 'CREATE database db1' )
3432
+
3433
+ node .pgbench_init (scale = 5 )
3434
+
3435
+ node .safe_psql (
3436
+ 'postgres' ,
3437
+ 'CREATE TABLE t1 as SELECT * from pgbench_accounts where aid > 200000 and aid < 450000' )
3438
+
3439
+ node .safe_psql (
3440
+ 'postgres' ,
3441
+ 'DELETE from pgbench_accounts where aid > 200000 and aid < 450000' )
3442
+
3443
+ node .safe_psql (
3444
+ 'postgres' ,
3445
+ 'select * from pgbench_accounts' )
3446
+
3447
+ # FULL backup
3448
+ self .backup_node (backup_dir , 'node' , node )
3449
+
3450
+ node .safe_psql (
3451
+ 'postgres' ,
3452
+ 'INSERT INTO pgbench_accounts SELECT * FROM t1' )
3453
+
3454
+ # restore FULL backup
3455
+ node_restored_1 = self .make_simple_node (
3456
+ base_dir = os .path .join (module_name , fname , 'node_restored_1' ))
3457
+ node_restored_1 .cleanup ()
3458
+
3459
+ self .restore_node (
3460
+ backup_dir , 'node' ,
3461
+ node_restored_1 , options = ["--db-include=db1" ])
3462
+
3463
+ self .set_auto_conf (
3464
+ node_restored_1 ,
3465
+ {'port' : node_restored_1 .port , 'hot_standby' : 'on' })
3466
+
3467
+ node_restored_1 .slow_start ()
3468
+
3469
+ node_restored_1 .safe_psql (
3470
+ 'db1' ,
3471
+ 'select 1' )
3472
+
3473
+ try :
3474
+ node_restored_1 .safe_psql (
3475
+ 'postgres' ,
3476
+ 'select 1' )
3477
+ except QueryException as e :
3478
+ self .assertIn ('FATAL' , e .message )
3479
+
3480
+ # Clean after yourself
3481
+ self .del_test_dir (module_name , fname )
0 commit comments