Skip to Main Content

Enterprise Manager

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

oem rman backup rewrite oratab

cptkirkshJan 27 2020 — edited Feb 7 2020

I have oracle cloud control 13c.  I have an older 12.1.0.2 dB that is in nonarchivelog mode.  When we do a cold backup each week we shut it down via the job via OEM and perform the backup and then run alter database open.  Somewhere in the middle of that the agent sees the DB is down and removes the entry from oratab and then puts it back in after it is back up.  At least that seems to be what is happening.  The issue is it seems to get the oracle home that is in correct.  It adds a slash after the actual oracle home.  Where does the agent get the oracle home from or am I getting this all wrong?

Comments

877753
Hi,
I'm pasting few lines in which you can fetch the diagnosticManager and then do the appropriate Mbean calls for creating Diagnostic profiles via java code.

import com.bea.wlevs.management.diagnostic.DiagnosticProfileMBean;
import com.bea.wlevs.management.diagnostic.DiagnosticProfileManagerMBean;
import javax.management.MBeanServerConnection;
import javax.management.MBeanServerInvocationHandler;
import java.lang.management.ManagementFactory;
import javax.management.ObjectName;
import javax.management.ObjectInstance;
import org.w3c.dom.Node;


MBeanServerConnection conn=ManagementFactory.getPlatformMBeanServer();
private static DiagnosticProfileManagerMBean diagNosticManager=null;
private static Node updateprofileNode=null;
ObjectName diagProfileObjectName;
try {
diagProfileObjectName = ObjectName.getInstance("com.bea.wlevs:Name=ProfileManager,Type=ProfileManager,Application=diagnostic");
} catch (Exception e) {
throw new RuntimeException(e);
}
diagNosticManager=(DiagnosticProfileManagerMBean) MBeanServerInvocationHandler.newProxyInstance(conn, diagProfileObjectName, DiagnosticProfileManagerMBean.class, false);

Now we can use diagNosticManager.createDiagnosticProfile(String profileName, ObjectName[] probeNames) method to create the diagnostic profile.

Thanks
Patha
938644
Tnanks,
I tried this. now I'm getting :

javax.management.InstanceNotFoundException: com.bea.wlevs:Name=ProfileManager,Type=ProfileManager,Application=diagnostic
at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.getMBean(DefaultMBeanServerInterceptor.java:1094)

What did I do wrong?
938644
Hi again ..

I think I know where is the problem but I don't know how to solve it:
i use these lines to make a connection :
..

env.put(JMXConnectorFactory.PROTOCOL_PROVIDER_PACKAGES, "com.bea.core.jmx.remote.provider");
System.setProperty("mx4j.remote.resolver.pkgs", "com.bea.core.jmx.remote.resolver");
connector = JMXConnectorFactory.newJMXConnector(serviceUrl, env);

connector.connect(env);
connection = connector.getMBeanServerConnection();
....
and you suggested to use this :

connection=ManagementFactory.getPlatformMBeanServer();


I think there is inconsistency in the typs of the connection mbean.
Neither of of them works fine:

The first one works fine for getting troughput , averageLatency and so on ,
BUT, when i try to terminate ( unregister from the mbean server ),
and than re-connect again, the numbers i'm getting are wrong.

In the second type (ManagementFactory.getPlatformMBeanServer() ) , when I want to use as a profile creator ( like in the 'Visualizer' tool - which works fine )
I don't know which of the types to use.

What is your recommendation to to use : for temintinag the probeRuntime, and for making a profile .

again, neither of them works all the way!
Plz help.
1 - 3

Post Details

Added on Jan 27 2020
1 comment
185 views