Influxdb: Backup command: -start parameter doesn't work unless -end is also provided

Created on 15 Jan 2019  路  5Comments  路  Source: influxdata/influxdb

I expected that backup would be incremental if I only pass the -start parameter, but it's ignored if I don't pass -end, so the full backup is generated.

This should be explained in the documentation, or better changed so the -end parameter takes the latest or maximum timestamp as the default value.

wontfix

Most helpful comment

Agreed - this just threw me off for the past few weeks as well. I (incorrectly) assumed my fulls were the same size as my incrementals due to some underlying InfluxDB architectural reasoning (I.E. start date is based on the DB shard age or similar rather than the timestamps of the data itself.

This was especially not obvious because the messages generated during the backup process specify an end date of '0001-01-01T00:00:00Z', which I took as essentially a null value. I expect the range to be from 2019-03-27T12:43:27Z through the current datetime.
2019/03/28 12:58:37 backing up db=telegraf rp=autogen shard=43 to /tmp/telegraf.autogen.00043.00 with boundaries start=2019-03-27T12:43:27Z, end=0001-01-01T00:00:00Z

I propose either:

  1. If -start is provided, but no -end, use a default value of -end 9999-12-31T23:59:59Z (or whatever another acceptable max value is for the implementation)
  2. Print message to stderr indicating that a -end value must also be specified, and exit with an error code.

I agree with @adampl - at the very least, the documentation should be updated to make the currently implemented behavior more apparent.

All 5 comments

Agreed - this just threw me off for the past few weeks as well. I (incorrectly) assumed my fulls were the same size as my incrementals due to some underlying InfluxDB architectural reasoning (I.E. start date is based on the DB shard age or similar rather than the timestamps of the data itself.

This was especially not obvious because the messages generated during the backup process specify an end date of '0001-01-01T00:00:00Z', which I took as essentially a null value. I expect the range to be from 2019-03-27T12:43:27Z through the current datetime.
2019/03/28 12:58:37 backing up db=telegraf rp=autogen shard=43 to /tmp/telegraf.autogen.00043.00 with boundaries start=2019-03-27T12:43:27Z, end=0001-01-01T00:00:00Z

I propose either:

  1. If -start is provided, but no -end, use a default value of -end 9999-12-31T23:59:59Z (or whatever another acceptable max value is for the implementation)
  2. Print message to stderr indicating that a -end value must also be specified, and exit with an error code.

I agree with @adampl - at the very least, the documentation should be updated to make the currently implemented behavior more apparent.

Just ran into the same issue, running influxdb 1.7.6 on raspberry pi.

/usr/bin/influxd backup -portable -since 2019-07-16T13:56:09+02:00 /backup/influx works as expected.
/usr/bin/influxd backup -portable -start 2019-07-16T13:56:09+02:00 /backup/influx works not as expected: generates a full backup each time.

Would recommend option nr. 2 from @klesher as described above.

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

This issue has been automatically closed because it has not had recent activity. Please reopen if this issue is still important to you. Thank you for your contributions.

Please reopen and consider one of the proposed solution.
I got hit by the same "problem", because the documentation doesn't state that if -start is used and no -end is defined, then the -start argument won't be taken into account.
Morever, the documentation is pretty clear about how -end works if no -start value is given, it is confusing to have a default value for one, and not the other.
And the last thing is that the documentation discourages the use of -since and encourages the use of -start, so people (like me) who used -since will just change -since to -start, without adding the -end argument, and have a completely different behaviour then what they are expecting.

I would expect either one (or more) of those :

  1. The documentation is clear about how -start needs the -end timestamp
  2. Would be nice to have a default value for -end (to the current time, I guees that is what people expects if not precising an end date)
  3. Have a warning message

point 1 is the most important and the real missing point
point 3 is easy to fix
point 2 should not be that hard and I guess would be what the user expect if not using an end date.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

jayannah picture jayannah  路  3Comments

756445638 picture 756445638  路  3Comments

jonira picture jonira  路  4Comments

binary0111 picture binary0111  路  3Comments

udf2457 picture udf2457  路  3Comments