The SPD Server 4.5 installation includes client modules that are compatible with SAS 9.2. • SPD Server 4.5 is not compatible with SAS versions earlier than SAS 9.2. Refer to the appropriate SPD Server UNIX or Windows installation guide for more information about SAS software requirements for use with SPD Server 4.5.
An SPD Server host can read user format catalog files that were created by SAS running on Windows, or on the same machine as the SPD Server host. The spdsls list utility has been enhanced to add a option.
Part 2 Installation Chapter 2 SPD Server Pre-Installation and System Requirements Guide ..Chapter 3 SPD Server UNIX Installation Guide ......Chapter 4 SPD Server Windows Installation Guide .
System Requirements ..........AIX Requirements and Tuning for 64-bit SPD Server For complete information about AIX tuning for SAS SPD Server, see the white paper selection available on SAS Institute's external Web site at: www.sas.com/partners/ directory/ibm/papers.html...
Chapter 2 • SPD Server Pre-Installation and System Requirements Guide • Minimum System Configuration: HP-PA 2.0 server system with minimum 2Gb memory. Kernel Tuning Requirements The following kernel parameters are for HP-UX 11.11 and HP-UX 11.23. They need to be adjusted on the HP server system where you will run SPD Server.
System Requirements Solaris on Sparc Requirements and Tuning for 64- bit SPD Server System Requirements The following kernel parameter needs to be adjusted on Solaris server systems where you will run SPD Server. • rlim_fd_max = Process limit for open files. Adjust the parameter to accommodate the maximum number of the number of concurrently open SPD tables multiplied by the maximum number of partitions in an SPD Server table.
Windows Requirements and Tuning for 32-bit SPD Server System Requirements • Required OS level: Windows NT 4.0 Service pack 3 or greater • Minimum System Configuration: NT server system. SPD Server 4.5 Client Requirements System Requirements • Required SAS level: SPD Server 4.5 requires SAS 9.2.
SAS Scalable Performance Data Server (SPD Server) 4.5 can be installed as part of your initial SAS 9.2 installation. Or, SPD Server 4.5 can be installed as an add-on product to an existing SAS 9.2 installation. In either case, the SPD Server 4.5 installation is facilitated by the SAS Deployment Wizard.
Server. The spdsserv.parm file is located in the root directory of your SPD Server host installation. For more information about the WORKPATH= option and configuring servers for performance, see the SAS Scalable Performance Data (SPD) Server 4.5: User's Guide.
Page 20
Performance Data (SPD) Server 4.5: User's Guide documentation. This guide provides SPD Server LIBNAME and data set usage and syntax options. • verify.sas is a SAS installation verification job. You should run it after you install SPD Server. • spdsinst.sas demonstrates the simple use of WHERE clauses and WHERE planner output.
• process_perf_log is a Perl script that processes a Performance Server log and server log into data that can be read into a SAS data set for post-performance analysis. The parameters are detailed in the script. • PerfDataSample.sas is used to read a processed Performance Server log into a SAS data set.
Chapter 3 • SPD Server UNIX Installation Guide Upgrading SPD Server 4.x to SPD Server 4.5 Overview of Upgrading from SPD Server 4.x to SPD Server 4.5 SPD Server 4.x tables are compatible for use with SPD Server 4.5. No conversion is required to use SPD Server 4.x tables with SPD Server 4.5.
Page 23
SPD Server password file, following the add command. You should see content similar to the following: SAS Scalable Performance Data Server Host 4.50 Password Manager Utility Copyright (c) 1996-2009 by SAS Institute Inc, Cary NC 27513 Enter command > groupdef admingrp Group admingrp defined Enter command >...
Page 24
Chapter 3 • SPD Server UNIX Installation Guide thought and planning. You should decide how to organize your existing disk storage to best exploit the capabilities of the SPD Server. For more information, see “SPD Server Host Commands” on page 27 and the libsamp.parm file.
Page 25
Configuring SPD Server Host Software for Your Site # addition, the SPDS server listen port and operator port # must be surfaced through the firewall. If you are not # running through a firewall allow the server to choose # these ports. # SRVLPORT is the SPDS server listen port;...
Page 26
Chapter 3 • SPD Server UNIX Installation Guide # port number. If not explicitly specified it # will default to the "spdssnet" service in /etc/services /bin/sleep 2 if [ -z "$SNSPORT" ]; then spdssnet 1>$SNSLOG 2>&1 & else spdssnet -listenport $SNSPORT 1>$SNSLOG 2>&1 & •...
Page 27
Configuring SPD Server Host Software for Your Site The LOGFILE= and LOGTIME= spdsserv options are enabled by default with the following shell variables: LOGFILE=spdsserv Specifies the spdsserv process log file prefix. LOGTIME=00:00 Specifies the time of day to cycle the log file. These settings enable automatic log filename generation and cycling by specifying the log file prefix and the log file cycle time of day.
3. The rc.perf script is an example script to start the Performance Server. Verify That SPD Server 4.5 Is Running If you connected to SPD Server through a SAS connection, verify that both the SPD Server Name Server (spdsnsrv) and the SPD Server host (sdpsserv) processes are running. Issue the UNIX ps command.
Once the SPD Server environment is configured and running, you need to complete other installation functions on the SAS clients that will use SPD Server. This might include the system that is actually running SPD Server. Therefore, some of these steps might have already been performed during the installation of the SPD Server host.
If you are running SAS with an existing SPD Server installation, this service name is probably already defined. You can either define another service name for the SAS client to use (for example, sp45name) or you can directly include the SPD Server port number in your SAS statements.
Page 31
LIBNAME definition in the sample libnames.parm file was not changed during installation. Watch the SAS log for error messages. You might see failures to properly one or more required SPD Server components. Examples of common error messages are displayed. If you receive one of the following error messages, check your -PATH option to confirm...
Chapter 3 • SPD Server UNIX Installation Guide 4. Verify that SQL Pass-Through services are working in SPD Server by submitting the following SAS commands: %let spdshost=serverNode; %let spdsport=port; %include 'InstallDir/samples/verptsql.sas'/source2; are described in Step 2. serverNode port SPD Server Command Reference SPD Server operation revolves around the executable files described in the packing list.
Name Server to use. -licensefile lic-file License file keys are generated by SAS and provided to you. With this release of SPD Server, you receive an SPD Server license key for each machine where you license SPD Server. Each key must be entered into the license file by the SPD Server administrator.
Page 34
Most sites do not need to modify the default values . For more information about the InstallDir/site/spdsserv.parm parameter file, see "Setting Up SPD Server Parameter Files" in the SAS Scalable Performance Data (SPD) Server 4.5: User's Guide.For more information about setting up server parameters, see“Introduction”...
SNET Server Commands -auditfile fileSpec Enables audit logging for the server and automatic audit log file creation by the audit process. specifies a path or filename specification that is used to generate fileSpec the complete audit file path. For example, if you specified fileSpec /audit/ , the generated name would appear as:...
This client application uses an extensible plug-in architecture, allowing you to customize the console to support a wide range of administrative capabilities. When you install SAS 9.2 and SPD Server 4.5, you are prompted to install the SAS Management Console utility. For more information about SAS Management Console, see“Introduction”...
Page 37
SPD Server Lightweight Directory Access Protocol (LDAP) Authentication Table 3.1 Parameters for spdsserv.parm Parameter Description Values Default Setting (NO)LDAP: LDAP/NOLDAP NOLDAP directs user authentication to LDAP Server LDAPSERVER: a valid IP address LOCAL_HOST LDAP Server IP address LDAPPORT: 0-65536 LDAP_PORT LDAP Server port number LDAPBINDMETH: "LDAP_AUTH_SIMPLE"...
SPD Server utility programs much easier. SAS recommends that you run your SPD Server environment using the same UNIX user ID that was used to install SPD Server on the server machine. The user ID should also be the SPD Server administrator's user ID.
LDAP Password Authentication Here are some options for establishing the appropriate UNIX user ID for your SPD Server processes: Establish a dedicated UNIX account for the SPD Server administrator. Always execute the rc.spds script from that account. The rc.spds script that starts the SPD Server processes should use the setuid bit. It does not matter who executes the script, the user ID of the shell executing the script is the script owner.
SPD Server password file. SAS LIBNAME Assignment Failed On the SAS side, first attempts to diagnose a failure depend on the error messages from the SPD Server LIBNAME engine through the SAS LOG output. In most circumstances you should be able to diagnose the reason for the failure from this message.
Page 41
5. Invalid SPD Server user password specified in the LIBNAME statement. In this case, the SPD Server user ID is derived from the UNIX user ID running the SAS session. The SPD Server password file has an entry for this SPD Server user ID, but the password is not xxx.
Chapter 3 • SPD Server UNIX Installation Guide Using SETINIT to Extend SPD Server Software When you receive SPD Server, licensing information is pre-initialized. When you renew the license, you receive a new license to replace your existing license. You must restart SPD Server to use the new license.
SAS Scalable Performance Data Server (SPD Server) 4.5 can be installed as part of your initial SAS 9.2 order, or SPD Server 4.5 can be installed as an add-on to an existing SAS 9.2 order. In either case, your SPD Server 4.5 installation will be facilitated by the SAS Deployment Wizard utility.
Page 45
SQL Pass-Through from C and C++ applications to SPD Server. • spds.dll is the application extension library that is accessed via the SAS ODBC Driver. directory contains the following files of interest: samples\ •...
Page 46
Performance (SPD) Data Server 4.5: User's Guide. This guide provides SPD Server LIBNAME and data set usage and syntax options. • verify.sas is a SAS installation verification job. You should run it after you install SPD Server. • spdsinst.sas demonstrates the simple use of WHERE clauses and WHERE planner output.
• spdssnet.bat is the SPD Server SNET server start-up batch file. • spdsserv.bat is the SPD Server start-up batch file. directory contains the SAS Management Console files that support SPD spdssmc\ Server. Validating Default Port and Library Assignments After you install SPD Server on your Windows server, you are almost ready to verify your installation.
Chapter 4 • SPD Server Windows Installation Guide Initializing the Password Manager Database Before you can start SPD Server, you must initialize the SPD Server Password Manager database from the SPD Account Manager. To open the SPD Account Manager, use the Windows Start button to select:Programs SPD Server 4.5 SPD Account...
Page 49
Installing SPD Server as a Service When you configure SPD Server in the Services window for the first time, the Status column for the servers will be blank, and the Startup Type column will be set to Manual. Most users want to configure SPD Server to automatically start and stop the Name Server, Data Server, and SNET server.
1. You must configure the libnames.parm file with all of the LIBNAME domains that you use to store SAS tables and catalogs. Declaring all of your LIBNAME domains requires thought and planning and best exploits the parallel processing capabilities of SPD Server.
Page 51
MIN and MAX variable list. • minmax*.sas shows how to use a MIN and MAX variable list on an SPD Server table. • paralleljoin*.sas shows the use of the SQL Parallel Join performance enhancement.
SPD Server 4.x host. Installing and Configuring SPD Server Clients SPD Server client software makes SAS LIBNAME connections and performs user-specific functions on the SPD Server host. SPD Server client software is installed with SAS 9.2. It contains the following SAS modules: •...
(for example, sp45name) or you can directly include the SPD Server port number in your SAS statements. 2. The SPD Server host can be accessed via the SAS ODBC driver, the SAS JDBC driver, and SAS htmSQL. Each of these drivers can be downloaded from the support link of the SAS Web at http://support.sas.com...
DATA step queries of the test data set. If any one of these queries fails to produce the expected result, the SAS job is canceled. The job verify.sas assumes the SAS librefs TEST and TESTRL are assigned from Step 2 above.
Name Server to use. -licensefile lic-file License file keys are generated by SAS Institute and supplied to you. With this production release of SPD Server, you receive an SPD Server license key for each machine where you license the SPD server and that key must be entered into this license file by the SPD Server administrator.
Page 56
Chapter 4 • SPD Server Windows Installation Guide SAS job which processes the audit log and produces a report is provided. Check samples for information about processing the audit log and generating the report. To \audit.sas enable the audit trail log, use the spdsserv command with the -auditfile option.
SPD Server ACL support, you will need to create and populate the SPD Server password file before starting the SPD Server environment. You can use the psmgr utility or the SAS Management Console to manage passwords. For more detailed information, see the Help section on “The Password Manager Utility psmgr”...
SPD Servers are running. The User ID and password information must be stored on an LDAP server that the SPD Server can access. The User ID must also be entered into the SPD Server's password database through PSMGR or the SPD Server 4.5 SAS Management Console Utility to record all other SPD User information.
SPD Server User IDs The LDAPBINDDN parameter is the "Distinguished Name" (DN), or the location in the LDAP Server's database where the client's information is stored. The form of this string is "ID= , rdn1=RDN1, rdn2=RDN2, ...". "ID" is the identifier for the Relative Distinguished Name of a User ID that exists in the LDAP Server database.
SPD Server password file. SAS LIBNAME Assignment Failed On the SAS side, first attempts to diagnose a failure depend on the error messages from the SPD Server LIBNAME engine via the SAS LOG output. In most circumstances you...
Page 61
5. Invalid SPD Server user password specified in the LIBNAME statement. In this case, the SPD Server user ID is derived from the UNIX user ID running the SAS session. The SPD Server password file has an entry for this SPD Server user ID, but the password is not xxx.
Chapter 4 • SPD Server Windows Installation Guide 10? libname foo sasspds 'test' server=sunspot.spdsname user='xxx' passwd='xxx'; ERROR: Error on server libname socket. ERROR: SPD server has rejected login from user xxx.. ERROR: Error in the LIBNAME or FILENAME statement. Using SETINIT to Extend SPD Server Software When you receive SPD Server software, the licensing information is pre-initialized.
SPD Server 3.x software. SPD Server 4.x tables use architectures that utilize SAS 9 metadata. SPD Server 3.x tables use architectures that utilize SAS 8 metadata. The two metadata architectures are not compatible.
SPD Server 4.4 environment to recreate the SPD Server 3.x index files for use with SPD Server 4.4. If you choose to create the SAS job file to recreate SPD Server 3.x indexes for use in SPD Server 4.4, the code will resemble the following: %let SPDSIASY=YES;...
SPD Server 3.x datasets that you intend to convert prior to running the conversion. After the SAS job file recreates the SPD Server 3.x indexes for use with SPD Server 4.4, all remnants of the SPD Server 3.x table are deleted. The SPDSCONV utility does not perform ACL checks during the conversion.
Chapter 5 • SPD Server 3.x to SPD Server 4.5 Conversion Utility creates a SAS job in the log directory for each SPD Server 3.x table conversion where indexes are present. When run, the SAS job recreates the indexes on the SPD Server 4.4 table.
Suppose you want to convert all tables in the sales domain. You also want SPDSCONV want to create SAS jobs that you can run to recreate the indexes after the table conversion completes. You want the SAS jobs put into the directory $HOME/salesv9. You also want a verbose output of the conversion.
Page 70
Chapter 5 • SPD Server 3.x to SPD Server 4.5 Conversion Utility...
Setting Up asiacpu, the Asia Departmental Server ......Which SAS Program Statement Runs Where? ......
Page 74
When your network uses an SPD Server name server, the users do not have to remember which machine houses a particular domain. Users only need to remember that the SAS domain named 'world' contains the tables that they need. The machine that stores the domain can even change without the users' knowledge and the users' SAS programs will continue to run as before.
Page 75
Which SAS Program Statement Runs Where? with the name server. When a SAS LIBNAME statement contains the domain name 'asia' in combination with the appropriate name server, it will locate SPD Server tables in the directory on machine asiacpu. The SAS LIBNAME statement that invokes the...
Page 76
Chapter 6 • Using the SPD Server Name Server to Manage Resources...
For example, you can use SAS Management Console to create a metadata definition for a SAS library that specifies information such as the libref, path, and engine type (such as sasspds). After SAS Management Console stores the metadata definition for the library in the repository on the SAS Metadata Server, any other application can access the definition to access the specified library.
SPD Server . Connecting to an SPD Server Select Connect on the Users tab of the SAS Management Console window to open the Connect to SPD Server window: The Connect to SPD Server window contains input fields for the following components.
Users tab. Users and Groups Overview of Managing Users and Groups Use the Users and Groups tabs in the SAS Management Console window to access either individual user or user group configuration information. Groups Tab On the Groups tab of the SAS Management Console window, click List to display the existing defined groups.
Users and Groups Users Tab On the Users tab of the SAS Management Console window, click List to display the defined users and groups. The window contains the following components: User Name - the name of the user. This field cannot be changed directly. To change a user name, delete the user and then add a new user.
"no limits". Adding a Group To add a group using the Groups tab of the SAS Management Console window, click Add. Enter a group name in the Add Group window and click Add. The group name is...
Overview of the ACL Manager Deleting a User To delete a user using the Users tab of the SAS Management Console window, select the user from the list and click Delete. The user is deleted and the list is updated.
SPD Server host. Listing ACL Resources Click List ACL in the ACL Manager of the SAS Management Console window to display the ACL resources that have been defined. The ACL Manager display contains the following components: Owner - the resource owner.
Adding an ACL Resource To add an ACL resource, click Add ACL in the ACL Manager of the SAS Management Console window, and then complete the values in the Add ACL window.
Chapter 7 • Administering and Configuring SPD Server Using the SAS Management Console LIBNAME - select if the resource is a LIBNAME resource. R, W, A, C - select the appropriate default and group permissions to grant Read, Write, Alter, and Control as appropriate.
Refresh Domains Server Manager Overview of the Server Manager The Server Manager folder in the SPD Management utilities in the SAS Management Console window is used to refresh the server's configuration and to run selected SPD Server utilities. You must connect to an SPD Server host machine before you can use the SPD Management utilities.
Chapter 7 • Administering and Configuring SPD Server Using the SAS Management Console Refresh Parms Click Refresh Parms in the Server Manager to reload the current spdsserv.parm file. The spdsserv.parm file controls server configuration and options. Perform Commands To run an SPD Server operator command or utility function, click Perform Command in the Server Manager.
Command to run a spdsbkup command: SPD Process Profiler The SPD Management folder in SAS Management Console contains an SPD Process Profiler utility. Use the SPD Process Profiler to view server resources that are monitored by the SPD Server Performance Server.
Page 90
Chapter 7 • Administering and Configuring SPD Server Using the SAS Management Console The SPD Server Performance Server gathers SPD Server process performance information and distributes it across the SPD Management section of the SAS Management Console. The SPD Server process performance information consists of memory and resource allocations that are attributable to users and SPD Server processes that are spawned by an SPD Server Name Server.
Performance Server ” on page 141. If the SAS Management Console user also connects to the same SPD Server Name Server via the ACL Manager, the Password Manager, or the Server Manager, the User information that is displayed will be the SPD Server user name that was used to connect with the LIBNAME statement.
Chapter 7 • Administering and Configuring SPD Server Using the SAS Management Console You can filter, sort, reorder, and hide Proxy Manager table columns to display proxies of interest. You perform filtering and sorting by clicking on the column headings and selecting the appropriate choice from the menu.
Proxy Cancel Proxy Cancel Click Cancel to cancel all proxies in the selected libref. The proxy's activity is immediately halted, and any open data connections are immediately closed. Clicking Cancel to stop a proxy from accessing a data set or a given domain is recommended when the interrupt operation is unacceptably delayed.
Page 94
Chapter 7 • Administering and Configuring SPD Server Using the SAS Management Console...
Chapter 8 SPD Server SQL Query Rewrite Facility Overview of the SQL Query Rewrite Facility ......Configuring Storage Space for the SQL Query Rewrite Facility .
Chapter 8 • SPD Server SQL Query Rewrite Facility concurrent SPD Server users. Why is only one domain enough? The SQL Query Rewrite Facility uses the SPD Server TEMP=YES option setting when accessing the LIBNAME domain for intermediate result tables. The TEMP=YES option creates a processing environment where multiple SPD Server users can concurrently create tables with no name or resource contention issues.
Page 97
_QRW Option: the performance of the SQL query execution. The SQL Query Rewrite Facility is enabled by default. Examples: Disable SQL Query Rewrite Facility: execute(reset no_qrwenable) by sasspds; /* Disable query rewrite */ execute(reset _qrwenable=0) by sasspds; /* Another way to disable */ Re-enable SQL Query Rewrite Facility: execute(reset _qrwenable) by sasspds;...
Page 98
Chapter 8 • SPD Server SQL Query Rewrite Facility...
Using Open Database Connectivity (ODBC) to Access SPD Server Tables Read this section if you do not have Base SAS software on the network client, but you want to access SPD Server tables on the network, using an ODBC compliant program, such as...
Configuring ODBC on the Client • You need to view or change SPD Server tables using Windows tools you are familiar with. Installing OBDC Drivers on the Server Instructions for installing the OBDC driver are included in the download package. Configuring ODBC on the Client 1.
SPD SNET server are still supported. Note that connections via the SPD SNET server are not supported in the SAS 9 ODBC Driver software. If you intend to connect via the SPD SNET Server you must install the...
Configuring an ODBC Data Source to Connect Directly to an SPD Server Once the SAS ODBC driver is installed, you will need to configure your ODBC data source. When you open the ODBC manager, you'll get a display screen that allows you to enter information that points the OBDC driver to the data on the SPD Server.
Configuring an ODBC Data Source for SPD SNET Once the SAS ODBC driver is installed, you will need to configure your ODBC data source. When you open the ODBC manager, you'll get a display screen that allows you to enter information that points the OBDC driver to the data on the SPD Server.
Using JDBC (Java) to Access SPD Server Tables Read this information if you do not have Base SAS software on the network client, but you want to use the power of the Java programming language to query SPD Server tables from any client on the network that has a browser.
Chapter 9 • Using SPD Server With Other Clients • The audience for the information understands Web browsing and wants point-and-click access to the information. • You want to distribute the information over the World Wide Web. • Your planned application requires the power of the Java programming language. How Is JDBC Set Up on the Server? JDBC is usually set up on the server at the time the SPD Server is installed.
This must not be altered. Line 7: • Sets the foreign database property on the JDBC driver. This means that the server is not SAS and JDBC should not create a DataBaseMetaData object. See the examples below for how to get around this.
Using htmSQL to Access SPD Server Tables Read this section if you do not have Base SAS software on the network client, but you want to use the point-and-click convenience of a Web page to query SPD Server tables from any browser-enabled client on the network.
How Is htmSQL Set Up on the Client? • You want to distribute the information across your corporate intranet through a Web page. • The clients on your network are varied: UNIX boxes, Windows PCs, and workstations. One thing they might have in common is browser access to your intranet. •...
Using SQL C API to Access SPD Server Tables Read this section if you do not have Base SAS software on the network client but you want to provide your network client machines with the capability of accessing SPD Server tables, using SQL query methods.
Chapter 10 • Configuring Disk Storage for SPD Server Table Metadata .mdf Very small Table Data .dpf Large 1 to many Segmented Index(es) .idx Medium to Large 0 or more Global Index(es) .hbx Medium to Large 0 or more Creating SPD Server Component Files Which Component Files Are Created for SPD Server Tables? At a minimum, an SPD Server table consists of two component files, the metadata .mdf file and the data .dpf file.
Page 113
Example 2: Using ROPTIONS= to Store SPD Server Table Data and Index Component Files in Other File Systems spdsserv -acl -acldir InstallDir/site -nameserver samson -libnamefile libnames.parm The following is an example of a libnames.parm file entry for a UNIX system: libname=all_users pathname=/disk1/peruser_tables;...
'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 might try to expand storage for the .mdf components by adding the METAPATH= specification to your ROPTIONS= value in your LIBNAME parameter file.
Page 115
Recommended: Use ROPTIONS= In contrast, when you (the administrator) 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.
Page 116
Chapter 10 • Configuring Disk Storage for SPD Server...
Chapter 11 • Setting Up SPD Server Parameter Files SPD Server User IDs and Passwords That Are Not In Their Default Location in the LDAP Database ....... SPD Server User IDs and Passwords That Are Not In Their Default Location in the LDAP Database and in the LDAP Server That Is Using TCPIP_PORT .
GRPBYROWCACHE= spdsserv.parm Options BINBUFSIZE= controls the amount of memory that is used for each bin buffer during sorting. Each bin is equal to the value that is specified for SORTSIZE. When the sort operation overflows a single sort bin, SPD Server writes the contents of the bin to disk and then merges the bin contents to produce the final, sorted results.
Chapter 11 • Setting Up SPD Server Parameter Files share the memory that is specified using GRPBYROWCACHE to cache groups in memory; each thread receives 1/MAXWHTHREADS= of the cache. Once a thread accumulates enough distinct groups to fill its cache, the groups are moved to secondary bins.
MAXGENNUM= LDAPPORT= specifies the TCP/IP port that is used to communicate with the LDAP server. The default value is LOCAL_HOST or port 389. Usage LDAPPORT=<ldap_server_tcpip_port_number> <port-number-or-port-name> ; LDAPBINDMETH= indicates the LDAP authentication security level. The default value for LDAPBINDMETH= is ANONYMOUS. The ANONYMOUS value is not recommended for use with secure environments.
Chapter 11 • Setting Up SPD Server Parameter Files Usage MAXGENNUM=<ldap_server_binddn_string> <maximum-number-of-member-tables> ; MAXSEGRATIO= controls segment candidate pre-evaluation for WHERE clause predicates with a hybrid index. The WHERE clause planner pre-evaluates the segment candidates for the predicate. Only the segment candidates are searched to resolve the WHERE clause. Some queries can benefit from no pre-evaluation, based on the ratio of the number of segments containing candidates, to the total number of segments in the file.
SPD Server 4.5 (with SAS 9) performs normal server-side processing of tables, ignoring the CEI of the table. SAS 9.2, however, will read the CEI value of the table and performs transcoding for any pertinent character data in the rows returned from SPD Server.
Chapter 11 • Setting Up SPD Server Parameter Files RANDOMPLACEDPF in SPD Server 4.5, include a NORANDOMPLACEDPF statement in your spdsserv.parm file. Usage RANDOMPLACEDPF; RANIOBUFMIN= specifies the minimum random I/O buffer size. The specified value becomes the minimum I/O buffer size that is used by the proxy when it performs random I/O and table requests. Usage RANIOBUFMIN=<ldap_server_binddn_string>...
LDAP Server and SPD Server Host That Are Running On Different Machines WORKPATH= specifies the LIBNAME proxy path for work files. If you think that the work files might overflow a single file system, you can specify multiple paths. When specifying multiple paths, enclose the complete path statement in double quotation marks.
Chapter 11 • Setting Up SPD Server Parameter Files SPD Server User IDs and Passwords That Are Not In Their Default Location in the LDAP Database For this configuration, assume that you want to perform LDAP user authentication, but the SPD Server user IDs and passwords are not in their default locations in the LDAP database.
Page 127
SQLAUDLEN= /audit/spds_mmddyyyy.spdsaudit where mmddyyyy is taken from the system date when the audit log file is created. WHAUDLEN= Specifies the maximum size of the WHERE clause in the audit log when proxy auditing is enabled in SPD Server, and when the WHEREAUDIT option is specified. Usage: WHAUDLEN=<maximum-number-of-characters-in-WHERE-clause>...
Page 128
Chapter 11 • Setting Up SPD Server Parameter Files...
The libnames.parm file is the preferred method to declare domains for use in SPD Server. Users can connect to domains by submitting SAS code to SPD Server after a session has started. The example SAS code below connects to the first domain that was declared...
The difference between non-reserved and reserved option statements is that non-reserved option statements can be altered by subsequent libref statements that are submitted to SPD Server via SAS code. Use the roption (reserved option) specification to ensure that the domain options that you declare in libnames.parm cannot be modified by subsequent libref statements submitted...
Chapter 12 • Setting Up SPD Server Libname Parameter Files Usage: WORKPATH=('/work1/spds123' '/work2/spds123' '/work3/spds123' '/work4/spds123') METAPATH= Specifies a list of paths that are allocated to contain overflow SPD Server metadata if the designated metadata space that is allocated in the PATHNAME= option statement becomes full.
LIBACLINHERIT= The non-intuitive names example uses different names for the declared domain name, pathname, data pathname, and index pathname. The structure is technically valid, but is also unnecessarily complex. In summary, it is a good idea to use the same name that is declared as a LIBNAME domain as the destination directory name for pathname, data path, and index path specifications.
Page 134
LIBACLINHERIT=YES allows the owner to grant privileges to users to create objects in the domain, and WRITE access can be used to inherit write access to the owner's resources. The following is an example of SAS code submitted to SPD Server using LIBACLINHERIT. The example begins by showing information in the libnames.parm file where domain names and paths are declared.
Page 135
LIBACLINHERIT= /* LIBNAME access for user anonymous */ PROC SPDO library=libinher ; /* Admin owns these ACLs */ set acluser admin ; /* Add a LIBNAME ACL to d1 */ add acl / libname ; /* Modify LIBNAME ACL Domain d1 /* Allow users in Group 1 /* read-only access to domain modify acl / libname read ;...
Chapter 12 • Setting Up SPD Server Libname Parameter Files PROC PRINT data=a_noher.admins_table ; title 'without libaclinher' run ; DYNLOCK= Overview of Dynamic Locking Dynamic locking is an SPD Server feature that allows multiple users concurrent access to SPD Server tables. The tables can be concurrently accessed by multiple users for reading and writing, while maintaining the integrity of the table contents.
Data Table Space Dynamic locking is not a replacement for using record-level locking in cases where the user requires SAS-style record-level integrity across multiple clients. Reading a record using dynamic locking does not guarantee that the record cannot change before a subsequent read or update is executed.
Chapter 12 • Setting Up SPD Server Libname Parameter Files To ensure reliability, data table space is typically organized into RAID 1+0 or RAID-5 disk configurations. Very large warehouses should consider a RAID-5 configuration with a second storage array to mirror the data. Index Table Space When a domain is declared in a LIBNAME statement, index tables are stored in the space defined in the PATHNAME= specification, unless the INDEXPATH= option is specified.
Overview of Domains and Data Spaces Work space refers to the area on disk that SPD Server software uses to store required files when the available CPU memory cannot contain the entire set of calculations. During events like these, some utility files are written to disk. Work space is important to scalability. Tasks such as large sorts, index creation, parallel group-by operations, and SQL joins can require dedicated work space to store temporary utility files.
Chapter 12 • Setting Up SPD Server Libname Parameter Files Permanent Table Space In SPD Server, large production, inventory, and sales data storage areas work best using permanent table space. A rolling five-year sales data table by division and company is an example of an SPD Server structure that is best suited to permanently allocated space on the enterprise computers.
Temporary Table Space permanent table space should be accessible to the specific group (such as analysts) of regular SPD Server users. The SPD Server administrator can use the libnames.parm file to configure paths that map to an area of reserved disk space on a host computer, creating a safe place for permanent tables with limited user access.
Chapter 12 • Setting Up SPD Server Libname Parameter Files creating temporary table spaces is to use the optional TEMP=YES specification when the LIBNAME domain statement is issued in submitted SPD Server job code. All tables residing in temporary table space are lost at the end of the SPD Server user session, when temporary table space is automatically deleted.
Example 3: Query-Rewrite Domain Configuration The INDEXPATH= is designed to take advantage of multiple file systems. SPD Server 4.5, index components can take advantage of the SPD Server RANDOMPLACEDPF feature. The RANDOMPLACEDPF feature enables administrators to configure smaller disk partitions for index space, which benefits SPD Server backup and recovery operations. The WORKPATH= specified for the Example 2 SKULIST domain allows domain users to override the default workpath, if any, specified in the spdsserv.parm file.
MINPARTSIZE=128M; TMPDOMAIN=QRW; WORKPATH=('c:\temp\work1'); Example 4: Multiple Domain Types and Paths Configuration Example 4 uses a combination of libnames.parm, spdsserv.parm, and user-issued SAS code submitted to SPD Server to create multiple domains that house the following: • permanent production tables •...
Page 145
Example 4: Multiple Domain Types and Paths Configuration '/data04/usertbls' '/data05/usertbls' '/data06/usertbls' '/data07/usertbls' '/data08/usertbls' '/data09/usertbls') INDEXPATH=('/idx01/usertbls' '/idx02/usertbls' '/idx03/usertbls' '/idx04/usertbls' '/idx05/usertbls')"; Finally, more libnames.parm file code defines the domain named SPDTEMP, which contains temporary table space that is automatically deleted at the end of the SPD Server session.
Page 146
Chapter 12 • Setting Up SPD Server Libname Parameter Files SAS code submitted to SPD Server by the user connects to the PROD, USERTBLS, and SPDTEMP domains, and configures SPDTEMP as a temporary domain space. Tables in the SPDTEMP domain will be automatically deleted at the end of the SPD Server session.
SPD Server. The purpose of the SPD Server Performance Server is to gather SPD Server process performance information and to post it to the SPD Server Management section of the SAS Management Console application. The SPD Server performance information consists of memory and resource allocations by users, and SPD Server processes spawned by an SPD Server Name Server.
The display of memory and resource allocations in the SPD Process Profiler allows SPD Server Administrators to use the SAS Management Console as a handy view point to review which SPD Server processes are occupying host computing resources, how the resources are distributed across users and processes at a given point in time, and whether the resource uses and distributions are appropriate for your computing environment.
Page 149
• SNP is the process-ID number of the SPD Server SNet server. • PLP is the listening port number that SAS Management Console will use to contact the Performance Server • LOG is the path specification that you want to write the profile log to.
Page 150
X server where to display the window for the Performance Server program. 3. The sample script uses the default SAS Name Server port ( NSPORT) and SAS SNet port (SNPORT) assignments. If your SPD Server installation uses different NSPORT and SNPORT assignments, you must update the NSPORT and SNPORT settings in the sample script to the port addresses that are used in your SPD Server installation.
Page 151
Sample Rc.perf Script NSPORT=6100 SNPORT=6101 DEBUG= PARGS="-c 0" # parse parameters while [ $1 ]; do #echo "Parsing Option $1 of length ${#1}" case "$1" in -nsport) if [ $# -lt 2 ]; then echo "$1 parameter value not specified" exit 1 NSPORT=$2 shift;;...
SPD Server Name Server log files, they will be parsed and formatted for SAS processing. There is a sample SAS script for importing the parsed log file data. The SAS script is located .../samples/perfmon/PerfDataSample.sas in your SPD Server installation. .
Chapter 14 • ACL Security Overview ACL Security Overview SPD Server uses Access Control Lists (ACLs) and SPD Server user IDs to secure domain resources. You obtain your user ID and password from your SPD Server administrator. SPD Server also supports ACL groups, which are similar to UNIX groups. SPD Server administrators can associate an SPD Server user as many as five ACL groups.
SAS Management Console, if it is installed and configured for SPD Server. In either of the two environments, the system administrator can prevent logins under the anonymous user ID by placing user 'anonymou' in the user ID table with a password unknown to the SAS users.
Page 158
/disk3/marketing /disk4/ directories must exist and the user ID that invokes spdssrv must have read and clinical write access to them. The following LIBNAME statements connect SAS clients to the data areas: LIBNAME open sasspds 'public' host='samson' user='employee' prompt=yes; LIBNAME pres sasspds 'clinical'...
ACL group to the LIBNAME domain to have READ access to the domain. This permits these users to perform SAS LIBNAME assignments to the domain. Users not belonging to the owner's ACL group will not even be permitted to make LIBNAME assignments to the 'clinical' domain.
SPDO and ACL Commands Using PROC SPDO Overview of PROC SPDO PROC SPDO is the SAS procedure for the SPD Server operator interface. PROC SPDO runs only on systems where the SAS is installed. PROC SPDO Command Set To invoke PROC SPDO, submit: PROC SPDO LIB=libref ;...
ACL Concepts 2. If a resource is owned by the same ACL group as the accessor, the accessor gets the resource's GROUP permissions. 3. If the resource is owned by a different ACL group than the accessor, the accessor gets the resource's UNIVERSAL permissions.
Page 162
Chapter 14 • ACL Security Overview When defining user-specific ACL permissions, you can use an ACL group wherever you can use an explicit SPD Server user ACL. Using an ACL group grants privileges to the ACL group instead of only to a specific SPD Server user. Column Security SPD Server allows you to control access to table contents at the column level through the use of ACLs.
LIBNAME domain. Two-Part Resource Name Two-part names identify a column entry within a table. Use the normal SAS convention of table.column when specifying the table and column that you want to secure. When issuing SPDO commands, you can use two-part names in any context that defines, modifies, lists, or deletes table-related ACLs.
Chapter 14 • ACL Security Overview or member type at any point in a command sequence, and then continue with additional ACL commands in the new scope. SET ACLTYPE memtype; Sets the member type for subsequent ACL operations. Valid values are DATA, CATALOG, VIEW, and MDDB.
ADD ACL Examples C=cat Identifies the specified ACL names acl1 acl2... as the names of catalog entries in the catalog cat. You pair this value with the T= option. T=type Identifies the catalog entry type to associate with the specified ACLs acl1 acl2... when you specify the C=cat option.
MODIFY ACL Examples NOGROUPALTER Removes group ALTER access. GENERIC Specifies that acl1 acl2... are generic ACLs. LIBNAME Identifies the special LIBNAME domain ACL. C=cat Identifies the selected ACLs as names of catalog entries from the catalog cat. This value must be paired with the T= option. T=type Identifies the catalog entry type used to qualify the selected ACLs when the C=cat option is specified.
Chapter 14 • ACL Security Overview Modify Generic Column ACL This modifies generic column ACL, MINE*.SALARY, to add explicit READ and WRITE access for a given user. modify acl mine.salary/generic debby=(y,y,n,n); Modify ACL for a Catalog This modifies catalog MYCAT to remove universal READ and group WRITE access. set acltype catalog;...
LIST ACL Examples LIST ACL Examples List All ACL Entries This lists all ACL entries for the current ACL type setting. list acl _all_; List a Generic ACL This lists a generic ACL entry for MINE*. list acl mine/generic; List All Column ACLS for a Table This lists all column ACLs for table MINE_JAN2003.
Chapter 14 • ACL Security Overview DELETE ACL and DELETE ACL _ALL_ DELETE ACL acl1 acl2... [C=cat T=type] /options DELETE _ALL_[C=cat T=type] /options; Deletes existing ACLs for resources acl1 acl2... where ACL entries acl1 acl2... can be one- part resource names or two-part table.column names. Specifying _ALL_ deletes all existing resource ACLs for which you have control access.
Symbolic Substitution Example Delete All Column ACLs on a Table This deletes all column ACLs on table KBIKE. delete acl kbike._all_; Delete All Column ACLs on All Tables This deletes all column ACLs on all tables. delete acl _all_._all_; Delete a Catalog ACL This deletes an ACL on the catalog RBIKE.
Page 172
Chapter 14 • ACL Security Overview connect to sasspds (dbq="path1" server=host.port user='anonymous'); /* queries comparing literal rows are /* only selected if the symbolic /* substitution evaluates as 'true' select * from connection to sasspds( select * from mytable where "@SPDSUSR" = "SOMEUSER"); select * from connection to sasspds(...
ACL Security Examples "@SPDSSPEC" = "TRUE") by sasspds; /* Create a view to worktable that allows users /* to access only rows where the column "usergrp" /* matches their group. The userID BOSS can access */ /* any group records where the column "userid" is /* "BOSS"...
Page 174
Chapter 14 • ACL Security Overview pathname=/IDX1/spdsmgr/colsec owner=boss ; LIBNAME=onepath pathname=/IDX1/spdsmgr/onepath ; Password database List: User Level Entry Type Group ----------------------------------- ADMINGRP GROUP ENTRY GROUP1 GROUP ENTRY GROUP2 GROUP ENTRY GROUP3 GROUP ENTRY GROUP4 GROUP ENTRY PRODGRP GROUP ENTRY ADMIN1 user ID ADMINGRP ADMIN2...
Page 175
ACL Security Examples add ACL / libname ; modify ACL / LIBNAME prodgrp=(y,y,y,y) group1=(y,y,n,n) group2=(y,n,n,n) group3=(y,n,n,n) ; /* Give spedific users access to */ /* the domain */ modify ACL / LIBNAME user7=(y,n,n,n) admin1=(y,n,n,n) ; list ACL _all_ ; quit ; The ID 'prod2' is in the group which has permissions to control the LIBNAME ACL.
Page 176
Chapter 14 • ACL Security Overview /* The ACLSPECIAL= statement allows */ /* the user 'admin1' to operate under */ /* the user ID 'prod1', allowing the */ /* ACLs to be modified. */ set acluser prod1 ; modify ACL / LIBNAME admingrp=(y,n,n,n) ;...
Page 177
ACL Security Examples end; run; /* Set up libname access for user anonymous */ PROC SPDO library=libinher; /* set who will own these ACLs */ set acluser admin; /* Add a libname ACL to d1 */ add acl / LIBNAME; /* Modify libname ACL Domain d1 /* Allow users in Group 1 read-only */ /* access to the domain...
Page 178
Chapter 14 • ACL Security Overview server=zztop.5129 user='anonymous'; PROC PRINT data=a_inher.admins_table; title 'with libaclinher'; run; PROC PRINT data=a_noher.admins_table; title 'without libaclinher'; run; Anonymous User Account The SPD Server uses a general ID that is called 'anonymous'. Any person that can connect to the server can do so using the anonymous user ID.
Page 179
ACL Security Examples LIBNAME user1 sasspds 'onepath' server=zztop.5162 user='user1' password='spds123' IP=YES ; PROC PRINT data=user1.anonymous_table (obs=10) ; title 'user1 reading anonymous_table' ; run ; /* Tables created by user ID anonymous */ /* can have ACLs PROC SPDO library=john ; /* assign who owns the ACL */ set acluser anonymous ;...
Page 180
Chapter 14 • ACL Security Overview title 'mary reading anonymous_table' ; run ; /* Mary can't write to anonymous_table */ data mary.anonymous_table ; do i = 1 to 100 ; output ; end ; run ; Read Only Tables A common security measure in SPD Server assigns an SPD Server ID to act as the owner of a domain and to provide control over it.
Page 181
ACL Security Examples /* create two tables */ data d1.admin1_table1 ; do i = 1 to 100 ; output ; end ; run ; /* admin1 has write priviliges to */ /* the domain data d1.admin1_table2 ; do i = 1 to 100 ; output ;...
Page 182
Chapter 14 • ACL Security Overview 'read admin1_table1 by user1' ; run ; PROC PRINT data=user1d1.admin1_table2 (obs=10) ; title 'read admin1_table2 by user1' ; run ; /* Test access for a user in group2 */ LIBNAME user2d1 sasspds 'd1' server=zztop.5162 user='user2' password='spds123' IP=YES ;...
Page 183
ACL Security Examples LIBNAME user1d1 sasspds 'd1' server=zztop.5162 user='user1' password='spds123' IP=YES ; PROC PRINT data=user1d1.admin1_table2 (obs=10) ; title 'read admin1_table2 by user1' ; run ; /* Test access for a user in group2 */ LIBNAME user2d1 sasspds 'd1' server=zztop.5162 user='user2' password='spds123' IP=YES ;...
Page 184
Chapter 14 • ACL Security Overview add ACL / LIBNAME ; /* Allow any user in same group */ /* as admin to read, write, or /* alter tables in the domain modify ACL / LIBNAME admingrp=(y,y,y,n) group1=(y,n,n,n) group2=(y,n,n,n) group3=(y,y,n,n) group4=(y,y,n,n) ;...
Page 185
ACL Security Examples data d1.admin1_table2 ; do i = 1 to 100 ; output ; end ; run ; /* generic ACL allows all users to /* read the tables PROC SPDO library=d1 ; /* assign who owns the ACLs */ set acluser admin1 ;...
Page 186
Chapter 14 • ACL Security Overview /* in the same group as admin2 need /* to read tables created by admin2. add ACL / generic read groupread groupalter ; list ACL _all_; /* admin (same group) can read the /* table PROC PRINT data=d1.admin2_table (obs=10) ;...
Page 187
ACL Security Examples password='spds123' IP=YES ; This example assumes that the Table prod1_table is already loaded in the domain and that the groups who use the table have access. PROC SPDO library=d2 ; /* assign who will owns these ACLs */ set acluser prod1 ;...
Page 188
Chapter 14 • ACL Security Overview set acluser prod1 ; There is no need to issue an add ACL command for prod1_table. Deleting a table or replacing a table does not delete the ACLs. The ACL for that table remains until: •...
Page 189
ACL Security Examples prodgrp=(y,y,y,y) group1=(n,n,n,n) group2=(n,n,n,n) group3=(n,n,n,n) group4=(n,n,n,n); list ACL _all_ ; run ; /* Modify ACL for tables to be refreshed */ PROC SPDO library=d2 ; /* set who owns the ACLs */ set acluser prod1 ; /* Modify table ACL to revoke read and */ /* control by user IDs in same group, */ /* which prevents locks during table */ /* refreshes.
Page 190
Chapter 14 • ACL Security Overview run ; ACL Special Users SPD Server user IDs have two levels, 0 through 3 and 4 through 7. Level 4 through 7 user IDs can log in as an SPD Server 'super user' that can: •...
Page 191
ACL Security Examples list ACL _all_ ; quit; Column-Level Security The goal of column-level security is to allow only privileged users to access sensitive columns of tables that other users cannot read. LIBNAME user1 sasspds 'onepath' server=zztop.5161 user='user1' password='spds123'; LIBNAME user2 sasspds 'onepath' server=zztop.5161 user='user2' password='spds123' aclgrp='group2';...
Chapter 14 • ACL Security Overview run; /* Example of every BUT user2 in */ /* group2 being allowed to read /* column salary PROC SPDO library=user1 ; /* Assign who owns the ACLs */ set acluser; /* Clean Up Column ACL */ delete ACL t.salary;...
SPD Server clients communicate with the SPD Server Name Server via the SPD Server Name Server listen port. The Name Server listen port is used by clients (such as Base SAS) when LIBNAME and SQL CONNECT statements are issued. The LIBNAME and SQL CONNECT statements must be able to pass through a firewall.
SPD Server auditing provides a way to log access to SPD Server resources, or to log implicit or explicit SQL pass-through queries that are submitted to SPD Server. Separate audit logs are created for proxy auditing and SQL audit logging. SPD Server includes three SAS programs (auditwithwhere.sas, auditraw.sas, and auditsql.sas) in the /samples directory of...
Chapter 14 • ACL Security Overview your SPD Server installation. These programs enable you to input the audit logs into SAS tables. Then, you can query the SAS tables to determine access to SPD Server tables and resources. Proxy Auditing Proxy auditing provides a means to determine access to SPD Server resources.
SQL Query Auditing • Read permissions that were granted to an SPD Server user to access a resource • Write permissions that were granted to an SPD Server user while accessing a resource • the ACLs that are associated with a resource WHERE Clause Auditing WHERE clause auditing provides an audit record that contains the following information: •...
Chapter 15 • Managing SPD Server Passwords, Users, and Table ACLs (directory path) where the table is located. The owner of the password table, typically the SPD Server administrator, can update the table. The password table contains the following attributes and capabilities for each system user: •...
Adding New Users with psmgr 1. Start the SPD Server 3.x psmgr utility using your SPD Server 3.x password table. 2. Export your SPD Server 3.x password table. 3. Start the SPD Server 4.5 psmgr utility with a new table. 4.
Page 202
Chapter 15 • Managing SPD Server Passwords, Users, and Table ACLs 8. Enter the group name if the user is part of an ACL group, or skip this step by pressing Enter. For example: groupname The user debby is added. The temporary password is good for one logon. The second part changes the user's password.
psmgr Command Details psmgr Commands The psmgr utility is an interactive program. It reads commands and operands from your computer, and prompts you for input when necessary. You can also send a file of commands to the utility, structuring each command so that no input is required. The commands and operands are positional, and they must be separated by blank spaces.
Page 204
Chapter 15 • Managing SPD Server Passwords, Users, and Table ACLs expiretime a password expiration time; or a dash (-), which indicates that no password expiration time is being specified. The expiration time requires the user to change his password before the specified number of days has expired.
Page 205
IP address from which the user must connect to the SPD Server. The IP address on which the SAS, ODBC, JDBC, or SQL client software is running must match the IP address that is entered in the password table.
Page 206
Chapter 15 • Managing SPD Server Passwords, Users, and Table ACLs Arguments username the user ID of an SPD Server user. timeoutperiod a password logon timeout period. The timeout period requires the user to successfully logon before the specified number of days has expired. The value, which is specified in days, represents the number of days from the last successful logon that the password is valid.
Page 207
psmgr Command Details The EXPORT command generates a single line in the flat file for each record in the password table. User passwords are encrypted in the table. What you see in the flat file is a representation of what is stored in the password table. When you have changes that affect many users, it might be easier to edit the flat file than to use the psmgr utility.
Page 208
Chapter 15 • Managing SPD Server Passwords, Users, and Table ACLs Note: If you use the groupmem command in batch mode, the syntax requires you to submit five groupname arguments. If you want to update the user ID with less than five ACL group members, replace the empty groupname arguments with “...
Using a File as Input to psmgr Example list bar This example might produce the following listing: USER AUTHORIZATION IP ADDRESS ---- ------------- ----------- RESET resets a password for a user. The RESET command resets a user's password after three consecutive failed attempts to connect to a server.
SAS Management Console Overview of SAS Management Console SPD Server supports the SAS Management Console. The SAS Management Console is an application that the SPD Server administrator can use to manage passwords and ACLs. Administrators that need to configure passwords and ACLs can choose between using the SAS Management Console or the traditional SPD Server management tools (PROC SPDO and the psmgr utility).
Configuring LDAP Authentication record is required for each SPD Server user. SPD Server uses the psmgr utility's password database to perform user access control tasks and other tasks that are not related to user authentication. • Users that connect to an SPD Server must have corresponding logon information on the LDAP server.
Page 212
Chapter 15 • Managing SPD Server Passwords, Users, and Table ACLs...
Part 6 System Management Chapter 16 SPD Server Operator Interface Procedure (PROC SPDO) ..Chapter 17 SPD Server Index Utility Ixutil ........Chapter 18 SPD Server Table List Utility Spdsls .
Commands to Nonexistent Users ........Special SPDO Commands Overview of SPDO Commands Note: For additional information on using PROC SPDO, see the chapter, "Controlling SAS Scalable Performance Data Server Resources with PROC SPDO and ACL Commands."...
Chapter 16 • SPD Server Operator Interface Procedure (PROC SPDO) SPDO Command Examples 1. List the WORKPATH directory: spdscmd 'ls /spdswork/*.spds'; spdscmd 'dir d:\spdswork\*.spds'; 2. Clean up WORKPATH files: spdscmd 'rm /spdswork/*.spds'; spdscmd 'del d:\spdswork\*.spds'; LIBNAME Proxy Commands Overview of Proxy Commands To issue proxy commands, you must first select the SPD Server user proxy.
Page 217
LIBNAME Proxy Command Examples used with a data set name dsname, detailed information about the specified data set table is displayed. LIBNAME Proxy Command Examples 1. List all of the users for the server 'sunburn.6100': LIBNAME example sasspds host='sunburn' serv='6100' user='sassyl' passwd='abc123' aclspecial=YES;...
Page 218
Chapter 16 • SPD Server Operator Interface Procedure (PROC SPDO) 6. The user ANONYMOU performs a WHERE clause on the table BIGX. Show all of the open tables in LIBNAME FOO: showlibname FOO/data=_all_; LIBREF(FOO):Dataset name=BIGX LIBREF(FOO):ACL Owner=ANONYMOU LIBREF(FOO):ACL Defaults(R,W,A,C)=(N,N,N,N) LIBREF(FOO):WHERE clause read thread active 7.
Privileged OPER Commands set user/locking anonymou threadid 7; NOTE: User ANONYMOU connected to record level proxy operator port with thread=7. 10. Show every LIBNAME for locking user ANONYMOU: showlibname _all_; LIBREF(LOCKING):Pathname assigned=/bigdisk/test/qabig1/ LIBREF(LOCKING):ACL Owner= LIBREF(LOCKING):ACL Defaults(R,W,A,C)=(Y,Y,Y,Y) 11. Show all of the open tables in LIBNAME LOCKING: showlibname LOCKING/data=_all_;...
OPER INTERRUPT command initiates a soft exit of the user proxy. The user receives a message in the SAS log that states that the job has been interrupted. If the job did not finish, then the results might be incomplete. However, the user LIBNAME will be intact, and the user proxy will still be viable.
REFRESH Command Examples /* verify the contents of the created table */ PROC CONTENTS data=&domain..staceys_table ; run; /* SPDO Truncate command deletes the table */ /* data but leaves the table structure in */ /* place so new data can be appended */ PROC SPDO lib=&domain;...
Chapter 16 • SPD Server Operator Interface Procedure (PROC SPDO) password='spds123' aclspecial=YES prompt=YES; PROC SPDO library=spds44; SET acluser admin; REFRESH PARMS; REFRESH DOMAINS; quit; Here is a more detailed example: /* Domain reftest is a pre-existing domain. /* Add domain reftest2 to libnames.parm and /* specify owner=admin LIBNAME=tmp pathname=c:\temp;...
Page 223
Commands to Nonexistent Users the user ends the SAS session, or disconnects from a LIBNAME and the user proxy. If you submit an OPER command to a user that is no longer in session, or to a user that has ended a locking user proxy, you get the following message: ERROR: Specified locking user no longer exists.
Page 224
Chapter 16 • SPD Server Operator Interface Procedure (PROC SPDO)
Chapter 17 • SPD Server Index Utility Ixutil <data set1,column1> < data set2,column2> ... ixutil -statjidx <data set_n,column_n> <physical path> ; -libpath Gather statistics about the join index parts. Pay attention to the average join row percentage, which indicates the average number of rows that are read by a parallel join work unit.
Ixutil Examples Create a Hybrid Index Assume there is an SPD Server domain named my domain assigned to the directory on a machine named spot. A user has created a table with the following SAS program: spds libname my_data sasspds 'mydomain' server=spot.spdsname...
The SAS program above creates a hybrid index for column X of the table named test, on the machine named spot, in the directory named /spds. Retrieve Disk Usage and Fragmentation Statistics Use the...
> ixutil -stats x -dsn test -libpath /spds -dist SAS Scalable Performance Data Server 4.5(TS M0) Build(Feb 26 2009, 11:50:08) Index File Utility Copyright (c) 1996-2008 by SAS Institute Inc, Cary NC 27513 USA Statistics for Index X: --------------------------------------------------- +--segment_size...
> ixutil -reorg x -dsn test -libpath /spds SAS Scalable Performance Data Server 4.5(TS M0) Build(Feb 26 2009, 11:50:08) Index File Utility Copyright (c) 1996-2009 by SAS Institute Inc, Cary NC 27513 USA Reorg for Index x: Reorg successfully completed Ixutil completed successfully Running the index utility program again to get the statistics shows that the segment lists for all of the values have been aggregated (the avg_chunks_per_list is 1.0) and the unused...
SAS Scalable Performance Data Server 4.5(TS M0) Build(Feb 26 2009, 11:50:08) Index File Utility Copyright (c) 1996-2009 by SAS Institute Inc, Cary NC 27513 Ixutil completed successfully. Generate Join Index Statistics Now, get statistics on the join index that you created, using the...
4.5(TS M0) Build(Feb 26 2009, 11:50:08) Index File Utility Copyright (c) 1996-2009 by SAS Institute Inc, Cary NC 27513 Ixutil completed successfully Parallel join work units are based on the ranges of the join keys. For example, range 0 will join ranges 1 through 100, range 1 can join range 101 to 200, and so on Ranges can overlap observations if the tables are not sorted by the join key.
Chapter 18 SPD Server Table List Utility Spdsls SPD Server Table List Utility Spdsls ........Description .
Page 234
Only lists SAS 6.x data sets. Only lists SAS 8.x or SAS 9.x data sets. <LibPath> The complete path of an SPD Server LIBNAME directory.
Page 235
You can use the - l option of the spdsls command to display index, owner, and size information for component files in domain /bigdisk/sas/data/public as follows: spdsls -l -i -o -s /bigdisk/sas/data/public SAS Scalable Performance Data Server 4.5(TS M0) Build(Feb 26 2009, 11:51:36) - Domain List Copyright (c) 1996-2008 by SAS Institute Inc, Cary NC 27513 ANONYMOU 31196 /bigdisk/sas/data/public/cars.mdf.0.0.0.spds9...
Page 236
Chapter 18 • SPD Server Table List Utility Spdsls...
Help menu for each utility • offer an enhanced user interface and user messages. Overview of the SAS Scalable Performance Data Server Backup and Restore Utilities The standard file system backup and restore facilities that native operating systems provide are generally inadequate for backing up and restoring SPD Server tables.
SPD Server session is a privileged user). • The user has ACLSPECIAL=YES privileges. To run the backup and restore utilities remotely using the SAS PROC SPDO spdscmd. The PROC SPDO spdscmd command requires similar access: either identical user IDs or ACLSPECIAL=YES user privileges.
If the spdsbkup return value is 1, one or more data sets could not be backed up. In that case, examine your SAS log for warning messages. If the spdsbkup return value is 2, a critical error caused an early process termination. Examine...
Example Libnames.parm Statements Backup Requirements Client Access to an SPD Server Domain The client that performs the backup does not have to execute on the same machine as the SPD Server. However, the client must be able to access the physical path of the SPD Server domain that is being backed up.
Page 243
Backup Options -aonly Only include the domain ACL files in the backup. No tables will be backed up. The SPD Server LIBNAME domain. Note: The system that performs the backup must be able to access the physical path for the domain locally or through a network connection. The prefix filename for the backup data file.
0, then the utility was successful. If the spdsbkup return value is 1, one or more data sets could not be backed up. In that case, examine your SAS log for WARNING information. If the spdsbkup return value is 2, a critical error caused an early process termination.
T, columns 1-32 are configured for ACL names. The table of contents file is formatted so that it can be used as a table of contents for a SAS backup file. The SAS format for the table of contents file is format lastfull datetime18.;...
After performing each SPD Server backup, you should append the resulting table of contents file to the SAS table of contents backup file. This is an important step because it saves the backup history, and assists later when restoring tables.
Restore Options • When an incremental backup is restored, only the incremental changes to the observations are applied. • When a full backup is restored, the table is created with the attribute settings that existed when the full backup was performed, and then all of the rows are added. Restore Requirements Before you can use the spdsrstr utility to restore a table, the following must be true: •...
Page 248
Chapter 19 • SPD Server Backup and Restore Utilities -aforce restore the backed up domain ACL files if they do not exist or overwrite the current files if they do exist. Note: This option should be used when restoring multiple files with the option to ensure that the domain ACL files are consistent with the last file restored.
If the spdsrstr return value is 1, one or more data sets could not be restored. In that case, examine your SAS log for WARNING information. If the spdsrstr return value is 2, a critical error caused an early process termination. Examine your SAS log for WARNING and ERROR information.
Page 250
SPD Server backup for each table and any ACL files in the domain. The table of contents file contains information for each table that was backed up. 2. Archive the SPD Server backup file and source in the table of contents file into a SAS table of contents table.
Page 251
The table of contents file contains information for each table that was either incrementally or fully backed up. 3. Archive the SPD Server backup file and source in the table of contents file into a SAS table of contents table.
SPD Server. Output messages from the commands are echoed to the SAS log. In the next example, the SPD Server incremental backup and restore utilities reside in the SPD Server directory. The incremental backup and restore files are...
Back Up and Restore Table Indexes using SPD Server Full Backups Use the following steps to use PROC SPDO to execute SPD Server backup and restore utilities: 1. Create an SPD Server LIBNAME, and specify 'special' privileges. libname backup sasspds 'test' host='sunny' serv='5150' user='admin'...
Chapter 19 • SPD Server Backup and Restore Utilities Back Up and Restore SPD Server Table Indexes using System Full Backups Back Up and Restore SPD Server Table Indexes Using System Full Backups Restoring indexes from system full backups and restores is not as clean as restoring indexes from SPD Server full backups and restores.
Page 255
Method 2 – Recreate the Index after the Table Is Restored The second method trades the resources that you save by not fully backing up the index files against the greater amount of time it can take to recreate the indexes fully, if the table must be restored.
Page 256
Chapter 19 • SPD Server Backup and Restore Utilities...
Chapter 20 • SPD Server Directory Cleanup Utility Using the Directory Cleanup Utility Spdsclean The spdsclean program is a command-line utility. It supports a set of command-line options and parameters you use to specify the location and names of tables to convert, and behaviors that you want to control during the conversion process.
Spdsclean Options that Modify Behavior -parmfile parmFile option to the spdsclean command runs cleanup on the specified SPD -parmfile Server environment that is defined in the named SPD Server parameter file. The cleanup action empties all directory resources that are defined in the SPD Server parameter file. All files contained in the WORKPATH= path list are deleted.
Chapter 20 • SPD Server Directory Cleanup Utility -lib11 setting enables deletion of the domain state file, .spdslib11. The default -lib11 setting is +lib11. +lib11 setting disables deletion of the domain state file. This is the default setting +lib11 for the lib111 variable. -verbose setting is equivalent to specifying ,enabling...
Cleaning WORKPATH and LIBNAME Combinations If you want spdsclean to log the files it deletes, add the option to the command. -verbose spdsclean -parmfile /opt/spds45/site/spdsserv.parm -verbose Cleaning Residual Temporary LIBNAME Domain Files This spdsclean command cleans all of the residual temporary files from all of the LIBNAME domains that are defined in the specified.
Chapter 20 • SPD Server Directory Cleanup Utility spdsclean -parmfile /opt/spds45/site/spdsserv.parm -libnamefile /opt/spds45/site/libnames.parm -verbose Logging occurs for the WORKPATH and LIBNAME domain directories and for the files that were deleted from each. Cleaning Log Files This spdsclean command cleans the .spdslog files from the specified directory -logdir that are more than seven days old.
Page 263
Glossary Libnames.param File The libnames.parm file defines the SPD Server LIBNAME domains for the SPD Server environment. The libnames.parm file is a collection of LIBNAME statements. Each LIBNAME statement defines a storage domain that SPD Server uses with clients. You modify the libnames.parm file using the option with the spdsserv -libnamefile...
Page 264
Chapter 20 • SPD Server Directory Cleanup Utility...
SPD Server environment. The debugging tools are for use with SPD Server 4.5 running on SAS 9.2. The debugging tools are organized into LIBNAME statement options for debugging, and server parameter file options for debugging.
Chapter 21 • SPD Server Debugging Tools launches a debug image (spdsbased and spdsengd) which will enable a good traceback. CORE launches debug images and sets the SPD Server parameter file option for that proxy. This ensures a good core file. disables the debug image for the specified proxy, if one is present.
Page 267
RECORDFLAGS= ALTBINPATH= Description The ALTBINPATH= option specifies the path to an alternate executable binary file directory. An alternate binary file path allows system administrators to load a non- production copy of SPD Server without having to replace the production copy of SPD Server.
Page 268
Chapter 21 • SPD Server Debugging Tools and to produce a core file if an unexpected exception is encountered while running (bit flag 4). To perform all three actions, submit the sum of the bit flags (1+2+4) = 7 as the argument for your RECORDFLAGS= option statement: RECORDFLAGS= 7...
Page 269
Your Turn We welcome your feedback. • If you have comments about this book, please send them to yourturn@sas.com. Include the full title and page numbers (if applicable). • If you have comments about the software, please send them to...
Page 271
. s a s . c o m / s p n SAS and all other SAS Institute Inc. product or service names are registered trademarks or trademarks of SAS Institute Inc. in the USA and other countries. ® indicates USA registration.
Need help?
Do you have a question about the Scalable Performance Data Server 4.5 and is the answer not in the manual?
Questions and answers