cancel
Showing results for 
Search instead for 
Did you mean: 

Split-mirror backup: Attempt to mount unknown instance

Former Member
0 Kudos

Hi experts,

I am backing up the Oracle database of an SAP system online via the split-mirror approach with a BRBACKUP -t online_split command. After having copied all datafiles, BRBACKUP terminates with the following error message (excerpt):


BR0330I Starting and mounting database instance X86/SPLIT ...
BR0278E Command output of '/oracle/X86/102_64/bin/sqlplus':

SQL*Plus: Release 10.2.0.1.0 - Production on Fri Aug 1 00:28:15 2008

Copyright (c) 1982, 2005, Oracle.  All rights reserved.

SQL> ERROR:
ORA-12545: Connect failed because target host or object does not exist


SQL> 
SQL> ORA-12545: Connect failed because target host or object does not exist
SQL> 
BR0280I BRBACKUP time stamp: 2008-08-01 00.28.15
BR0279E Return code from '/oracle/X86/102_64/bin/sqlplus': 0
BR0302E SQLPLUS call for database instance X86/SPLIT failed
BR0332E Start and mount of database instance X86/SPLIT failed

At this point,

- all data files have been copied successfully;

- the control files have been copied;

- a copy of the backup summary .fnd file has been written to the sapbackup directory of both database host and backup host;

- I verified that the tablespaces had been put into backup mode before the split command was executed.

I wonder why BRBACKUP is trying to mount an instance "X86/SPLIT" that is not defined in tnsnames.ora?

What is the function of this step, and how can I suppress it as this flags the entry of the backup run in DB12 as failed?

OS version: Solaris 10 x64 (database and backup host)

Database: Oracle 10.2.0.2.0

SAP Kernel: 700

BRTOOLS Version: 7.00 (34)

Best regards,

Rainer

Accepted Solutions (0)

Answers (4)

Answers (4)

Former Member
0 Kudos

The backup_mode setting "full" in the BR*Tools profile was causing the error during the split-mirror backup.

Eventually I switched this setting to "all", and now the backup finishes successfully, without throwing errors.

former_member408945
Discoverer
0 Kudos

Hi Rainer,

I wonder why BRBACKUP is trying to mount an instance "X86/SPLIT" that is not defined in tnsnames.ora?

Maybe the resynchrone option on the split backup is turned on, means the host with the snapshot attached try to synchronise the datas with the production host.

i have those parameters in my init<sid>.sap :

  1. resynchronize mirror disks command

  2. used if backup_type = offline_split | online_split | offline_mirror | online_mirror

  3. no default

  4. resync_cmd = c:\sapadmin\BC\resync.bat

  5. additional options for SPLITINT interface program

  6. no default

  7. split_options = "<split_options>"

  8. resynchronize after backup flag [no | yes]

  9. default: no

  10. split_resync = no

Try to play with the parameters

What is the function of this step, and how can I suppress it as this flags the entry of the backup run in DB12 as failed?

The flag will turn green if all the process is finished. A stamp will be apply at the end.

Former Member
0 Kudos

Hi Houcine,

thank you for your comments and suggestions. Today I ran another backup, and it turned out that the backup_mode setting was causing the error. It had been set to "full", and this was the reason why the backup terminated with an error. When I changed the backup_mode to "all", the backup ended successfully, and the DB12 entry looks good now.

Thank you for your time,

Rainer

Former Member
0 Kudos

Shaji,

thank you for pointing to these SAP notes. However, these notes do not provide an answer to my question:

- I perform a split-mirror backup. The database ID is X86.

- The database instance X86 is up and running during the backup.

- After all database files and control files have been copied, BRBACKUP tries to mount and open a database "X86/SPLIT"

- This database ID does not exist.

1. Where does BRBACKUP take this database SID "X86/SPLIT" from? - This string is not found in the tnsnames.ora.

2. Why does BRBACKUP try to mount such a database? - The database that has been backed up is still up and running, and I do not see any need for BRBACKUP to mount any database after completion of the datafile copying. I would expect BRBACKUP to update the file back<SID>.log in the sapbackup directory on both backup host and database host, and finish with a successful return code.

Best regards,

Rainer

Former Member
0 Kudos

Pls check if these notes help

Note 723641 - Composite SAP Note: ORA-12545

Note 954960 - BRARCHIVE/BRBACKUP backups on Windows terminate

Former Member
0 Kudos

Hallo Rainer

Please verify if you don't have DB_SID or ORACLE_SID set to X86/SPLIT, if you cannot find it, you could start the brbackup with the -TRC option to see exactly what is happening. In your case the -TRC 8 might be useful.

Check this SAP note for details: 29321 - Creating traces for BR Tools

Best regards, Michael

Former Member
0 Kudos

Hello Michael,

thank you for the hint - but the environment variables do not contain a string for X86/SPLIT:


BR0200I BR_TRACE: location BrEnvProcess-1, Environment of BRBACKUP: 
'DIR_LIBRARY=/usr/sap/X86/SYS/exe/run'
'HZ='
'dbs_ora_tnsname=X86'
'dbms_type=ORA'
'SHELL=/usr/bin/csh'
'TERM=dtterm'
'NLS_LANG=AMERICAN_AMERICA.UTF8'
'THREAD=NOPS'
'USER=orax86'
'LD_LIBRARY_PATH=/usr/sap/X86/SYS/exe/run:/oracle/X86/102_64/lib'
'ORACLE_SID=X86'
'ORACLE_BASE=/oracle'
'dbs_ora_schema=SAPSR3'
'MAIL=/var/mail/orax86'
'PATH=/oracle/X86/102_64/bin:/oracle/X86:/usr/sap/X86/SYS/exe/run:/usr/bin:.:/usr/ccs/bin:/usr/ucb'
'LC_MESSAGES=C'
'PWD=/oracle/X86'
'SAPDATA_HOME=/oracle/X86'
'DB_SID=X86'
'SAPSYSTEMNAME=X86'
'TZ=US/Mountain'
'SHLVL=1'
'HOME=/oracle/X86'
'LOGNAME=orax86'
'ORACLE_HOME=/oracle/X86/102_64'

Best regards,

Rainer

markus_doehr2
Active Contributor
0 Kudos

Anything else in the tracefile? The call to sqlplus?

Markus

Former Member
0 Kudos

This is an excerpt from the logfile of a backup run with trace level 15:


BR0278I Command output of '/usr/sap/X86/SYS/exe/run/brconnect':
BR0801I BRCONNECT 7.00 (34)
PID=21042
BR0280I BRCONNECT time stamp: 2008-08-05 08.26.12
#SIGNAL CAUGHT: 15
BR0249I BR_TRACE: level 1, function brconn_stop exit with 0
BR0248I BR_TRACE: level 1, function BrDbStartup entry with 'X86/SPLIT'

BR0280I BRBACKUP time stamp: 2008-08-05 08.26.13
BR0330I Starting and mounting database instance X86/SPLIT ...
BR0200I BR_TRACE: location BrDbStartup-5, user for SQLPLUS in: /oracle/X86/sapbackup/.bdynfvln.spu
'connect system/********* as sysoper;^'
BR0200I BR_TRACE: location BrDbStartup-10, commands for SQLPLUS in: /oracle/X86/sapbackup/.bdynfvln.spi
'@/oracle/X86/sapbackup/.bdynfvln.spu
host /usr/sap/X86/SYS/exe/run/brtools -f delete /oracle/X86/sapbackup/.bdynfvln.spu;
startup mount;
exit;^'
BR0248I BR_TRACE: level 2, function BrDbaCmdBuild entry with 'NULL 13'
BR0250I BR_TRACE: level 2, function BrDbaCmdBuild exit with '/oracle/X86/102_64/bin/sqlplus /nolog < /oracle/X86/sapbackup/.bdynfvln.spi'
BR0280I BRBACKUP time stamp: 2008-08-05 08.26.13
BR0248I BR_TRACE: level 2, function BrPipeOpen entry with '/oracle/X86/102_64/bin/sqlplus'
BR0248I BR_TRACE: level 3, function BrOraSigPatch entry with 'TRUE'
BR0248I BR_TRACE: level 4, function BrZombieKill entry with 'void'
BR0250I BR_TRACE: level 4, function BrZombieKill exit with 'void'
BR0249I BR_TRACE: level 3, function BrOraSigPatch exit with 0
BR0200I BR_TRACE: location BrPipeOpen-1, command line: 
'( /oracle/X86/102_64/bin/sqlplus /nolog ) < /oracle/X86/sapbackup/.bdynfvln.spi 2>&1'
BR0280I BRBACKUP time stamp: 2008-08-05 08.26.13
BR0250I BR_TRACE: level 2, function BrPipeOpen exit with fffffd7ffef792e0
BR0200I BR_TRACE: location BrDbStartup-12, SQLPLUS output from pipe: 
'^'
'SQL*Plus: Release 10.2.0.1.0 - Production on Tue Aug 5 08:26:13 2008^'
'^'
'Copyright (c) 1982, 2005, Oracle.  All rights reserved.^'
'^'
'SQL> ERROR:^'
BR0278E Command output of '/oracle/X86/102_64/bin/sqlplus /nolog < /oracle/X86/sapbackup/.bdynfvln.spi':
'ORA-12545: Connect failed because target host or object does not exist^'
'^'
'^'
'SQL> ^'
'SQL> ORA-12545: Connect failed because target host or object does not exist^'
'SQL> '
BR0280I BRBACKUP time stamp: 2008-08-05 08.26.14
BR0248I BR_TRACE: level 2, function BrPipeClose entry with '/oracle/X86/102_64/bin/sqlplus /nolog < /oracle/X86/sapbackup/.bdynfvln.spi'
BR0248I BR_TRACE: level 3, function BrOraSigPatch entry with 'FALSE'
BR0248I BR_TRACE: level 4, function BrZombieKill entry with 'void'
BR0250I BR_TRACE: level 4, function BrZombieKill exit with 'void'
BR0249I BR_TRACE: level 3, function BrOraSigPatch exit with 0
BR0280I BRBACKUP time stamp: 2008-08-05 08.26.14
BR0249I BR_TRACE: level 2, function BrPipeClose exit with 0
BR0280I BRBACKUP time stamp: 2008-08-05 08.26.14
BR0279E Return code from '/oracle/X86/102_64/bin/sqlplus /nolog < /oracle/X86/sapbackup/.bdynfvln.spi': 0
BR0302E SQLPLUS call for database instance X86/SPLIT failed
BR0332E Start and mount of database instance X86/SPLIT failed
BR0249I BR_TRACE: level 1, function BrDbStartup exit with -1
BR0248I BR_TRACE: level 1, function BrCleanup entry with 5
BR0248I BR_TRACE: level 2, function BrFileDelete entry with '/oracle/X86/sapbackup/cntrlX86.dbf'

Best regards,

Rainer

markus_doehr2
Active Contributor
0 Kudos

Do you have any split_options or split_cmds in initX86.ora configured? Maybe a missing " or '?

and btw:

> 'SQL*Plus: Release 10.2.0.1.0 - Production on Tue Aug 5 08:26:13 2008^'

I would upgrade to 10.2.0.2 (+ the two dozen interim patches), the version you use is not supported officially.

Markus

Former Member
0 Kudos

Just two things i observed at my place:

- Our online split mirror backups don't mount anything at all. Brbackup is getting the list of files and redologs from the primary database. But we do those backups on a dedicated backup server, which imports a copy of the production disks.

- I tried to reproduce the behavior you have, i just set ORACLE_SID to C11/SPLIT and did a brconnect -u / -c -f dbstart -TRC 15, looks exactly the same.

BR0200I BR_TRACE: location BrEnvProcess-1, Environment of BRCONNECT: 
'HOME=/oracle/C11'
...
'ORACLE_SID=C11/SPLIT'
...
BR0249I BR_TRACE: level 1, function db_connect exit with -10
BR0248I BR_TRACE: level 1, function BrDbStartup entry with 'C11/SPLIT'

BR0280I BRCONNECT time stamp: 2008-08-06 07.11.57
BR0304I Starting and opening database instance C11/SPLIT ...

But as you already checked ORACLE_SID, the error must be somewhere else. Just to make sure, please check the .dbenv.csh AND dbenv.sh files.

Best regards, Michael

Former Member
0 Kudos

Markus,

there is no "split" keyword in the initX86.ora file:


*._OPTIM_PEEK_USER_BINDS=FALSE
*.background_dump_dest='/oracle/X86/saptrace/background'
*.compatible='10.2.0'
*.control_file_record_keep_time=30
*.control_files='/oracle/X86/origlogA/cntrl/cntlrX86.dbf','/oracle/X86/origlogB/cntrl/cntrlX86.dbf','/oracle/X86/sapdata1/cntrl/cntrlX86.dbf'
*.core_dump_dest='/oracle/X86/saptrace/background'
*.db_block_size=8192
*.db_cache_size=1141521776
*.db_files=254
*.db_name='X86'
*.dml_locks=4000
*.event='10191 trace name context forever, level 1'
*.FILESYSTEMIO_OPTIONS='setall'
*.job_queue_processes=1
*.log_archive_dest='/oracle/X86/oraarch/X86arch'
*.log_buffer=1048576
*.log_checkpoint_interval=0
*.log_checkpoints_to_alert=true
*.open_cursors=800
*.optimizer_features_enable='10.2.0.1'
*.pga_aggregate_target=1522029035
*.processes=80
*.recyclebin='off'
*.remote_login_passwordfile='exclusive'
*.remote_os_authent=true
*.sessions=96
*.sga_max_size=2283043553
*.shared_pool_reserved_size=114152177
*.shared_pool_size=1141521776
*.sort_area_retained_size=0
*.sort_area_size=2097152
*.statistics_level='typical'
*.undo_management='AUTO'
*.undo_retention=43200
*.undo_tablespace='PSAPUNDO'
*.user_dump_dest='/oracle/X86/saptrace/usertrace'
*.workarea_size_policy='AUTO'

As for the Oracle client version on the backup server (where the Oracle client is installed only, i.e. no other Oracle database server software) - I will upgrade to v10.2.0.2.0 (the version that is running on the database server) and check if this solves the problem.

Thank you,

Rainer

Former Member
0 Kudos

Michael,

the command


more /oracle/X86/.dbenv.sh | grep X86/SPLIT 

did not return any matching line. I tried with .dbenv.sh, .dbenv.csh, .dbenv_<db_hostname>.sh, .dbenv_<db_hostname>.csh.

A sample is the following:


# @(#) $Id: //bc/700-1_REL/src/ins/SAPINST/impl/tpls/ora/ind/DBENV.CSH#7 $
# Oracle RDBMS Environment
setenv THREAD NOPS
if ( $THREAD == NOPS ) then
    set    DBSID = X86
else
    if ( $THREAD != "001" ) then
       set DBSID = X86_${THREAD}
    else 

       set DBSID = X86 
    endif
endif
setenv dbms_type       ORA
setenv dbs_ora_tnsname $DBSID
setenv dbs_ora_schema  SAPSR3
setenv ORACLE_SID      $DBSID
setenv DB_SID          X86
setenv ORACLE_BASE     /oracle
# check for running user and set for orasid ORA_NLS10
set USER = `id | awk -F\( '{print $2}' | awk -F\) '{print $1}'`
set TRUL = 'tr "ABCDEFGHIJKLMNOPQRSTUVWXYZ" "abcdefghijklmnopqrstuvwxyz"'
set ORASID = "ora`echo $DB_SID | $TRUL`"
if ( $USER != $ORASID ) then
  setenv TNS_ADMIN       /usr/sap/X86/SYS/profile/oracle
  set ADD=/oracle/client/10x_64/instantclient
  set _t=/oracle/X86/102_64/bin/sqlplus
  set _f=/sapmnt/X86/profile/DEFAULT.PFL
  set SAPDBHOST=""
  if ( -r "$_f" ) then
    set SAPDBHOST=`awk -F= '/^[ 	]*SAPDBHOST[ 	]*=/ {print $2; exit}' $_f | awk '{print $1}'`
  endif
  if ( -r "$_t" || `uname -n` == "$SAPDBHOST"  ) then
    setenv ORACLE_HOME /oracle/X86/102_64
  endif
else
  setenv ORACLE_HOME     /oracle/X86/102_64 
  set ADD=/oracle/X86/102_64/lib
endif
setenv NLS_LANG        AMERICAN_AMERICA.UTF8
setenv SAPDATA_HOME    /oracle/X86
setenv DIR_LIBRARY     /usr/sap/X86/SYS/exe/run
if ( $?ORACLE_HOME ) then
  foreach d ( $ORACLE_HOME/bin )
    set i=0
    foreach p ( $path )
        if ( "$p" == "$d" ) then
            set i=1
            break
        endif
    end
    if ( $i == 0 ) then
        set path = ( $d $path )
    endif
  end
endif
switch (`uname`)
    case AIX*:
        if ( ! $?LIBPATH ) then
            setenv LIBPATH /usr/lib:/lib:${ADD}:/usr/sap/X86/SYS/exe/run
        else
            foreach d ( /usr/sap/X86/SYS/exe/run ${ADD} )
                set i=0
                foreach p ( `echo $LIBPATH | sed 's/:/ /g'` )
                    if ( "$p" == "$d" ) then
                        set i=1
                        break
                    endif
                end
                if ( $i == 0 ) then
                    setenv LIBPATH ${LIBPATH}:$d
                endif
            end
        endif
        breaksw
    case HP*:
        if ( ! $?SHLIB_PATH ) then
            setenv SHLIB_PATH ${ADD}:/usr/sap/X86/SYS/exe/run
        else
            foreach d ( /usr/sap/X86/SYS/exe/run ${ADD} )
                set i=0
                foreach p ( `echo $SHLIB_PATH | sed 's/:/ /g'` )
                    if ( "$p" == "$d" ) then
                        set i=1
                        break
                    endif
                end
                if ( $i == 0 ) then
                    setenv SHLIB_PATH ${SHLIB_PATH}:$d
                endif
            end
        endif
        breaksw
    case SIN*:
    case Reliant*:
    case Linux*:
        if ( ! $?LD_LIBRARY_PATH ) then
            setenv LD_LIBRARY_PATH ${ADD}:/usr/sap/X86/SYS/exe/run
        else
            foreach d ( /usr/sap/X86/SYS/exe/run ${ADD} )
                set i=0
                foreach p ( `echo $LD_LIBRARY_PATH | sed 's/:/ /g'` )
                    if ( "$p" == "$d" ) then
                        set i=1
                        break
                    endif
                end
                if ( $i == 0 ) then
                    setenv LD_LIBRARY_PATH ${LD_LIBRARY_PATH}:$d
                endif
            end
        endif
        breaksw
        
    case OSF*:
        if ( ! $?LD_LIBRARY_PATH ) then
            setenv LD_LIBRARY_PATH ${ADD}:/usr/sap/X86/SYS/exe/run
        else
            foreach d ( /usr/sap/X86/SYS/exe/run  ${ADD} )
                set i=0
                foreach p ( `echo $LD_LIBRARY_PATH | sed 's/:/ /g'` )
                    if ( "$p" == "$d" ) then
                        set i=1
                        break
                    endif
                end
                if ( $i == 0 ) then
                    setenv LD_LIBRARY_PATH ${LD_LIBRARY_PATH}:$d
                endif
            end
        endif
        breaksw
    default:
        if ( ! $?LD_LIBRARY_PATH ) then
            setenv LD_LIBRARY_PATH ${ADD}:/usr/sap/X86/SYS/exe/run
        else
            foreach d ( /usr/sap/X86/SYS/exe/run ${ADD} )
                set i=0
                foreach p ( `echo $LD_LIBRARY_PATH | sed 's/:/ /g'` )
                    if ( "$p" == "$d" ) then
                        set i=1
                        break
                    endif
                end
                if ( $i == 0 ) then
                    setenv LD_LIBRARY_PATH ${LD_LIBRARY_PATH}:$d
                endif
            end
        endif
        breaksw
endsw
# define some nice aliases
alias cdora 'cd /usr/sap/$SAPSYSTEMNAME/SYS/profile/oracle'
# end Oracle RDBMS Environment

Thank you for your time,

Rainer