2015년 12월 3일 목요일

오라클 11g에서 export 한 파일이 10g에 import 되지 않을때

서버는 오라클 최신버전을 구매해서 11g를 설치했다.
운영중 서버에서 export한 dmp 파일을 개발서버에 import하려고 하니


IMP-00010: 엑스포트 파일이 유효하지 않고, 헤더가 검증에 실패했습니다
IMP-00000: 임포트가 실패로 끝났습니다

에러가 나면서 dmp 파일이 열리지 않는다.


11g에서 덤프받은 파일을 10g에 올리려고 해서 발생하는 에러라고 함.


해결방법은 여러가지가 있는 듯 하다.

- 11g 에서 version=10.2 옵션을 붙여서 export 다시 받기
- client 10g 버전으로 11g에 접속해서 export 받기
- client 11g 에서 10g로 imp 하기


DB서버에 외부접속이 차단된 관계로, 다시 export를 받을 수 없었다.
3번째 방법 "client 11g에서 10g로 imp 하기"로 결정.
오라클 클라이언트 다운받고 설치하고, TNS등록해주고 하는 시간이 오래 걸리긴 했으나,


다행히 imp는 오류 없이 성공!


2015년 11월 25일 수요일

오라클(oracle) 11g 에서 사용하지 않은 테이블이 exp 되지 않을 때

오라클 백업 및 복원시 exp / imp 명령을 사용해서 복원했는데, 테이블의 개수가 다른 경우가 있다.
11g 부터 생성하고 한번도 사용하지 않은 테이블의 경우 dmp에서 제외된다고 한다.

이럴때 강제로 테이블에 segment를 할당하기 위해,

ALTER TABLE <table_name> ALLOCATE EXTENT;

쿼리를 활용하면 됨.


빈 테이블만 ALTER 쿼리를 만들기 위해,

SELECT 'ALTER TABLE '||table_name||' ALLOCATE EXTENT;' FROM user_tables WHERE segment_created = 'NO';

를 실행하고, 쿼리 결과를 다시 실행한 다음 exp를 실행하면
모든 테이블을 export 받을 수 있다.


2015년 11월 20일 금요일

Tomcat 오라클에서 오류. ORA-01000: 최대 열기 커서 수를 초과했습니다

http://serendipity.tistory.com/65 를 참고했습니다.

톰캣에서 "ORA-01000: 최대 열기 커서 수를 초과했습니다" 오류가 발생하는 것은
오라클 프로세스당 커서수가 증가되어 발생되는 에러.


1) 쿼리로 오라클 프로세스 당 커서수를 확인

SELECT sid, count(sid) AS cursor
FROM V$OPEN_CURSOR
WHERE user_name = 'SCOTT'
GROUP BY sid
ORDER BY cursor DESC

접속자수에 따라 다르지만, 오라클 cursor 수가 100개(일반적인 사이트는 20개)가 넘는 세션에서 사용하는 SQL문장은 의심할 필요 있음.



2) SQL문에서 사용하는 커서수

SELECT sql_text, count(sid) cnt
FROM V$OPEN_CURSOR
GROUP BY sql_text
ORDER BY cnt DESC

커서수가 많은 sql 문장을 찾아보면, 자바에서 preparedStatement가 close()되지 않았을 확률이 높음
특히 for문이나 Loop문에서 preparedStatement를 사용하는 부분 확인 필요.






2015년 3월 18일 수요일

우분투(ubuntu) 타임존(time_zone) 변경

해외 클라우드 서비스 이용할 경우,
서버 세팅하고 나서, 우분투의 타임존을 확인합니다.

$ date

국내 서비스를 할 경우, 타임존을 Asia/Seoul 로 수정하려면

$ sudo dpkg-reconfigure tzdata


하고, Asia -> Seoul 순서로 선택해주면 끝.

2015년 2월 4일 수요일

맥에서 터미널 프롬프트에 git branch 추가하기

master에서만 살 때는 몰랐는데, branch를 만들기 시작하니
확인하려는 마음에 "git b / git branch" 를 계속 입력하게 되는군요.

가끔 치려고 검색해서
http://martinfitzpatrick.name/article/add-git-branch-name-to-terminal-prompt-mac/
을 따라했습니다.


1) bash_profile 열기
$ vi ~/.hash_profile



2) 아래 내용 추가
# Git branch in prompt.

parse_git_branch() {

    git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/ (\1)/'

}

export PS1="\u@\h \W\[\033[32m\]\$(parse_git_branch)\[\033[00m\] $ "



3) 적용
source ~/.bash_profile



잘 되내요~

2015년 1월 31일 토요일

place it - 웹사이트, 앱의 시연 사진을 쉽게 만들어 줍니다.

웹사이트나 앱에 관련된 PT자료를 만들 때, 이런 사진 많이 필요했습니다만,
포토샵을 잘 다루지 못해서 만들기 어려웠던 이미지 입니다.

캡쳐 이미지만 올리면 다양한 시연사진, 동영상을 만들어 주는 사이트 입니다.


큰 사이즈는 유료긴 하지만, 급하게 필요할때 쉽게 고품질의 이미지를 만들 수 있네요.

자세한 내용 보기 - http://dotooori.com/acorns/26

2015년 1월 29일 목요일

git 관련 링크 모음

git 편한것 같긴 한데, 좀 복잡해서 적당히 쓰려고 했는데, 맘대로 안되는군요.
세상 모든 일이 그렇게 하는데는 다 이유가 있겠죠.

여적 master에서만 살아오다 도저히 버틸 수 없어^^
살짝 공부하려 합니다.

찾아보니 정보가 너무 많아서 무엇을 해야할지!



우선은 아래 순서로 공부하고, branching model을 따라 해보기로 결정했습니다.


부제처럼 진짜 어렵지는 않습니다. 다만 다음에 뭘 해야할지???

2. git 브랜치 배우기 ( http://learnbranch.urigit.com/ )
git 명령을 실행하면, 옆에 흐름이 그림으로 표시되어 개념잡을 때 좋은 것 같습니다.
계속 하다보니 명령어가 외워지는군요^^

누가 한글로 번역해두셨군요. 정말 감사^^
샘플로 명령어도 다 나와있으니 너무 좋습니다. 
결론처럼 출력해놓고 뒤를 따르기로 결정했습니다.




git 하긴 해야하는데 어찌해야할지 모르겠는 분들 활용해보세요.


poetweet.com.br 트윗을 모아 시를 지어줌

브라질에 있는 문화공간에서 개설한 문학코스를 홍보하기 위해 트위터를 이용해서 시를 만들어 주는 사이트 입니다.


먼저 트위터 계정을 넣으면 트윗들을 분석해서 시로 만들어 주는 것 같습니다.

트위터가 개발할 때 접근이 쉬운 편이니까,
복잡하지 않으면서 재밌는 이벤트 가능할 것 같습니다.
아이디어. 굿이네요.


자세한 사이트 설명 보기 - http://dotooori.com/acorns/23