If you have the space, creating the second database is the way I've gone in the past, but this type of task really depends on how much downtime your users are willing to agree to, or put up with.
In most cases, defragmenting the mailbox database will usually shrink the database to the reported mail size (when measuring size with the database online), plus about ~15 to 20%. However, this depends on the version of Exchange server, as versions earlier than 2013 tend to underreport sizes, as most measurements include only mail data, not metadata, or indexes. http://technet.microsoft.com/en-us/library/jj150489%28v=exchg.150%29.aspx#Mailbox
Unfortunately, defragmenting mailbox databases is usually a guesswork timeframe, the only way I've ever been able to make reasonable estimates as to how long it takes it to perform the defrag on a smaller mailbox database (usually for IT, or people prepared to go without email for a bit), then extrapolate it out and prepare for up to 10-15% extra time.
If you have another mailbox database server, creating a mailbox database copy will essentially do what you are asking too. Once the copy has been created, you can then make the copy active and remove the old, fragmented database. There's a bit more explanation on this feature on TechNet. - http://technet.microsoft.com/en-us/magazine/jj839716.aspx