If shared memory both on active and standby CA is corrupted and backup shared memory data is unstable then only way to recover shared memory is using EMS DB. This will cause outage in system that's why should be implemented out of busy hours.
Here is the prosedure to recover shared memory from Oracle DB on EMS.
1- Log into Active EMS with "ciscouser" and run following command on CLI
download database target=CA; file=/tmp/download-CA146
download database target=FSAIN; file=//tmp/download-FSAIN205
download database target=FSPTC; file=/tmp/download-FSPTC235
2- Log into Active and Standby CA and run "platform stop all" command.
3- Log into Active and Standby CA and delete following directory
cd /opt/OptiCall
\rm -rf */bin/data
4- Upload downloaded database on EMS to following path on Active CA.
download-CA146 --> /opt/OptiCall/CA146/bin
download-FSPTC235 --> /opt/OptiCall/FSPT235/bin
download-FSAIN205 --> /opt/OptiCall/FSAIN205/bin
5- Login to Active CA and run following command :
cd /opt/OptiCall/CA146/bin
./dbm_sql.CA146 ./data ./catalog < download-CA146
cd /opt/OptiCall/FSPT235/bin
./dbm_sql.FSPTC235 ./data ./catalog < download-FSPTC235
cd /opt/OptiCall/FSAIN205/bin
./dbm_sql.FSAINxxx ./data ./catalog < download-FSAIN205
6- Run platform start all on both Active and Standby CAs.