SAS 를 띄우면 다음이 찍히고 세션이 더 진행되지 않는다. 설치 마지막의 사후 처리 단계에서도 같은 오류가 난다.
WARNING: One or more libraries specified in the concatenated library SASHELP
WARNING: do not exist. These libraries were removed from the concatenation.
ERROR: The current date of Monday, February 13, 2012 is past the final
ERROR: expiration date for your SAS system, which is Monday, April 3, 2000.
ERROR: Please contact your SAS Installation Representative to obtain your
ERROR: updated SAS license.
갱신되지 않은 SID 를 넣었을 때만 나는 오류가 아니다. 유효한 SID 를 넣었는데도 같은 메시지가 나오는 경우가 있고, 그때는 아래 순서로 원인을 좁힌다.
오류 메시지는 두 날짜를 알려 준다. 어느 쪽이 이상한지에 따라 갈 길이 달라진다.
current date 가 실제 오늘과 다르다 — SAS 가 읽는 시스템 시각이 틀어진 것이다. OS 시각과 시간대를 먼저 맞춘다. 표시된 날짜가 과거 어느 시점으로 고정돼 있으면 VM 스냅샷 복원이나 RTC 설정을 의심한다.expiration date 가 적용한 SID 의 만료일과 다르다 — SID 가 실제로 반영되지 않은 것이다. 3번으로 간다.시스템 시각은 다음으로 확인한다.
timedatectl
SAS 가 무엇을 들고 있는지 확인하지 않고 SID 부터 다시 적용하면 같은 자리를 맴돈다.
proc setinit;
run;
로그에 제품별 만료일이 나온다. 여기 찍힌 만료일이 새 SID 의 만료일과 다르면 갱신이 안 된 것이다. SAS 가 아예 뜨지 않아 proc setinit 도 못 돌릴 때는 SETINIT 모드로 띄운다.
/opt/sas/SASHome/SASFoundation/9.4/sas -setinit
라이선스는 SASHELP.CORE 카탈로그에 기록된다. 이 카탈로그를 쓰기 모드로 열지 못하면 갱신이 조용히 실패한다. 잠금·권한 문제로 나는 A lock is not available for SASHELP.CORE.CATALOG 계열 오류의 대응은 SAS 9.4 라이선스 갱신 에 정리돼 있다.
설치 중 사후 처리 단계에서 라이선스 적용이 실패했다면 설치 로그에 근거가 남는다.
grep -i -n "error\|setinit\|sid" /opt/sas/SASHome/InstallMisc/InstallLogs/*.log
Windows 는 다음 경로를 본다.
C:\Users\<사용자>\AppData\Local\SAS\SASDeploymentWizard\
C:\Program Files\SASHome\InstallMisc\InstallLogs\
SID 파일 자체는 맞는데 검증 단계에서 막힌다면 NOSIDVALIDATION 을 준다. 검증을 끄는 것일 뿐 만료된 라이선스를 살려 주는 옵션이 아니다.
options nosidvalidation;
proc setinit;
run;
SAS Renewal Utility 를 쓰는 구성이라면 도구의 옵션으로 같은 동작을 지정한다. 실행 파일 이름과 경로는 설치 형태마다 달라 설치본에서 직접 확인한다 (확인 필요).
proc setinit;
run;
만료일이 새 SID 의 값으로 바뀌었는지, 필요한 제품이 모두 들어 있는지 본다. 서버 구성이라면 Metadata Server · Object Spawner 를 포함한 모든 SAS 서비스를 다시 띄운 뒤 클라이언트로 접속해 확인한다.
proc setinit 출력과 새 SID 의 제품 목록을 대조한다.