SQL Server Database backup regressed to historical date
Short answer: add ", INIT" to the end of your WITH statement to re-initialize the backup file on every backup. Per Microsoft:

INIT Specifies that all backup sets should be overwritten...NOINIT is the default.

https://msdn.microsoft.com/en-us/library/ms186865.aspx

I modified your code below to include the new change:

use My_database
go
checkpoint
go
use [My_database]
go
DBCC SHRINKFILE (N'my_db_log', 500)
go
backup database My_database
to disk = 'W:\...\My_database._dmp1.bak'
, disk = 'W:\...\My_database._dmp2.bak'
... ... ...
, disk = 'W:\...\My_database._dmp30.bak'
with stats = 10, INIT
go


p.s. I'd get rid of your SHRINKFILE in production because it fragments the database and it can cause interruptions in service because SHRINKFILE is usually slow. Any index rebuild/reorganize will probably bloat your database back to a similar size anyway.

And you could get rid of checkpoint as well as SQL Server issues an automatic checkpoint when a backup is taken to insure that the current state matches the log.