DB2 sample DB 생성 및 SYSCATSPACE 문제
우선.. 참.. 머리가 나쁜지 삽질을 많이 정말 많이 했다
몇일간 삽질의 연속... 제기랄
환경은 AIX 6.1
DB2 9.7 설치했다.
install Guid에 있는대로 따라하고
sample DB를 생성하기 까지 정말 많은 삽질을 거쳤다.
1. 설치
정상적으로 완료
2. db2 명령 사용 및 control
1) db2 명령을 사용하기 위해서는 db2 설치 시 지정한 DBA user로 로그인 해야함
나는 db2inst2로 로그인 후 db2 명령어들을 사용 할 수 있었다.
db2관련 명령어들은 해당 사용자의 홈디렉토리에 존재하면 사용자 profile에 설정되어 있다.
3. Sample DB 생성
여기서 수많은 끊임없는 삽질의 연속이였다.
db2sampl 명령어를 수십번 날려도 오류만 날뿐
첫번째로 connection 오류 였다.
한참 삽질 후 connection 명령어를 찾았다.
설치 시 만든 db2 instance에 attach를 해야 한다.
다음 db2 connect to 로 아무리 해도 database가 없단다.
그래서 DB를 만들려고 했으나 계속해서 아래의 메세지 출력
$ db2 create db sampleDB USING CODESET EUC-KR TERRITORY KR
SQL0289N Unable to allocate new pages in table space "SYSCATSPACE". LINE
NUMBER=1. SQLSTATE=57011
아무리 찾아봐도 답이 안나오다가 힌트를 얻었다.
도움말 사용법 이다.
db2 "? SQL0289N"
위와 같이 SQL에러 번호를 입력하니 문제점과 해결방법이 나와 있었다. 나는 NUMBER=1 이므로 1번을 봤다.
tablespace 문제란다.
처음에 어떻게 뭘 설치했는지도 모르는데 계속해서 tablespace 용량 문제란다.
약 5시간여 삽질끝에
Windows 환경에 익숙해진 내가 무색해졌다.
db2는 dba권한을 갖는 사용자의 홈디렉토리에 db tablepace 파일을 갖는가 보다.
AIX 이므로 chfs -a size=4G /home 명령어로 /home 파티션의 크기를 늘렸다.
이렇게 하고나니 생성이 되었다.
아...
1) DB instance Attach
db2 attach to db2inst2
2) 충분 한 dba가 사용할 홈디렉토리 파티션 확보
chfs -a size=xG /home
3) sample DB 생성
db2sampl
4) connect to db
db2 connect to sample
4. 삽질하는동안 사용한 명령어
$ db2 list db directory
$ db2 list tables for all
$ db2 connect to db2inst2
$ db2 attach to db2inst2
$ db2 connect to db2inst2
$ db2 create db sampleDB USING CODESET EUC-KR TERRITORY KR
$ df -g
$ db2 "? SQL0289N"
$ db2 list tablespace containers for 1 show detail
$ db2 "list tablespace containers for 1 show detail"
$ db2 connect to sample
$ db2 list tablespaces show detail
$ db2 "create db mkex automatic storage YES
$ db2 "create db mkex automatic storage YES USING CODESET 1363 TERRITORY KR PAGESIZE
$ db2sampl
$ db2 connect to sample
참고로 chfs 는 당연히 시스템 관리자인 root로 해야한다.
삽질 끝