Monday, April 25, 2011

Demonstrating Backup, Validation and Restore

This article updates the backup and recovery demonstration first shown in Recovering Across Multiple Backup Generations to include the database validation steps described in Validating Backups; it also includes the rapid-fire INSERT statements shown in Answer: Which log backups are required to restore a database?


The following demonstration shows how you can create, validate and preserve multiple generations of full online database and incremental online log backup files.

It then shows how you can go all the way back to the beginning and
  • restore the oldest backup (in this case generation 1 of 10), then

  • apply all the subsequent log files without losing any data.
These Help topics apply:
  • dbbackup, in particular the -n, -t and -x options,

  • dbvalid, and

  • dbsrv12 -ad to apply all the transaction logs in a single folder and stop.
Command file 01_run_everything.bat automates the whole demonstration by calling the other command files in the right order:
  • Create the database and a table and event to test success,

  • make 10 generations of backup files,

    • each consisting of a full backup

    • followed by three consecutive incremental log backups

    • with new rows being inserted in a rapid fire fashion before, during and after every backup, then

  • delete the current database,

  • restore the full database backup file from generation 1,

  • apply all the transaction log backup files

  • plus the current log file,

  • start the database and

  • show how all the inserted rows have been restored.
CALL 02_run_dbinit12.bat
CALL 03_run_dbspawn_dbsrv12.bat
CALL 04_run_script_to_create_table_and_event.bat

REM Generation 1...
CALL 05_run_dbbackup12_full.bat
CALL 07_run_dbbackup12_incremental.bat
CALL 07_run_dbbackup12_incremental.bat
CALL 07_run_dbbackup12_incremental.bat

CALL 06_display_table.bat

REM Generation 2...
CALL 05_run_dbbackup12_full.bat
CALL 07_run_dbbackup12_incremental.bat
CALL 07_run_dbbackup12_incremental.bat
CALL 07_run_dbbackup12_incremental.bat

REM Generation 3...
CALL 05_run_dbbackup12_full.bat
CALL 07_run_dbbackup12_incremental.bat
CALL 07_run_dbbackup12_incremental.bat
CALL 07_run_dbbackup12_incremental.bat

REM Generation 4...
CALL 05_run_dbbackup12_full.bat
CALL 07_run_dbbackup12_incremental.bat
CALL 07_run_dbbackup12_incremental.bat
CALL 07_run_dbbackup12_incremental.bat

REM Generation 5...
CALL 05_run_dbbackup12_full.bat
CALL 07_run_dbbackup12_incremental.bat
CALL 07_run_dbbackup12_incremental.bat
CALL 07_run_dbbackup12_incremental.bat

REM Generation 6...
CALL 05_run_dbbackup12_full.bat
CALL 07_run_dbbackup12_incremental.bat
CALL 07_run_dbbackup12_incremental.bat
CALL 07_run_dbbackup12_incremental.bat

REM Generation 7...
CALL 05_run_dbbackup12_full.bat
CALL 07_run_dbbackup12_incremental.bat
CALL 07_run_dbbackup12_incremental.bat
CALL 07_run_dbbackup12_incremental.bat

REM Generation 8...
CALL 05_run_dbbackup12_full.bat
CALL 07_run_dbbackup12_incremental.bat
CALL 07_run_dbbackup12_incremental.bat
CALL 07_run_dbbackup12_incremental.bat

REM Generation 9...
CALL 05_run_dbbackup12_full.bat
CALL 07_run_dbbackup12_incremental.bat
CALL 07_run_dbbackup12_incremental.bat
CALL 07_run_dbbackup12_incremental.bat

REM Generation 10...
CALL 05_run_dbbackup12_full.bat
CALL 07_run_dbbackup12_incremental.bat
CALL 07_run_dbbackup12_incremental.bat
CALL 07_run_dbbackup12_incremental.bat

REM Drop and restore...
CALL 08_stop_drop_database.bat
CALL 09_restore_database.bat
CALL 03_run_dbspawn_dbsrv12.bat

CALL 06_display_table.bat

PAUSE All done...

Backup

02_run_dbinit12.bat starts the demonstration by creating an empty SQL Anywhere 12 database:
"%SQLANY12%\bin32\dbinit.exe"^
  ddd12.db
03_run_dbspawn_dbsrv12.bat starts that database:
"%SQLANY12%\bin32\dbspawn.exe"^
  -f "%SQLANY12%\bin32\dbsrv12.exe"^
  -o dbsrv12_log_ddd12.txt^
  -oe dbsrv12_log_fatal_ddd12.txt^
  -os 10M^
  -x tcpip^
  -zl^
  -zp^
  -zt^
  ddd12.db 
04_run_script_to_create_table_and_event.bat runs a script to start the rapid-fire INSERT process:
"%SQLANY12%\bin32\dbisql.com"^
  -c "ENG=ddd12;DBN=ddd12;UID=dba;PWD=sql"^
  READ ENCODING Cp1252 04s_script_to_create_table_and_event.sql
04s_script_to_create_table_and_event.sql contains the script:
CREATE TABLE rapid (
   pkey   INTEGER NOT NULL DEFAULT AUTOINCREMENT PRIMARY KEY );

CREATE EVENT rapid_insert
HANDLER BEGIN
   WHILE 1 = 1 LOOP
      INSERT rapid VALUES ( DEFAULT );
      COMMIT;
      WAITFOR DELAY '00:00:00.1';
   END LOOP;
END;

TRIGGER EVENT rapid_insert;
05_run_dbbackup12_full.bat creates a full backup of the database and transaction log:
REM ******************************************************************
REM Create empty backup\generation_temp subfolder

MD backup
CD backup
RD /S /Q generation_temp
MD generation_temp
CD ..

ECHO ********************************************^
*********************************************>>backup\generation_temp\dbbackup_log.txt
ECHO ***** Full dbbackup started >>backup\generation_temp\dbbackup_log.txt
SET ERRMSG=
DATE /T >>backup\generation_temp\dbbackup_log.txt
TIME /T >>backup\generation_temp\dbbackup_log.txt

REM ******************************************************************
ECHO ***** Step 1 Full backup >>backup\generation_temp\dbbackup_log.txt

"%SQLANY12%\bin32\dbbackup.exe"^
  -c "ENG=ddd12;DBN=ddd12;UID=dba;PWD=sql"^
  -o backup\generation_temp\dbbackup_log.txt^
  -x^
  backup\generation_temp

IF ERRORLEVEL 1 SET ERRMSG=Step 1 Full backup failed with ERRORLEVEL = %ERRORLEVEL%
IF NOT "%ERRMSG%z" == "z" GOTO backup_failed

REM ******************************************************************
ECHO ***** Step 2 Apply log >>backup\generation_temp\dbbackup_log.txt

CD backup\generation_temp
MD validate
XCOPY ddd12.db validate /V /Q /K 
CD ..\..

REM Note: The -ad folder is relative to the folder containing the database.

"%SQLANY12%\bin32\dbsrv12.exe"^
  -o backup\generation_temp\dbbackup_log.txt^
  backup\generation_temp\validate\ddd12.db^
  -ad "%CD%\backup\generation_temp"

IF ERRORLEVEL 1 SET ERRMSG=Step 2 Apply log failed with ERRORLEVEL = %ERRORLEVEL%
IF NOT "%ERRMSG%z" == "z" GOTO backup_failed

REM ******************************************************************
ECHO ***** Step 3 Start read-only copy >>backup\generation_temp\dbbackup_log.txt

"%SQLANY12%\bin32\dbspawn.exe"^
  -f "%SQLANY12%\bin32\dbsrv12.exe"^
  -n readonlycopy^
  -o backup\dbsrv12_readonlycopy_log.txt^
  -r^
  backup\generation_temp\validate\ddd12.db 

IF ERRORLEVEL 1 SET ERRMSG=Step 3 Start read-only copy failed with ERRORLEVEL = %ERRORLEVEL%
IF NOT "%ERRMSG%z" == "z" GOTO backup_failed

REM ******************************************************************
ECHO ***** Step 4 Validate >>backup\generation_temp\dbbackup_log.txt

"%SQLANY12%\bin32\dbvalid.exe"^
  -c "ENG=readonlycopy;DBN=ddd12;UID=dba;PWD=sql"^
  -o backup\generation_temp\dbbackup_log.txt^
  -q

IF ERRORLEVEL 1 SET ERRMSG=Step 4 Validate failed with ERRORLEVEL = %ERRORLEVEL%

REM ******************************************************************
ECHO ***** Step 5 Stop read-only copy >>backup\generation_temp\dbbackup_log.txt

"%SQLANY12%\bin32\dbstop.exe"^
  -c "ENG=readonlycopy;DBN=ddd12;UID=dba;PWD=sql"^
  -y
IF NOT "%ERRMSG%z" == "z" GOTO backup_failed

REM ******************************************************************
ECHO ***** Step 6 Move files >>backup\generation_temp\dbbackup_log.txt

CD backup
RD /S /Q generation1
RENAME generation2 generation1
RENAME generation3 generation2
RENAME generation4 generation3
RENAME generation5 generation4
RENAME generation6 generation5
RENAME generation7 generation6
RENAME generation8 generation7
RENAME generation9 generation8
RENAME generation10 generation9
RENAME generation_temp generation10
CD ..

REM ******************************************************************
REM Backup OK

DIR /S backup\generation10\*.* >>backup\generation10\dbbackup_log.txt
ECHO ***** Full dbbackup OK >>backup\generation10\dbbackup_log.txt
DATE /T >>backup\generation10\dbbackup_log.txt
TIME /T >>backup\generation10\dbbackup_log.txt
GOTO end

:backup_failed
REM ******************************************************************
REM Backup failed

ECHO ***** Error: Full dbbackup failed... >>backup\generation_temp\dbbackup_log.txt
ECHO ***** %ERRMSG% >>backup\generation_temp\dbbackup_log.txt
DATE /T >>backup\generation_temp\dbbackup_log.txt
TIME /T >>backup\generation_temp\dbbackup_log.txt
GOTO end

:end
Line 4 of the full backup command file 05_run_dbbackup12_full.bat makes sure that the backup subfolder exists. Lines 5 and 6 delete the subfolder backup\generation_temp if it exists, and line 7 creates it again; this is where the new backup files will reside until the backup process has finished successfully.

The ECHO command on lines 10 and 11 writes a separator line to diagnostic log file dbbackup_log.txt. A new copy of dbbackup_log.txt is started for each full backup, and more records are added by this command file and by the later incremental log backups.

Lines 20 through 24 run dbbackup.exe to create a backup copy of the database and log files in the backup\generation_temp folder. The -x option tells dbbackup to delete and restart the primary transaction log file after the backup log file has been written. The -y option is not used because this command file doesn't overwrite any files.

The IF commands on lines 26 and 27 put an error message in an environment variable and skip to the end of the command file if dbbackup.exe failed.

The commands on line 32 through 35 make a second copy of the database backup file in a subfolder, and the dbsrv12 -ad command on lines 39 to 42 apply the transaction log backup file to that second copy of the database.

Tip: Use the %CD% current directory environment variable to construct an absolute path specification for the -ad option. Unlike other path and file specifications in SQL Anywhere, the dbsrv12 -ad option is relative to the folder containing the database file, rather than relative to the current folder or the folder where the dbsrv12 was started. If you make a mistake, you will see a less-than-helpful "unable to start database" message.

The dbsrv12 command on lines 50 through 55 starts the second copy of the database backup file in read-only mode so it can be validated by the command on lines 63 to 66.

The commands on lines 73 through 76 stop the read-only database and then check whether the previous database validation step was successful.

The commands on lines 81 through 93 preserve up to 10 most recent full backups:
  • The oldest subfolder (generation1) is deleted if it exists,

  • the 9 newer subfolders generation2 to 10 are given earlier names generation 1 through 9, if they exist, and

  • the newest subfolder generation_temp is renamed generation10.
The commands on lines 95 through 102 record a successful backup in the diagnostic log file, and the commands on lines 104 through 112 record a failure.

06_display_table.bat displays the current state of the rapid-fire INSERT process:
"%SQLANY12%\bin32\dbisql.com"^
  -c "ENG=ddd12;DBN=ddd12;UID=dba;PWD=sql"^
  SELECT COUNT(*), MAX ( pkey ) FROM rapid

PAUSE Note: COUNT should equal MAX
The output from that script shows that there are no gaps because of missing rows:
COUNT()     MAX(rapid.pkey)
---------------------------
209         209

(1 rows)

Execution time: 0.106 seconds

C:\...>PAUSE Note: COUNT should equal MAX
Press any key to continue . . .
07_run_dbbackup12_incremental.bat is called to create each incremental log backup:
ECHO ********************************************^
*********************************************>>backup\generation10\dbbackup_log.txt
ECHO ***** Incremental dbbackup started >>backup\generation10\dbbackup_log.txt
SET ERRMSG=
DATE /T >>backup\generation10\dbbackup_log.txt
TIME /T >>backup\generation10\dbbackup_log.txt

REM ******************************************************************
ECHO ***** Step 1 Check full backup >>backup\generation10\dbbackup_log.txt

IF EXIST "backup\generation10\ddd12.db" ( GOTO check_full_log_backup ) ELSE ( GOTO full_backup_is_missing )

:check_full_log_backup
IF EXIST "backup\generation10\ddd12.log" ( GOTO full_backup_exists ) ELSE ( GOTO full_backup_is_missing )

:full_backup_is_missing
SET ERRMSG=Step 1 Check full backup failed
GOTO backup_failed

:full_backup_exists
REM ******************************************************************
ECHO ***** Step 2 Incremental backup >>backup\generation10\dbbackup_log.txt

CD backup\generation10
MD logs
CD ..\..

"%SQLANY12%\bin32\dbbackup.exe"^
  -c "ENG=ddd12;DBN=ddd12;UID=dba;PWD=sql"^
  -o backup\generation10\dbbackup_log.txt^
  -n^
  -t^
  -x^
  backup\generation10\logs

IF ERRORLEVEL 1 SET ERRMSG=Step 2 Incremental backup failed with ERRORLEVEL = %ERRORLEVEL%
IF NOT "%ERRMSG%z" == "z" GOTO backup_failed

REM ******************************************************************
ECHO ***** Step 3 Apply log >>backup\generation10\dbbackup_log.txt

REM Note: The -ad folder is relative to the folder containing the database.

"%SQLANY12%\bin32\dbsrv12.exe"^
  -o backup\generation10\dbbackup_log.txt^
  backup\generation10\validate\ddd12.db^
  -ad "%CD%\backup\generation10\logs"

IF ERRORLEVEL 1 SET ERRMSG=Step 3 Apply logs failed with ERRORLEVEL = %ERRORLEVEL%
IF NOT "%ERRMSG%z" == "z" GOTO backup_failed

REM ******************************************************************
REM Backup OK

DIR /S backup\generation10\*.* >>backup\generation10\dbbackup_log.txt
ECHO ***** Incremental dbbackup OK >>backup\generation10\dbbackup_log.txt
DATE /T >>backup\generation10\dbbackup_log.txt
TIME /T >>backup\generation10\dbbackup_log.txt
GOTO end

:backup_failed
REM ******************************************************************
REM Backup failed

ECHO ***** Error: Incremental dbbackup failed >>backup\generation10\dbbackup_log.txt
ECHO ***** %ERRMSG% >>backup\generation10\dbbackup_log.txt
DATE /T >>backup\generation10\dbbackup_log.txt
TIME /T >>backup\generation10\dbbackup_log.txt
GOTO end

:end
Lines 1 through 6 of the incremental log backup command file 07_run_dbbackup12_incremental.bat assume that a full backup already exists in the backup\generation10 subfolder, so it's OK to continue writing information to the diagnostic log file dbbackup_log.txt.

Lines 11 through 18 put that assumption to the test by ensuring the backup file copies of the database and transaction log exist in the backup\generation10 subfolder; if they don't exist, there's really no point creating a further incremental log backup.

Lines 24 through 26 make sure that the backup\generation10\logs subfolder exists. It might exist already, and that's ok; unlike the full backup command file, this command file always writes the new incremental log backup file to the same subfolder rather than creating a new subfolder.

Lines 28 through 34 run dbbackup.exe to create an incremental backup copy of the transaction log file in the backup\generation_temp\logs folder. The
  • -n option tells dbbackup to rename the backup copy of the transaction log file from ddd12.log to yymmddxx.log, where yymmdd is the date and xx is AA, AB, AC, ...,

  • the -t option to backup the transaction log file, not the database file, and

  • the -x option tells dbbackup to delete and restart the primary transaction log file after the backup log file has been written.

  • The -y option is not used because this command file doesn't overwrite any files.
The IF commands on lines 36 and 37 skip to the end of the command file if dbbackup.exe failed.

The dbsrv12 -ad command on lines 44 through 47 check the validity of the new transaction log backup by applying it to the second copy of the database backup file what was created in the previous run of 05_run_dbbackup12_full.bat.

Tip: Use the %CD% current directory environment variable to construct an absolute path specification for the -ad option. Unlike other path and file specifications in SQL Anywhere, the dbsrv12 -ad option is relative to the folder containing the database file, rather than relative to the current folder or the folder where the dbsrv12 was started. If you make a mistake, you will see a less-than-helpful "unable to start database" message.

The commands on lines 52 through 63 record a successful backup in the diagnostic log file, and the commands on lines 61 through 69 record a failure.

Restore

08_stop_drop_database.bat makes way for the restore process by stopping and deleting the current database files:
"%SQLANY12%\bin32\dbstop.exe" -c "ENG=ddd12;DBN=ddd12;UID=dba;PWD=sql" -y

PAUSE Wait until the database is stopped, then

ERASE /F ddd12.db

REM Note: The transaction log is not deleted.
09_restore_database.bat uses the COPY command to restore the ancient "generation 1" database backup, and then it runs dbsrv12.exe twenty-one times to apply all 40 of the transaction log backup files plus the current log:
ECHO ********************************************^
*********************************************>>backup\generation10\dbbackup_log.txt
ECHO Restore started >>backup\generation10\dbbackup_log.txt
DATE /T >>backup\generation10\dbbackup_log.txt
TIME /T >>backup\generation10\dbbackup_log.txt

COPY backup\generation1\ddd12.db

REM Note: -o writes to the dbbackup diagnostic file in this example.

REM Note: -ad is relative to the folder containing the database.

"%SQLANY12%\bin32\dbsrv12.exe" -o backup\generation10\dbbackup_log.txt ddd12.db -ad backup\generation1
"%SQLANY12%\bin32\dbsrv12.exe" -o backup\generation10\dbbackup_log.txt ddd12.db -ad backup\generation1\logs

"%SQLANY12%\bin32\dbsrv12.exe" -o backup\generation10\dbbackup_log.txt ddd12.db -ad backup\generation2
"%SQLANY12%\bin32\dbsrv12.exe" -o backup\generation10\dbbackup_log.txt ddd12.db -ad backup\generation2\logs

"%SQLANY12%\bin32\dbsrv12.exe" -o backup\generation10\dbbackup_log.txt ddd12.db -ad backup\generation3
"%SQLANY12%\bin32\dbsrv12.exe" -o backup\generation10\dbbackup_log.txt ddd12.db -ad backup\generation3\logs

"%SQLANY12%\bin32\dbsrv12.exe" -o backup\generation10\dbbackup_log.txt ddd12.db -ad backup\generation4
"%SQLANY12%\bin32\dbsrv12.exe" -o backup\generation10\dbbackup_log.txt ddd12.db -ad backup\generation4\logs

"%SQLANY12%\bin32\dbsrv12.exe" -o backup\generation10\dbbackup_log.txt ddd12.db -ad backup\generation5
"%SQLANY12%\bin32\dbsrv12.exe" -o backup\generation10\dbbackup_log.txt ddd12.db -ad backup\generation5\logs

"%SQLANY12%\bin32\dbsrv12.exe" -o backup\generation10\dbbackup_log.txt ddd12.db -ad backup\generation6
"%SQLANY12%\bin32\dbsrv12.exe" -o backup\generation10\dbbackup_log.txt ddd12.db -ad backup\generation6\logs

"%SQLANY12%\bin32\dbsrv12.exe" -o backup\generation10\dbbackup_log.txt ddd12.db -ad backup\generation7
"%SQLANY12%\bin32\dbsrv12.exe" -o backup\generation10\dbbackup_log.txt ddd12.db -ad backup\generation7\logs

"%SQLANY12%\bin32\dbsrv12.exe" -o backup\generation10\dbbackup_log.txt ddd12.db -ad backup\generation8
"%SQLANY12%\bin32\dbsrv12.exe" -o backup\generation10\dbbackup_log.txt ddd12.db -ad backup\generation8\logs

"%SQLANY12%\bin32\dbsrv12.exe" -o backup\generation10\dbbackup_log.txt ddd12.db -ad backup\generation9
"%SQLANY12%\bin32\dbsrv12.exe" -o backup\generation10\dbbackup_log.txt ddd12.db -ad backup\generation9\logs

"%SQLANY12%\bin32\dbsrv12.exe" -o backup\generation10\dbbackup_log.txt ddd12.db -ad backup\generation10
"%SQLANY12%\bin32\dbsrv12.exe" -o backup\generation10\dbbackup_log.txt ddd12.db -ad backup\generation10\logs

REM Use dbsrv12 -a to apply the most recent log.

"%SQLANY12%\bin32\dbsrv12.exe" -o backup\generation10\dbbackup_log.txt ddd12.db -a ddd12.log

REM ******************************************************************
REM Restore finished
DATE /T >>backup\generation10\dbbackup_log.txt
TIME /T >>backup\generation10\dbbackup_log.txt
Here are some snippets from the diagnostic log messages produced by the 21 dbsrv12 -ad and dbsrv12 -a runs:
*****************************************************************************************
Restore started 
Sun 04/24/2011 
12:24 PM
I. 04/24 12:24:25. SQL Anywhere Network Server Version 12.0.1.3298 I. 04/24 12:24:25. Developer edition, not licensed for deployment.
...
I. 04/24 12:24:25. Starting database "ddd12" (C:\$ blogs and websites\blog SQLAnywhere\20110425 Demonstrating Backup, Validation and Restore\ddd12.db) at Sun Apr 24 2011 12:24
I. 04/24 12:24:25. Database recovery in progress
I. 04/24 12:24:25.     Last checkpoint at Sun Apr 24 2011 12:15
I. 04/24 12:24:25.     Checkpoint log...
I. 04/24 12:24:25.     Transaction log: C:\$ blogs and websites\blog SQLAnywhere\20110425 Demonstrating Backup, Validation and Restore\backup\generation1\ddd12.log...
I. 04/24 12:24:25.     Checkpointing...
I. 04/24 12:24:25. Starting checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:24
I. 04/24 12:24:25. Finished checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:24
I. 04/24 12:24:25. Recovery complete
I. 04/24 12:24:25. Database server shutdown automatically after log applied
I. 04/24 12:24:25. Database server stopped at Sun Apr 24 2011 12:24
I. 04/24 12:24:26. SQL Anywhere Network Server Version 12.0.1.3298 I. 04/24 12:24:26. Developer edition, not licensed for deployment.
...
I. 04/24 12:24:26. Starting database "ddd12" (C:\$ blogs and websites\blog SQLAnywhere\20110425 Demonstrating Backup, Validation and Restore\ddd12.db) at Sun Apr 24 2011 12:24
I. 04/24 12:24:26. Database recovery in progress
I. 04/24 12:24:26.     Last checkpoint at Sun Apr 24 2011 12:24
I. 04/24 12:24:26.     Transaction log: C:\$ blogs and websites\blog SQLAnywhere\20110425 Demonstrating Backup, Validation and Restore\backup\generation1\logs\110424AA.log...
I. 04/24 12:24:26. Starting checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:24
I. 04/24 12:24:26. Finished checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:24
I. 04/24 12:24:26. Starting checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:24
I. 04/24 12:24:27. Finished checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:24
I. 04/24 12:24:27.     Transaction log: C:\$ blogs and websites\blog SQLAnywhere\20110425 Demonstrating Backup, Validation and Restore\backup\generation1\logs\110424AB.log...
I. 04/24 12:24:27. Starting checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:24
I. 04/24 12:24:27. Finished checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:24
I. 04/24 12:24:27. Starting checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:24
I. 04/24 12:24:27. Finished checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:24
I. 04/24 12:24:28.     Transaction log: C:\$ blogs and websites\blog SQLAnywhere\20110425 Demonstrating Backup, Validation and Restore\backup\generation1\logs\110424AC.log...
I. 04/24 12:24:28. Starting checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:24
I. 04/24 12:24:28. Finished checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:24
I. 04/24 12:24:28.     Checkpointing...
I. 04/24 12:24:28. Starting checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:24
I. 04/24 12:24:28. Finished checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:24
I. 04/24 12:24:28. Recovery complete
I. 04/24 12:24:28. Database server shutdown automatically after log applied
I. 04/24 12:24:28. Database server stopped at Sun Apr 24 2011 12:24
I. 04/24 12:24:28. SQL Anywhere Network Server Version 12.0.1.3298 I. 04/24 12:24:28. Developer edition, not licensed for deployment.
...
I. 04/24 12:24:29. Starting database "ddd12" (C:\$ blogs and websites\blog SQLAnywhere\20110425 Demonstrating Backup, Validation and Restore\ddd12.db) at Sun Apr 24 2011 12:24
I. 04/24 12:24:29. Database recovery in progress
I. 04/24 12:24:29.     Last checkpoint at Sun Apr 24 2011 12:24
I. 04/24 12:24:29.     Transaction log: C:\$ blogs and websites\blog SQLAnywhere\20110425 Demonstrating Backup, Validation and Restore\backup\generation2\ddd12.log...
I. 04/24 12:24:29. Starting checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:24
I. 04/24 12:24:30. Finished checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:24
I. 04/24 12:24:30.     Checkpointing...
I. 04/24 12:24:30. Starting checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:24
I. 04/24 12:24:30. Finished checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:24
I. 04/24 12:24:30. Recovery complete
I. 04/24 12:24:30. Database server shutdown automatically after log applied
I. 04/24 12:24:30. Database server stopped at Sun Apr 24 2011 12:24
I. 04/24 12:24:30. SQL Anywhere Network Server Version 12.0.1.3298 I. 04/24 12:24:30. Developer edition, not licensed for deployment.
...
I. 04/24 12:24:30. Starting database "ddd12" (C:\$ blogs and websites\blog SQLAnywhere\20110425 Demonstrating Backup, Validation and Restore\ddd12.db) at Sun Apr 24 2011 12:24
I. 04/24 12:24:30. Performance warning: Database file "C:\$ blogs and websites\blog SQLAnywhere\20110425 Demonstrating Backup, Validation and Restore\ddd12.db" consists of 2 disk fragments
I. 04/24 12:24:31. Database recovery in progress
I. 04/24 12:24:31.     Last checkpoint at Sun Apr 24 2011 12:24
I. 04/24 12:24:31.     Transaction log: C:\$ blogs and websites\blog SQLAnywhere\20110425 Demonstrating Backup, Validation and Restore\backup\generation2\logs\110424AA.log...
I. 04/24 12:24:31. Starting checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:24
I. 04/24 12:24:31. Finished checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:24
I. 04/24 12:24:31. Starting checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:24
I. 04/24 12:24:31. Finished checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:24
I. 04/24 12:24:31.     Transaction log: C:\$ blogs and websites\blog SQLAnywhere\20110425 Demonstrating Backup, Validation and Restore\backup\generation2\logs\110424AB.log...
I. 04/24 12:24:31. Starting checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:24
I. 04/24 12:24:32. Finished checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:24
I. 04/24 12:24:32. Starting checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:24
I. 04/24 12:24:32. Finished checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:24
I. 04/24 12:24:32.     Transaction log: C:\$ blogs and websites\blog SQLAnywhere\20110425 Demonstrating Backup, Validation and Restore\backup\generation2\logs\110424AC.log...
I. 04/24 12:24:32. Starting checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:24
I. 04/24 12:24:32. Finished checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:24
I. 04/24 12:24:32.     Checkpointing...
I. 04/24 12:24:32. Starting checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:24
I. 04/24 12:24:33. Finished checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:24
I. 04/24 12:24:33. Recovery complete
I. 04/24 12:24:33. Database server shutdown automatically after log applied
I. 04/24 12:24:33. Database server stopped at Sun Apr 24 2011 12:24
I. 04/24 12:24:33. SQL Anywhere Network Server Version 12.0.1.3298 I. 04/24 12:24:33. Developer edition, not licensed for deployment.
...
I. 04/24 12:24:33. Starting database "ddd12" (C:\$ blogs and websites\blog SQLAnywhere\20110425 Demonstrating Backup, Validation and Restore\ddd12.db) at Sun Apr 24 2011 12:24
I. 04/24 12:24:33. Performance warning: Database file "C:\$ blogs and websites\blog SQLAnywhere\20110425 Demonstrating Backup, Validation and Restore\ddd12.db" consists of 2 disk fragments
I. 04/24 12:24:33. Database recovery in progress
I. 04/24 12:24:33.     Last checkpoint at Sun Apr 24 2011 12:24
I. 04/24 12:24:33.     Transaction log: C:\$ blogs and websites\blog SQLAnywhere\20110425 Demonstrating Backup, Validation and Restore\backup\generation3\ddd12.log...
I. 04/24 12:24:33. Starting checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:24
I. 04/24 12:24:34. Finished checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:24
I. 04/24 12:24:34.     Checkpointing...
I. 04/24 12:24:34. Starting checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:24
I. 04/24 12:24:34. Finished checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:24
I. 04/24 12:24:34. Recovery complete
I. 04/24 12:24:34. Database server shutdown automatically after log applied
I. 04/24 12:24:34. Database server stopped at Sun Apr 24 2011 12:24
I. 04/24 12:24:34. SQL Anywhere Network Server Version 12.0.1.3298 I. 04/24 12:24:34. Developer edition, not licensed for deployment.
...
I. 04/24 12:24:34. Starting database "ddd12" (C:\$ blogs and websites\blog SQLAnywhere\20110425 Demonstrating Backup, Validation and Restore\ddd12.db) at Sun Apr 24 2011 12:24
I. 04/24 12:24:34. Performance warning: Database file "C:\$ blogs and websites\blog SQLAnywhere\20110425 Demonstrating Backup, Validation and Restore\ddd12.db" consists of 2 disk fragments
I. 04/24 12:24:35. Database recovery in progress
I. 04/24 12:24:35.     Last checkpoint at Sun Apr 24 2011 12:24
I. 04/24 12:24:35.     Transaction log: C:\$ blogs and websites\blog SQLAnywhere\20110425 Demonstrating Backup, Validation and Restore\backup\generation3\logs\110424AA.log...
I. 04/24 12:24:35. Starting checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:24
I. 04/24 12:24:35. Finished checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:24
I. 04/24 12:24:35. Starting checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:24
I. 04/24 12:24:35. Finished checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:24
I. 04/24 12:24:35.     Transaction log: C:\$ blogs and websites\blog SQLAnywhere\20110425 Demonstrating Backup, Validation and Restore\backup\generation3\logs\110424AB.log...
I. 04/24 12:24:36. Starting checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:24
I. 04/24 12:24:36. Finished checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:24
I. 04/24 12:24:36. Starting checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:24
I. 04/24 12:24:36. Finished checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:24
I. 04/24 12:24:36.     Transaction log: C:\$ blogs and websites\blog SQLAnywhere\20110425 Demonstrating Backup, Validation and Restore\backup\generation3\logs\110424AC.log...
I. 04/24 12:24:36. Starting checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:24
I. 04/24 12:24:36. Finished checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:24
I. 04/24 12:24:36.     Checkpointing...
I. 04/24 12:24:37. Starting checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:24
I. 04/24 12:24:37. Finished checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:24
I. 04/24 12:24:37. Recovery complete
I. 04/24 12:24:37. Database server shutdown automatically after log applied
I. 04/24 12:24:37. Database server stopped at Sun Apr 24 2011 12:24
I. 04/24 12:24:37. SQL Anywhere Network Server Version 12.0.1.3298 I. 04/24 12:24:37. Developer edition, not licensed for deployment.
...
I. 04/24 12:24:37. Starting database "ddd12" (C:\$ blogs and websites\blog SQLAnywhere\20110425 Demonstrating Backup, Validation and Restore\ddd12.db) at Sun Apr 24 2011 12:24
I. 04/24 12:24:37. Performance warning: Database file "C:\$ blogs and websites\blog SQLAnywhere\20110425 Demonstrating Backup, Validation and Restore\ddd12.db" consists of 2 disk fragments
I. 04/24 12:24:38. Database recovery in progress
I. 04/24 12:24:38.     Last checkpoint at Sun Apr 24 2011 12:24
I. 04/24 12:24:38.     Transaction log: C:\$ blogs and websites\blog SQLAnywhere\20110425 Demonstrating Backup, Validation and Restore\backup\generation4\ddd12.log...
I. 04/24 12:24:38. Starting checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:24
I. 04/24 12:24:38. Finished checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:24
I. 04/24 12:24:38.     Checkpointing...
I. 04/24 12:24:38. Starting checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:24
I. 04/24 12:24:38. Finished checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:24
I. 04/24 12:24:38. Recovery complete
I. 04/24 12:24:38. Database server shutdown automatically after log applied
I. 04/24 12:24:38. Database server stopped at Sun Apr 24 2011 12:24
I. 04/24 12:24:39. SQL Anywhere Network Server Version 12.0.1.3298 I. 04/24 12:24:39. Developer edition, not licensed for deployment.
...
I. 04/24 12:24:39. Starting database "ddd12" (C:\$ blogs and websites\blog SQLAnywhere\20110425 Demonstrating Backup, Validation and Restore\ddd12.db) at Sun Apr 24 2011 12:24
I. 04/24 12:24:39. Performance warning: Database file "C:\$ blogs and websites\blog SQLAnywhere\20110425 Demonstrating Backup, Validation and Restore\ddd12.db" consists of 2 disk fragments
I. 04/24 12:24:39. Database recovery in progress
I. 04/24 12:24:39.     Last checkpoint at Sun Apr 24 2011 12:24
I. 04/24 12:24:39.     Transaction log: C:\$ blogs and websites\blog SQLAnywhere\20110425 Demonstrating Backup, Validation and Restore\backup\generation4\logs\110424AA.log...
I. 04/24 12:24:39. Starting checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:24
I. 04/24 12:24:39. Finished checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:24
I. 04/24 12:24:39. Starting checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:24
I. 04/24 12:24:40. Finished checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:24
I. 04/24 12:24:40.     Transaction log: C:\$ blogs and websites\blog SQLAnywhere\20110425 Demonstrating Backup, Validation and Restore\backup\generation4\logs\110424AB.log...
I. 04/24 12:24:40. Starting checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:24
I. 04/24 12:24:40. Finished checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:24
I. 04/24 12:24:40. Starting checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:24
I. 04/24 12:24:40. Finished checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:24
I. 04/24 12:24:41.     Transaction log: C:\$ blogs and websites\blog SQLAnywhere\20110425 Demonstrating Backup, Validation and Restore\backup\generation4\logs\110424AC.log...
I. 04/24 12:24:41. Starting checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:24
I. 04/24 12:24:41. Finished checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:24
I. 04/24 12:24:41.     Checkpointing...
I. 04/24 12:24:41. Starting checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:24
I. 04/24 12:24:41. Finished checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:24
I. 04/24 12:24:41. Recovery complete
I. 04/24 12:24:41. Database server shutdown automatically after log applied
I. 04/24 12:24:41. Database server stopped at Sun Apr 24 2011 12:24
I. 04/24 12:24:42. SQL Anywhere Network Server Version 12.0.1.3298 I. 04/24 12:24:42. Developer edition, not licensed for deployment.
...
I. 04/24 12:24:42. Starting database "ddd12" (C:\$ blogs and websites\blog SQLAnywhere\20110425 Demonstrating Backup, Validation and Restore\ddd12.db) at Sun Apr 24 2011 12:24
I. 04/24 12:24:42. Performance warning: Database file "C:\$ blogs and websites\blog SQLAnywhere\20110425 Demonstrating Backup, Validation and Restore\ddd12.db" consists of 2 disk fragments
I. 04/24 12:24:42. Database recovery in progress
I. 04/24 12:24:42.     Last checkpoint at Sun Apr 24 2011 12:24
I. 04/24 12:24:42.     Transaction log: C:\$ blogs and websites\blog SQLAnywhere\20110425 Demonstrating Backup, Validation and Restore\backup\generation5\ddd12.log...
I. 04/24 12:24:42. Starting checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:24
I. 04/24 12:24:42. Finished checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:24
I. 04/24 12:24:42.     Checkpointing...
I. 04/24 12:24:42. Starting checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:24
I. 04/24 12:24:43. Finished checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:24
I. 04/24 12:24:43. Recovery complete
I. 04/24 12:24:43. Database server shutdown automatically after log applied
I. 04/24 12:24:43. Database server stopped at Sun Apr 24 2011 12:24
I. 04/24 12:24:43. SQL Anywhere Network Server Version 12.0.1.3298 I. 04/24 12:24:43. Developer edition, not licensed for deployment.
...
I. 04/24 12:24:43. Starting database "ddd12" (C:\$ blogs and websites\blog SQLAnywhere\20110425 Demonstrating Backup, Validation and Restore\ddd12.db) at Sun Apr 24 2011 12:24
I. 04/24 12:24:43. Performance warning: Database file "C:\$ blogs and websites\blog SQLAnywhere\20110425 Demonstrating Backup, Validation and Restore\ddd12.db" consists of 2 disk fragments
I. 04/24 12:24:43. Database recovery in progress
I. 04/24 12:24:43.     Last checkpoint at Sun Apr 24 2011 12:24
I. 04/24 12:24:43.     Transaction log: C:\$ blogs and websites\blog SQLAnywhere\20110425 Demonstrating Backup, Validation and Restore\backup\generation5\logs\110424AA.log...
I. 04/24 12:24:43. Starting checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:24
I. 04/24 12:24:44. Finished checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:24
I. 04/24 12:24:44. Starting checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:24
I. 04/24 12:24:44. Finished checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:24
I. 04/24 12:24:44.     Transaction log: C:\$ blogs and websites\blog SQLAnywhere\20110425 Demonstrating Backup, Validation and Restore\backup\generation5\logs\110424AB.log...
I. 04/24 12:24:44. Starting checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:24
I. 04/24 12:24:44. Finished checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:24
I. 04/24 12:24:44. Starting checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:24
I. 04/24 12:24:45. Finished checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:24
I. 04/24 12:24:45.     Transaction log: C:\$ blogs and websites\blog SQLAnywhere\20110425 Demonstrating Backup, Validation and Restore\backup\generation5\logs\110424AC.log...
I. 04/24 12:24:45. Starting checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:24
I. 04/24 12:24:45. Finished checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:24
I. 04/24 12:24:45.     Checkpointing...
I. 04/24 12:24:45. Starting checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:24
I. 04/24 12:24:45. Finished checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:24
I. 04/24 12:24:45. Recovery complete
I. 04/24 12:24:45. Database server shutdown automatically after log applied
I. 04/24 12:24:46. Database server stopped at Sun Apr 24 2011 12:24
I. 04/24 12:24:46. SQL Anywhere Network Server Version 12.0.1.3298 I. 04/24 12:24:46. Developer edition, not licensed for deployment.
...
I. 04/24 12:24:46. Starting database "ddd12" (C:\$ blogs and websites\blog SQLAnywhere\20110425 Demonstrating Backup, Validation and Restore\ddd12.db) at Sun Apr 24 2011 12:24
I. 04/24 12:24:46. Performance warning: Database file "C:\$ blogs and websites\blog SQLAnywhere\20110425 Demonstrating Backup, Validation and Restore\ddd12.db" consists of 2 disk fragments
I. 04/24 12:24:46. Database recovery in progress
I. 04/24 12:24:46.     Last checkpoint at Sun Apr 24 2011 12:24
I. 04/24 12:24:46.     Transaction log: C:\$ blogs and websites\blog SQLAnywhere\20110425 Demonstrating Backup, Validation and Restore\backup\generation6\ddd12.log...
I. 04/24 12:24:46. Starting checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:24
I. 04/24 12:24:46. Finished checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:24
I. 04/24 12:24:46.     Checkpointing...
I. 04/24 12:24:46. Starting checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:24
I. 04/24 12:24:47. Finished checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:24
I. 04/24 12:24:47. Recovery complete
I. 04/24 12:24:47. Database server shutdown automatically after log applied
I. 04/24 12:24:47. Database server stopped at Sun Apr 24 2011 12:24
I. 04/24 12:24:47. SQL Anywhere Network Server Version 12.0.1.3298 I. 04/24 12:24:47. Developer edition, not licensed for deployment.
...
I. 04/24 12:24:47. Starting database "ddd12" (C:\$ blogs and websites\blog SQLAnywhere\20110425 Demonstrating Backup, Validation and Restore\ddd12.db) at Sun Apr 24 2011 12:24
I. 04/24 12:24:47. Performance warning: Database file "C:\$ blogs and websites\blog SQLAnywhere\20110425 Demonstrating Backup, Validation and Restore\ddd12.db" consists of 2 disk fragments
I. 04/24 12:24:47. Database recovery in progress
I. 04/24 12:24:47.     Last checkpoint at Sun Apr 24 2011 12:24
I. 04/24 12:24:47.     Transaction log: C:\$ blogs and websites\blog SQLAnywhere\20110425 Demonstrating Backup, Validation and Restore\backup\generation6\logs\110424AA.log...
I. 04/24 12:24:47. Starting checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:24
I. 04/24 12:24:48. Finished checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:24
I. 04/24 12:24:48. Starting checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:24
I. 04/24 12:24:48. Finished checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:24
I. 04/24 12:24:48.     Transaction log: C:\$ blogs and websites\blog SQLAnywhere\20110425 Demonstrating Backup, Validation and Restore\backup\generation6\logs\110424AB.log...
I. 04/24 12:24:48. Starting checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:24
I. 04/24 12:24:48. Finished checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:24
I. 04/24 12:24:49. Starting checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:24
I. 04/24 12:24:49. Finished checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:24
I. 04/24 12:24:49.     Transaction log: C:\$ blogs and websites\blog SQLAnywhere\20110425 Demonstrating Backup, Validation and Restore\backup\generation6\logs\110424AC.log...
I. 04/24 12:24:49. Starting checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:24
I. 04/24 12:24:49. Finished checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:24
I. 04/24 12:24:49.     Checkpointing...
I. 04/24 12:24:49. Starting checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:24
I. 04/24 12:24:49. Finished checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:24
I. 04/24 12:24:50. Recovery complete
I. 04/24 12:24:50. Database server shutdown automatically after log applied
I. 04/24 12:24:50. Database server stopped at Sun Apr 24 2011 12:24
I. 04/24 12:24:50. SQL Anywhere Network Server Version 12.0.1.3298 I. 04/24 12:24:50. Developer edition, not licensed for deployment.
...
I. 04/24 12:24:50. Starting database "ddd12" (C:\$ blogs and websites\blog SQLAnywhere\20110425 Demonstrating Backup, Validation and Restore\ddd12.db) at Sun Apr 24 2011 12:24
I. 04/24 12:24:50. Performance warning: Database file "C:\$ blogs and websites\blog SQLAnywhere\20110425 Demonstrating Backup, Validation and Restore\ddd12.db" consists of 2 disk fragments
I. 04/24 12:24:50. Database recovery in progress
I. 04/24 12:24:50.     Last checkpoint at Sun Apr 24 2011 12:24
I. 04/24 12:24:50.     Transaction log: C:\$ blogs and websites\blog SQLAnywhere\20110425 Demonstrating Backup, Validation and Restore\backup\generation7\ddd12.log...
I. 04/24 12:24:50. Starting checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:24
I. 04/24 12:24:51. Finished checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:24
I. 04/24 12:24:51.     Checkpointing...
I. 04/24 12:24:51. Starting checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:24
I. 04/24 12:24:51. Finished checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:24
I. 04/24 12:24:51. Recovery complete
I. 04/24 12:24:51. Database server shutdown automatically after log applied
I. 04/24 12:24:51. Database server stopped at Sun Apr 24 2011 12:24
I. 04/24 12:24:51. SQL Anywhere Network Server Version 12.0.1.3298 I. 04/24 12:24:51. Developer edition, not licensed for deployment.
...
I. 04/24 12:24:51. Automatic tuning of multiprogramming level is enabled
I. 04/24 12:24:51. Starting database "ddd12" (C:\$ blogs and websites\blog SQLAnywhere\20110425 Demonstrating Backup, Validation and Restore\ddd12.db) at Sun Apr 24 2011 12:24
I. 04/24 12:24:51. Performance warning: Database file "C:\$ blogs and websites\blog SQLAnywhere\20110425 Demonstrating Backup, Validation and Restore\ddd12.db" consists of 2 disk fragments
I. 04/24 12:24:52. Database recovery in progress
I. 04/24 12:24:52.     Last checkpoint at Sun Apr 24 2011 12:24
I. 04/24 12:24:52.     Transaction log: C:\$ blogs and websites\blog SQLAnywhere\20110425 Demonstrating Backup, Validation and Restore\backup\generation7\logs\110424AA.log...
I. 04/24 12:24:52. Starting checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:24
I. 04/24 12:24:52. Finished checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:24
I. 04/24 12:24:52. Starting checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:24
I. 04/24 12:24:52. Finished checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:24
I. 04/24 12:24:52.     Transaction log: C:\$ blogs and websites\blog SQLAnywhere\20110425 Demonstrating Backup, Validation and Restore\backup\generation7\logs\110424AB.log...
I. 04/24 12:24:52. Starting checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:24
I. 04/24 12:24:53. Finished checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:24
I. 04/24 12:24:53. Starting checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:24
I. 04/24 12:24:53. Finished checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:24
I. 04/24 12:24:53.     Transaction log: C:\$ blogs and websites\blog SQLAnywhere\20110425 Demonstrating Backup, Validation and Restore\backup\generation7\logs\110424AC.log...
I. 04/24 12:24:53. Starting checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:24
I. 04/24 12:24:53. Finished checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:24
I. 04/24 12:24:53.     Checkpointing...
I. 04/24 12:24:53. Starting checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:24
I. 04/24 12:24:53. Finished checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:24
I. 04/24 12:24:53. Recovery complete
I. 04/24 12:24:54. Database server shutdown automatically after log applied
I. 04/24 12:24:54. Database server stopped at Sun Apr 24 2011 12:24
I. 04/24 12:24:54. SQL Anywhere Network Server Version 12.0.1.3298 I. 04/24 12:24:54. Developer edition, not licensed for deployment.
...
I. 04/24 12:24:54. Starting database "ddd12" (C:\$ blogs and websites\blog SQLAnywhere\20110425 Demonstrating Backup, Validation and Restore\ddd12.db) at Sun Apr 24 2011 12:24
I. 04/24 12:24:54. Performance warning: Database file "C:\$ blogs and websites\blog SQLAnywhere\20110425 Demonstrating Backup, Validation and Restore\ddd12.db" consists of 2 disk fragments
I. 04/24 12:24:54. Database recovery in progress
I. 04/24 12:24:54.     Last checkpoint at Sun Apr 24 2011 12:24
I. 04/24 12:24:54.     Transaction log: C:\$ blogs and websites\blog SQLAnywhere\20110425 Demonstrating Backup, Validation and Restore\backup\generation8\ddd12.log...
I. 04/24 12:24:54. Starting checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:24
I. 04/24 12:24:55. Finished checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:24
I. 04/24 12:24:55.     Checkpointing...
I. 04/24 12:24:55. Starting checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:24
I. 04/24 12:24:55. Finished checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:24
I. 04/24 12:24:55. Recovery complete
I. 04/24 12:24:55. Database server shutdown automatically after log applied
I. 04/24 12:24:55. Database server stopped at Sun Apr 24 2011 12:24
I. 04/24 12:24:55. SQL Anywhere Network Server Version 12.0.1.3298 I. 04/24 12:24:55. Developer edition, not licensed for deployment.
...
I. 04/24 12:24:55. Starting database "ddd12" (C:\$ blogs and websites\blog SQLAnywhere\20110425 Demonstrating Backup, Validation and Restore\ddd12.db) at Sun Apr 24 2011 12:24
I. 04/24 12:24:55. Performance warning: Database file "C:\$ blogs and websites\blog SQLAnywhere\20110425 Demonstrating Backup, Validation and Restore\ddd12.db" consists of 2 disk fragments
I. 04/24 12:24:56. Database recovery in progress
I. 04/24 12:24:56.     Last checkpoint at Sun Apr 24 2011 12:24
I. 04/24 12:24:56.     Transaction log: C:\$ blogs and websites\blog SQLAnywhere\20110425 Demonstrating Backup, Validation and Restore\backup\generation8\logs\110424AA.log...
I. 04/24 12:24:56. Starting checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:24
I. 04/24 12:24:56. Finished checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:24
I. 04/24 12:24:56. Starting checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:24
I. 04/24 12:24:56. Finished checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:24
I. 04/24 12:24:56.     Transaction log: C:\$ blogs and websites\blog SQLAnywhere\20110425 Demonstrating Backup, Validation and Restore\backup\generation8\logs\110424AB.log...
I. 04/24 12:24:56. Starting checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:24
I. 04/24 12:24:57. Finished checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:24
I. 04/24 12:24:57. Starting checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:24
I. 04/24 12:24:57. Finished checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:24
I. 04/24 12:24:57.     Transaction log: C:\$ blogs and websites\blog SQLAnywhere\20110425 Demonstrating Backup, Validation and Restore\backup\generation8\logs\110424AC.log...
I. 04/24 12:24:57. Starting checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:24
I. 04/24 12:24:57. Finished checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:24
I. 04/24 12:24:57.     Checkpointing...
I. 04/24 12:24:57. Starting checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:24
I. 04/24 12:24:58. Finished checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:24
I. 04/24 12:24:58. Recovery complete
I. 04/24 12:24:58. Database server shutdown automatically after log applied
I. 04/24 12:24:58. Database server stopped at Sun Apr 24 2011 12:24
I. 04/24 12:24:58. SQL Anywhere Network Server Version 12.0.1.3298 I. 04/24 12:24:58. Developer edition, not licensed for deployment.
...
I. 04/24 12:24:58. Starting database "ddd12" (C:\$ blogs and websites\blog SQLAnywhere\20110425 Demonstrating Backup, Validation and Restore\ddd12.db) at Sun Apr 24 2011 12:24
I. 04/24 12:24:58. Performance warning: Database file "C:\$ blogs and websites\blog SQLAnywhere\20110425 Demonstrating Backup, Validation and Restore\ddd12.db" consists of 2 disk fragments
I. 04/24 12:24:58. Database recovery in progress
I. 04/24 12:24:58.     Last checkpoint at Sun Apr 24 2011 12:24
I. 04/24 12:24:58.     Transaction log: C:\$ blogs and websites\blog SQLAnywhere\20110425 Demonstrating Backup, Validation and Restore\backup\generation9\ddd12.log...
I. 04/24 12:24:58. Starting checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:24
I. 04/24 12:24:59. Finished checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:24
I. 04/24 12:24:59.     Checkpointing...
I. 04/24 12:24:59. Starting checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:24
I. 04/24 12:24:59. Finished checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:24
I. 04/24 12:24:59. Recovery complete
I. 04/24 12:24:59. Database server shutdown automatically after log applied
I. 04/24 12:24:59. Database server stopped at Sun Apr 24 2011 12:24
I. 04/24 12:24:59. SQL Anywhere Network Server Version 12.0.1.3298 I. 04/24 12:24:59. Developer edition, not licensed for deployment.
...
I. 04/24 12:24:59. Starting database "ddd12" (C:\$ blogs and websites\blog SQLAnywhere\20110425 Demonstrating Backup, Validation and Restore\ddd12.db) at Sun Apr 24 2011 12:24
I. 04/24 12:24:59. Performance warning: Database file "C:\$ blogs and websites\blog SQLAnywhere\20110425 Demonstrating Backup, Validation and Restore\ddd12.db" consists of 2 disk fragments
I. 04/24 12:25:00. Database recovery in progress
I. 04/24 12:25:00.     Last checkpoint at Sun Apr 24 2011 12:24
I. 04/24 12:25:00.     Transaction log: C:\$ blogs and websites\blog SQLAnywhere\20110425 Demonstrating Backup, Validation and Restore\backup\generation9\logs\110424AA.log...
I. 04/24 12:25:00. Starting checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:25
I. 04/24 12:25:00. Finished checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:25
I. 04/24 12:25:00. Starting checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:25
I. 04/24 12:25:00. Finished checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:25
I. 04/24 12:25:00.     Transaction log: C:\$ blogs and websites\blog SQLAnywhere\20110425 Demonstrating Backup, Validation and Restore\backup\generation9\logs\110424AB.log...
I. 04/24 12:25:01. Starting checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:25
I. 04/24 12:25:01. Finished checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:25
I. 04/24 12:25:01. Starting checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:25
I. 04/24 12:25:01. Finished checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:25
I. 04/24 12:25:01.     Transaction log: C:\$ blogs and websites\blog SQLAnywhere\20110425 Demonstrating Backup, Validation and Restore\backup\generation9\logs\110424AC.log...
I. 04/24 12:25:01. Starting checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:25
I. 04/24 12:25:01. Finished checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:25
I. 04/24 12:25:01.     Checkpointing...
I. 04/24 12:25:02. Starting checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:25
I. 04/24 12:25:02. Finished checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:25
I. 04/24 12:25:02. Recovery complete
I. 04/24 12:25:02. Database server shutdown automatically after log applied
I. 04/24 12:25:02. Database server stopped at Sun Apr 24 2011 12:25
I. 04/24 12:25:02. SQL Anywhere Network Server Version 12.0.1.3298 I. 04/24 12:25:02. Developer edition, not licensed for deployment.
...
I. 04/24 12:25:02. Starting database "ddd12" (C:\$ blogs and websites\blog SQLAnywhere\20110425 Demonstrating Backup, Validation and Restore\ddd12.db) at Sun Apr 24 2011 12:25
I. 04/24 12:25:02. Performance warning: Database file "C:\$ blogs and websites\blog SQLAnywhere\20110425 Demonstrating Backup, Validation and Restore\ddd12.db" consists of 2 disk fragments
I. 04/24 12:25:12. Database recovery in progress
I. 04/24 12:25:12.     Last checkpoint at Sun Apr 24 2011 12:25
I. 04/24 12:25:12.     Transaction log: C:\$ blogs and websites\blog SQLAnywhere\20110425 Demonstrating Backup, Validation and Restore\backup\generation10\ddd12.log...
I. 04/24 12:25:12. Starting checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:25
I. 04/24 12:25:13. Finished checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:25
I. 04/24 12:25:13.     Checkpointing...
I. 04/24 12:25:13. Starting checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:25
I. 04/24 12:25:13. Finished checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:25
I. 04/24 12:25:13. Recovery complete
I. 04/24 12:25:13. Database server shutdown automatically after log applied
I. 04/24 12:25:13. Database server stopped at Sun Apr 24 2011 12:25
I. 04/24 12:25:13. SQL Anywhere Network Server Version 12.0.1.3298 I. 04/24 12:25:13. Developer edition, not licensed for deployment.
...
I. 04/24 12:25:13. Starting database "ddd12" (C:\$ blogs and websites\blog SQLAnywhere\20110425 Demonstrating Backup, Validation and Restore\ddd12.db) at Sun Apr 24 2011 12:25
I. 04/24 12:25:13. Performance warning: Database file "C:\$ blogs and websites\blog SQLAnywhere\20110425 Demonstrating Backup, Validation and Restore\ddd12.db" consists of 2 disk fragments
I. 04/24 12:25:14. Database recovery in progress
I. 04/24 12:25:14.     Last checkpoint at Sun Apr 24 2011 12:25
I. 04/24 12:25:14.     Transaction log: C:\$ blogs and websites\blog SQLAnywhere\20110425 Demonstrating Backup, Validation and Restore\backup\generation10\logs\110424AA.log...
I. 04/24 12:25:14. Starting checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:25
I. 04/24 12:25:14. Finished checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:25
I. 04/24 12:25:14. Starting checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:25
I. 04/24 12:25:14. Finished checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:25
I. 04/24 12:25:14.     Transaction log: C:\$ blogs and websites\blog SQLAnywhere\20110425 Demonstrating Backup, Validation and Restore\backup\generation10\logs\110424AB.log...
I. 04/24 12:25:14. Starting checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:25
I. 04/24 12:25:14. Finished checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:25
I. 04/24 12:25:15. Starting checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:25
I. 04/24 12:25:15. Finished checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:25
I. 04/24 12:25:15.     Transaction log: C:\$ blogs and websites\blog SQLAnywhere\20110425 Demonstrating Backup, Validation and Restore\backup\generation10\logs\110424AC.log...
I. 04/24 12:25:15. Starting checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:25
I. 04/24 12:25:15. Finished checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:25
I. 04/24 12:25:15.     Checkpointing...
I. 04/24 12:25:15. Starting checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:25
I. 04/24 12:25:15. Finished checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:25
I. 04/24 12:25:16. Recovery complete
I. 04/24 12:25:16. Database server shutdown automatically after log applied
I. 04/24 12:25:16. Database server stopped at Sun Apr 24 2011 12:25
I. 04/24 12:25:16. SQL Anywhere Network Server Version 12.0.1.3298 I. 04/24 12:25:16. Developer edition, not licensed for deployment.
...
I. 04/24 12:25:16. Starting database "ddd12" (C:\$ blogs and websites\blog SQLAnywhere\20110425 Demonstrating Backup, Validation and Restore\ddd12.db) at Sun Apr 24 2011 12:25
I. 04/24 12:25:16. Performance warning: Database file "C:\$ blogs and websites\blog SQLAnywhere\20110425 Demonstrating Backup, Validation and Restore\ddd12.db" consists of 2 disk fragments
I. 04/24 12:25:16. Database recovery in progress
I. 04/24 12:25:16.     Last checkpoint at Sun Apr 24 2011 12:25
I. 04/24 12:25:16.     Transaction log: ddd12.log...
I. 04/24 12:25:16. Starting checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:25
I. 04/24 12:25:17. Finished checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:25
I. 04/24 12:25:17.     Checkpointing...
I. 04/24 12:25:17. Starting checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:25
I. 04/24 12:25:17. Finished checkpoint of "ddd12" (ddd12.db) at Sun Apr 24 2011 12:25
I. 04/24 12:25:17. Recovery complete
I. 04/24 12:25:17. Database server shutdown automatically after log applied
I. 04/24 12:25:17. Database server stopped at Sun Apr 24 2011 12:25
Sun 04/24/2011 
12:25 PM

The output from 06_display_table.bat shows there are no gaps after the restore:
SELECT COUNT(*), MAX ( pkey ) FROM rapid
COUNT()     MAX(rapid.pkey)
---------------------------
4064        4064

(1 rows)

Execution time: 0.023 seconds

C:\..>PAUSE Note: COUNT should equal MAX
Press any key to continue . . .
Here's the kind of message you will see if one of the log files is missing:
I. 04/24 12:25:16. Cannot open transaction log file -- Can't use log file "C:\ ... \backup\generation9\logs\110405AA.log" since it has been used more recently than the database file
Tip: It's tempting to move all the incremental log backup files into a single folder so only one dbsrv12 -ad step is required. However, it is possible for two different incremental log backup files to have the same file name if they were created on the same day with a full backup in between. That's because the yymmddXX is naming convention is restarted at yymmddAA after each full backup. In this demonstration, because everything happens in rapid succession on a single day, all 10 sets are named yymmddAA, BB and CC.

Finally, here is the 99_stop_drop_everything.bat command file that deletes everything so that 01_run_everything.bat run over again:
PAUSE Are you sure you want to delete all the files?

"%SQLANY12%\bin32\dbstop.exe" -c "ENG=ddd12;DBN=ddd12;UID=dba;PWD=sql" -y

PAUSE Wait until the database is stopped, then

ERASE /F ddd12.db
ERASE /F ddd12.log
ERASE /F dbsrv12_log_ddd12.txt
ERASE /F dbsrv12_log_fatal_ddd12.txt
RMDIR /S /Q backup

PAUSE

No comments: