Scaricare un file senza salvarlo in locale mi sembra un po' difficile xD.
Per eliminare il file al termine del download, basta usare unlink():
Codice PHP:
<?php
/* File download.php */
/* invio gli header per il download (ATTENZIONE: NON FAR PRECEDERE DA
QUALSIASI OUTPUT */
header( 'content-type: application/octect-stream' );
header( 'content-disposition: attachment; filename=backup.sql' );
header( 'content-description: Download backup.sql' );
header( 'content-length: ' . filesize( 'backup.sql' ) );
/* legge il contenuto del file */
readfile( 'backup.sql' );
/* lo elimina */
unlink( 'backup.sql' );
?>
Invece per splittare il file ogni tot dimensione, dovresi effettuare un controllo sulla dimensione ogni volta che gli aggiungi un'istruzione: se la supera chiudi il file attuale e lo aggiungi ai link da scaricare. Una volta terminata la creazione di tutti i file di backup, crei una pagina con un link ad ogni singolo file (oppure un link che permetta di scaricarli tutti, però qui cambia un po') .