Configuring LIBNAME Domain Disk Space

You define the primary file system for each LIBNAME domain for the SPD Server user base. You can define initial and overflow storage locations for the .dpf data component files, as well as for the two index component (.hbx and .idx ) files.

Example 1: Primary File System Storage for All Component Files

The primary file system is the base directory that you assign to the LIBNAME domain by issuing a PATHNAME= statement in the SPD Server LIBNAME parameter file, libnames.parm. Here is an example of a libnames.parm parameter file entry:
   spdsserv -acl
      -acldir InstallDir/site
      -nameserver samson
      -libnamefile libnames.parm
Sample libnames.parm file entry for a UNIX system:
LIBNAME=all_users 
  pathname=/disk1/peruser_tables;
Sample libnames.parm file entry for Windows:
LIBNAME=all_users 
  pathname=d:\peruser_tables;
When SPD Server users create new tables in a LIBNAME domain, you must keep in mind that thee metadata component (.mdf) must start in the primary file system. If all the available space in the primary file system is consumed, SPD Server cannot create new tables until disk space becomes available.
Example 1 stores all the component files (metadata, data, and index data) in the primary file system. This arrangement can cause problems if you use large tables. Large tables can quickly fill up the primary file system. To avoid this problem, you should store the data and index components separately from the primary file system. Example 2 shows how to do this using ROPTIONS= with your LIBNAME statement in your libnames.parm file.

Example 2: Using ROPTIONS= to Store SPD Server Table Data and Index Component Files in Other File Systems

The following SPD Server code invokes the libnames.parm file:
   spdsserv -acl
      -acldir InstallDir/site
      -nameserver samson
      -libnamefile libnames.parm

Sample libnames.parm for a UNIX system:
   LIBNAME=all_users pathname=/disk1/peruser_tables
      roptions="datapath=('/disk2/userdata' '/disk3/userdata'
                          '/disk12/userdata' '/disk13/userdata')
      indexpath=('/disk4/userindexes' '/disk5/userindexes'
                 '/disk14/userindexes' '/disk15/userindexes')";

Sample libnames.parm for a Windows system:
   LIBNAME=all_users pathname=d:\peruser_tables
      roptions="datapath=('e:\userdata' 'f:\userdata')
         indexpath=('g:\userindexes' 'h:\userindexes')";
In Example 2, the PATHNAME= directory stores metadata files for SPD Server tables in the all_users LIBNAME domain. The initial and overflow stores for the data and index files are directed to other file systems. In Example 2, users who create large tables will not quickly exhaust the primary file system; the primary file system is reserved for only small metadata files. The larger data and index files are stored in the other file systems specified with the DATAPATH= and INDEXPATH= options in the LIBNAME parameter file.

Example 3: Adding More File Systems to a Path Option When Its File System Is Full

If you need to add file systems to your path because an existing file system is running out of space, see the following:
   spdsserv -acl
      -acldir InstallDir/site
      -nameserver samson
      -libnamefile libnames.parm

Sample libnames.parm for a UNIX system:
LIBNAME=all_users pathname=/disk1/peruser_tables
   roptions="datapath=('/disk2/userdata' '/disk3/userdata'
                       '/disk12/userdata' '/disk13/userdata')
   indexpath=('/disk4/userindexes' '/disk5/userindexes'
              '/disk14/userindexes' '/disk15/userindexes')";
Sample libnames.parm for a Windows system:
LIBNAME=all_users
pathname=d:\peruser_tables
   roptions="datapath=('e:\userdata'
                       'f:\userdata'
                       'i:\userdata')
   indexpath=('g:\userindexes'
              'h:\userindexes'
              'j:\userindexes')";
In Example 3, SAS users can continue to create more SPD Server tables, as long as space is available for the metadata files in the primary file system. When the primary file system is exhausted, you must create a new LIBNAME domain. You cannot expand storage for the .mdf components by adding the METAPATH= specification to your ROPTIONS= value in your LIBNAME parameter file. Remember the SPD Server restriction : the initial partition file for all .mdf components must be created in the primary file system (the directory that was first specified by the PATHNAME= option for the LIBNAME domain).

Advantages of Using ROPTIONS=

ROPTIONS= specifications override any corresponding options that your SAS users include in their programs. In example 3, the system administrator maintains explicit control of disk usage. Even if SAS users specify file systems using the DATAPATH= and INDEXPATH= LIBNAME options during their LIBNAME connection, the administrator's use of DATAPATH= and INDEXPATH= with ROPTIONS= overrides the SAS users' specifications.
In contrast, when you use OPTIONS=, a keyword that is syntactically the same as ROPTIONS=, you are not overriding a user specification. Instead, you are supplementing the user-specified options. In this case, if a user specifies an option, the user's setting is implemented. If the user omits an option, your OPTIONS= specification in the libnames.parm file is used.
CAUTION:
Do not specify DATAPATH=, INDEXPATH=, and METAPATH= with OPTIONS=.
If you use OPTIONS=, the disk allocation results cannot be predicted. Use ROPTIONS= to explicitly control disk usage at your site.