[ 오라클 기동(시작) ]

1. SqlPlus를 실행시킨다.

-> sqlplus '/as sysdba' [엔터]

2. SqlPlus가 실행되고 나면

-> startup [엔터]

3. SqlPlus를 빠져 나온다.

-> exit [엔터]

4. Unix Shell로 되돌아 오면

-> lsnrctl start [엔터]

'DataBase' 카테고리의 다른 글

[Oracle] 자동증가 SEQUENCE 생성  (0) 2007.10.09
[Oracle] 테이블 생성 (다중 컬럼 PK)  (0) 2007.10.09
[Oracle] ORA-01691 에러  (1) 2007.04.26
[Oracle] 유저생성  (0) 2007.04.13
[ORACLE 9i] 기동과 종료  (0) 2007.04.13



새로 이사온 집에서 골목나가서 횡단보도 하나 건너면 도림천 자전거 도로입니다.

이사오고 나서 처음으로 자전거 마실 나왔네요

카메라를 빼놓을 수 없어 삼각대까지 질끈 매고 선유도까지 갔다 왔습니다.

사용 기종 : Nikon D70s

사용 렌즈 : 토키나 12-24 F4

1. 모든 파일에서 문자열이 들어간 파일 찾기

find . -type f -exec grep -l "문자열" /dev/null {} \;


2. 파일 분류로 찾기

find . -name *.jsp -exec grep -l "문자열" /dev/null {} \;

find . -name *.jsp -exec grep -l "문자열" /dev/null {} \; > ???.txt

배치 프로그램으로 데이터를 일괄 등록 하던중 아래와 같은 에러가 발생

 

java.io.IOException: ORA-01691: OUTLET.SYS_LOB0000006371C00056$$ LOB 세그먼트를 128(OUTLETTABLESPACE 테이블스페이스에 있음)에 의해 확장할 수 없음
ORA-06512: "SYS.DBMS_LOB", 줄 775에서
ORA-06512: 줄 1에서

at oracle.jdbc.dbaccess.DBError.SQLToIOException(DBError.java:618)
at oracle.jdbc.driver.OracleClobWriter.flushBuffer(OracleClobWriter.java:201)
at oracle.jdbc.driver.OracleClobWriter.close(OracleClobWriter.java:177)
at java.io.BufferedWriter.close(BufferedWriter.java:247)
at productBatch.main(productBatch.java:170)

데이터가 rollback 되었습니다.

 

 

ORA-01691 이게 데이타 파일이 지정된 용량을 다 사용해서 그런거다...

 

ㅎㅎ 개발서버라구 데이터파일 생성할때 10M 만 줬더니 그런가부다.

 

부족하면 자동으로 늘어나는줄 알았더니 아니더라는...

 

 

해결 방법은 두가지

추가로 데이타파일을 해당 테이블 스페이스에 추가해 주거나

 

아예 데이타파일의 크기를 리사이징 해주는 방법.

 

 

 

해당 테이블 스페이스에 데이타파일을 추가하는 방법은 데이타파일을 물리적으로 다른 파티션에

 

데이타 파일을 위치시켜 억세스 효율을 높힐 수도 있다.

 

 

$ sqlplus system/manager

SQL*Plus: Release 9.2.0.1.0 - Production on Thu Apr 26 13:26:21 2007

Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.


Connected to:
Oracle9i Enterprise Edition Release 9.2.0.1.0 - 64bit Production
JServer Release 9.2.0.1.0 - Production

SQL> alter tablespace SOMETABLESPACE add datafile '/db03/SOMEDATAFILE.dbf' size 1024M;

 

 

나는 데이타파일의 크기를 리사이징 하는 방법으로 해결했다.

 

SQL> alter database datafile '/db03/mydata.dbf' resize 1024m;
Database altered.

SQL>

 

 

 

'DataBase' 카테고리의 다른 글

[Oracle] 테이블 생성 (다중 컬럼 PK)  (0) 2007.10.09
오라클 START/STOP  (0) 2007.08.11
[Oracle] 유저생성  (0) 2007.04.13
[ORACLE 9i] 기동과 종료  (0) 2007.04.13
[Oracle] PK 수정하기  (0) 2007.01.09

asp나 php로는 간단하게 구현되는 섬네일이 자바에서는구현하기가 만만치 않다.

불행중 당행으로JDK 1.4 부터는 Image I/O API가 추가되었다고 하니

JDK 1.4 이상이거나 MS Windows이거나 유닉스라도 X-Window가 구동이 되는 환경이라면

잠깐의 웹 검색만으로 훌륭한 샘플을 얻을 수 있을것이다.

아쉽게도 본인이 일하는 곳의 환경 SUN Solaris에 Weblogic 6.1 + JDK 1.3

X window 설정이 제되로 되어 있지 않았다.

(전임자가 이런 저런 방법으로 일주일정도 고생했는데 X-Window설정을 잡지 못하고 포기했다고 한다.)

여기저기 검색끝에 PJA Toolkit 이라는 놈을 이용하면X-Window 없이도 섬네일을 구현할 수 있다고 한다.

http://blog.naver.com/jeany4u/30000252147

국내 사이트에서 검새으로 찾은 PJA에 관한 자료는 모두 이글의 카피본 인듯 하다.

본인역시 저 글을 참조했지만 설명이 부족해서 인지 한나절 정도 헤멨다.(토요일 오후에 이게 뭔짓거리인지 -.,ㅡa)

자세한 내용이 궁금하신 분은 저위에 링크되어 있는 글과http://www.eteks.com/pja/en/사이트를 참고 하시길...

(붉은색으로 표시된 곳은 자신의 환경에 맞도록 하면됨)

1. http://www.eteks.com/pja/en/#Download에서 Other platforms pja_2.5.zip을 받는다.

2. 압축을 풀면 몇개의 jar파일이 생성되는데

pja_2.5/lib/pja.jar

pja_2.5/lib/pjatools.jar

이 두개의 jar파일만 있으면 된다.서버의 원하는 위치에 위치하도록 한다.

본인의경우 /user/pja/lib 아래에 두었다.

3. /user/pja/lib/fonts 폴더를 생성

4. 우리 서버의 경우 jdk1.3 이 /user/jdk131 에 설치되어 있었다.

jdk1.3 JVM의 폰트를 가져다 쓰도록 했다.

/user/jdk131/jre/lib/font.properties-> /user/pja/lib/font.properties 복사

/user/jdk131/jre/lib/font.properties.co -> /user/pja/lib/font.properties.co복사

/user/jdk131/jre/lib/fonts/*.ttf->/user/pja/lib/fonts/*.ttf 복사

5. /user/bea/wlserver6.1/config/mydomain/startWebLogic.sh에 자바옵션을 추가

# For PJA Image library
JAVA_OPTIONS="$JAVA_OPTIONS -Xbootclasspath/a:/user/pja/lib/pja.jar"
JAVA_OPTIONS="$JAVA_OPTIONS -Dawt.toolkit=com.eteks.awt.PJAToolkit"
JAVA_OPTIONS="$JAVA_OPTIONS -Djava.awt.graphicsenv=com.eteks.java2d.PJAGraphicsEnvironment"
JAVA_OPTIONS="$JAVA_OPTIONS -Djava2d.font.usePlatformFont=false"
JAVA_OPTIONS="$JAVA_OPTIONS -Duser.home=/user/pja/lib"
JAVA_OPTIONS="$JAVA_OPTIONS -Djava.awt.fonts=/user/pja/lib/fonts"
CLASSPATH=$CLASSPATH:/user/pja/lib/pjatools.jar

각 변수의 의미는 http://blog.naver.com/jeany4u/30000252147를 참고하도록 한다.

CLASSPATH에 pjatools.jar 를 걸어주지 않으면 일부 클래스를 import하지 못함

물론 pjatools.jar의 클래스를 사용하지 않을꺼라면 안해도 무방

6. 웹로직을 재기동 한다.

7. 샘플 JSP

<%@ page import="java.awt.*"%>
<%@ page import="java.io.*"%>
<%@ page import="Acme.JPM.Encoders.*"%>
<%@ page import="com.sun.image.codec.jpeg.*"%>
<%@ page import="java.awt.image.*"%>
<%
String args[] = new String[5];
args[0] = "/user/webroot/pjatest/DSC_2078.JPG"; // 절대 경로를 사용해야 한다.
args[1] = "/user/webroot/pjatest/thumbDSC_2078.jpg"; // 절대 경로를 사용해야 한다.
args[2] = "200";
args[3] = "300";
args[4] = "80";
Image image = Toolkit.getDefaultToolkit().getImage(args[0]);
MediaTracker mediaTracker = new MediaTracker(new Frame());
mediaTracker.addImage(image, 0);
mediaTracker.waitForID(0);
// determine thumbnail size from WIDTH and HEIGHT
int thumbWidth = Integer.parseInt(args[2]);
int thumbHeight = Integer.parseInt(args[3]);
double thumbRatio = (double)thumbWidth / (double)thumbHeight;
int imageWidth = image.getWidth(null);
int imageHeight = image.getHeight(null);
double imageRatio = (double)imageWidth / (double)imageHeight;
if (thumbRatio < imageRatio) thumbHeight = (int)(thumbWidth / imageRatio);
else thumbWidth = (int)(thumbHeight * imageRatio);
// draw original image to thumbnail image object and
// scale it to the new size on-the-fly (drawImage is quite powerful)
BufferedImage thumbImage = new BufferedImage(thumbWidth, thumbHeight, BufferedImage.TYPE_INT_RGB);
Graphics2D graphics2D = thumbImage.createGraphics();
graphics2D.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR);
graphics2D.drawImage(image, 0, 0, thumbWidth, thumbHeight, null);
// save thumbnail image to OUTFILE
BufferedOutputStream Imgout = new BufferedOutputStream(new FileOutputStream(args[1]));
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(Imgout);
JPEGEncodeParam param = encoder.getDefaultJPEGEncodeParam(thumbImage);
int quality = Integer.parseInt(args[4]);
quality = Math.max(0, Math.min(quality, 100));
param.setQuality((float)quality / 100.0f, false);
encoder.setJPEGEncodeParam(param);
encoder.encode(thumbImage);
%>
<IMG SRC="/pjatest/DSC_2078.JPG" ALT="">
<IMG SRC="/pjatest/thumbDSC_2078.jpg" ALT="">

8. Java Beans로만든샘플다운로드

PJAThumbNail.java

'Java' 카테고리의 다른 글

이런코딩 하지말자  (0) 2008.07.09
[JSP] request.getParameterNames(); 예제  (0) 2008.07.09
[UNIX] crontab에서 자바프로그램 실행(한글문제 해결법)  (1) 2007.04.11
[Java] Singleton 패턴...  (0) 2007.01.09
[Java] ftp client  (0) 2007.01.09

$ sqlplus "/as sysdba"

SQL> CREATE TABLESPACE TESTTABLESPACE

2 DATAFILE '/DB03/DBF/TEST.DBF' SIZE 10M;

TABLESPACE CREATED.

SQL> CREATE USER TESTUSER IDENTIFIED BY TESTPASSWD

2 DEFAULT TABLESPACE TESTTABLESPACE

3 TEMPORARY TABLESPACE TEMP QUOTA 500K ON TESTTABLESPACE;

USER CREATED.

SQL> GRANT CONNECT TO TESTUSER;

GRANT SUCCEEDED.

SQL> GRANT CONNECT, RESOURCE TO TESTUSER;

GRANT SUCCEEDED.

SQL> GRANT CONNECT, DBA TO TESTUSER;

GRANT SUCCEEDED.

SQL> EXIT

$

'DataBase' 카테고리의 다른 글

오라클 START/STOP  (0) 2007.08.11
[Oracle] ORA-01691 에러  (1) 2007.04.26
[ORACLE 9i] 기동과 종료  (0) 2007.04.13
[Oracle] PK 수정하기  (0) 2007.01.09
[Oralcle] 초 이하 단위 시간 얻어오기  (0) 2007.01.09

$ sqlplus "/as sysdba"

SQL*Plus: Release 9.2.0.1.0 - Production on Wed Dec 7 14:05:51 2005

Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.

Connected to:

Oracle9i Enterprise Edition Release 9.2.0.1.0 - 64bit Production

With the Partitioning, OLAP and Oracle Data Mining options

JServer Release 9.2.0.1.0 - Production


SQL>startup <--- 오라클DB 시작명령

SQL>shutdown abort <--- 오라클DB 종료명령

SQL>exit <--- SQLPLUS 빠져나오기

$ lsnrctl

LSNRCTL for Solaris: Version 9.2.0.1.0 - Production on 07-DEC-2005 14:10:01

Copyright (c) 1991, 2002, Oracle Corporation. All rights reserved.

Welcome to LSNRCTL, type "help" for information.

LSNRCTL>start <--- 리스너 시작하기

LSNRCTL>stop <--- 리스너 종료하기

LSNRCTL>exit <--- 리스너 빠져나오기

'DataBase' 카테고리의 다른 글

[Oracle] ORA-01691 에러  (1) 2007.04.26
[Oracle] 유저생성  (0) 2007.04.13
[Oracle] PK 수정하기  (0) 2007.01.09
[Oralcle] 초 이하 단위 시간 얻어오기  (0) 2007.01.09
[Oracle] V$SESSION 테이블 활용  (0) 2007.01.09

$ find . -name \*png\* -print
$ find . -name \*.lib -exec grep png {} \; -print

첫번째 명령은 현재 디렉토리 이하의 모든 디렉토리 중에서 파일이름 중간에

png 라는 단어가 들어간 모든 파일을 찾는 명령이다.
두번째 명령은 .lib 로 끝나는 파일 중에서 파일의 내용 중에 png 라는 단어가 포함되어 있는 파일을 찾는 명령이다.

출처 http://www.todaybike.com/imageresize/thumbnail1.html#C

일반적 환경이 설정되어 있는유닉스 서버에 telnet으로 로그인을 해서

Java 컴파일이나class를 실행하는 등 작업을 하면 잘 되는데

주기적으로 해야 하는 작업이 필요해 커맨드라인 명령을 똑같이 crontab에 등록을 하면

잘 실행되던 명령도 에러를 내면서 원하는 결과가 나오지 않는 경우가 자주 있다.


원인은 환경변수때문인데...

telnet으로 로그인 할경우 쉘의 종류에 따라서 유저의 홈디렉토리에 있는 .profile(본쉘), .cshrc(C쉘) 파일들이 마치 윈도우의 시작 프로그램처럼 자동으로 실행되어서 PATH, CLASSPATH, 터미널타입, 에디터, 프롬프트의 모양 등의 여러가지 환경변수들이 자동으로 설정된 상태에서 Java프로그램을 실행하기 때문에 명령줄 실행하는 것들은 잘 실행되는 것이다.

하지만 crontab으로 자바클래스을 실행하는 것은 telnet로그인과는 무관하기때문에 자바프로그램을 실행하는 스크립트를 만들어 실행전에 환경변수를 원하는 형태로 잡아주던가 아주 긴 형태의 자바실행명령(ex:java -classpath ...... -D...... )을 크론텝에 등록해줘야 한다.

게다가 자바에서 사용하는 유니코드와 UNIX시스템의 한글코드방식이 다른경우가 대부분이기때문에 Java프로그램에서 System.out.println(...)과 같은 Standard OUT의 내용과 File OUT등 한글 출력이 깨지게 된다.

해결 방법은 여러가지가 있지만... 본인은자바 환경변수 file.encoding을 지정하는 방법으로 해결했다. 사용하는 머신의 한글 엔코딩 방식을 알고 있다면 바로 적용하면 되고 잘 모른다면 한글 출력예제 프로그램을작성 해서 테스트 해보자 

(샘플 다운로드 1176266469_EncodeingTest.java EncodeingTest.java)


샘플 프로그램은 한글을 오라클 DB, System.out, file OUT 등으로 출력하는 프로그램이다.

/user/hantest/ 디랙토리를 생성하고

$java-Dfile.encoding=EUC_KR EncodingTest EUC_KR >> /user/hantest/EUC_KRSTD.out

$java-Dfile.encoding=8859_1 EncodingTest 8859_1 >> /user/hantest/8859_1STD.out

$java-Dfile.encoding=UTF_8 EncodingTest UTF_8 >> /user/hantest/UTF_8STD.out

등등 무식하게...(-.,ㅡa) 돌려보자


프로그램 내부에서 file io로 출력하는 .txt 파일과 STD OUT을 담는 .out 파일이 둘다 제대로 나오는 엔코딩 방식을 선택하면 된다.

위 샘플은 오라클 접속을 하기때문에 오라클 드라이버가 클래스패스에 잡혀있어야 제대로 동작한다.

DB한글 테스트가 필요 없는 경우에는 오라클 관련 부분을 제거하면 된다.

결론으로 우리서버의 경우 EUC_KR 방식이었다.

============================================================================================

#!/bin/sh

CLASSPATH=.:/user/java1.3.1/lib/dt.jar:/user/java1.3.1/lib/tools.jar:...생략..:

export CLASSPATH

cd /user/batch

java -Dfile.encoding=EUC_KR DailyCronbJob >> /user/batch/log/DailyCronbJob`date +%Y%m`.log
============================================================================================

SUN Os 5.6 에서 테스트한 샘플 입니다.

이렇게 쉘 스크립트를 작성해 주고

크론텝에 등록해 주면 완료





웃기지만 현실...

지펠 양문 냉장고를 만들어 달라고 하면 하다못해위아래로 나누어진 냉장고라도 만들어 줘야 하는데

선풍기 두개 붙혀놓고 지펠딱지 붙혀서 다 만들었다고 하면 되나... ㅋㅋㅋ

'우스개' 카테고리의 다른 글

어떤 오해  (1) 2007.01.10

+ Recent posts