작년에 프로젝트(이하 projectx)를 수행하던 중에 작성했던 것들을 정리하여 공개합니다. SI 프로젝트들이 늘 그렇듯이 쪼들리는 일정과 반복되는 요구사항 변경, 그리고 환경이 개판이지요. 그 전까지만 해도 몇년을 자동화된 툴을 사용하지 않고 ftp와 터미널을 사용하는 환경이었습니다. 개발툴이야 당연 eclipse였지만요. 그런데 projectx를 수행할 때는 제가 개발리더 역할을 맡았고, 서버 조정이나 환경등을 제가 설정해야 했습니다. 기회는 이때다 싶었죠. svn 설치, 설정을 하고 각 개발자들에게 사용법을 알려주었습니다. 그리고 마구 바뀌는 요구사항을 수용하기 위해 custom tag들을 만들었죠. svn 덕분에 소스 덮어치기 사고는 일어나지 않았지만, 하루에도 수십번을 빌드할 수 있는 상황은 바뀌지 않았습니다. 제가 cvs보다 svn을 좋아하는 이유는 svn이 event를 지원하는 것 때문이었는데, 그것을 이용해서 자동빌드/적용 환경을 꾸미게 되었습니다. svn repository에서 source root를 보면 hooks 라는 디렉토리가 있습니다. 그 안에는 [$SOURCE_ROOT/hooks ]$ ls post-lock.tmpl pre-commit.tmpl pre-unlock.tmpl post-revprop-change.tmpl pre-lock.tmpl start-commit.tmpl post-commit.tmpl post-nlock.tmpl pre-revprop-change.tmpl 라는 파일들이 있습니다. 이것들은 각 이벤트에 반응할 스크립트들의 템플릿인데요, 위의 파일에서 “.tmpl”을 빼서 저장하면 svnserve가 알아서 해당 스크립트를 실행합니다. 그 중 post-commit 스크립트는 커밋 이후에 실행되는 스크립트입니다. 저걸 수정하면 되지요. [$SOURCE_ROOT/hooks ]$ vi post-commit #!/bin/sh /home/svn/sample_script_post_commit.sh 위와같이 post-commit 파일을 생성해줍니다. 그 다음에 /home/svn/sample_script_post_commit.sh를 만들면 됩니다. 스크립트 기능은 “목표 바이너리 삭제 -> svn export -> build -> 바이너리 copy” 면 충분합니다. [$SOURCE_ROOT/hooks ]$ vi /home/svn/sample_script_post_commit.sh #!/bin/sh mkdir $APP_ROOT/WEB-INF/classes svn export svn://$SOURCE_ROOT $APP_ROOT/$SOURCE_ROOT –force –username $USERNAME –password $USERPASSWORD /home/svn/build.sh date > /home/svn/backup_gos_dev/lastbackup.log /home/svn/build.sh 는 ant를 이용한 빌드 스크립트입니다. 간단하죠. #!/bin/sh cd /home/svn export JAVA_HOME=/usr/java5 ant build.xml은 각자 프로젝트에 맞에 생성해주시면 됩니다. No related posts. Related posts brought to you by Yet Another Related Posts Plugin.
Posted by [czar]
,

[localhost]$ uname -a
Linux locahost 2.4.20-30.9 #1 Wed Feb 4 20:44:26 EST 2004 i686 i686 i386 GNU/Linux


[localhost]$ cat /etc/issue
Red Hat Enterprise Linux AS release 3 (Taroon)
Kernel \r on an \m


[localhost]$ cat /etc/issue.net
Red Hat Enterprise Linux AS release 3 (Taroon)
Kernel \r on an \m

%s %r (%m) %v (%t)
Now is %d


[localhost]$ cat /etc/redhat-release
Red Hat Enterprise Linux AS release 3 (Taroon)


[localhost]$ cat /proc/version
Linux version 2.4.21-4.ELsmp (bhcompile@daffy.perf.redhat.com) (gcc version 3.2.3 20030502 (Red Hat Linux 3.2.3-20)) #1 SMP Fri Oct 3 17:52:56 EDT 2003


[localhost]$ cat /etc/rc.sysinit | grep PRODUCT=
 PRODUCT=`sed "s/Red Hat \(.*\) release.*/\1/" /etc/redhat-release`
 PRODUCT=`sed "s/ release.*//g" /etc/redhat-release`

Posted by [czar]
,

log4sql driver

카테고리 없음 2009. 5. 12. 19:23

http://log4sql.sourceforge.net/index_kr.html

사용법
1.다운받은 zip파일을 압축을 풀고 log4sql.jar를 클래스 패스에 넣습니다.
2.commons-lang.jar파일을 다운받아서 클래스 패스에 넣습니다.
3.드라이버명을 다음과 같이 바꿉니다.

JDBC TYPE Origin Your Driver Class -> log4sql Driver Class
[ORACLE DRIVER CLASS] 'oracle.jdbc.drirver.OracleDriver' -> 'core.log.jdbc.driver.OracleDriver'
[MYSQL DRIVER CLASS] 'com.mysql.jdbc.Driver' or'org.gjt.mm.mysql.Driver' -> 'core.log.jdbc.driver.MysqlDriver'
[SYBASE DRIVER CLASS] 'com.sybase.jdbc2.jdbc.SybDriver' -> 'core.log.jdbc.driver.SybaseDriver'
[DB2 DRIVER CLASS] 'com.ibm.db2.jcc.DB2Driver' -> 'core.log.jdbc.driver.DB2Driver'
[INFOMIX DRIVER CLASS] 'com.informix.jdbc.IfxDriver' -> 'core.log.jdbc.driver.InfomixDriver'
[POSTGRESQL DRIVER CLASS] 'org.postgresql.Driver' -> 'core.log.jdbc.driver.PostgresqlDriver'
[MAXDB DRIVER CLASS] 'com.sap.dbtech.jdbc.DriverSapDB' -> 'core.log.jdbc.driver.MaxDBDriver'
[FRONTBASE DRIVER CLASS] 'com.frontbase.jdbc.FBJDriver' -> 'core.log.jdbc.driver.FrontBaseDriver'
[HSQL DRIVER CLASS] 'org.hsqldb.jdbcDriver' -> 'core.log.jdbc.driver.HSQLDriver'
[POINTBASE DRIVER CLASS] 'com.pointbase.jdbc.jdbcUniversalDriver' -> 'core.log.jdbc.driver.PointBaseDriver'
[MIMER DRIVER CLASS] 'com.mimer.jdbc.Driver' -> 'core.log.jdbc.driver.MimerDriver'
[PERVASIVE DRIVER CLASS] 'com.pervasive.jdbc.v2.Driver' -> 'core.log.jdbc.driver.PervasiveDriver'
[DAFFODILDB DRIVER CLASS] 'in.co.daffodil.db.jdbc.DaffodilDBDriver' -> 'core.log.jdbc.driver.DaffodiLDBDriver'
[JDATASTORE DRIVER CLASS] 'com.borland.datastore.jdbc.DataStoreDriver' -> 'core.log.jdbc.driver.JdataStoreDriver'
[CACHE DRIVER CLASS] 'com.intersys.jdbc.CacheDriver' -> 'core.log.jdbc.driver.CacheDriver'
[DERBY DRIVER CLASS] 'org.apache.derby.jdbc.ClientDriver' -> 'core.log.jdbc.driver.DerbyDriver'
[ALTIBASE DRIVER CLASS] 'Altibase.jdbc.driver.AltibaseDriver' -> 'core.log.jdbc.driver.AltibaseDriver'
[MCKOI DRIVER CLASS] 'com.mckoi.JDBCDriver' -> 'core.log.jdbc.driver.MckoiDriver'
[JSQL DRIVER CLASS] 'com.jnetdirect.jsql.JSQLDriver' -> 'core.log.jdbc.driver.JsqlDriver'
[JTURBO DRIVER CLASS] 'com.newatlanta.jturbo.driver.Driver' -> 'core.log.jdbc.driver.JturboDriver'
[JTDS DRIVER CLASS] 'net.sourceforge.jtds.jdbc.Driver' -> 'core.log.jdbc.driver.JTdsDriver'
[INTERCLIENT DRIVER CLASS] 'interbase.interclient.Driver' -> 'core.log.jdbc.driver.InterClientDriver'
[PURE JAVA DRIVER CLASS] 'org.firebirdsql.jdbc.FBDriver' -> 'core.log.jdbc.driver.PureJavaDriver'
[JDBC-ODBC DRIVER CLASS] 'sun.jdbc.odbc.JdbcOdbcDriver' -> 'core.log.jdbc.driver.JdbcOdbcDriver'
[MSSQL 2000 DRIVER CLASS] 'com.microsoft.jdbc.sqlserver.SQLServerDriver' -> 'core.log.jdbc.driver.MssqlDriver'
[MSSQL 2005 DRIVER CLASS] 'com.microsoft.sqlserver.jdbc.SQLServerDriver' -> 'core.log.jdbc.driver.Mssql2005Driver'

콘솔에서 확인해보면 쿼리가 출력되고 실행시간도 출력이 됩니다.
log4sql.jarcommons-lang.jar

Posted by [czar]
,


http://sql.or.kr/index.php?pl=52&setdate=200701
트랙백이 안다리네.
PostgreSql의 데이터 타입
1. BOOLEN 형
  - bool로 선언
  - T, F, NULL 3종류로만 저장된다.
  - 참으로 저장 (TRUE, 'TRUE', 'T','Y','YES','1' )
  - 거짓으로 저장 (FALSE, 'FALSE','F','N','NO','0')
  - 이외의 경우에는 저장되지 않는다.
 
2. 문자형
  - CHAR : 단일문자
  - CHAR(N) : 문자열의 길이가 짧으면 공백으로 채워진다.
                문자열이 길면 무시된다.
  - VARCHAR(N) : 길이가 짧으면 공백으로 채워지지 않는다.
  - TEXT : 최대길이를 정의할 필요없는 문자열
 
3. 수치형
  - smallint : -32,768 ~ 32,767                  
  - int : -2,147,483,648 ~ 2,147,483,647
  - serial : int type 이며 일련번호 증가 타입..
  - numeric(p,s) : p자리 실수, s는 소수점 이하.
  - float(N) : N자리 정밀도를 가지는 실수값.
  - real : 이중정밀도를 가지는 실수 값
  - numeric(p,s) : s는 소숫점 이하 자리수
  - money :numeric(9,2)와 동일
  - bit : 0 과1의 단일비트값을 저장.
 
4. 시간관계형
  - date : 날짜 정보저장
  - time : 시간정보
  - timestamp (or datetime) : 날짜 + 시간 정보
  - interval : timestamp간의 시간 간격
 
5. 사용자정의 데이터 형
  - create type 명령으로 사용자정의 데이터 타입을 정의할 수 있다.
 
6. 배열형
  - 데이터 형 뒤에 []를 붙여준다. (예, int[])    
  - 배열의 크기는 선언하지 않아도 된다.
 
7. 데이터의 형변환
  - cast(column_name AS 변환하고자 하는 데이터타입)  
  - column_name::변환하고자 하는 데이터타입
  - ex) select cast(등록일 as varchar(23)) as "등록일자", 삭제일자::varchar(23) as "삭제일자"
      from table_name
Posted by [czar]
,
Posted by [czar]
,
http://sqlinform.com/


온라인상에서 실행되며, 오프라인도 있음.
다양한 입력(oracle, mysql, db2, postgresql ~~~~~ 등)
다양한 출력( normal, asp StringBuffer, c# StringBuffer,  java StringBuffer, java String 등)
Posted by [czar]
,
Posted by [czar]
,

8.3 윈도우 버전 기준

C:\Program Files\PostgreSQL\8.3\data\
postgresql.conf


60번째 라인
port = 5432    # (change requires restart)

위 라인 원하는 port 로 바꾼다.

Posted by [czar]
,
참고로 퍼갑니다.


참고 사이트

http://www.hqunix.com/wp/?p=266
http://blog.naver.com/ladom/60026225972
http://www.linux.com/guides/solrhe/Securing-Optimizing-Linux-RH-Edition-v1.3/chap27sec224.shtml

사용자 만들기

C:\Documents and Settings\bluesanta>net user postgres 1234 /add
명령을 잘 실행했습니다.

postgres 사용자로 cmd 실행하기

C:\Documents and Settings\bluesanta>runas /user:postgres cmd
postgres의 암호 입력:
cmd을(를) 사용자 "SHRYU\postgres"(으)로 시작하려고 합니다...

데이타베이스 생성

C:\WINDOWS\system32>cd \pgsql

C:\pgsql>path C:\pgsql\lib;%path%

C:\pgsql>bin\initdb -D data -E unicode --no-locale
이 데이터베이스 시스템에서 만들어지는 파일들은 그 소유주가 "postgres" id로
지정될 것입니다. 또한 이 사용자는 서버 프로세스의 소유주가 됩니다.

데이터베이스 클러스터는 C 로케일로 초기화 될 것입니다.

data 디렉토리 만드는 중 ...완료
data/global 디렉토리 만드는 중 ... 완료
data/pg_xlog 디렉토리 만드는 중 ... 완료
data/pg_xlog/archive_status 디렉토리 만드는 중 ... 완료
data/pg_clog 디렉토리 만드는 중 ... 완료
data/pg_subtrans 디렉토리 만드는 중 ... 완료
data/pg_twophase 디렉토리 만드는 중 ... 완료
data/pg_multixact/members 디렉토리 만드는 중 ... 완료
data/pg_multixact/offsets 디렉토리 만드는 중 ... 완료
data/base 디렉토리 만드는 중 ... 완료
data/base/1 디렉토리 만드는 중 ... 완료
data/pg_tblspc 디렉토리 만드는 중 ... 완료
max_connections 초기값을 선택하는 중 ...100
shared_buffers 초기값을 선택하는 중 ...1000
환경설정 파일을 만드는 중 ...완료
data/base/1 안에 template1 데이터베이스를 만드는 중 ...완료
initializing pg_authid ... 완료
시스템 테이블들을 위한 제한 없는 로우 크기를 활성화 하고 있음 ...완료
initializing dependencies ... 완료
시스템 뷰들을 만드는 중 ... 완료
pg_description 자료 입력 중 ...완료
인코딩 변환규칙(conversion)들을 만드는 중 ...완료
내장객체들의 접근 권한을 설정 중 ... 완료
information schema 만드는 중 ...완료
template1 데이터베이스 vacuum 작업 중 ...완료
template1 데이터베이스를 template0 데이터베이스로 복사 중 ...완료
copying template1 to postgres ... 완료

경고: 로컬 연결의 인증 방법을 "trust" 방식을 지정했습니다.
이 값을 바꾸려면, pg_hba.conf 파일을 수정하든지,
다음번 initdb 명령을 사용할 때, -A 옵션을 사용해서 인증방식을 지정할 수 있습니다
.

Success. You can now start the database server using:

    "bin\postmaster" -D "data"
or
    "bin\pg_ctl" -D "data" -l logfile start


C:\pgsql>

NT 서비스에 등록

C:\Documents and Settings\shryu>cd \pgsql\bin

C:\pgsql\bin>pg_ctl register -N postmaster -U postgres -P 1234 -D c:\pgsql\data

PostgreSQL 서버 실행하기

C:\pgsql\bin>net start postmaster
postmaster 서비스를 시작합니다..
postmaster 서비스가 잘 시작되었습니다.

커맨드 실행

c:\pgsql\bin\psql -U postgres template1

외부 스크립트 실행

c:\pgsql\bin\psql -U postgres < D:\DB_DDL\data.20061014.sql

Port 수정

C:\pgsql\data\postgresql.conf

# 제거후, 수정하고 싶은 Port 번호로 변경하고 데이타베이스 재실행

#port = 5432

리눅스 서비스로 등록

- 서비스에 등록

[root@localhost ~]# cp postgresql-8.1.4/contrib/start-scripts/linux /etc/rc.d/init.d/postgresql
[root@localhost ~]# chmod 755 /etc/rc.d/init.d/postgresql
[root@localhost ~]# chkconfig --add postgresql
[root@localhost ~]# chkconfig --level 2345 postgresql on

- /etc/rc.d/init.d/postgresql 수정

prefix, PGDATA의 경로를 설치되어 있는 경로로 설정합니다.

prefix=/usr/local/pgsql-8.1.4
PGDATA=/usr/local/pgsql-8.1.4/data

- SELinux 비활성화(방화벽으로 실행이 안될경우 사용)

/etc/selinux/config에 SELINUX=disabled 설정


Posted by [czar]
,
Posted by [czar]
,