Need to extract specific pattern from logfile

Log File:

Attempting to contact (DESCRIPTION=(SOURCE_ROUTE=OFF)(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=hostname1.com)(PORT=1521)))(CONNECT_DATA=(SID=database1)(SRVR=DEDICATED)))

Attempting to contact (DESCRIPTION=(SOURCE_ROUTE=OFF)(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=hostname2.com)(PORT=1521)))(CONNECT_DATA=(SID=database2)(SRVR=DEDICATED)))

Attempting to contact (DESCRIPTION_LIST=(DESCRIPTION=(SOURCE_ROUTE=OFF)(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=hostname3.com)(PORT=1521)))(CONNECT_DATA=(SID=database3)(SRVR=DEDICATED)))(DESCRIPTION=(SOURCE_ROUTE=OFF)(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=hostname3.com)(PORT=1522)))(CONNECT_DATA=(SID=database3)(SRVR=DEDICATED))))

Attempting to contact (DESCRIPTION_LIST=(DESCRIPTION=(SOURCE_ROUTE=OFF)(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=hostname4.com)(PORT=1521)))(CONNECT_DATA=(SID=database4)(SRVR=DEDICATED)))(DESCRIPTION=(SOURCE_ROUTE=OFF)(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=hostname4.com)(PORT=1522)))(CONNECT_DATA=(SID=database4)(SRVR=DEDICATED))))

I need output like below: I have tried regular expression /awk -- not able to get expected output (below one)

HoST PORT SID
hostname1.com 1521 database1
hostname2.com 1521 database2
hostname3.com 1522 database3
hostname4.com 1522 database4

Can someone please help me on this?

perl -00ne'
  print  join " ",
        /HOST=([^)]+)\)
        \(PORT=(\d+).*?
          SID=(\w+)/x, "\n" 
  ' logfile

If the records are not separated by blank lines, remove the 00 option and argument.

perfect - it works!