Data Backup and Recovery

SMO: Error while creating new Profile on Oracle Linux 7.4

esteinbach
2,931 Views

I tried to create a new SMO profile on a RAC Database with OS Oracle Linux 7.4

 

smo profile create -profile backup_xxx-rac_xxx -profile-password yyyy -repository -dbname rmandb -host host1 -port 1521 -login -username snapmanager -database -dbname datenbankname -host node1 -sid instanz1 -login -username snapmanager -password zzzz -port 1521 -rman -login -username rman -password zzzz -tnsname rmandb -osaccount oracle -osgroup oinstall -retain -monthly -count 4 -comment "Backup xxx-rac DB xxx" -verbose

 

 

But the creation fails with SMO-05075

 

[ERROR] SMO-05075: Profile create failed: ORACLE-00300: Error executing srvctl command srvctl status database -d xxxxxx.  The command returned: [Instanz instanz1 wird auf Knoten node1 ausgef?hrt, Instanz instanz2 wird auf Knotennode2 ausgef?hrt]
[ INFO] SMO-20022: Deleted credentials and repository mapping for profile "backup_xxx-rac_xxx" in user credentials for "oracle".
Operation Id [8a4d014962fbdb840162fbdb87bb000a] failed. Error: java.lang.NullPointerException

 

 

error log /var/log/smp/server.log:

 

[ INFO] SMO-13046: Operation GUID 8a4d014962fbdb840162fbdb87bb000a starting on Profile backup_xxx-rac_xxx
[ INFO] SMO-13505: SnapDrive environment verification passed.
[ INFO] SMO-13507: JDBC verification for "snapmanager@node1:1521/instanz1" passed.
[ INFO] SMO-13506: SQLPlus verification for database SID "instanz1" passed.  Environment: [ORACLE_HOME=/oracle_base/product/12102/db]
Exception in thread "Thread-2" com.netapp.dlm.process.operation.OperationException: java.sql.SQLException: Festschreiben mit aktiviertem Auto-Commit nicht möglich
        at com.netapp.dlm.process.common.OperationCycleHeartbeatThread.run(OperationCycleHeartbeatThread.java:84)
Caused by: java.sql.SQLException: Festschreiben mit aktiviertem Auto-Commit nicht möglich
        at oracle.jdbc.driver.PhysicalConnection.commit(PhysicalConnection.java:2356)
        at oracle.jdbc.driver.PhysicalConnection.commit(PhysicalConnection.java:2403)
        at com.netapp.dlm.process.common.OperationCycleHeartbeatThread.run(OperationCycleHeartbeatThread.java:74)
[ INFO] SMO-13509: RMAN verification using catalog "rmancat" passed.
[ INFO] SMO-07431: Saving starting state of the database: instanz1(OPEN).
[ERROR] SMO-05075: Profile create failed: ORACLE-00300: Error executing srvctl command srvctl status database -d databasename  The command returned: [Instanz instanz1 wird auf Knoten node1 ausgeführt, Instanz instanz2 wird auf Knotennode2 ausgeführt]
[ERROR] SMO-13032: Cannot perform operation: Profile Create.  Root cause: ORACLE-00300: Error executing srvctl command srvctl status database -d databasename.  The command returned: [Instanz instanz1 wird auf Knotennode1 ausgeführt, Instanz instanz2 wird auf Knotennode2 ausgeführt]
[ERROR] SMO-09003: Failed committing changes to the repository. Batch update row count wrong: 0.
REMOTE-00004: RemoteObjectFactory shutdown gracefully.

I think it's a problem with the language. The srvctl command returns in german. I have set the language Param in /etc/locale.conf to "en_US.utf8

 

What's wrong? Any idea?

 

Regards Engelbert

2 REPLIES 2

Spaceball
2,808 Views

...just guessing, ORA-00300 says something about redo log block size. Is the Oracle-DB in archivelog mode? any other archivelog issues?

brd
2,623 Views

I think SMO need to parse the output from srvctl and expect it to be in english.

Check the smo_server is running with the correct LANG environment variable:

your-smo-box # strings /proc/`pgrep -f SMOServerCLI`/environ | fgrep -e LC -e LANG
LANG=en_US.UTF-8

When the smo_server is started it inherit the LANG from the running shell, so in example if you log from you-source-host into your-smo-box through SSH sending the LANG variable and then start the smo_server you get the LANG  of your source SSH host.

 

To simply reproduce the issue SSH must be configured with SendEnv LANG LC_* and SSHd must have the required AcceptEnv.

Public