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

Commit4611ee3

Browse files
committed
Merge branch 'master' into issue_79
2 parents8623628 +5cb84f2 commit4611ee3

File tree

4 files changed

+155
-16
lines changed

4 files changed

+155
-16
lines changed

‎README.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -58,15 +58,15 @@ Regardless of the chosen backup type, all backups taken with `pg_probackup` supp
5858
###Linux Installation
5959
```shell
6060
#DEB Ubuntu|Debian Packages
61-
echo"deb [arch=amd64] http://repo.postgrespro.ru/pg_probackup/deb/$(lsb_release -cs) main-$(lsb_release -cs)"> /etc/apt/sources.list.d/pg_probackup.list
62-
wget -O - http://repo.postgrespro.ru/pg_probackup/keys/GPG-KEY-PG_PROBACKUP| apt-key add -&& apt-get update
63-
apt-get install pg-probackup-{11,10,9.6,9.5}
64-
apt-get install pg-probackup-{11,10,9.6,9.5}-dbg
61+
sudoecho"deb [arch=amd64] http://repo.postgrespro.ru/pg_probackup/deb/$(lsb_release -cs) main-$(lsb_release -cs)"> /etc/apt/sources.list.d/pg_probackup.list
62+
sudowget -O - http://repo.postgrespro.ru/pg_probackup/keys/GPG-KEY-PG_PROBACKUP|sudoapt-key add -&& sudo apt-get update
63+
sudoapt-get install pg-probackup-{11,10,9.6,9.5}
64+
sudoapt-get install pg-probackup-{11,10,9.6,9.5}-dbg
6565

6666
#DEB-SRC Packages
67-
echo"deb-src [arch=amd64] http://repo.postgrespro.ru/pg_probackup/deb/$(lsb_release -cs) main-$(lsb_release -cs)">>\
67+
sudoecho"deb-src [arch=amd64] http://repo.postgrespro.ru/pg_probackup/deb/$(lsb_release -cs) main-$(lsb_release -cs)">>\
6868
/etc/apt/sources.list.d/pg_probackup.list
69-
apt-getsource pg-probackup-{11,10,9.6,9.5}
69+
sudoapt-getsource pg-probackup-{11,10,9.6,9.5}
7070

7171
#RPM Centos Packages
7272
rpm -ivh http://repo.postgrespro.ru/pg_probackup/keys/pg_probackup-repo-centos.noarch.rpm
@@ -112,7 +112,7 @@ gen_probackup_project.pl C:\path_to_postgresql_source_tree
112112

113113
##Documentation
114114

115-
Currently the latest documentation can be found at[github](https://postgrespro.github.io/pg_probackup)
115+
Currently the latest documentation can be found at[github](https://postgrespro.github.io/pg_probackup).
116116
Slightly outdated documentation can be found at[Postgres Pro Enterprise documentation](https://postgrespro.com/docs/postgrespro/current/app-pgprobackup).
117117

118118
##License

‎src/backup.c

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2566,7 +2566,6 @@ StreamLog(void *arg)
25662566
stream_arg->startpos-=stream_arg->startpos %instance_config.xlog_seg_size;
25672567

25682568
/* Initialize timeout */
2569-
stream_stop_timeout=0;
25702569
stream_stop_begin=0;
25712570

25722571
#ifPG_VERSION_NUM >=100000

‎src/pg_probackup.c

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -332,11 +332,11 @@ main(int argc, char *argv[])
332332
||strcmp(argv[1], "-V")==0)
333333
{
334334
#ifdefPGPRO_VERSION
335-
fprintf(stderr,"%s %s (Postgres Pro %s %s)\n",
335+
fprintf(stdout,"%s %s (Postgres Pro %s %s)\n",
336336
PROGRAM_NAME,PROGRAM_VERSION,
337337
PGPRO_VERSION,PGPRO_EDITION);
338338
#else
339-
fprintf(stderr,"%s %s (PostgreSQL %s)\n",
339+
fprintf(stdout,"%s %s (PostgreSQL %s)\n",
340340
PROGRAM_NAME,PROGRAM_VERSION,PG_VERSION);
341341
#endif
342342
exit(0);
@@ -669,12 +669,12 @@ main(int argc, char *argv[])
669669
returndo_show(current.backup_id);
670670
caseDELETE_CMD:
671671
if (delete_expired&&backup_id_string)
672-
elog(ERROR,"You cannot specify --delete-expired and--backup-id options together");
672+
elog(ERROR,"You cannot specify --delete-expired and(-i, --backup-id) options together");
673673
if (merge_expired&&backup_id_string)
674-
elog(ERROR,"You cannot specify --merge-expired and--backup-id options together");
674+
elog(ERROR,"You cannot specify --merge-expired and(-i, --backup-id) options together");
675675
if (!delete_expired&& !merge_expired&& !delete_wal&& !backup_id_string)
676676
elog(ERROR,"You must specify at least one of the delete options: "
677-
"--expired |--wal |--merge-expired |--delete-invalid |--backup_id");
677+
"--delete-expired |--delete-wal |--merge-expired |(-i, --backup-id)");
678678
if (!backup_id_string)
679679
returndo_retention();
680680
else

‎tests/retention.py

Lines changed: 143 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1264,16 +1264,156 @@ def test_window_error_backups(self):
12641264
self.set_archiving(backup_dir,'node',node)
12651265
node.slow_start()
12661266

1267-
node.pgbench_init(scale=3)
1268-
12691267
# Take FULL BACKUPs
12701268
backup_id_a1=self.backup_node(backup_dir,'node',node)
1271-
page_id_a2=self.backup_node(
1269+
gdb=self.backup_node(
1270+
backup_dir,'node',node,backup_type='page',gdb=True)
1271+
1272+
page_id_a3=self.backup_node(
12721273
backup_dir,'node',node,backup_type='page')
12731274

12741275
# Change FULLb backup status to ERROR
12751276
self.change_backup_status(backup_dir,'node',backup_id_b,'ERROR')
12761277

1278+
# Clean after yourself
1279+
self.del_test_dir(module_name,fname)
1280+
1281+
# @unittest.skip("skip")
1282+
deftest_window_error_backups_1(self):
1283+
"""
1284+
DELTA
1285+
PAGE ERROR
1286+
FULL
1287+
-------window
1288+
"""
1289+
fname=self.id().split('.')[3]
1290+
node=self.make_simple_node(
1291+
base_dir=os.path.join(module_name,fname,'node'),
1292+
initdb_params=['--data-checksums'])
1293+
1294+
backup_dir=os.path.join(self.tmp_path,module_name,fname,'backup')
1295+
self.init_pb(backup_dir)
1296+
self.add_instance(backup_dir,'node',node)
1297+
self.set_archiving(backup_dir,'node',node)
1298+
node.slow_start()
1299+
1300+
# Take FULL BACKUP
1301+
full_id=self.backup_node(backup_dir,'node',node)
1302+
1303+
# Take PAGE BACKUP
1304+
gdb=self.backup_node(
1305+
backup_dir,'node',node,backup_type='page',gdb=True)
1306+
1307+
gdb.set_breakpoint('pg_stop_backup')
1308+
gdb.run_until_break()
1309+
gdb.remove_all_breakpoints()
1310+
gdb._execute('signal SIGINT')
1311+
gdb.continue_execution_until_error()
1312+
1313+
page_id=self.show_pb(backup_dir,'node')[1]['id']
1314+
1315+
# Take DELTA backup
1316+
delta_id=self.backup_node(
1317+
backup_dir,'node',node,backup_type='delta',
1318+
options=['--retention-window=2','--delete-expired'])
1319+
1320+
# Take FULL BACKUP
1321+
full2_id=self.backup_node(backup_dir,'node',node)
1322+
1323+
self.assertEqual(len(self.show_pb(backup_dir,'node')),4)
1324+
1325+
# Clean after yourself
1326+
self.del_test_dir(module_name,fname)
1327+
1328+
# @unittest.skip("skip")
1329+
deftest_window_error_backups_2(self):
1330+
"""
1331+
DELTA
1332+
PAGE ERROR
1333+
FULL
1334+
-------window
1335+
"""
1336+
fname=self.id().split('.')[3]
1337+
node=self.make_simple_node(
1338+
base_dir=os.path.join(module_name,fname,'node'),
1339+
initdb_params=['--data-checksums'])
1340+
1341+
backup_dir=os.path.join(self.tmp_path,module_name,fname,'backup')
1342+
self.init_pb(backup_dir)
1343+
self.add_instance(backup_dir,'node',node)
1344+
self.set_archiving(backup_dir,'node',node)
1345+
node.slow_start()
1346+
1347+
# Take FULL BACKUP
1348+
full_id=self.backup_node(backup_dir,'node',node)
1349+
1350+
# Take PAGE BACKUP
1351+
gdb=self.backup_node(
1352+
backup_dir,'node',node,backup_type='page',gdb=True)
1353+
1354+
gdb.set_breakpoint('pg_stop_backup')
1355+
gdb.run_until_break()
1356+
gdb._execute('signal SIGTERM')
1357+
gdb.continue_execution_until_error()
1358+
1359+
page_id=self.show_pb(backup_dir,'node')[1]['id']
1360+
1361+
# Take DELTA backup
1362+
delta_id=self.backup_node(
1363+
backup_dir,'node',node,backup_type='delta',
1364+
options=['--retention-window=2','--delete-expired'])
1365+
1366+
self.assertEqual(len(self.show_pb(backup_dir,'node')),3)
1367+
1368+
# Clean after yourself
1369+
# self.del_test_dir(module_name, fname)
1370+
1371+
deftest_retention_redundancy_overlapping_chains(self):
1372+
""""""
1373+
fname=self.id().split('.')[3]
1374+
node=self.make_simple_node(
1375+
base_dir=os.path.join(module_name,fname,'node'),
1376+
initdb_params=['--data-checksums'])
1377+
1378+
ifself.get_version(node)<90600:
1379+
self.del_test_dir(module_name,fname)
1380+
returnunittest.skip('Skipped because ptrack support is disabled')
1381+
1382+
backup_dir=os.path.join(self.tmp_path,module_name,fname,'backup')
1383+
self.init_pb(backup_dir)
1384+
self.add_instance(backup_dir,'node',node)
1385+
self.set_archiving(backup_dir,'node',node)
1386+
node.slow_start()
1387+
1388+
self.set_config(
1389+
backup_dir,'node',options=['--retention-redundancy=1'])
1390+
1391+
# Make backups to be purged
1392+
self.backup_node(backup_dir,'node',node)
1393+
self.backup_node(backup_dir,'node',node,backup_type="page")
1394+
1395+
# Make backups to be keeped
1396+
gdb=self.backup_node(backup_dir,'node',node,gdb=True)
1397+
gdb.set_breakpoint('backup_files')
1398+
gdb.run_until_break()
1399+
1400+
sleep(1)
1401+
1402+
self.backup_node(backup_dir,'node',node,backup_type="page")
1403+
1404+
gdb.remove_all_breakpoints()
1405+
gdb.continue_execution_until_exit()
1406+
1407+
self.backup_node(backup_dir,'node',node,backup_type="page")
1408+
1409+
# Purge backups
1410+
log=self.delete_expired(
1411+
backup_dir,'node',options=['--expired','--wal'])
1412+
self.assertEqual(len(self.show_pb(backup_dir,'node')),2)
1413+
1414+
# Clean after yourself
1415+
self.del_test_dir(module_name,fname)
1416+
12771417
deftest_retention_redundancy_overlapping_chains(self):
12781418
""""""
12791419
fname=self.id().split('.')[3]

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp