Windows에 Trac 설치하기

(1) Python을 설치한다.
Trac은 2.4 이상 3.0 미만의 버전만 지원한다.
http://python.org/

Python 2.7.1 버전을 설치했다.
설치 디렉토리는 C:\Python27이다.

환경변수 Path에 Python 디렉토리와 스크립트 디렉토리를 등록해두면 편리하다.
C:\Python27;C:\Python27\Scripts



(2) setuptools 라이브러리를 설치한다.
이거 설치 안하면 나중에 ImportError를 만나게 된다.
http://pypi.python.org/pypi/setuptools



(3) Genshi 라이브러리를 설치한다.
http://genshi.edgewall.org/wiki/Download



(4) 데이터베이스를 설치한다.
Trac은 SQLite, PostgreSQL, MySQL을 지원한다.

PostgreSQL을 선택했다. 이유? 그런 거 없다.
http://www.postgresql.org/

설치 후 사용자 계정과 데이터베이스를 만든다.



(5) psycopg2 라이브러리를 설치한다.
http://pypi.python.org/pypi/psycopg2
다운로드 페이지에 Windows Installer 버전이 없다.

갑자기 피곤이 몰려온다. 이 귀찮음을 무릅쓸만큼 Trac이 필요한지 의문이 든다.
침착하자. 세상은 넓고 착한 사람들은 많다. 누군가 윈도 버전을 만들어 놓았다.
http://www.stickpeople.com/projects/python/win-psycopg/



(6) Trac을 설치한다.
http://trac.edgewall.org/



(7) trac-admin으로 프로젝트를 생성하자.
[참고] trac-admin.exe는 Python 디렉토리의 Scripts/에 있다.

>> trac-admin c:\Trac\myproject initenv

프로젝트 이름을 물어본다. (기본값: My Project)
귀찮다. 그냥 엔터친다.

데이터베이스 연결 문자열을 물어본다.
귀찮지만 이건 그냥 엔터치면 안 된다. 나는 PostgreSQL을 쓰고 싶다.

아래와 같은 형태로 입력하고 엔터친다.
postgres://아이디:패스워드@localhost/데이터베이스명
(예) postgres://tracuser:tracpass@localhost/trac

여기서 이상한 에러가 발생하면 디렉토리를 미리 만들어두었는지 확인한다.
c:\Trac\myproject에 프로젝트를 생성하려면 Trac 디렉토리가 미리 만들어져 있어야 한다.



(8) tracd를 실행한다.
tracd는 lightweight standalone(경량 독립형?) 웹서버다.
원한다면 다른 웹서버로 Trac을 실행할수도 있지만 귀찮다. 그냥 쓰자.

>> tracd --port 8000 c:\Trac\myproject



(9) 마무리
설치가 끝났다. 웹브라우저를 열고 실행해보자.
http://127.0.0.1:8000/myproject

뭔가 나온다. 로그인을 살포시 클릭한다.
에러 메시지가 보인다. 젠장 끝이 아니군.



(10) 인증 사용
로그인이 가능하도록 하려면 tracd를 실행할 때 --auth 옵션을 주어야 한다.
옵션은 --auth="프로젝트명,패스워드파일명,realm" 형식이다.

>> tracd --port 8000 --auth="myproject,c:\Trac\password,trac" c:\Trac\myproject

이제 로그인을 다시 클릭한다.
아까까지 보였던 에러 메시지는 사라지고 로그인창이 열린다.
하지만 난 아이디와 패스워드를 모른다. 만든적이 없으니까 당연하다.

tracd를 실행할 때 --auth 옵션에 포함시켰던 패스워드파일을 열어서 아래와 같은 형식으로 입력한다.

아이디:realm:MD5패스워드
(예) admin:trac:admin:trac:71ea86385b35d5e2575b0baec1904ded

로그인을 다시 클릭하고 당당하게 아이디와 패스워드를 입력한다.
New Ticket이라는 메뉴가 생겼다.



(11) 관리 메뉴 활성화
관리 메뉴를 활성화하려면 trac-admin이 필요하다.

>> trac-admin 프로젝트경로 permission add 아이디 TRAC_ADMIN
(예) trac-admin c:\Trac\myproject permission add admin TRAC_ADMIN



(12) 사용자 관리 플러그인 설치
http://trac-hacks.org/wiki/AccountManagerPlugin

ORA-16038, ORA-19809, ORA-00312 에러 발생시 복구 방법 Oracle

오라클을 비정상 종료하고 startup하면
ORA-16038, ORA-19809, ORA-00312 에러가 발생할 수 있다.

이 때에는 RMAN을 이용하여 (SQLPlus 아님)
아래와 같이 아카이브로그를 삭제 후 크로스체크 명령을 실행하면 된다.
(quick and dirty 방법이므로 급한 경우에만 사용할 것!)

RMAN> connect target /
RMAN> delete archivelog all;
RMAN> crosscheck archivelog all;


Oracle Loader Oracle

오라클에 대용량 데이터를 입력할 때 Oracle Loader(sqlldr)를 사용한다.
sqlldr를 사용하기 위해서는 컨트롤 파일과 데이터 파일이 필요하다.


(1) 입력하고자 하는 테이블을 생성한다.
create table ip2country (
ip_from number,
ip_to number,
country_code char(2),
country_name varchar2(64)
);


(2) 컨트롤 파일을 작성한다. (ip2country.ctl)
load data
infile IPCountry.csv
insert
into table ip2country
fields terminated by ',' enclosed by '"'
(
ip_from,
ip_to,
country_code,
country_name
)


(3) 데이터 파일을 작성한다. (파일이 있으면 패스!)


(4) 로더를 실행한다.
sqlldr sigma/sigma@sigmadb control=ip2country.ctl log=ip2country.log


1