SAS 를 띄울 때 프로필을 열지 못한다는 메시지가 나온다.
ERROR: sasuser.profile 파일을 열 수 없습니다.
ERROR: Unable to open SASUSER.PROFILE. Check for a lock on the catalog.
SASUSER 는 사용자별 설정(창 배치, 기본 옵션, 저장된 포맷 등)을 담는 라이브러리다. 기동에 필수는 아니지만 열리지 않으면 매번 오류가 나고 일부 기능이 동작하지 않는다.
proc options option=sasuser value;
run;
로그에 실제 경로가 찍힌다. 리눅스는 보통 ~/sasuser.v94, Windows 는 %USERPROFILE%\Documents\My SAS Files\9.4 아래다.
가장 흔하다. 같은 계정으로 SAS 세션이 두 개 이상 떠 있으면 뒤에 뜬 쪽이 프로필 카탈로그를 쓰기 모드로 열지 못한다. Enterprise Guide, DI Studio, 배치 작업이 백그라운드에 남아 있는 경우도 포함된다.
ps -fu "$USER" | grep -i "[s]as"
남은 프로세스를 정리하고 다시 띄운다. 배치 작업이 같은 계정으로 계속 돈다면 3번처럼 세션마다 프로필을 갈라 주는 것이 근본 대책이다.
배치와 대화형 세션이 한 계정을 공유하는 환경에서는 프로필 경로를 세션마다 다르게 준다.
sas -sasuser "/sasdata/profiles/$USER/$$" -work /saswork
배치 작업이라면 아예 임시 영역을 쓰게 해 충돌 자체를 없앤다.
options user=work;
-RSASUSER 로 띄우면 SASUSER 가 읽기 전용이 된다. 여러 사용자가 한 프로필을 공유하도록 일부러 그렇게 구성해 두는 경우가 있으므로, 지우기 전에 구성 파일을 확인한다.
grep -rn "RSASUSER" /opt/sas/SASHome/SASFoundation/9.4/*.cfg /opt/sas/SASHome/SASFoundation/9.4/nls/*/*.cfg
한 세션만 쓰기 모드가 필요하면 실행 시 덮어쓴다.
sas -norsasuser
홈이 NFS 로 마운트돼 있으면 카탈로그 파일에 잠금이 걸린 채 남아 프로세스를 다 내려도 풀리지 않는 일이 있다. NIS·LDAP 로 계정을 받는 환경에서 특히 그렇다.
ls -la ~/sasuser.v94
lsof +D ~/sasuser.v94
여는 프로세스가 없는데도 열리지 않으면 NFS 잠금 데몬(rpc.statd, rpc.lockd) 상태를 확인하고, 그래도 안 되면 프로필 디렉터리를 로컬 경로로 옮긴다. SAS 의 WORK 와 SASUSER 를 NFS 에 두는 구성은 성능과 잠금 양쪽에서 권장되지 않는다.
위 어느 것도 아니고 계속 열리지 않으면 프로필 카탈로그가 손상된 것이다. 지우면 다음 기동 때 기본값으로 다시 만들어진다. 저장해 둔 사용자 포맷이나 매크로가 SASUSER 안에 있으면 함께 사라지므로 먼저 백업한다.
mv ~/sasuser.v94 ~/sasuser.v94.bak