블로그 이미지
OSSW(Open Source System SoftWare

calendar

  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31      

Notice

2014.12.28 22:36 2. DBMS이야기/04. CUBRID

안녕하세요~!

12월의 마지막 주말은 잘 보내셨나요~?


올해의 마지막 세션은 큐브리드 DB 체크에 대해 알아봐요~


1. DB 일관성 확인하기

cubrid checkdb 유틸리티를 사용하면 인덱스와 다른 데이터 구조를 확인하기 위해 데이터와 로그 볼륨의 내부적인 물리적 일치를 확인할 수 있어요. 만일 cubrid checkdb 유틸리티의 실행 결과가 불일치로 나온다면 --repair 옵션으로 자동 수정을 시도해봐야해요


cubrid checkdb [options] database_name [table_name1 table_name2 ...]

table_name1 table_name2 에는 일관성을 확인하거나 복구하려는 테이블 이름을 나열할 수 있어요

-S, --SA-mode

서버 프로세스를 구동하지 않고 데이터베이스에 접근하는 독립 모드(standalone)로 작업하기 위해 지정되며, 인수는 없다. -S 옵션을 지정하지 않으면, 시스템은 클라이언트/서버 모드로 인식한다.

cubrid checkdb -S demodb
-C, --CS-mode

서버 프로세스와 클라이언트 프로세스를 각각 구동하여 데이터베이스에 접근하는 클라이언트/서버 모드로 작업하기 위한 옵션이며, 인수는 없다. -C 옵션을 지정하지 않더라도 시스템은 기본적으로 클라이언트/서버 모드로 인식한다.

cubrid checkdb -C demodb
-r, --repair

데이터베이스의 일관성에 문제가 발견되었을 때 복구를 수행한다.

cubrid checkdb -r demodb

인덱스의 이전 링크(previous link)에 오류가 있는지를 검사한다.

$ cubrid checkdb --check-prev-link demodb

인덱스의 이전 링크(previous link)에 오류가 있으면 복구한다.

$ cubrid checkdb --repair-prev-link demodb
-i, --input-class-file=FILE

-i FILE 옵션을 지정하거나, 데이터베이스 이름 뒤에 테이블의 이름을 나열하여 일관성 확인 또는 복구 대상을 한정할 수 있다. 두 가지 방법을 같이 사용할 수도 있으며, 대상을 지정하지 않으면 전체 데이터베이스를 대상으로 일관성을 확인하거나 복구를 수행한다. 특정 대상이 지정되지 않으면 전체 데이터베이스가 일관성 확인 또는 복구의 대상이 된다.

cubrid checkdb demodb tbl1 tbl2
cubrid checkdb -r demodb tbl1 tbl2
cubrid checkdb -r -i table_list.txt demodb tbl1 tbl2

-i 옵션으로 지정하는 테이블 목록 파일은 공백, 탭, 줄바꿈, 쉼표로 테이블 이름을 구분한다. 다음은 테이블 목록 파일의 예로, t1부터 t10까지를 모두 일관성 확인 또는 복구를 위한 테이블로 인식한다.

t1 t2 t3,t4 t5
t6, t7 t8   t9

     t10


2. DB 내부 정보 확인하기


cubrid diagdb 유틸리티가 제공하는 정보들은 현재 데이터베이스의 상태를 진단하거나 문제를 파악할 수 있어요.

cubrid diagdb [option] database_name
-d, --dump-type=TYPE

데이터베이스의 전체 파일에 대한 기록 상태를 출력할 때 출력 범위를 지정한다. 생략하면 기본값인 -1이 지정된다.

cubrid diagdb -d 1 demodb

-d 옵션에 적용되는 타입은 모두 9가지로, 그 종류는 다음과 같다.

타입설명
-1전체 데이터베이스 정보를 출력한다.
1파일 테이블 정보를 출력한다.
2파일 용량 정보를 출력한다.
3힙 용량 정보를 출력한다.
4인덱스 용량 정보를 출력한다.
5클래스 이름 정보를 출력한다.
6디스크 비트맵 정보를 출력한다.
7카탈로그 정보를 출력한다.
8로그 정보를 출력한다.
9힙(heap) 정보를 출력한다.


3. 서버/클라이언트에서 사용하는 파라미터 출력하기

cubrid paramdump [options] database_name
-o, --output-file=FILE

데이터베이스의 서버/클라이언트 프로세스에서 사용하는 파라미터 정보를 지정된 파일에 저장하는 옵션이며, 파일은 현재 디렉터리에 생성된다. -o 옵션이 지정되지 않으면 메시지는 콘솔 화면에 출력한다.

cubrid paramdump -o db_output demodb
-b, --both

데이터베이스의 서버/클라이언트 프로세스에서 사용하는 파라미터 정보를 콘솔 화면에 출력하는 옵션이며, -b 옵션을 사용하지 않으면 서버 프로세스의 파라미터 정보만 출력한다.

cubrid paramdump -b demodb
-S, --SA-mode

독립 모드에서 서버 프로세스의 파라미터 정보를 출력한다.

cubrid paramdump -S demodb
-C, --CS-mode

클라이언트-서버 모드에서 서버 프로세스의 파라미터 정보를 출력한다.

cubrid paramdump -C demodb


2015년 청양의 해 새해 많이 받으세요~!


출처 : 큐브리드 메뉴얼                                                                    (By. 진준호 2014.12.28)


'2. DBMS이야기 > 04. CUBRID' 카테고리의 다른 글

08. CUBRID DB 체크하기  (0) 2014.12.28
07. CUBRID 복구하기  (0) 2014.12.10
06. CUBRID 사용자, Database 파일, 백업  (0) 2014.11.11
05. CUBRID 기동과 정지  (0) 2014.10.20
04. CUBRID 시스템 카탈로그 & SQL  (0) 2014.10.05
04. CUBRID의 카탈로그와 테이블  (0) 2014.09.26
posted by DB,MW,OS OSSW(Open Source System SoftWare
2014.12.10 23:17 2. DBMS이야기/04. CUBRID

안녕하세요~

벌써 2014년 마지막 달이네요, 추운 날씨에 감기 안 걸리셨죠?

이번 화에는 복구에 대해 알아보겠습니다


CUBRID 환경에서 수행된 백업 작업에 의해 생성된 백업 파일, 활성 로그 및 보관 로그를 이용하여 특정 시점의 데이터베이스로 복구하는 작업으로, 진행하려면 cubrid restoredb 유틸리티 또는 CUBRID 매니저를 사용합니다.


 cubrid  restoredb  [options]  database_name


어떠한 옵션도 지정되지 않은 경우 기본적으로 마지막 커밋 시점까지 데이터베이스가 복구됩니다.

만약, 마지막 커밋 시점까지 복구하기 위해 필요한 활성 로그/보관 로그 파일이 없다면 마지막 백업 시점까지만 부분 복구됩니다.


옵션

입력값

설명 

기본값 

 -l

복구레벨 

복구 레벨 지정 (0,1,2)

 -d

복구시점 

복구 시점 지정 형식) 일-월-년:시:분:초

예) 10-12-2014:17:00:00

또는 backuptime : 마지막 백업 시점

가장 최근 시점 

 -B

파일경로 

복구할 백업 볼륨이 존재하는 디렉토리나 장치명 지정 

초기 로그 볼륨 위치 

 -p

 

archive 로그가 없을 경우 무시하고 수행 

 

 -u

 

데이터베이스 위치 파일내에 지정된 경로로 데이터

베이스와 로그 볼륨을 복구 (dataase.txt) 

 

 -list

 

백업을 수행하지 않고 백업 볼륨 목록을 출력 

 


-p 옵션이 지정되지 않은 경우, 사용자에게 옵션을 선택하라는 요청 메시지는 다음과 같이 나옵니다.

***********************************************************
Log Archive /home/cubrid/test/log/demodb_lgar002
 is needed to continue normal execution.
   Type
   -  0 to quit.
   -  1 to continue without present archive. (Partial recovery)
   -  2 to continue after the archive is mounted/loaded.
   -  3 to continue after changing location/name of archive.
***********************************************************
  • 옵션 0: 복구 작업을 더 이상 진행하지 않을 경우, 0을 입력한다.
  • 옵션 1: 로그 파일 없이 부분 복구를 진행하려면, 1을 입력한다.
  • 옵션 2: 복구 작업을 진행하기 위해 관리자는 현재 장치에 보관 로그를 위치시킨 후 2를 입력한다.
  • 옵션 3: 복구 작업을 계속하기 위해 관리자는 로그 위치를 변경한 후 3을 입력한다.


다음은 -list 옵션을 이용해서 볼륨 목록을 출력했을 경우입니다.

*** BACKUP HEADER INFORMATION ***
Database Name: /local1/testing/demodb
 DB Creation Time: Mon Oct 1 17:27:40 2008
         Pagesize: 4096
Backup Level: 1 (INCREMENTAL LEVEL 1)
        Start_lsa: 513|3688
         Last_lsa: 513|3688
Backup Time: Mon Oct 1 17:32:50 2008
 Backup Unit Num: 0
Release: 8.1.0
     Disk Version: 8
Backup Pagesize: 4096
Zip Method: 0 (NONE)
        Zip Level: 0 (NONE)
Previous Backup level: 0 Time: Mon Oct 1 17:31:40 2008
(start_lsa was -1|-1)
Database Volume name: /local1/testing/demodb_vinf
     Volume Identifier: -5, Size: 308 bytes (1 pages)
Database Volume name: /local1/testing/demodb
     Volume Identifier: 0, Size: 2048000 bytes (500 pages)
Database Volume name: /local1/testing/demodb_lginf
     Volume Identifier: -4, Size: 165 bytes (1 pages)
Database Volume name: /local1/testing/demodb_bkvinf
     Volume Identifier: -3, Size: 132 bytes (1 pages)

-list 옵션을 이용하여 출력된 백업 정보를 확인하면, 백업 파일이 백업 수준 1로 생성되었고, 이전 백업 수준 0의 전체 백업이 수행된 시점을 확인할 수 있다. 따라서, 예시된 데이터베이스의 복구를 위해서는 백업 수준 0인 백업 파일과 백업 수준 1인 백업 파일이 준비되어야 합니다.



복구할 때에는 고려해야 할 사항들이 있습니다.

  • 백업 파일 준비
    • 백업 파일 및 로그 파일이 저장된 디렉터리를 확인해야 합니다.
    • 증분 백업으로 대상 데이터베이스가 백업된 경우, 각 백업 수준에 따른 백업 파일이 존재하는지를 확인합니다.
    • 백업이 수행된 CUBRID 데이터베이스의 버전과 복구가 이루어질 CUBRID 데이터베이스 버전이 동일한지를 확인한다.
  • 복구 방식 결정
    • 부분 복구할지, 전체 복구할지 결정합니다.
    • 증분 백업 파일을 이용한 복구인지를 확인합니다.
    • 사용 가능한 복구 도구 및 복구 장비를 준비합니다.
  • 복구 시점 판단
    • 데이터베이스 서버가 종료된 시점을 확인합니다.
    • 장애 발생 전에 이루어진 마지막 백업 시점을 확인합니다.
    • 장애 발생 전에 이루어진 마지막 커밋 시점을 확인합니다.

모두 준비되셨으면, 복구 시~작~!

따듯한 하루 되세요~^^


출처 : 큐브리드 메뉴얼                                              By. 진준호 (2014.12.10)

'2. DBMS이야기 > 04. CUBRID' 카테고리의 다른 글

08. CUBRID DB 체크하기  (0) 2014.12.28
07. CUBRID 복구하기  (0) 2014.12.10
06. CUBRID 사용자, Database 파일, 백업  (0) 2014.11.11
05. CUBRID 기동과 정지  (0) 2014.10.20
04. CUBRID 시스템 카탈로그 & SQL  (0) 2014.10.05
04. CUBRID의 카탈로그와 테이블  (0) 2014.09.26
posted by DB,MW,OS OSSW(Open Source System SoftWare

1. 에러 메시지:

kernel: NOHZ: local_softirq_pending 100

 

2. 원인:

- 시스템이 어떤 소프트웨어 interrupt 를 처리하는 대신 CPU sleep 상태로 만드는 것

- 메시지 마지막의 숫자는 hexadecimal 로 표현되며, ‘100’ HRTIMER_SOFTIRQ 를 의미

- HRTIMER_SOFTIRQ High Resolution Timer(HRT) 에 대한 소프트웨어 interrupt(HRT에 대한 상세정보는 아래 참조 URL 참고)

- 커널 버전 2.6.22 이후부터 add debug 메시지

 

3. 조치 방안:

- /etc/grub.conf 파일에 nohz=off 옵션을 설정하여 disable 가능(, 커널 버전 2.6.32-431.el6 보다 상위 버전에서만 가능)

- 단순 정보성 메시지이므로 조치 필요 없음

 

4. 참조 URL:

http://kb.sp.parallels.com/en/119599

https://access.redhat.com/solutions/62637

http://studyfoss.egloos.com/viewer/5268468

 

posted by 박현명

아파치에서 설정한 도메인으로 접속한 모든 사용자에 대해 

모두 특정 url로 보내고 싶을때(서비스 잠시 문닫아 서비스 안내공지 페이지로 보낸다던가...)

RedirectMatch 옵션을 사용할 수 있습니다.


RedirectMatch (.*) http://aaa.com/pp.html




이와는 약간 다르게...뒤에 주소를 그대로 가지고 가면서 도메인만 변경되는 경우

도메인이 변경되어 뒤에 주소는 동일하나 도메인만 변경된 주소로 변경하여 Redirect 시킬 경우


Redirect http://aaa.com


'1. 미들웨어이야기 > 02. Apache' 카테고리의 다른 글

Apache Name-Based VirtualHosts and SSL  (0) 2015.01.06
apache redirectmatch  (0) 2014.12.03
Apache 로그 파일 관리  (0) 2014.12.03
Apache 설치  (0) 2014.12.03
알아두면 유용한 apache httpd실행 옵션  (0) 2014.12.03
apache graceful restart  (0) 2014.12.03
posted by LE07

 

*  Apache 로그 파일 관리

 

1. 로그 rotation 적용

 - 설명 : 아파치 rotatelogs를 이용하여 일자별 로그 생성

 - 설정방법 :  CustomLog "/usr/sbin/rotatelogs logs/access_%Y%m%d.log 86400" common


2. 로그 포맷 변경

- 설명 : 아파치 로그 출력을 아래의 항목으로 변경

- 설정방법 : LogFormat "%h - %t \"%r\" %s>s %b" common

항목

설명 

%A (지역화된) 완전한 요일 이름
%a (지역화된) 3-문자 요일 이름
%B (지역화된) 완전한 달 이름
%b (지역화된) 3-문자 달 이름
%c (지역화된) 날짜와 시간
%d 2-자리 일
%H 2-자리 시간 (24 시간 시계)
%I 2-자리 시간 (12 시간 시계)
%j 3-자리 날짜수
%M 2-자리 분
%m 2-자리 달
%p (지역화된) 12 시간 시계의 am/pm
%S 2-자리 초
%U 2-자리 주일수 (주의 첫번재 날은 일요일)
%W 2-자리 주일수 (주의 첫번재 날은 월요일)
%w 1-자리 요일수 (주의 첫번째 날은 일요일)
%X (지역화된) 시간
%x (지역화된) 날짜
%Y 4-자리 연도
%y 2-자리 연도
%Z 시간대 이름
%% 문자그대로 `%'

 

 

by. 현주희 (11월)

 

'1. 미들웨어이야기 > 02. Apache' 카테고리의 다른 글

Apache Name-Based VirtualHosts and SSL  (0) 2015.01.06
apache redirectmatch  (0) 2014.12.03
Apache 로그 파일 관리  (0) 2014.12.03
Apache 설치  (0) 2014.12.03
알아두면 유용한 apache httpd실행 옵션  (0) 2014.12.03
apache graceful restart  (0) 2014.12.03
posted by DB,MW,OS OSSW(Open Source System SoftWare

 


* Apache 설치

 

설치 및 운영을 위한 계정(apache) 구성

apache@a-virtual-machine:~$ id

uid=1003(apache) gid=1003(apache) 그룹들=1003(apache)

 

apache@a-virtual-machine:~$ pwd

/apache

 

apache@a-virtual-machine:~$ vi .profile

# ~/.profile: executed by the command interpreter for login shells.

# This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login

# exists.

# see /usr/share/doc/bash/examples/startup-files for examples.

# the files are located in the bash-doc package.

 

# the default umask is set in /etc/profile; for setting the umask

# for ssh logins, install and configure the libpam-umask package.

#umask 022

 

# if running bash

if [ -n "$BASH_VERSION" ]; then

    # include .bashrc if it exists

    if [ -f "$HOME/.bashrc" ]; then

             . "$HOME/.bashrc"

    fi

fi

 

# set PATH so it includes user's private bin if it exists

if [ -d "$HOME/bin" ] ; then

    PATH="$HOME/bin:$PATH"

fi

 

#### Edit ENV ####

set -o vi

stty erase ^H

alias ll='ls -l'

 

 

### Apache alias ###

alias webstart='/apache/apache-2.2.21/bin/apachectl start'

alias webstop='/apache/apache-2.2.21/bin/apachectl stop'

alias alog='cd /ap_log'

alias acfg='cd /apache/apache-2.2.21/conf'

 

export TMOUT=0

 


 

 

apache 2.2.21 설치

1. apache 2.2.21 설치를 위해 httpd-2.2.21.tar.gz의 압축을 풀어 설치 준비

 

 

2. apache 설치 (prefix) - config

apache@a-virtual-machine:/install/apache/httpd-2.2.21$ ./configure --

prefix=/apache/apache-2.2.21

Configuring Apache Portable Runtime library ...

Configuring APR library

Checking for libraries...

Checking for Threads...

APR will use threads

Checking for Shared Memory Support...

Checking for DSO...

Checking for Processes...

Checking for Locking...

Checking for File Info Support...

Checking for OS UUID Support...

Checking for Time Support...

Checking for Networking support...

Checking for IPv6 Networking support...

Restore user-defined environment settings...

Configuring Apache Portable Runtime Utility library...

Configuring Apache httpd ...

Applying OS-specific hints for httpd ...

Restore user-defined environment settings...

Construct makefiles and header files...

 

3. apache 설치 (prefix) - compile

apache@a-virtual-machine:/install/apache/httpd-2.2.21$ make

 

4. apache 설치 (prefix) - install

apache@a-virtual-machine:/install/apache/httpd-2.2.21$ make install

 

 

 

 

apache 설치 확인

apache@a-virtual-machine:~/apache-2.2.21$ ls -al

합계 68

drwxr-xr-x 15 apache apache  4096 2013-03-19 13:20 .

drwxr-xr-x  4 apache apache  4096 2013-03-19 13:19 ..

drwxr-xr-x  2 apache apache  4096 2013-03-19 13:19 bin

drwxr-xr-x  2 apache apache  4096 2013-03-19 13:20 build

drwxr-xr-x  2 apache apache  4096 2013-03-19 13:19 cgi-bin

drwxr-xr-x  4 apache apache  4096 2013-03-19 13:19 conf

drwxr-xr-x  3 apache apache  4096 2013-03-19 13:19 error

drwxr-xr-x  2 apache apache  4096 2011-09-09 23:25 htdocs

drwxr-xr-x  3 apache apache  4096 2013-03-19 13:19 icons

drwxr-xr-x  2 apache apache  4096 2013-03-19 13:19 include

drwxr-xr-x  3 apache apache  4096 2013-03-19 13:19 lib

drwxr-xr-x  2 apache apache  4096 2013-03-19 13:19 logs

drwxr-xr-x  4 apache apache  4096 2013-03-19 13:20 man

drwxr-xr-x 14 apache apache 12288 2011-09-09 23:29 manual

drwxr-xr-x  2 apache apache  4096 2013-03-19 13:19 modules

 

 

 

by. 현주희(11월)


 

'1. 미들웨어이야기 > 02. Apache' 카테고리의 다른 글

apache redirectmatch  (0) 2014.12.03
Apache 로그 파일 관리  (0) 2014.12.03
Apache 설치  (0) 2014.12.03
알아두면 유용한 apache httpd실행 옵션  (0) 2014.12.03
apache graceful restart  (0) 2014.12.03
httpd 실행 옵션  (0) 2014.12.03
posted by DB,MW,OS OSSW(Open Source System SoftWare

httpd는 아파치의 데몬 실행파일 입니다.

옵션을 통해 유용한 정보를 얻어 봅시다.


[아파치 conf파일 바꿔 기동하기]

./httpd -f /usr/local/apache/conf/httpd.conf

./httpd -f /usr/local/apache/conf/httpd_abc.conf

보통 기본 위치에 존재하는 httpd.conf를 이용하여 아파치를 실행하나,

두개 이상의 설정 파일을 두고 서비스마다 따로 띄운다거나 등에 사용할 때 유용합니다.

./httpd -f /usr/local/apache/conf/httpd.conf

root     32170     1  0 21:35 ?        00:00:00 ./httpd -f /usr/local/apache/conf/httpd.conf

nobody   32171 32170  0 21:35 ?        00:00:00 ./httpd -f /usr/local/apache/conf/httpd.conf

nobody   32172 32170  0 21:35 ?        00:00:00 ./httpd -f /usr/local/apache/conf/httpd.conf

nobody   32173 32170  0 21:35 ?        00:00:00 ./httpd -f /usr/local/apache/conf/httpd.conf

./httpd -f /usr/local/apache/conf/httpd_abc.conf

root     32170     1  0 21:35 ?        00:00:00 ./httpd -f /usr/local/apache/conf/httpd_abc.conf

nobody   32171 32170  0 21:35 ?        00:00:00 ./httpd -f /usr/local/apache/conf/httpd_abc.conf

nobody   32172 32170  0 21:35 ?        00:00:00 ./httpd -f /usr/local/apache/conf/httpd_abc.conf

nobody   32173 32170  0 21:35 ?        00:00:00 ./httpd -f /usr/local/apache/conf/httpd_abc.conf



[아파치 버전정보 확인]

[apache@abc:/apache/apache/bin]# ./httpd -V

Server version: Apache/2.2.24 (Unix)

Server built:   Jul  5 2013 15:26:13

Server's Module Magic Number: 20051115:31

Server loaded:  APR 1.2.7, APR-Util 1.2.7

Compiled using: APR 1.2.7, APR-Util 1.2.7

Architecture:   64-bit

Server MPM:     Prefork



[아파치 사용가능 모듈 확인]

[apache@abc:/apache/apache/bin]# ./httpd -l

Compiled in modules:

  core.c

  mod_authn_file.c

  mod_authn_default.c

  mod_authz_host.c

  mod_authz_groupfile.c

  mod_authz_user.c

  mod_authz_default.c

  mod_auth_basic.c

  mod_include.c

  mod_filter.c

  mod_log_config.c

  mod_env.c

  mod_setenvif.c


[설정된 가상호스트 확인]

[apache@abc:/apache/apache/bin]# ./httpd -S

VirtualHost configuration:

wildcard NameVirtualHosts and _default_ servers:

*:443                  is a NameVirtualHost

         default server aa.bbb..com (/apache/apache/conf/extra/httpd-ssl.conf:16)

         port 443 namevhost aa.bbb..com (/apache/apache/conf/extra/httpd-ssl.conf:16)

         port 443 namevhost bbb.ccc.com (/apache/apache/conf/extra/httpd-ssl.conf:39)

*:80                   is a NameVirtualHost

         default server aa.bbb..com (/apache/apache/conf/extra/httpd-vhosts.conf:3)

         port 80 namevhost aa.bbb..com (/apache/apache/conf/extra/httpd-vhosts.conf:3)

         port 80 namevhost bbb.ccc.com (/apache/apache/conf/extra/httpd-vhosts.conf:18)

Syntax OK


[conf파일 syntax 체크]

[apache@abc:/apache/apache/bin]# ./httpd -t

Syntax OK


[apache help옵션 확인]

[apache@abc:/apache/apache/bin]# ./httpd -h

Usage: ./httpd [-D name] [-d directory] [-f file]

               [-C "directive"] [-c "directive"]

               [-k start|restart|graceful|graceful-stop|stop]

               [-v] [-V] [-h] [-l] [-L] [-t] [-T] [-S]

Options:

  -D name            : define a name for use in <IfDefine name> directives

  -d directory       : specify an alternate initial ServerRoot

  -f file            : specify an alternate ServerConfigFile

  -C "directive"     : process directive before reading config files

  -c "directive"     : process directive after reading config files

  -e level           : show startup errors of level (see LogLevel)

  -E file            : log startup errors to file

  -v                 : show version number

  -V                 : show compile settings

  -h                 : list available command line options (this page)

  -l                 : list compiled in modules

  -L                 : list available configuration directives

  -t -D DUMP_VHOSTS  : show parsed settings (currently only vhost settings)

  -S                 : a synonym for -t -D DUMP_VHOSTS

  -t -D DUMP_MODULES : show all loaded modules 

  -M                 : a synonym for -t -D DUMP_MODULES

  -t                 : run syntax check for config files

  -T                 : start without DocumentRoot(s) check


'1. 미들웨어이야기 > 02. Apache' 카테고리의 다른 글

Apache 로그 파일 관리  (0) 2014.12.03
Apache 설치  (0) 2014.12.03
알아두면 유용한 apache httpd실행 옵션  (0) 2014.12.03
apache graceful restart  (0) 2014.12.03
httpd 실행 옵션  (0) 2014.12.03
apache ab를 이용한 부하테스트  (0) 2014.12.03
posted by LE07

운영중인 서비스의 httpd.conf등의 conf파일을 수정하고,

해당 conf파일을 읽어서 apache가 새로 시작시킬 수 있는 방법이다.


현재 접속된 커넥션은 그대로 유지하고 그외 http 모든 프로세스를 종료시키고 재시작 시그널을 보낸다

서비스의 세션 및 연결 종료없이 conf설정 파일 불러서 재실행

단, 모듈 추가 등의 apache 내에 삽입되어야 하는 작업들은 반드시 restart를 해주셔야 합니다.



<아래 글 출처 : http://httpd.apache.org>

점잖은 재시작

        시그널: USR1

     apachectl -k graceful

USR1이나 graceful 시그널을 부모에게 보내면 부모 프로세스는 자식들에게 현재 요청을 처리한후 종료하라고 (혹은 현재 아무것도 처리하지 않다면 즉시 종료하라고조언한다. 부모는 설정파일을 다시읽고 로그파일도 다시 연다. 자식이 죽을때마다 부모는 죽은 자식대신 새로운 설정 세대 기초한 자식을 실행하여 즉시 요청을 처리하게 한다.

점잖은 재시작(graceful restart)으로 USR1 사용할 없는 플래폼에서는 대신 (WINCH 같은) 다른 시그널을 사용할 있다apachectl graceful 플래폼에 알맞은 시그널을 보낸다.

점잖은 재시작은 항상 MPM 프로세스 조절 지시어 설정을 고려하여, 재시작동안 클라이언트를 서비스하는 프로세스나 쓰레드가 적당한 수를 유지하도록 설계되었다. 게다가 StartServers, 일초 최소한 StartServers만큼 새로운 자식이 안만들어지면 자식이 StartServers 개가 되도록 새로 만든다. , 프로그램은 서버의 현재 부하에 알맞은 자식의 개수를 유지하며StartServers 파라미터로 지정한 당신의 기대를 존중한다.

mod_status 사용자는 USR1 받을때 서버 통계가 0 되지 않음을 봤을 것이다. 서버는 새로운 요청을 (운영체제는 이들을 큐에 담아서 어떤 경우에도 잃어버리지 않는다) 처리하지 못하는 시간을 최소화하고 당신의 튜닝 파라미터를 존중하도록 만들어졌다. 이를 위해 세대간 모든 자식을 기록하는 scoreboard 유지한다.

status 모듈은 또한 점잖은 재시작 전에 시작하여 아직도 요청을 처리하고 있는 자식을 G 알려준다.

현재로는 USR1 사용하는 로그순환 스크립트가 재시작전에 모든 자식이 로그작성을 마쳤는지 있는 방법이 없다. 우리는 USR1 시그널을 보내고 적당한 시간이 지난후 이전 로그를 다루도록 제안한다. 예를 들어 낮은 대역폭 사용자의 경우 접속 대부분이 마치는데 10분이 안걸린다면, 이전 로그를 다루기전에 15 기다린다.

설정파일에 오류가 있다면 재시작시 부모는 재시작하지 않고 오류를 내며 종료한다. , 점잖은 재시작의 경우 종료할때 자식이 실행되도록 놔둔다. (자식들은 자신의 마지막 요청을 처리하고 "점잖게 종료한다".) 이는 서버를 재시작할때 문제가 된다. 서버는 자신이 기다릴 포트에 연결하지 못한다. 재시작전에 -t 명령행 옵션(httpd 참고)으로 설정파일 문법을 검사할 있다. 그러나 이런 검사도 서버가 올바로 재시작할지를 보장하지 못한다. 설정파일의 문법이 아닌 의미를 검사하려면 root 아닌 사용자로 httpd 시작해볼 있다. root 아니기때문에 (아니면 현재 포트를 사용하는 httpd 실행되기때문에) 오류가 없다면 소켓과 로그파일을 열려고 시도하는 과정에서 실패할 것이다. 다른 이유때문에 실패한다면 아마도 설정파일에 오류가 있을 것이다. 점잖은 재시작을 하기전에 오류를 고쳐야한다.

USR1이나 graceful 시그널을 부모에게 보내면 부모 프로세스는 자식들에게 현재 요청을 처리한후 종료하라고 (혹은 현재 아무것도 처리하지 않다면 즉시 종료하라고조언한다. 부모는 설정파일을 다시읽고 로그파일도 다시 연다. 자식이 죽을때마다 부모는 죽은 자식대신 새로운 설정 세대 기초한 자식을 실행하여 즉시 요청을 처리하게 한다.

점잖은 재시작(graceful restart)으로 USR1 사용할 없는 플래폼에서는 대신 (WINCH 같은) 다른 시그널을 사용할 있다apachectl graceful 플래폼에 알맞은 시그널을 보낸다.

점잖은 재시작은 항상 MPM 프로세스 조절 지시어 설정을 고려하여, 재시작동안 클라이언트를 서비스하는 프로세스나 쓰레드가 적당한 수를 유지하도록 설계되었다. 게다가 StartServers, 일초 최소한 StartServers만큼 새로운 자식이 안만들어지면 자식이 StartServers 개가 되도록 새로 만든다. , 프로그램은 서버의 현재 부하에 알맞은 자식의 개수를 유지하며StartServers 파라미터로 지정한 당신의 기대를 존중한다.

mod_status 사용자는 USR1 받을때 서버 통계가 0 되지 않음을 봤을 것이다. 서버는 새로운 요청을 (운영체제는 이들을 큐에 담아서 어떤 경우에도 잃어버리지 않는다) 처리하지 못하는 시간을 최소화하고 당신의 튜닝 파라미터를 존중하도록 만들어졌다. 이를 위해 세대간 모든 자식을 기록하는 scoreboard 유지한다.

status 모듈은 또한 점잖은 재시작 전에 시작하여 아직도 요청을 처리하고 있는 자식을 G 알려준다.

현재로는 USR1 사용하는 로그순환 스크립트가 재시작전에 모든 자식이 로그작성을 마쳤는지 있는 방법이 없다. 우리는 USR1 시그널을 보내고 적당한 시간이 지난후 이전 로그를 다루도록 제안한다. 예를 들어 낮은 대역폭 사용자의 경우 접속 대부분이 마치는데 10분이 안걸린다면, 이전 로그를 다루기전에 15 기다린다.

설정파일에 오류가 있다면 재시작시 부모는 재시작하지 않고 오류를 내며 종료한다. , 점잖은 재시작의 경우 종료할때 자식이 실행되도록 놔둔다. (자식들은 자신의 마지막 요청을 처리하고 "점잖게 종료한다".) 이는 서버를 재시작할때 문제가 된다. 서버는 자신이 기다릴 포트에 연결하지 못한다. 재시작전에 -t 명령행 옵션(httpd 참고)으로 설정파일 문법을 검사할 있다. 그러나 이런 검사도 서버가 올바로 재시작할지를 보장하지 못한다. 설정파일의 문법이 아닌 의미를 검사하려면 root 아닌 사용자로 httpd 시작해볼 있다. root 아니기때문에 (아니면 현재 포트를 사용하는 httpd 실행되기때문에) 오류가 없다면 소켓과 로그파일을 열려고 시도하는 과정에서 실패할 것이다. 다른 이유때문에 실패한다면 아마도 설정파일에 오류가 있을 것이다. 점잖은 재시작을 하기전에 오류를 고쳐야한다.




'1. 미들웨어이야기 > 02. Apache' 카테고리의 다른 글

Apache 설치  (0) 2014.12.03
알아두면 유용한 apache httpd실행 옵션  (0) 2014.12.03
apache graceful restart  (0) 2014.12.03
httpd 실행 옵션  (0) 2014.12.03
apache ab를 이용한 부하테스트  (0) 2014.12.03
Apache 상태 확인 페이지 설정  (0) 2014.12.02
posted by LE07

JBoss에서 디렉토리 검색 기능을 제거

EAP버전: ${JBOSS)HOME}/deployers/jbossweb.deployer/web.xml

커뮤니티버전: /jboss/jboss-6.1.0.Final/server/default/deploy/jbossweb.sar/web.xml

 

<servlet>

<servlet-name>default</sevlet-name>

<servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>

 

<init-param>

<param-name>debug</param-name>

<param-value>0</param-value>

</init-param>

<init-param>

<param-name>listings</param-name>

<param-value>false</param-value>

</init-param>

<load-on-startup>1</load-on-startup>

</servlet>

 

by. 강수현(9월)

'1. 미들웨어이야기 > 03. JBoss' 카테고리의 다른 글

JBoss 디렉토리 검색기능제거  (0) 2014.12.03
JBoss Session 튜닝-2  (0) 2014.12.03
JBoss Session 튜닝  (0) 2014.12.03
jboss connection pool  (0) 2014.12.03
Jboss EAP 6 튜닝의포인트  (0) 2014.12.02
JBoss EAP5.X 에서 JSP 변경시 재컴파일 방법‏  (0) 2014.12.02
posted by lovelywas
httpd 실행 옵션

httpd -h로 확인가능

-d serverroot
ServerRoot 지시어의 기본값을 serverroot로 설정한다. 설정파일에서 ServerRoot지시어를 사용하여 이 값을 수정할 수 있다. 기본값은/usr/local/apache2이다.
-f config
시작할때 config 파일에 있는 지시어를 사용한다.config가 /로 시작하지 않으면 ServerRoot에 상대경로이다. 기본값은conf/httpd.conf이다.
-k start|restart|graceful|stop
httpd를 시작, 재시작, 중단한다. 더 자세한 정보는아파치 중단하기를 참고하라.
-C directive
설정파일을 읽기전에 directive 지시어를 처리한다.
-c directive
설정파일을 읽기전에 directive 지시어를 처리한다.
-D parameter
서버 시작 혹은 재시작시 선택적으로 명령어를 처리하기위해 설정파일의 <IfDefine>섹션에 사용할 parameter를 설정한다.
-e level
서버가 시작하는동안 LogLevellevel로 설정한다. 이는 시작중 문제를 찾기위해 잠시 더 자세한 오류문을 얻을때 유용하다.
-E file
서버가 시작하는동안 file로 오류문을 보낸다.
-R directory
서버를 SHARED_CORE 규칙을 사용하여 컴파일한 경우 공유오브젝트파일 directory를 지정한다.
-h
사용할 수 있는 명령행 옵션들의 짧은 요약을 출력한다.
-l
서버에 같이 컴파일한 모듈 목록을 출력한다. LoadModule 지시어를 사용하여 동적으로 읽어들이는 모듈은 출력하지 않는다.
-L
지시어 목록을 지시어가 받는 아규먼트와 지시어 사용장소와 같이 출력한다.
-M
읽어들인 정적 모듈과 공유 모듈 목록을 출력한다.
-S
설정파일에서 읽어들인 설정을 보여준다 (현재는 가상호스트 설정만을 보여준다).
-t
설정파일의 문법검사만 한다. 프로그램은 문법을 검사한후(문법이 올바른 경우) 0이나 (문법에 문제가 있는 경우) 0이 아닌 종료코드로 즉시 종료한다. -D DUMP_VHOSTS을 사용하면 가상호스트 설정을 자세히 출력한다. -DDUMP_MODULES를 사용하면 읽어들인 모듈 목록을 출력한다.
-v
httpd의 버전을 출력하고 종료한다.
-V
httpd의 버전과 컴파일 파라미터를 출력하고 종료한다.
-X
디버그 상태로 웹서버를 실행한다. 오직 한 프로세스나 쓰레드로만 서비스하고, 서버는 콘솔에서 떨어지지 않는다.

다음 아규먼트는 Windows플래폼에서만 사용할 수 있다:

-k install|config|uninstall
아파치를 Windows NT 서비스로 설치한다; 아파치 서비스의 시작 옵션을 수정한다; 아파치 서비스 설치를 지운다.
-n name
아파치 서비스의 name.
-w
오류가 발생하면 콘솔창을 열어서 오류문을 보여준다.

출처: http://httpd.apache.org/docs/2.4/ko/programs/httpd.html

by. 강수현(9월)

'1. 미들웨어이야기 > 02. Apache' 카테고리의 다른 글

알아두면 유용한 apache httpd실행 옵션  (0) 2014.12.03
apache graceful restart  (0) 2014.12.03
httpd 실행 옵션  (0) 2014.12.03
apache ab를 이용한 부하테스트  (0) 2014.12.03
Apache 상태 확인 페이지 설정  (0) 2014.12.02
L4의 부하 분산 방법  (0) 2014.12.02
posted by lovelywas
2014.12.03 14:55 분류없음

apache모니터링을 위해 보통 server-status를 이용한다.

httpd.conf에서 server-status를 활성화 시켜 모니터링 하는 것은 좋지만

외부 모두에게 페이지가 오픈되어 있을 경우 보안에 취약하다는 평가가 있어

내부 운영자들에게만 server-status를 오픈시켜 주는 것이 좋다

아래와 같이 IP를 지정해주면 해당 ip사용자만 server-status 페이지 호출 가능하다

<Location /server-status>

    SetHandler server-status

    Order deny,allow

    Deny from all

    Allow from 192.168.0.203

</Location>


특정 네트워크 사용자만 허용하려면 아래와 같이 설정하면

192.168.0.0 ~ 192.168.0.255 ip사용자만 접속 가능


Allow from 192.168.0.0/24



posted by LE07

Session 튜닝

파일명: application/WEB-INF/jboss-web.xml

<replication-trigger> : JBoss 에서 지원하는 세션 변경 여부 판단 기준.

 SET

 setAttribute() 시 세션이 변경된 것으로 간주

 SET_AND_NON_PRIMITIVE_GET

 setAttribute() 뿐만 아니라 변경 가능한 object에 대한 getAttribute() 시 세션이 변경된 것으로 간주. 디폴트 설정

 SET_AND_GET

 setAttribute() 뿐만 아니라 getAttribute() 시에도 세션이 변경된 것으로 간주

 ACCESS

 HTTP 요청이 있을 때마다 session이 변경된 것으로 간주

 

<replication-granularity>: JBoss에서 3가지 복제 단위를 지원합니다.  

SESSION 

 세션을 통째로 복제

 ATTRIBUTE

 세션에서 변경된 attribute만을 복제

 FIELD

 Attribute object의 변경된 필드만을 복제

SESSION-->ATTRIBUTE-->FIELD 순으로 복제단위는 더 세분화 됩니다.

허나, 복제 단위를 세분화 하는데 따르는 오버헤드가 있기 때문에 단순히 세분화할수록 좋은 것은 아니니 시스템 환경에 맞게 설정하시면 됩니다.

by. 강수현(11월)

 

'1. 미들웨어이야기 > 03. JBoss' 카테고리의 다른 글

JBoss 디렉토리 검색기능제거  (0) 2014.12.03
JBoss Session 튜닝-2  (0) 2014.12.03
JBoss Session 튜닝  (0) 2014.12.03
jboss connection pool  (0) 2014.12.03
Jboss EAP 6 튜닝의포인트  (0) 2014.12.02
JBoss EAP5.X 에서 JSP 변경시 재컴파일 방법‏  (0) 2014.12.02
posted by lovelywas
prev 1 2 3 4 next