sybase db dump shell

sybase 2009. 8. 4. 10:29
arbi9:/tmp>cat dbdump.sh
#!/usr/bin/sh
DIR="/tmp"
WEEK=`date +%w`
src_file="$DIR/db.dump"  #"db.dump" is defined in dbdump.sql
tgt_file="$DIR/user_db.$WEEK.dump"
log_file="$DIR/dbdump$WEEK.log"
isql -c. -Ust -Pmanager  << EOF
dump database user_db to '$tgt_file'
.
EOF
echo "DB DUMP END ==>$tgt_file"

# 최근 일주일 치  덤프만 보관한다.

분명히 정적 오브젝트인 것 같은데, 관련 프로그램을 다시 컴파일하지 않으면 오류가 발생한 적이 여러 번 있었다.

오늘에서야 의문이 풀렸다.

내가 정적(static) 이라고 생각했던 것은, 공유 오브젝트였다.

아마 확장자가 *.a 여서 그렇게 판단했을 텐데, AIX 에서는 확장자로 정적/공유 를 구분하지 않는다고 한다.

정적인지 공유인지 구별하는 방법은

$ dump -ov 오브젝트

의 결과에 SHROBJ 가 있으면 공유, 없으면 정적이라고 한다.

아래는 참고 문서이다.

오브젝트 파일이 공유 오브젝트인지 정적 오브젝트인지 구분하려면 dump 명령을 사용해야 한다. 예제 2-3에서 Flags 줄에 SHROBJ 키워드가 나오는데 이 경우 이 오브젝트 파일은 공유 오브젝트이고 이 키워드가 안 나오면 정적 오브젝트이다.
$ dump -ov shr.o
shr.o:
***Object Module Header***
# Sections Symbol Ptr # Symbols Opt Hdr Len Flags
5 0x00251764 26925 72 0x3002
Flags=( EXEC DYNLOAD SHROBJ )
Timestamp = "Feb 03 08:59:14 2003"
Magic = 0x1df (32-bit XCOFF)


(출처:
http://www-903.ibm.com/kr/techinfo/pseries/tech/Developing_C_C++_Application_on_AIX_AIX_DIY(SE).pdf
)