Previous Page | Next Page

The MIGRATE Procedure

Example 2: Migrating with SLIBREF= across Computers

Tip: You can use the PROC MIGRATE Calculator on the SAS web site at, which provides the PROC MIGRATE syntax needed for your specific migration.
Tip: You are encouraged to run PROC MIGRATE with validation tools. See Migrating a Library with Validation Tools.
Procedure features:

MIGRATE statement options:




In this example, the source and target libraries are on different computers. Because the source library contains catalogs that are incompatible with the current release of SAS, the SLIBREF= option is required. (See Using the SLIBREF= Option to learn whether SLIBREF= is required.)

You can assign the source library (except the catalogs) to the IN= argument in one of the following two ways:

This example uses NFS, which is a standard protocol of UNIX operating environments. See the documentation for NFS and for your operating environment. If you are not in a UNIX environment, or if you wish to use a SAS/CONNECT or SAS/SHARE server to access the source library, please see Example 1 for instructions.

The example uses the SLIBREF= argument to access the catalogs in the source library. 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.


In this example, the source library was created in SAS 8.2. If catalogs were created in SAS 6 or SAS 8.2, SLIBREF= must be assigned through a SAS 8.2 server.

  1. 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';

  2. 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:

    libname srclib <engine> 'source-library-pathname';

  3. 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';

  4. 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;

  5. Assign the target library:

    libname target <engine> 'target-library-pathname';

  6. 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>; 

    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>;

Previous Page | Next Page | Top of Page