So let me get this right?:
The PBX sends data out of it's serial port, as and when it becomes available, it doesn't need to wait for a request to send?.
Both PC's need to log ALL the data, one does it in real time, the other only periodically downloads a block of data.
Why not simply transfer the block of data from the SQL computer to the other one?, it's already been buffered in an SQL database, simply export it to the other PC.
Otherwise you need to build a buffering device, and it depends a LOT how big the buffer has to be, and how fast it all runs.
For an example, a PIC and external storage should be able to do it.
PIC receives data from PBX, passes it on to PC1, and stores it in some kind of memory. PC2 later sends a request to the PIC, and the PIC transfers all the data to PC2 and clears the memory buffer.