�빫�� ����� ���

Archive for the ‘서버관리, server management’ Category.

[Oracle] Plan Table

DB 핸들링을 하다 보면 Plan table을 참조하는 경우가 많습니다. Operation 중에 모르는 것도 나오더군요. 그래서 찾아봤는데 일단 참조할 만한 내용을 첨부합니다. 아래 내용도 자세한 설명을 좀 더 붙여야 할 듯 한데.. 음.. 일단 끝. -_-

발췌 http://www.dbcore.net/~corenet/education/oraclelec/tuning/appendix2.html

▶ Data Bloick Format

OPERATION OPTION 설명
AGGREGATE GROUP BY 그룹함수(SUM, COUNT 등)를 사용하여 하나의 로우가 추출되도록 하는 처리
AND-EQUAL 인덱스 머지를 이용하는 경우 중복 제거, 단일 인덱스 칼럼을 사용하는 경우
CONNECT BY CONNECT BY를 사용하여 트리구조로 전개
CONCATENATION 단위 액세스에서 추출한 로우들의 합집합을 생성(UNION-ALL)
COUNTING 테이블의 로우 수를 센다.
FILTER 선택된 로우에 대해서 다른 집합에 대응되는 로우가 있다면 제거하는 작업
FIRST ROW 조회 로우 중에 첫 번째 로우만 추출한다.
FOR UPDATE 선택된 로우에 락(LOCK)을 지정한다.
INDEX* UNIQUE SCAN UNIQUE 인덱스를 사용(단 한 개의 로우를 추출)
RANGE SCAN NON-UNIQUE한 인덱스를 사용(한개 이상의 로우)
RANGE SCAN
DESCENDING
RANGE SCAN하고 동일하지만 역순으로 로우를 추출
INTERSECTION 교집합의 로우를 추출한다.(같은 값이 없다)
MERGE JOIN+ 먼저 자신의 조건만으로 액세스한 후 각각을 소트하여 머지해 가는 조인
OUTER 위와 동일한 방법으로 OUTER JOIN을 한다.
MINUS MINUS 함수를 사용한다.
NESTED LOOPS+ 먼저 어떤 드라이빙 테이블의 로우를 액세스한 후 그 결과를 이용해 다른 테이블을 연결하는 조인
OUTER 위와 동일한 방법으로 OUTER JOIN을 한다.
PROJECTION 내부적인 처리의 일종
REMOTE 다른 분산 데이타베이스에 있는 객체를 추출하기 위해 데이타베이스 링크를 사용하는 경우
SEQUENCE 시퀀스를 액세스한다.
SORT AGGREGATE 그룹함수(SUM, COUNT 등)를 사용하여 하나의 로우가 추출되도록 하는 처리
UNIQUE 같은 로우를 제거하기 위한 소트
GROUP BY 액세스 결과를 GROUP BY하기 위한 소트
JOIN 머지 조인을 하기 위한 소트
ORDER BY ORDER BY를 위한 소트
TABLE ACCESS* FULL 전체 테이블 스캔
CLUSTER 클러스터 액세스
HASH 키값에 대한 해쉬 알고리즘을 사용
BY ROWID ROWID를 이용하여 테이블을 추출
UNION 두 집합의 합집합을 구한다.(중복없음)
항상 전체 범위를 구한다.
VIEW 어떤 처리에 의해 생성되는 가상의 집합(뷰)에서 추출한다.(주로 서브쿼리에 의해서 수행된 결과)

* access methods + join operations

[Fedora 10] 일반 사용자를 sudo 가능하게 하기.


간만에 리눅스 박스를 셋팅하게 되었습니다. Fedora 10이 나왔길래 그냥 해보고 안되면 하던거 해야지 하는 심정으로 설치를 했는데, 왠걸.. SELinux 셋팅에 신경을 안써서 그런지(사실 다음.. 다음.. 이렇게 했으니..) 제가 사용할 계정(myid)로는 sudo가 안되더군요.

myid is not in the sudoers file.

이렇답니다. 그래서 sudoers 파일 좀 갱신해줄까 했는데, 그 파일은 root 소유이니 사용이 불가능하죠. 그래도 한번 해봤습니다. 

su – root

어라라.. 되네요. 뭐, 가끔은 쉽게 일이 풀릴때도 있나봅니다. 그럼 sudoers 파일을 고쳐주면 되겠군요. 방법은 여러가지 인데, sudoers 파일에 그룹으로 권한을 주고 해당 그룹에 제 계정을 참가시면 되겠다 싶더라구요. 선택한 그룹은 wheel입니다. (wheel 이라는 그룹이 사용된 이유나 역사가 따로 있는데 언급하지는 않겠습니다. -_-; 키워드는 BSD.) 어쨋든..

vi /etc/sudoers

sudoers 파일의 내용을 보면 이미 다음과 같은 행이 있을 겁니다.

#%wheel ALL=(ALL) ALL

1
#%wheel        ALL=(ALL)        ALL

앞에 “#”를 지워서 주석에서 실제 내용으로 바꿔주면 되겠지요. 그리고 group에 myid를 추가합니다.

vi /etc/group

1
wheel:x:10:root,myid

요 부분을 수정하면 되죠.
간단하죠? 이제 myid로 sudo 명령어를 사용할 수 있습니다.

Yum 사용법 (Yum Howto)


간만에 리눅스 셋팅을 다시해야 했는데, 하는 김에 yum에 대한 정리를 해야 하겠더군요. fedora를 사용한다면 yum을 사용하게 되니까요. 

about YUM 

Yum은 rpm기반의 시스템을 위한 자동 업데이터이자 패키지 설치/삭제도구입니다. Yum은 자동적으로 의존성을 처리해주며 rpm 패키지들을 안전하게 설치, 삭제 및 업데이트하기 위해 반드시 해야할 일들을 스스로 해결합니다. 또한 Yum은 이미 설치되었거나 혹은 저장소에 설치가능한 패키지에 관한 정보를 효율적이고 쉽게 검색해옵니다. Yum은 rpm이나 다른 도구들처럼 일일이 수동으로 업데이트할 필요가 없으므로 수 많은 시스템들을 더욱 관리하기 쉽게 해줍니다. 한 조직 전체를 통괄하는 규모를 단지 한 두 명만으로 중앙집중적인 패키지 관리를 할 수 있도록, 패키지 그룹, 다수의 저장소, 대체 저장소 및 그 이상을 Yum이 관리해줍니다.

KLDP Yum Howto 에서 발췌

 

1. 새로운 패키지 설치

# yum install package1 [package2]

# yum groupinstall mysql

2. 설치된 패키지 업데이트

# yum update [package1] [package2]

3. 설치된 패키지에 대한 정보 

# yum info package1

# yum info updates 

# yum check-update

# yum list

# yum list installed

 

4. 설치된 패키지 제거

# yum remove package1 [package2]

# yum groupremove mysql