RMAN format element %t in backup piece name
From time to time I receive log files from one Oracle customer that is using Windows robocopy tool for backing up RMAN backup set files to their backup server. Robocopy report constains lines such as:
... New File 186.0 m \\oraprod1\BACKUP$\RMAN01\PROD_647989204_520_1.BAK New File 3.0 g \\oraprod1\BACKUP$\RMAN01\PROD_651902404_608_1.BAK ...
Since I don’t see file timestamps in the report, the only timestamp that is available to me is the one that is the result of RMAN format parameter %t in the backup piece name, such as 647989204 or 651902404 from example above. What is the meaning of %t? According to Oracle documentation the parameter %t means:
%t Specifies the backup set time stamp, which is a 4-byte value derived as the number of seconds elapsed since a fixed reference time. The combination of %s and %t can be used to form a unique name for the backup set.
They’re not mentioning what is actually a “fixed reference time” (known as an epoch), but it’s not hard to figure this out with a little help from python time module. Someone at Oracle has chosen an epoch that starts with 17.08.1987 00:00:00 (dd.mm.yyyy hh24:mi:ss) and here is my handy python script that takes integer (such as 651902404 from an example above) and print out human readable time stamp:
# # rman_t.py - Converting RMAN %t timestamp to human readable timestamp # Example: # cmd> python rman_t.py 651902404 #cmd> Timestamp [RMAN %t] = Sun Apr 13 04:00:04 2008 # import sys import time epoch = 556149600 # ctime(556149600) represents 17.8.1987 00:00:00 print "Timestamp [RMAN %t] = " + time.ctime(epoch + int(sys.argv)) # End rman_t.py