반응형

Skeleton Project 란 단어를 Maven 의 plug-in tool인 archetype 을 통해서 영어 번역도중 발견하였다.


음.. 과연 왜 저런말을 쓸까? 왠지 좀.. 더미 프로젝트 느낌이 나는데 싶어서 한글로 구글에 검색해


보니 나오지가 않는다. 그래서 what is skeleton project? 라고 검색 하니 아래 위키가 나왔다.


Skeleton programming is a style of computer programming based on simple high-level program structures and so called dummy code. Program skeletons resemble pseudocode, but allow parsing, compilation and testing of the code.

Dummy code is inserted in a program skeleton to simulate processing and avoid compilation error messages. It may involve empty function declarations, or functions that return a correct result only for a simple test case where the expected response of the code is known.

Skeleton programming facilitates a top-down design approach, where a partially functional system with complete high-level structures is designed and coded, and this system is then progressively expanded to fulfill the requirements of the project.

Program skeletons are sometimes used for high-level descriptions of algorithms.

A program skeleton may also be utilized as a template that reflects syntax and structures commonly used in a wide class of problems.

Skeleton programs are utilized in the template method design pattern used in object-oriented programming. See that article for examples of skeleton programs.

In object-oriented programming, dummy code corresponds to an abstract method, a method stub or a mock object. In RMI nomenclature, a skeleton communicates on the client-side with a stub on the server-side.[1]


출처 : http://en.m.wikipedia.org/wiki/Skeleton_%28computer_programming%29


결론적으로, 더미 프로젝트라는 느낌으로 보면 될 듯 하다.


보통의 framework에서 소스의 packaging 구조를 잡아주고, 그 이하 샘플 코들르 넣어둬서


만드는 프로젝트 즉, 테스트 템플릿 프로젝트를 skeleton project 라고 지칭하는것  같다.


 - 2013.07.04 랑이씀 -

반응형

'이론개념 > 용어' 카테고리의 다른 글

[ GNU 와 GPL 의 정의 ]  (0) 2011.03.24
[ JDK & SDK 차이 ]  (0) 2011.01.24
[ 발명자와 출원인의 차이점? ]  (0) 2011.01.19
[ 정량적 & 정성적 ]  (0) 2010.10.08
[ 단편화 현상 ]  (0) 2010.10.03
반응형

오라클 유용한 쿼리에 대해서 알아보도록 하자.

 

(1) DATABASE 관련 Query

 -- 현재 DATABASE의 상태정보를 조회한다.

 SELECT * FROM v$database

 

(2) TABLE SPACE 관련 Query

 

 -- 현재 TABLESPACE 의 상태 조회

 SELECT * FROM DBA_TABLESPACES;

 

 -- 특정 TABLESPACE 삭제

 a) DROP TABLESPACE :TABLESPACE_NAME INCLUDING CONTENTS CASCADE CONSTRAINTS

 b) 해당 물리 파일을 삭제한다.

 

 -- 해당 유저의 DEFAULT TABLESPACE 조회 명령어

 SELECT *   FROM user_users;

 

 -- 해당 유저의 DEFAULT TABLESPACE 변경(SYSDBA권한)

ALTER USER :USER_NAME DEFAULT TABLESPACE :TO_TABLESPACE

 

 -- 각 SEGMENT 별 TABLESPACE 정보 조회(SYSDBA권한)

SELECT OWNER,
 SEGMENT_NAME,
 SEGMENT_TYPE,
 TABLESPACE_NAME,
 BYTES
from  dba_segments
WHERE TABLESPACE_NAME IN (':TABLESPACENAME')

 

 -- TABLESPACE DATAFILE 추가(SYSDBA 권한)

ALTER TABLESPACE :TABLESPACE_NAME ADD DATAFILE 'F:\app\sungrangkong\oradata\orcl\IMS_DATA02.DBF' SIZE 30G AUTOEXTEND ON NEXT 50M MAXSIZE UNLIMITED; 

 

 

(3) USER 관련 Query

 

 -- 특정사용자에게 부여된 권한 조회(SYSDBA권한)

SELECT * FROM DBA_SYS_PRIVS WHERE grantee = :USER_ID ORDER BY PRIVILEGE ASC

 

 -- 특정 사용자에게 권한 부여

GRANT :권한명  TO :USER_ID

 

 -- 권한 삭제

REVOKE :권한들(,단위구분) FROM :USER_ID

 

 

(4) 모니터링 Query

 

-- Table Space 사용중인 용량 조회

SELECT a.tablespace_name,
    a.total_gb || ' G' "Total(Gb)", 
       a.total || ' M' "Total(Mb)",
       (a.total - b.free) || ' M' "Used(Mb)",
       (nvl(b.free,0)) || ' M' "Free(Mb)",
       (round((a.total - nvl(b.free,0))*100/total,0)) || ' %' "Used(%)"
  FROM
       (SELECT tablespace_name,
           round((sum(bytes)/1024/1024/1024),0) AS total_gb ,
              round((sum(bytes)/1024/1024),0) AS total
         FROM dba_data_files
        GROUP BY tablespace_name
       ) a,
       (SELECT tablespace_name,
              round((sum(bytes)/1024/1024),0) AS free
         FROM dba_free_space
        GROUP BY tablespace_name
       ) b
 WHERE a.tablespace_name = b.tablespace_name(+)
ORDER BY a.tablespace_name;

 

     (실행결과)

     

 

 

 

-- 현재 실행중인 쿼리문과 프로세스아이디,시리얼번호,머신 알아내기

SELECT c.sql_text ,
       b.SID ,
       b.SERIAL# ,
       b.machine ,
       b.OSUSER ,
       a.spid,
       b.logon_time
  FROM v$process a,
       v$session b,
       v$sqltext c
 WHERE a.addr = b.paddr
       AND b.sql_hash_value = c.hash_value
ORDER BY c.PIECE

 

  (실행결과)

 

 

 

-- LOCK 걸린 Table 조회

 

SELECT s.username,
       s.sid,
       s.serial#,
       s.logon_time,
       DECODE(l.type, 'TM', 'TABLE LOCK', 'TX', 'ROW LOCK', NULL) "LOCK LEVEL",
       o.owner,
       o.object_name,
       o.object_type
  FROM v$session s,
       v$lock l,
       dba_objects o
 WHERE s.sid = l.sid
       AND o.object_id = l.id1
       AND s.username IS NOT NULL

 

(실행결과)

 

 

 

 

 

 

 

 

- 2013.06.14 랑이씀 -

반응형
반응형

오라클을 이용하여 Export / Import 시 자주 발생하는 ORA-19809 에러에 대해서 알아보도록 하자. 공식 에러는 다음과 같다.

 

ORA-19809: 복구 파일에 대한 한계를 초과함

 

IMPORT SCRIPT에서 위와 같은 에러가 나온다면, 우선 에러의 원흉을 알아보도록 하자.

 

우선 주의사항은 시스템의 아카이브 파일에 대한 것이니, SYS 또는 SYSTEM 계정으로 로그인 후 작성하도록 하자.

 

(1) 아카이브 파일에 대해서, 어떠한 에러인지 조회해 보도록 하자.

select dest_name,error from v$archive_dest;

 

 

 

 

 

: 위 예제를 보면, archive file에 대한 Error 여부가 출력이 된다. 위 예제는 정상의

예제이고, 만약 에러가 있다면 Error 컬럼의 ROWORA-19809: 복구 파일에 대한

한계를 초과함 과 같이 에러가 출력이 될 것이다. 그렇다면, archive file 에 대한 에러가

있는 것으로 간주하면 된다.

 

(2) 오류 해결법

위와 같이 복구 파일에 대한 한계를 초과함 이란 에러가 발생 된다면, imp 유틸리티에서 데이터를 로드 하는 과정에서 redo log fileswitching 하여 archive log file로 만들 때 용량과다 문제로 인해 archive log file이 만들어지지 않기 때문에 발생하는 문제 이다. 이 문제를 해결하기위해서는 우선 기존 쌓여있는 archive log file을 다른곳으로 백업 후, no archive 모드로 import를 해야 한다.

 

A) 현재 Archive log 파일의 위치

SELECT * FROM v$recovery_file_dest;

 

(결과)

 

위 경로로 가서 해당 archive log file을 다른 곳으로 백업 시킨 후 삭제하면 우선은 ORA-19809에러는 나지 않을 것이다. 하지만, 원천적인 해결을 위해서는 IMP 유틸리티 가동순간에는 no archive 모드로 변경해야한다.

 

B) noarchive mode로 변경방법

 

SQL> archive log list; // 현재 모드를 조회한다.

데이터베이스 로그 모드 아카이브 모드

자동 아카이브 사용으로 설정됨

아카이브 대상 USE_DB_RECOVERY_FILE_DEST

가장 오래된 온라인 로그 순서 115

아카이브할 다음 로그 115

현재 로그 순서 117

SQL> shutdown immediate

데이터베이스가 마운트 해제되었습니다.

ORACLE 인스턴스가 종료되었습니다.

SQL> startup mount

ORACLE 인스턴스가 시작되었습니다.

 

Total System Global Area 6814535680 bytes

Fixed Size 2188688 bytes

Variable Size 3607104112 bytes

Database Buffers 3187671040 bytes

Redo Buffers 17571840 bytes

데이터베이스가 마운트되었습니다.

SQL> alter database noarchivelog; // noarchive mode로 변경

 

데이타베이스가 변경되었습니다.

 

SQL> archive log list; // 변경된 모드를 확인한다.

데이터베이스 로그 모드 아카이브 모드가 아님

자동 아카이브 사용 안함으로 설정됨

아카이브 대상 USE_DB_RECOVERY_FILE_DEST

가장 오래된 온라인 로그 순서 115

현재 로그 순서 117

SQL> alter database open;

 

데이타베이스가 변경되었습니다.

 

지금까지 ORA-19809 에러가 왜 발생하며, 해결법은 무엇인지 확인해 보았다.

 

 -2013.06.13 랑이씀-

반응형

'DB > Oracle' 카테고리의 다른 글

오라클 유용한 쿼리  (1) 2013.06.14
ORACLE 11G 계정관리  (2) 2013.05.27
ORACLE 11G Database 생성 Script  (0) 2013.05.27
ORACLE 11G 소프트웨어만 설치  (0) 2013.05.27
ORACLE 11G 삭제 스샷(snapshot)  (15) 2013.05.22
반응형

Oracle 에서는 계정을 어떻게 관리하는지에 대해서 알아보도록 하자.

 

(1) 계정관리

 

a) 패스워드 파일 생성

$ orapwd file='P:\app\sungrangkong\product\11.2.0\dbhome_1\database\orapworcl' password=1234 entries=5

 

패스워드 파일이란?

   : 오라클에 접속하는 방법은 크게 2가지 이다. 1번째로, 운영체제 인증방식과 2번째로 패스워드 인증방식이다.

 

- 운영체제 인증방식이란?

   : 운영체제 인증방식이란, 오라클 Dabase를 설치한 운영체제내의 계정으로 로그인 했을 때에는 별도 인증을

   거치지 않고, SYSDBA,SYSOPER 권한을 부여하는 방식이다.

 

- 패스워드 파일 인증이란?

   : 패스워드 파일에 등록된 오라클 유저에게만 인증을 하는 방식이다. 이 경우 , 오라클 listener를 동작시킬 때

   함께 인자로 넘겨주는 pfile 내부에 셋팅이 되어 있어야 한다. pfile 내부에 REMOTE_LOGIN_PASSWORDFILE

    의 값을 EXCLUSIVE로 설정해야 한다.

 

- 패스워드 파일 생성 방법은?

   : 오라클 유틸리티 중, orapwd 라는 유틸리티를 이용하여 생성한다.

 

- 패스워드 파일 삭제 방법은?

   : 간단하게 OS단에서 rm을 하면 된다.

- 패스워드 파일 수정 방법은?

   : 별도 수정방법이 있는 것이 아니라 db shutdown 상태에서 rm으로 패스워드 파일을 삭제후 새로 생성 한다.

     그리고 db를 재기동시 파일이 적용된다.

 

b) user 생성

$ orapwd file='P:\app\sungrangkong\product\11.2.0\dbhome_1\database\orapworcl' password=1234 entries=5

 

$ sqlplus / as sysdba

 

SQL*Plus: Release 11.2.0.1.0 Production on 527 19:44:31 2013

 

Copyright (c) 1982, 2010, Oracle. All rights reserved.

 

 

다음에 접속됨:

Oracle Database 11g Release 11.2.0.1.0 - 64bit Production

 

SQL> create user sungrangkong identified by 1234;

 

사용자가 생성되었습니다.

 

SQL> grant connect, resource to sungrangkong;

 

권한이 부여되었습니다.

 

$ sqlplus sungrangkong/1234

 

SQL*Plus: Release 11.2.0.1.0 Production on 527 19:47:24 2013

 

Copyright (c) 1982, 2010, Oracle. All rights reserved.

 

 

다음에 접속됨:

Oracle Database 11g Release 11.2.0.1.0 - 64bit Production

 

SQL> show user;

USER"SUNGRANGKONG"입니다

 

 

반응형

+ Recent posts