I want to have the whole database to be encrypted, instead of encrypting the data before storing into database.
Is it possible to encrypt the whole postgres database and what best method to use?
PostgreSQL doesn't currently support DB-level encryption. (Correct as of 9.4, at least).
You can use an encrypted file system, though the performance impact can be pretty serious for write-heavy systems, especially those doing random I/O. Your options depend on the operating system - Microsoft BitLocker, Linux's dm-crypt/LUKS/cryptsetup, OS X's FileVault 2, etc.
Alternately, look at PgCrypto for field-level encryption, but beware of key-disclosure issues in logging and