This post is more than 5 years old

2 Posts

8322

August 12th, 2014 03:00

Oracle RMAN duplicate ignoring NSR_CLIENT

Hi all,

I am trying to do a remote restore /  RMAN duplicate using NMDA.

We have an Oracle 11.2.0.3 database "PRODDB" running on an Oracle Linux 5 x86_64 server called "proddbserver".

The fqdn for this server is proddbserver.domain.local.

On this server we have a working backup/restore using NMDA going.

The following packages are installed:

lgtoman-8.1.1.1-1

lgtoclnt-8.1.1.1-1

lgtonmda-1.6.0.2-1

The backups are made to networker server "nwserver.networker" with automatic channel allocation from RMAN and the following NSR options are used:

NSR_SERVER=nwserver.networker

NSR_CLIENT=proddbserver.abc.networker

Next, we have an Oracle 11.2.0.3 database called "TESTDB" also running an Oracle Linux 5 x86_64 server called "testdbserver".

The fqdn for this server is testdbserver.domain.local.

Again the following packages are installed:

lgtoman-8.1.1.1-1

lgtoclnt-8.1.1.1-1

lgtonmda-1.6.0.2-1

The testdbserver has been granted remote access to the proddbserver.

On the testdbserver I can successfully query the networker server for volume info using nsrorainfo:

For example last night a controlfile and spfile autobackup for the PRODDB was created with file name "c-3942296553-20140812-01".

oracle@testdbserver ~]$ nsrorainfo -s nwserver.networker -c proddbserver.abc.networker c-3942296553-20140812-01

This successfully lists the volume networker intends to use, so the privileges seem to be correct.

Now when I run the RMAN duplicate statement on the testdbserver I have to use the NSR_CLIENT setting which was used to create the backup, so in my RMAN run block I have to use NSR_SERVER=proddbserver.abc.networker in order to be able to perform the duplicate.

Defining the required NSR_CLIENT and NSR_SERVER variables for an Oracle restore

For some reason however RMAN / Networker does not use the NSR_CLIENT which I have included in the run block and ignores it.

When I start the duplicate I get this message:

RMAN> connect target sys@PRODDB

target database Password:

connected to target database: PRODDB (DBID=123456789)

RMAN> connect auxiliary /

connected to auxiliary database: TESTDB (not mounted)

RMAN>

run

{

allocate auxiliary channel ch1 DEVICE TYPE 'SBT_TAPE' PARMS 'ENV=(NSR_SERVER=nwserver.networker,NSR_CLIENT=proddbserver.abc.networker)';

duplicate target database to 'TESTDB' 

UNTIL TIME "to_date('08/11/14 16:00:00','mm/dd/yy hh24:mi:ss')";

}

Starting restore at 12-AUG-14

channel ch1: starting datafile backup set restore

channel ch1: restoring control file

channel ch1: reading from backup piece c-3942296553-20140812-01

channel ch1: ORA-19870: error while restoring backup piece c-3942296553-20140812-01

ORA-19507: failed to retrieve sequential file, handle="c-3942296553-20140812-01", parms=""

ORA-27029: skgfrtrv: sbtrestore returned error

ORA-19511: Error received from media manager layer, error text:

Could not locate the backup piece 'c-3942296553-20140812-01' on the NetWorker server 'nwserver.networker' for the client 'testdbserver.domain.local'. Notify the backup administator. (2:9:2

failover to previous backup

etc...

This then continues to look for an older backup piece which it also cannot find until it has tried all relevant backup pieces.

It makes sense that it cannot locate the backup piece for client 'testdbserver.domain.local', but it should have been looking for client 'proddbserver.abc.networker' instead as that was what I have configured in the allocate channel.

I have tried several things but can't get it to work.

I've tried exporting NSR_CLIENT on OS.

I've created a file /nsr/apps/res/nmda_oracle_defaults:

oracle@testdbserver ~]$ cat /nsr/apps/res/nmda_oracle_defaults

NSR_CLIENT=proddbserver.abc.networker

NSR_SERVER=nwserver.networker

But it keeps ignoring the NSR_CLIENT setting and using the 'localhost' name instead.

Do any of you know what could be wrong here and why the NSR_CLIENT value I have used is being ignored?

Thanks!

Lauris

2 Posts

August 14th, 2014 03:00

We have just solved the problem.

I don't have access to the EMC knowledge base, but a colleague who does found this article:

Unable to Restore Oracle database from NetWorker/NMDA to DR database server

Article Number:000188753 Version:2

The following was mentioned in the article:

NetWorker Destination Client:

3. Must be able to resolve the hostnames for Source client, any storage node and NetWorker server which will be used for the restore.

DNS was not setup to be able to resolve the "abc.networker" hostnames.

This had only been arranged for the "domain.local" hostnames.

The local backup/restore works fine without this name resolving, but apparently it is required for remote restores.

So I had our sysadmins setup DNS resolving for the backup network hostnames "abc.networker".

After this I was able to successfully resolve "testdbserver.abc.networker" to the backup interface on this server.

I then retried the RMAN duplicate and it finished successfully.

So fixing the name resolving was the solution to the duplicate problem.

Regards,
Lauris

6 Operator

 • 

14.4K Posts

 • 

56.2K Points

August 13th, 2014 17:00

I do not use NMDA 1.6 yet (1.5 is what I use) and haven't see this before.  Only difference is I use catalog while I can't see that in your pasted part, but can't see how that would be related.  Does testdbserver.domain.local exist on backup server defined as client? I guess I would check following:

- is testdbserver.domain.local defined as client on backup server;  if not, create it

- if you temporary open server (user=*, host=*), does this change anything?

- if you try the same with NMDA 1.5, does this change anything?

1 Message

June 17th, 2017 03:00

Hi,

you can try like below it is important to write ""EOF" tag.

rman catalog rman/rman@RCAT auxiliary / << EOF

set DBID=1898794276

run {

ALLOCATE AUXILIARY CHANNEL  ch00 TYPE 'SBT_TAPE' parms 'ENV=(NSR_DATA_VOLUME_POOL=DDOracle,NSR_CLIENT=client,NSR_SERVER=server)';

ALLOCATE AUXILIARY CHANNEL  ch01 TYPE 'SBT_TAPE' parms 'ENV=(NSR_DATA_VOLUME_POOL=DDOracle,NSR_CLIENT=client,NSR_SERVER=server)';

ALLOCATE AUXILIARY CHANNEL  ch02 TYPE 'SBT_TAPE' parms 'ENV=(NSR_DATA_VOLUME_POOL=DDOracle,NSR_CLIENT=client,NSR_SERVER=server)';

ALLOCATE AUXILIARY CHANNEL  ch03 TYPE 'SBT_TAPE' parms 'ENV=(NSR_DATA_VOLUME_POOL=DDOracle,NSR_CLIENT=client,NSR_SERVER=server)';

SET UNTIL TIME "TO_DATE('01/04/2017,08:00:00', 'DD/MM/YYYY,HH24:MI:SS')";

DUPLICATE TARGET DATABASE TO 'RSTDB' nofilenamecheck;

RELEASE CHANNEL ch00;

RELEASE CHANNEL ch01;

RELEASE CHANNEL ch02;

RELEASE CHANNEL ch03;

}

EOF

No Events found!

Top