MIGRATE Procedure

Example 2: Migrating with Incompatible Catalogs across Computers

Features:

IN=

OUT=

SLIBREF=

Notes: You are encouraged to run PROC MIGRATE with validation tools. See Migrating a Library with Validation Tools .

To learn whether this is the correct PROC MIGRATE example for your migration, use the PROC MIGRATE Calculator on the SAS Web site at http://support.sas.com/rnd/migration/planning/files/migratecalc/

Details

In this example, the following is demonstrated:
  • The source and target libraries are on different computers.
  • The SLIBREF= argument accesses the catalogs in the source library. (See Using the SLIBREF= Option to learn whether SLIBREF= is required.) The SLIBREF= argument must be assigned to a SAS/CONNECT or SAS/SHARE server running in a session of SAS that can access the catalogs. For example, if the source library contains SAS 8.2 catalogs created by 32-bit Solaris, SLIBREF= must be assigned to a SAS 8.2 32-bit Solaris server. If catalogs were created in SAS 6, SLIBREF= must be assigned through a SAS 8.2 server that is compatible with the data representation of the SAS 6 catalogs.
  • The IN= argument accesses the rest of the supported file types in the source library. You can assign the source library to the IN= argument in one of the following two ways:
    • directly via a Network File System (NFS)
    • via a SAS/CONNECT or SAS/SHARE server
    This example uses NFS, which is a standard protocol of UNIX operating environments. See the documentation for NFS and for your operating environment.

Program

signon v8srv sascmd='my-v8–sas-invocation-command';
rsubmit;
libname srclib <engine> 'source-library-pathname';
endrsubmit;
libname source <engine> '/nfs/v8machine-name/source-library-pathname';
libname srclib <engine> server=v8srv;
libname target <engine> 'target-library-pathname';
proc migrate in=source out=target slibref=srclib <options>;
run;
proc migrate out=target slibref=srclib <options>;
run;

Program Description

From a session in the current release of SAS, submit the SIGNON command to invoke a SAS/CONNECT server session.Note that because you are working across computers, you might specify a machine name in the server ID.
signon v8srv sascmd='my-v8–sas-invocation-command';
Within this remote SAS 8.2 session, assign a libref to the source library that contains the library members to be migrated.Use the RSUBMIT and ENDRSUBMIT commands for SAS/CONNECT.
rsubmit;
libname srclib <engine> 'source-library-pathname';
endrsubmit;
In the local (client) session in the current release, assign to the same source library through NFS.
libname source <engine> '/nfs/v8machine-name/source-library-pathname';
Assign the same libref to the same source libref as in step 2 (in this example, SRCLIB).But do not assign the libref to a physical location. Instead, specify the SERVER= option with the server ID (in this example, V8SRV) that you assigned in the SIGNON command in step 1.
libname srclib <engine> server=v8srv;
Assign the target library.
libname target <engine> 'target-library-pathname';
Use PROC MIGRATE with the SLIBREF= option.For the IN= and OUT= options, specify the usual source and target librefs (in this example, SOURCE and TARGET, respectively). Set SLIBREF= to the libref that uses the SERVER= option (in this example, SRCLIB).
proc migrate in=source out=target slibref=srclib <options>;
run;
Alternatively, if CATALOG is the only member type in the library and you are using the SLIBREF= option, then omit the IN= argument.
proc migrate out=target slibref=srclib <options>;
run;