Installing Oracle9i Database on Red Hat Linux 9
By Abhijeet Kulkarni

Database Version: Oracle9i R2 (9.2.0.1.0)

1. Creating users and groups:
-------------------------
Become root and execute the following commands

$ su -

# groupadd oinstall
# groupadd dba
# useradd -g oinstall -G dba oracle
# passwd oracle

2. Creating directories.
--------------------------
We will install everything under /opt/ora9:

# mkdir -p /opt/ora9/product/9.2
# mkdir /var/opt/oracle
# chown oracle.dba /var/opt/oracle
# chown -R oracle.dba /opt/ora9

3. Preinstallation (system configuration):
---------------------------

3.1 Install these compatibility libraries:

compat-gcc-7.3-2.96.118.i386.rpm
compat-libgcj-7.3-2.96.118.i386.rpm
compat-libgcj-devel-7.3-2.96.118.i386.rpm
nss_db-compat-2.2-20.i386.rpm

You will find these packages on the installation CD s.
RedHat RPMS directory of CD1 first file
and RPMS directory CD2 remaining 3 files


3.2 Set kernel params to be correct at startup:

Append these lines to /etc/sysctl.conf
You might want to change these values if you have more RAM:

kernel.shmmax = 536870912
kernel.shmmni = 4096
kernel.shmall = 2097152
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000

Append these lines into /etc/security/limits.conf

oracle soft nofile 65536
oracle hard nofile 65536
oracle soft nproc 16384
oracle hard nproc 16384

REBOOT the system so the kernel changes can take effect

4. Preinstallation (oracle environment):
----------------------------
Login as oracle user:

su - oracle

Put the following lines in ~/.bashrc:

#oracle 9i
export ORACLE_BASE=/opt/ora9
export ORACLE_HOME=/opt/ora9/product/9.2
export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/Apache/Apache/bin:$PATH
export ORACLE_OWNER=oracle
export ORACLE_SID=ora9i
export ORACLE_TERM=vt100
export LD_ASSUME_KERNEL=2.4.1
export THREADS_FLAG=native
export LD_LIBRARY_PATH=/opt/ora9/product/9.2/lib:$LD_LIBRARY_PATH
export PATH=/opt/ora9/product/9.2/bin:$PATH
#
# change this NLS settings to suit your country:
# example:
# german_germany.we8iso8859p15, american_america.we8iso8859p2 etc.
#
export NLS_LANG='AMERICAN_AMERICA,KO16KSC5601'


If you want other national settings (these are croatian), consult the supported settings here, and change the NLS_LANG variable accordingly.

5. Installation:
------------------------

Login as root and allow user oracle to write to X display:

su -
xhost +

Login to oracle user:

su - oracle

Start the installation. Do not switch to your CD-ROM mount directory because you will not be able to unmount the 1st Cd to insert others when asked.

/mnt/cdrom/install/linux/runInstaller

During the installation, you will be prompted to insert other disks. Open up a new console, unmount the current disk with umount /dev/cdrom (as root), replace the disk. If Redhat9 does not mount it automatically, mount it yourself with mount /dev/cdrom

Your installation will produce two errors.

* First, you will see an error dialog informing about problems with ins_oemagent.mk. Choose ignore on this one, we will fix it in postinstallation.
* Second dialog will inform you about an "Error in invoking target install of makefile $ORACLE_HOME/ctx/lib/ins_ctx.mk".
When that happens, open up a new console and login as oracle user. Execute the following commands:

$ cd $ORACLE_HOME/install
$ tail make.log

You will see a line such as this:

gcc -o ctxhx -L/opt/ora9/product/9.2/ctx/lib/ -L/opt/ora9/product/9.2/lib/
-L/opt/ora9/product/9.2/lib/stubs/ /opt/ora9/product/9.2/ctx/lib/ctxhx.o
-L/opt/ora9/product/9.2/ctx/lib/ -lm -lsc_ca -lsc_fa -lsc_ex -lsc_da -lsc_ut
-lsc_ch -lsc_fi -lctxhx -lc -Wl,-rpath,/opt/ora9/product/9.2/ctx/lib -lnls9
-lcore9 -lnls9 -lcore9 -lnls9 -lxml9 -lcore9 -lunls9 -lnls9

Copy this line, add -ldl at the end and run it in $ORACLE_HOME/bin

$ cd $ORACLE_HOME/bin
$ gcc -o ctxhx -L/opt/ora9/product/9.2/ctx/lib/
-L/opt/ora9/product/9.2/lib/ -L/opt/ora9/product/9.2/lib/stubs/
/opt/ora9/product/9.2/ctx/lib/ctxhx.o -L/opt/ora9/product/9.2/ctx/lib/
-lm -lsc_ca -lsc_fa -lsc_ex -lsc_da -lsc_ut -lsc_ch -lsc_fi -lctxhx -lc
-Wl,-rpath,/opt/ora9/product/9.2/ctx/lib -lnls9 -lcore9 -lnls9 -lcore9
-lnls9 -lxml9 -lcore9 -lunls9 -lnls9 -ldl

Now hit the ignore button on the dialog and the installation will continue.

At the end, Oracle installation will probably inform you that agents failed to start. Choose ignore on this one, we will fix it later.

6. Postinstall
---------------------------
Open up a console and login as oracle user. Execute these lines:

$ cd $ORACLE_HOME/network/lib
$ make -f ins_net_client.mk install

Then edit the $ORACLE_HOME/ctx/lib/ins_ctx.mk file so that lines 13-14 change from:

ctxhx: $(CTXHXOBJ)
$(LINK) $(CTXHXOBJ) $(INSO_LINK)

to

ctxhx: $(CTXHXOBJ)
$(LINK) -ldl $(CTXHXOBJ) $(INSO_LINK)

Then do a

$ make -f $ORACLE_HOME/ctx/lib/ins_ctx.mk install

Now you should be able to start your agents with

$ /opt/ora9/product/9.2/bin/agentctl start

7. Starting the database
------------------------------
If your installer hangs after the last setp in section 5 don't worry. Wait for some time just to see if it responds, otherwise kill it.
Add the following lines in a shell script such as setvar.sh
#oracle 9i
export ORACLE_BASE=/home1/orahome
export ORACLE_HOME=/home1/orahome/ora92
export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/Apache/Apache/bin:$PATH
export ORACLE_OWNER=oracle
export ORACLE_SID=ora9i
export ORACLE_TERM=vt100
export LD_ASSUME_KERNEL=2.4.1
export THREADS_FLAG=native
export LD_LIBRARY_PATH=/opt/ora9/product/9.2/lib:$LD_LIBRARY_PATH
export PATH=/opt/ora9/product/9.2/bin:$PATH
export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data

Save this file and at a command prompt run
$source setvar.sh

Now go to $ORACLE_HOME/bin
Edit the dbca script with any editor
$kwrite dbca

Locate the JRE_HOME environment variable. This points to the JDK 1.8 that is part of installation CD. Change this and point it to JDK1.3 or 1.4 of your linux installation go to the end of file where the this is used invoke Java programs. Remove the bin directory from the path and rename jre executable to java. It's just like calling the java program with our on JDK.
Start
$./dbca

8. Starting the database instance
Open a sqlplus session and log in as sys/passwd as sysdba
sql>create spfile from pfile='full path of the <init>.ora file created by the dbca utility ';
Eg /home1/orahome/admin/dl226b/pfile/initdl226b.ora

sql>shutdown immediate;
sql>startup;


* itislord님에 의해서 게시물 복사되었습니다 (2005-04-24 14:18)
Oracle 9i Install


1. 일단 root권한으로 해야 하는 작업

dba 그룹을 생성한다
# groupadd -g 5000 dba

oracle 유저 생성
# useradd oracle -g dba -s /bin/bash

oracle 유저 패스워드 지정
# passwd oracle



2. 오라클 9i를 때려받는다
http://otn.oracle.com 에서 oracle9i Database를 받는다
총 3장의 Disk로 구성 되어있다
설치도중에 모두 요구되므로 모두 받기를 바란다
이때 받을 때 oracle 계정으로 로긴하여 받기 바란다(권한 문제가 발생할 수 있으므로)

lnx_920_disk1.cpio.gz
lnx_920_disk2.cpio.gz
lnx_920_disk3.cpio.gz

이렇게 3개의 파일을 받았을 것이다

다음과 같은 명령으로 일단 cpio 파일로 압축을 해제시킨다
# gunzip lnx_920_disk1.cpio.gz
# gunzip lnx_920_disk2.cpio.gz
# gunzip lnx_920_disk3.cpio.gz

cpio 파일로 변화 되어있을 것이다
이를 다시 다음과 같은 명령으로 압축을 해제한다
# cpio -idmv <lnx_920_disk1.cpio
# cpio -idmv <lnx_920_disk2.cpio
# cpio -idmv <lnx_920_disk3.cpio

아래와 같은 디렉토리가 생성되어 있을 것이다
Disk1
Disk2
Disk3


3. 이젠 환경변수를 설정해 보자
oracle 계정으로 로긴한후 작업해야 한다

/home/oracle/.bash_profile 파일에 추가한다
# vi /home/oracle/.bash_profile

## Environment variables for Oracle
export ORACLE_HOME=/home/oracle/
export NLS_LANG=AMERICAN_AMERICA.KO16KSC5601
export PATH=$PATH:$ORACLE_HOME/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib
export ORACLE_SID=RAC1

##CLASSPATH must include the following JRE locations:
CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
CLASSPATH=$CLASSPATH:$ORACLE_HOME/network/jlib

:wq


4. 이젠 오라클9i를 인스톨 해보자
오라클9i설치 파일이 있는 디렉토리에서 runInstaller 파일을 실행시켜서 인스톨을 시작한다
# ./runInstaller

- Inventory Location 화면이 나온다
시스템에 오라클을 처음 인스톨할 때 물어보는 화면으로 인스톨 파일에 대한 기본 디렉토리에 대한 위치를 물어본다.
위치를 지정하고 (OK)를 선택하여 다음으로 진행한다

- Unix Group Name 화면이 나온다
시스템에 오라클 소프트웨어를 수정하기 위한 권한 을 얻기 위한 Unix Group Name을 물어보는 화면이다.
dba를 입력한 후 Next를 선택하여 다음으로 진행한다

- OrainstRoot.sh 화면이 나온다
다른 윈도우창에서 root계정으로
# /tmp/orainstRoot.sh 를 수행하고 Continue를 선택한다

- File Location 화면
설치할 제품이 들어 있는 위치를 지정하고 제품이 설치될 ORACLE_HOME 디렉토리를 지정한 다음 Next 버튼을 선택하여
다음으로 진행한다.
참고로 ORACLE_BASE라는 환경변수를 지정한 경우에는 Path: 부분에 ORACLE_BASE의 환경변수 값이 자동으로 표시되므로 이 변수 값 다음에 해당 경로(예:/home/ora815)를 추가하면 된다.

표시된 값을 확인하고 (OK)를 선택한 후 다음으로 진행한다

- Available Products 선택 화면
데이터베이스를 구성하기 위해서는 Oracle9i 9.0.1.0.0을 선택한다. Client/Server환경구축을 원하는 경우에는 데이터베이스 구성이 끝난 다음 Client로 사용할 시스템에서 OUI를 사용하여 Oracle9i Client를 설치한다.
Product Language를 선택한다

- Product Language 선택 화면
사용할 언어를 선택한다. 좌측의 리스트 안에서 Korean을 선택한 후 >를 선택한 후 OK를 한다.
Next 를 선택한다

- Installation Types 선택 화면
Typical을 선택하면 각종 소프트웨어 및 데이터베이스를 사전에 구성된 형태로 설치해 준다. Minimal은 최소한의 데이터베이스 기능만을 사용하고자 할 때 선택하면 된다. 사용자가 원하는 형태로 여러 가지 환경의 세부적인 구성을 하자면 Custom을 선택한다. 여기에서는 ORACLE 9i RAC를 설치하기 위해서는 반드시 Custom을 선택하여야 한다

- Available Product Components 화면
설치를 원하는 제품에 체트를 한다. 제품에 대한 설명은 마우스포인터를 가까이 가져가면 위의 노란 박스에서처럼 표시가 된다. 오라클 9i RAC를 설치 하기 위해서 Oracle 9i Real Application Clusters 9.0.1.0.0을 선택한다.
Enterprise Oracle Management Server는 선택하지 않는다. 설치 중 repository에 생성에 관하여 묻는데 Database를 나중에 생성하기 때문에 생성할 수 없다

- Component Locations 화면
이 화면에 표시된 구성 요소들은 원하는 위치에 설치 할 수 있다. 특별한 경우가 아니면 그냥 Next를 눌러 진행하도록 한다

- Shared Configuration File Name 입력 화면
Oracle 9i RAC를 위해 미리 정의되어 있는 quorum으로 정의되어 있는 raw device명을 입력한 후 Next를 선택한다

- Cluster Nodes Selection
Oracle 9i RAC가 설치될 node를 입력하면 된다. 그러면 Primary node에 software 설치한 후 다른 node에 software를 설치한다. 다른 node명을 입력한 후 Next를 선택한다.
물론 사전에 다른 node에 rcp나 rsh의 명령어가 정상적으로 수행되어야 한다

-Privileged Operating System Groups 화면
데이터베이스를 생성하기 위해서 OS상의 인증을 얻기 위한 GROUP 명을 입력하는 화면이다. DBA를 입력한 후 NEXT를 선택한다

- JDK Home Directory 화면
시스템에 설치된 JDK의 위치를 입력한다. 입력한 후 Next를 선택한다

- Summary 화면
설치할 제품과 각종 관련 정보가 일목요연하게 표시된다. 잘못된 것이 있으면 이전을 눌러 수정한 다음 진행한다

- Install 화면
인스톨 작업이 진행된다

- Cdrom change 화면
인스톨 과정에서 다른 CD를 요구하는 데 이를 위해서는 (/mnt에 mount 되었다고 가정)
#umount /mnt or eject (Auto mount인 경우)
#mount /dev/cdrom /mnt
이 문서를 보고 처음부터 따라한 사람이라면 Disk2 디렉토리를 지정하면 된다
위의 작업을 다른 창에서 수행한 후 계속 OK를 선택하면 된다

- Setup Privileges 화면
다른 창에서 root.sh script를 root 권한을 가지고 수행시켜 준다. 만약 디렉토리가 없다는 메시지를 보이면 /var/opt/oracle direcory를 생성한 후 chown 를 이용하여 owner와 group을 변경한후 root.sh script를 수행한다. 그리고 OK를 선택한다.
# mkdir /var/opt/oracle
# chown oracle:dba /var/opt/oracle
# cd $ORACLE_HOME
#./root.sh

- End of Installation
Oracle Software install이 완료 되었습니다. 다른 소프트웨어를 Install 하기 위해서는 Next Install을 선택하고 더 이상의 설치가 없을 때에는 Exit를 선택하고 종료한다

* itislord님에 의해서 게시물 복사되었습니다 (2005-04-24 14:18)
케이원 : 수강신청관련 테이블에 대량의 데이타 로딩 후
update statistics를 수행전과 수행후의 responding time을 체크해 본다.

. 대량의 데이타가 로드된 테이블
        - eboard, cmember, member,

UPDATE STATISTICS
        [
                {
                HIGH [FOR TABLE [{table-name|synonym-name} [(column-list)]]]
                        [RESOLUTION percentage]
                |
                MEDIUM [FOR TABLE [{table-name|synonym-name} [(column-list)]]]
                  [RESOLUTION percentage [confidence-percentage]]
                |
                [LOW] [FOR TABLE [{table-name|synonym-name} [(column-list)]]]
                        [DROP DISTRIBUTIONS]
                }
        |
        FOR PROCEDURE [procedure-name]
        ]


set explain on;
select org_sect, year,term, lec_cd, lec_note_form ,title
   from eboard
        where year='2003' and lec_cd='1036422000621';

update statistics high for table eboard;


set explain on;
select user_id, org_sect,year from cmember
   where user_id='20317038';

update statistics high for table cmember;

set explain on;
select --+ ordered index (cmember , xpkcmember) c.user_id, c.org_sect,c.year
   from cmember c , eboard d
   where user_id='20317038' and c.org_sect=d.org_sect;
* itislord님에 의해서 게시물 복사되었습니다 (2005-04-24 14:11)
1. drvconfig   명령을 내린다

2. disks      디스크 장비일 때
    tapes     테입장비일 때
* itislord님에 의해서 게시물 복사되었습니다 (2005-04-24 14:18)

'프로그래밍Tips' 카테고리의 다른 글

informix tuning study 03.08.22  (0) 2003.08.22
tar를 이용한 화일옮기기  (0) 2003.08.06
OK 모드에서 할 수 있는 것  (0) 2003.07.07
1. 아래와 같은 방법은 tar 파일을 생성시키지 않고 stdin/stdout과 리다이렉션(|)을 이용하여 tar을 이용해서 데이터를 원하는 곳에 옮기는 방법이다.

가령..
- ex) /data1 밑의 data를 /data2로 옮길 경우
# cd /data1
# tar cvf - ./data | ( cd /data2 ; tar xvf - )

- /data2의 size가 /data1의 사이즈 의 두배가 되지 않을때...
- tar 파일을 만들고 싶지 않을때...
- 귀찮을때....

* itislord님에 의해서 게시물 복사되었습니다 (2005-04-24 14:18)
The Boot PROM
각 system은 monitor PROM chip를 가지고 있다 PROM은 시스템이 부팅되기이전에 사용되며 self-test 절차로 시스템과 hardware와의 무결성여부를 진단한다.   에러가 없다면 자동으로 boot process를 수행한다.

The PROM Prompt
  시스템이 중지(halt, shutdown)되었을 때나 시스템 인터럽트인 STOP - A key를 눌렀을 때PROM monitor prompt가 나온다.   하지만 시스템 운용중에 Stop-A를 누르면 ok 상태로 되긴하나 현제 작업중인 데이터를 잃어 버리기 때문에 누르지 말아야 한다. 만약 실수로 눌렀다면 ok 라고 나온 상태에서 다른 커맨드를 입력하기 전에 아래와 같이 go를 입력하면 Stop-A를 누르기 전상태로 돌아 갈수 있다. 하지만 윈도우를 사용 중이 었다면 화면은 조금 깨어 졌을 것이다.

ok go    

ok banner

ULTRA   (1 X 390Z167), Keyboard Present
ROM Rev 3.2  64MB memory installed, Serial #3159808
Ethernet address 8:0:20:1a:e5:3d, Host ID : 72303700

ok

PROM prompt 에서 할수 있는것
ok probe-scsi

시스템에 연결되어 있는 SCSI 장치가 정확히 연결되어 있는지 리스트를 볼수 있다. 하지만 이 커멘드에서는 확장 SCSI Port에 연결된 장치는 확인할 수 없다.

ok probe-scsi-all

시스템에 연결되어 있는 모든 Port의 SCSI장치 확인

예>

/iommu@f,e0000000/sbus@f,e0001000/espdma@f,400000/esp@f,800000
Target 3
   Unit 0    Disk    SEAGATE     ST32150    SUN0435435435000
Target 6
   Unit 6    Removable Read Only device

<주의>
위의 커멘드 실행결과 리스트에 나오지 않는 SCSI장치는 시스템을 부팅후에도 사용할수 없다.


ok boot

PROM 환경에 설정된 값으로 부팅한다. boot-device에 설정된 값

ok boot disk1 , boot disk3 , boot cdrom

부팅할 장치를 지정하여 부팅할수 있다

ok boot -s , boot cdrom -s

single mode로 부팅한다.

ok boot -r

hardware 장치들의 디바이스 파일을 새로 만든다. 새로 추가한 장치들이 있을때 이 옵션으로 부팅을 한다.

ok boot -a

Interective mode로 부팅할때 부팅할때 과정마다 물어 본다.

ok printenv

PROM 상에 설정되어있는 기본 값을 알수 있고 또 수정할수 있다.   여기서는 부팅 디스크의 변경, 자동부팅 여부, Power on시 시스템 테스트 여부등을 설정하고 변경할수 있다.

ok printenv <parameter Name> <value>

PROM 변수 환경값들의 변경

Parameter
Parameter Default Description
auto-boot? true Power on시 자동으로 부팅할것인지의 여부
boot-device disk 부팅 할때 SCSI ID 0번으로 부팅한다. (OS 1.x 는 SCSI ID 3번)
diag-switch? false Power on때 점검 모드로 시작한다.
input-device keyboard Power on input device
keyboard-click? false keyboard click 음의 발생 여부
mfg-switch? false if true, STOP-A로 interupt 하기 전까지 test 한다.
screen-#columns 80 .....
screen-#rows 34 .....
security-#badlogins no default 부정확한 패스워드 잎력회수 지정
security-mode none Firmware security level (none, command, full)
security-password no default Firmware security password (No display)
sunmon-compat? false if true, 제한된 monitor prompt를 출력한다.(>)
testarea 0 One-byte scratch field, available for read/write test
ttya-mode 9600,8,n,1,- TTYA (baud rate, #bits, parity, #stoop, handshake)
ttyb-mode 9600,8,n,1,- TTYB (baud rate, #bits, parity, #stoop, handshake)
ttya-ignore-cd true if true TTYA 무시 (Carrier-Detect)
ttyb-ignore-cd true if true TTYB 무시 (Carrier-Detect)
ttya-rts-dtr-off false if true TTYA 무시 (DTR-RTS)
ttyb-rts-dtr-off false if true TTYB 무시 (DTR-RTS)

< 주의 > 위의 parameter 리스트에는 잘 사용되지 않는 것은 빼었지만 위의 리스트의 값들도 잘못 설정하면 시스템의 부팅이 안되는 수가 있으므로 주의 하여 사용하여 주세요..

ok set-default <parameter>

지정한 parameter값을 디폴트 값으로 변경한다.

ok set-defaults

모든 환경값을 디폴트 값으로 변경한다.

* itislord님에 의해서 게시물 복사되었습니다 (2005-04-24 14:18)
참고 1 : RPM 사용법


# rpm -ivh source.rpm // source.rpm을 설치

# rpm -Uvh source.rpm // source.rpm을 Upgrade

# rpm -q source // source를 설치여부 확인

# rpm -e source // source를 삭제


참고 2 : Mount/unmount 사용법

CD의 설치프로그램을 사용하기 위해서 CD 장치를 마운트 시켜야한다. 사용 후에 다시 자치를 해제하는 것이 unmount 하는 것이다. 마운트하기 위해서 장치의 형식( type )을 알아야한다. 하지만 우리가 흔히 사용하는 type은 다음과 같다.


CD-ROM : iso9660

A: : msdos 또는 vfat

Hard Disk : ext2


위의 3가지의 형식을 참조하여 다음과 같은 형식의 명령을 사용한다.


mount -t 형식 장치명 마운트위치


위에서 장치명은 일반적으로 다음과 같다.


3.5" 플로피 : /dev/fd0

IDE 하드디스크 : /dev/hda, /dev/hdb

CD-ROM : /dev/cdrom 또는 /dev/hdc


그리고 마운트 위치는 장치에 대해서 접근할 수 있는 디렉토리 명칭이다. CD-ROM 드라이브를 /ycson 디렉토리에 마운트 시켜보자.


# mkdir /ycson

# mount -t iso9660 /dev/hdc /ycson

# ls /ycson // CD-ROM의 정보가 확인된다.


또는 A: 드라이브를 /a:에 마운트하려면


# mkdir /a:

# mount -t msdos /dev/fd0 /a:

# ls /a: // A: 드라이브의 정보가 확인된다.


다음과 같이 마운트 장치를 해제하고 확인할 수 있다.


# umount /a: // A: 드라이브 언마운트

# umount /ycson // CD-ROM 드라이브 언마운트

# ls /ycson // 빈디렉토리


리눅스에서는 이러한 자주 접근하는 장치 목록과 부팅시 자동으로 마운트할 목록을 /etc/fstab에 기록하고 있다. CD-ROM, A: 드라이브 모두 저장매체의 형식을 기록하고 있으므로 일반적으로 다음과 같이 간략히 마운트/언마운트 할 수 있다.


# mount /mnt/cdrom

# mount /mnt/floppy

# ls /mnt/cdrom // CD-ROM 드라이브의 내용을 확인 할 수 있다.




참고 3 : 압축프로그램 사용법

Unix/Linux/DOS에서 자주 사용되는 압축파일의 확장명과 연결 프로그램의 사용법은 다음과 같다.


.Z // compress 를 사용하였다.

$compress src // src.Z이라는 파일을 만든다.

$uncompress src.Z // compress에 의해 압축된 프로그램을 푼다.


.zip // zip/unzip을 사용하였다.

$zip dest src // src를 압축하여 dest.zip이라는 파일을 만든다.

$unzip -t dest.zip // dest.zip에 의해 압축된 프로그램을 본다.

$unzip dest.zip // dest.zip에 의해 압축된 프로그램을 푼다.


.gz // gzip에 의해서 압축하였을 때 생성되는 확장명이다.

$gzip src // src.gz이라는 압축파일 생성

$gzip -d src.gz // gzip에 의해 압축된 파일을 푼다.

// gzip을 이용하면 원본 파일은 결과 파일만 남는다.


.tar // tar에 의해서 압축된 파일이다.

$tar cvf dest.tar source1 dir1 dir2 // source1 dir1 dir2을 묶어 dest.tar를 생성한다.

$tar tvf dest.tar // dest.tar에 압축된 파일목록을 본다.

$tar xvf dest.tar // dest.tar에 포함된 파일을 푼다.


.tar.gz // tar + gz의 형식이다.

$tar cvf dest.tar source1 dir1 dir2 // tar 파일 생성

$gzip dest.tar // dest.tar.gz 파일 생성

$gzip -d dest.tar.gz // dest.tar 생성

$tar xvf dest.tar // dest에 포함된 파일을 풀어냄


.tgz // tar + gz의 결합형

$tar cvfz dest.tgz source1 dir1 dir2 // tgz 파일 생성

$tar tvfz dest.tgz // dest.tgz에 포함된 내용물 보기

$tar xvfz dest.tgz // dest.tgz 파일d에 포함된 내용을 풀어냄

// tar.gz으로 압축된 경우는 tar [x|c|t]vfz에 의해 처리가 가능함

* itislord님에 의해서 게시물 복사되었습니다 (2005-04-24 14:18)
MySQL + Apache + PHP4 + Zend Optimizer + Perl + mod_perl 설치하기


설치환경


CPU : Intel 300Mhz

RAM: 32M

HDD: 3.6G

OS: 한글 Redhat Linux 6.2

Kernel: 2.2.16

gcc : 2.8.1.x 이상( C compiler ) - RedHat 6.0 이상권장




설치순서


1. 설치에 필요한 파일 다운받기

2. RPM으로 설치된 패키지 제거하기

3. MySQL, Apache, PHP4 바이너리 파일 압축풀기

4. MySQL 설치

5. Apache Configure(1)

6. PHP4설치

7. Apache Configure(2), 컴파일

8. Zend Optimizer 설치

9. 환경설정화일 편집

10. PHP 및 Apache 웹서버 구동 시험

11. 시스템 부팅시 자동으로 아파치 데몬과 MySQL데몬 실행하기



1. 설치에 필요한 파일 다운받기


mysql-3.22.32.tar.gz (http://www.mysql.com/downloads/mysql-3.22.html)

apache_1.3.27.tar.gz (http://www.apache.org/mirrors/)

php-4.0.1pl2.tar.gz (http://www.php.net/downloads.php)

ZendOptimizer-RC1-Linux-glibc2.1.tar.gz (http://www.zend.com/download.php)

ZendOptimizer-RC1-Linux-glibc2.1.tar.gz는 회원가입시 다운받을 수 있다.

회원ID - "ganzi00" 비밀번호 - "dino104"


해당 사이트 또는 미러사이트 등을 이용하여 파일을 다운로드받는다.



2. 이미 설치된 패키지(RPM) 제거하기


지금부터의 작업은 반드시 root의 권한으로 한다.


배포본 리눅스에 기본적으로 설치되어 있는 RPM 패키지를 제거한다.

또는 타인의 실습에 의해 이미 설치한 프로그램을 삭제한다.


2.1 RPM으로 아파치/MySQL등이 설치된 경우 RPM 삭제 과정


아파지의 설치 여부를 확인하고 설치된 경우에는 rpm을 이용하여 기 설치된 파일을 삭제한다. 주의할 점은 기존의 환경 설정 파일 등을 저장하도록 한다. rpm으로 설치되었다면 /etc/httpd/conf/ 디렉토리에 위치한다. 여기의 *.conf 파일을 저장하도록 한다.


-. apache/mysql rpm 설치 여부 확인

# rpm -qa | grep apache

# rpm -qa | grep mysql


-. 기존 RPM 환경 파일 저장

# cd // root 홈디렉토리에 파일 저장

# tar cvfz old_apache_conf.tgz /etc/httpd/conf


-. 아파치/MySQL 데몬 종료 및 확인

# ps -aex | grep apache

# ps -aex | grep mysql

# /etc/rc.d/init.d/httpd stop

# /etc/rc.d/init.d/mysql stop

# ps -aex | grep apache

# ps -aex | grep mysql


-. 아파치/MySQL 삭제

# rpm -q apache // 설치된 아파치 패키지를 검색한다.

apache-1.3.12.2

# rpm -e apache // 설치된 아파치 패키지 삭제한다.

error: removing these packages would break defendencies:

webserver is needed by mod_perl-1.21-10

webserver is needed by mod_php-3.0.15-2


위와 같이 에러메시지가 뜨는 것은 모듈의 의존성에 의한 것이므로 하위에 나타난 mod_perl mod_php 등을 삭제한 후 아파치를 제거한다. 의존 관계가 다 많은 경우는 모든 모듈을 삭제한다.


# rpm -e mod_perl

# rpm -e mod_php

# rpm -e apache


2.2 rpm이 아닌 소스버전으로 설치된 경우 삭제


-. 아파치/MySQL 데몬 종료 및 확인

# ps -aex | grep apache

# ps -aex | grep mysql

# /usr/local/apache/apachectl stop

# /usr/local/mysql/share/mysql/mysql.server stop

# ps -aex | grep apache

# ps -aex | grep mysql


-. 아파치/MySQL/PHP 등의 소스파일 삭제

/usr/local/mysql /usr/local/apache /usr/local/php4등을 삭제한다.


# cd /usr/local

# rm -rf mysql apache php4




3. MySQL, Apache, PHP4 바이너리 파일 압축풀기


root 계정으로 작업을 해야하며, 소스파일들이 /usr/local/src 디렉토리에 있다고 가정하고 설명한다.


-. 소스 파일 풀기

# tar zxvf mysql-3.22.32.tar.gz

# tar zxvf apache_1.3.27.tar.gz

# tar zxvf php-4.0.1pl2.tar.gz

# tar zvxf ZendOptimizer-RC1-Linux-glibc2.1.tar.gz


-. 설치할 디렉토리 생성

우리는 /usr/local 디렉토리에 apache, php4, mysql, Zend를 각각 설치할 것이다.

# cd /usr/local

# mkdir mysql apache php4 Zend



4. MySQL 설치


-. 설치

# cd /tpm/mysql-3.22.32

# ./configure --prefix=/usr/local/mysql \

>--with-unix-socket-path=/usr/local/mysql/tmp \

>--localstatedir=/usr/local/mysql/data \

>--with-charset=euc_kr

....

....

....

Thank you for choosing MySQL!

#


\(역슬래시) 표시는 입력할 내용이 많을 경우 다음 줄에서 명령어를 입력하도록 한다. 이때 반드시 \(역슬래시) 앞에 공백이 추가되어야 한다. 그리고 옵션과 옵션 사이에도 공백을 위치시킨다.


[option] 설명

--prefix=/usr/local/mysql // MySQL이 설치될 디렉토리 경로

--with-unix-socket-path=/usr/local/mysql/tmp // MySQL 소켓 디렉토리 경로

--localstatedir=/usr/local/mysql/data // 생성된 DB/Table이 기록되는 디렉토리 경로

--with-charset=euc_kr // 한글로 메시지를 출력하도록 한다.


- 환경설정을 다시 해야할 경우

혹시 설치진행 중에 잘못된 명령이나 옵션설정 등으로 하여 문제가 발생했을 때, 기존 설정 내용을 가지고 있는 config.cache을 지우지 않고 진행하면 수정된 내용이 반영되지 않으므로 아래의 명령을 수행 후 환경 설정을 새로이 하고 재 설치하도록 한다.


# rm config.cache

# make clean


또는


# make distclean // 위의 두 명령과 동일하다


-. 컴파일 및 설치

# make // 컴파일을 한다. 시스템 사양에 따라 10-20분 소요

# make install // MySQL을 설치한다.


-. MySQL 관리 테이블 생성

# cd /usr/local/mysql/bin // mysql 실행 파일이 위치해 있다.

# ./mysql_install_db // MySQL의 데이터를 관리할 기초 테이블 생성


!주의할 점은 mysql_install_db은 반드시 한번만 실행시켜야 한다.


-.기본설정하기
# chown -R root  /usr/local/mysql
#  chown -R mysql /usr/local/mysql/data
#  chgrp -R mysql /usr/local/mysql
#  chown -R root /usr/local/mysql/bin




-. mysql 시작 스크립트 수정

# cd /usr/local/mysql/share/mysql

# vi mysql.server


편집기로 열어서 safe_mysql이 실행되는 라인에 --language=korean 옵션을 추가한다.


$bindir/safe_mysqld --user=$mysql_daemon_user --pid-file=$pid_file \

--datadir=$datadir --language=korean &


# chmod 755 mysql.server // 실행모드로 전환한다.


-. mysql 데몬의 시작과 종료

mysql 데몬의 시작과 종료를 시스템 관리자 PATH가 설정된 디렉토리에 복사해두고 사용하면 어느 위치에서나 명령을 인식 가능하게 한다.


# cp -p ./mysql.server /usr/bin // 관리자 실행 디렉토리에 복사

# mysql.server start // mysql 데몬 시작하기

# ps -ef | grep mysql // 프로세스 확인하기.

# mysql.server stop // 데몬 종료하기.


-. test

# /usr/local/mysql/share/mysql/mysql.server start

// /usr/bin에 복사했다면

# mysql.server start

# mysql


Welcome to the MySQL monitor. Commands end with ; or \g.

Your MySQL ....


Type 'help' for help.

mysql>


-. root 암호 변경하기

mysql>use mysql

mysql>update user set password=password("your_password") where user='root';

mysql> quit // 종료하기


-. 암호 변경 후 mysql 시작하기

# mysql -uroot -p

Password : your_password

mysql>


**** 설치 순서를 지키세요 *****

** ApacheJserv를 같이 설치하고자 할 경우 다음 부분을 참고한다**

설치전 gcc 및 gcc-make 가 설치되어 있어야 되고, path가 연결되어 있어야 한다.
Jserv 소스의 압축을 푼다.

#> gzip  –d  ApacheJServ-1.1.tar.gz
#> tar  xvf  ApacheJServ-1.1.tar

그 다음 Jserv 설치 소스 디렉토리로 이동한 뒤 환경을 설정하여 make 파일을 생성한다.

#> ./configure \
[blank]--prefix=/usr/local/jserv \ (Jserv 가 설치될 위치)
[blank]--with-apache-src=/usr/local/Apache_Install/apache-1.3 \ (아파치 설치소스)
[blank]--with-jdk-home=/usr/j2se \
[blank]--with-java=/usr/j2se/bin/java \
[blank]--with-jar=/usr/j2se/bin/jar \
[blank]--with-JSDK=/usr/local/jsdk/lib/jsdk.jar \ (jsdk.jar 파일이 있는 위치)
[blank]--disable-debugging

위와 같은 명령을 실행하면 make파일이 생성된다. 그리고 나서 인스톨하면 된다.

#> make
#> make install
************************************


5. Apache Configure(1)

  **** 보안이나 mod_perl등을 위해서라도 2.0.44 버전 이상을 구해 설치하는 것이 좋다 *****

1차적인 웹 설정 구성을 먼저 수행한다.


# cd /usr/local/src/apache_1.3.27

# ./configure --prefix=/usr/local/apache


 

6. PHP4 설치


-. 환경 구성

# cd /usr/local/src/php-4.0.1pl2

# ./configure --prefix=/usr/local/php4  --enable-track-vars \

>--with-mysql=/usr/local/mysql \

>--with-apache=/usr/local/src/apache_1.3.27 \  (이 옵션은 Apache 2.x 대에서는 빼야함)

>--with-config-file-path=/usr/local/apache/conf \

>--with-mod-charset --with-language=korean \

>--with-charset=euc_kr --disable-debug \

>--with-xml --enable-magic-quotes


옵션에 대한 설명은 PHP 메뉴얼을 참고하기 바랍니다. 만약 PostgeSQL이나 mSQL을 사용한다면 --with-pgsql='디렉토리경로' --with-msql='디렉토리경로'와 같이 옵션을 사용한다.

--enable-track-vars 옵션은 HTTP_GET_VARS, HTTP_POST_VARS, HTTP_COOKIE_VARS 배열에 들어 있는 GET, POST, Cookie 변수들의 출처를 기억한다. 반드시 설정한다.


-. 컴파일 & 설치

# make

# make install


7. Perl 설치하기

일반적으로 리눅스일 경우 defalt로 설치하는 것을 권장한다.

# tar -xzvf stable.tar.gz

# cd perl-5.6.0

# rm -f config.sh Policy.sh <------ 이전에 생성된 설정파일을 삭제함.

# sh Configure -Uuselargefiles -de

# make

# make test

# make install


make test를 실행해서 "All tests successful"이라는 메세지가 나오지 않으면 다음을 실행하라.

# make test-notty

실제로 필자는 make test에서 여러번 에러가 발생해서 make test-notty로 설치를 했다.

test-notty의 역활은 백그운드작업이 불가능할 경우 강제적으로 작업이 이루어지게 한다.

그러나 이 경우에 tty가 필요한 test부분에는 이를 무시할 수 있다.

그리고 또한 더 자세한 test환경을 얻기위해서는 다음을 실행하는 것을 권장한다.

# cd t

# ./perl harness

설치 확인하기
Perl이 설치가 제대로 되었는지 버전을 확인해보자.

# perl -version

This is perl, v5.6.0 built for i686-linux
.



8. mod_perl 설치하기

  $ cd mod_perl-1.26    

  $ perl Makefile.PL APACHE_SRC=../apache_1.3.27/src \

      NO_HTTPD=1  USE_APACI=1  PREP_HTTPD=1  EVERYTHING=1


  $ make

  $ make install





9. Apache Configure(2), 컴파일


PHP 설치 후 아파치 설치를 마무리한다.


-. 환경 구성

# cd /usr/local/src/apache_1.3.27

# ./configure --prefix=/usr/local/apache --enable-shared=max --activate-module=src/modules/php4/libphp4.a

*** ApacheJserv를 설치할 경우 위의 문장에 --activate-module=src/modules/jserv/libjserv.a  추가한다 ***

*** Apache 1.3.x 에서 mod_perl을 추가할 경우 위에 --activate-module=src/modules/perl/libperl.a 추가한다 ***



-. 컴파일 & 설치

make를 하기전에 Makefile을 수정해서 다음의 부분을 적당곳에 추가한다.

# vi Makefile

>> CFLAGS = "-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BIT=64"


# make

# make install



8. Zend Optimizer 설치

# cp /usr/local/php4/php.ini-dist /usr/local/apache/conf/php.ini

# cd /usr/local/src

# mv ZendOptimizer-RC1-Linux-glibc2.1 /usr/local/Zend/lib

또는 ZendOptimizer 소스디렉토리에 있는 install 명령을 실행한다

나타나는 설명에 따라 진행하면서 조정한다.


-. 환경 설정 파일 복사 및 수정


# cp /usr/local/php4/php.ini-dist /usr/local/apache/conf/php.ini

# vi /usr/local/apache/conf/php.ini


zend_optimizer.optimization_level=7

zend_extension="/usr/local/Zend/lib/ZendOptimizer.so"



11. 환경설정 파일 편집

-. 환경 설정 파일 복사 및 수정

# vi /usr/local/apache/conf/httpd.conf // 아파치 환경설정 파일


<IfModule mod_dir.c>

DirectoryIndex index.php index.php3 index.html index.htm

</IfModule>

...

...

AddType application/x-httpd-php .php .php3 .ph

AddType application/x-httpd-php-source .phps

AddType application/x-httpd-php .php

AddType application/x-httpd-php .phtml

AddType application/x-httpd-php .php4  


*** ApacheJserv를 설치할 경우 맨 마지막에    Include "/usr/local/jserv/etc/jserv.conf" 문장 삽입 후 저장 ****

*** mod_perl 기능을 사용하기 위해서는 다음 추가 ***


AddHandler cgi-script .cgi .pl


Alias /perl/ /home/apache/perl/

  PerlModule Apache::Registry


  <Location /perl>

    SetHandler perl-script

    PerlHandler Apache::Registry

    Options ExecCGI

    allow from all

    PerlSendHeader On

  </Location>



12. PHP 및 Apache 웹서버 구동 시험


테스트 파일(phpinfo.php)을 만들어 웹서버의 홈디렉토리(/usr/local/apache/htdocs)에 만들고 웹브라우저에서 확인한다.


# cat > /usr/local/apache/htdocs/phpinfo.php

<?

phpinfo();

?>

^D

# netscape http://localhost/phpinfo.php



또는 http://해당URL/phpinfo.php ( http://IP/phpinfo.php )를 입력하여 출력내용 확인.



13. 시스템 부팅시 자동으로 아파치 데몬과 MySQL 데몬 실행하기


두 가지 방법 중 하나를 택한다.


-. 방법 1 : 권장

/etc/rc.d/rc.local 파일을 열어서 마지막 줄에 다음 명령을 입력한다.

또는 /etc/rc.d/rc.local.mine 파일이 있을 경우 rc.local.mine 파일에 입력해도 된다.


if [ -x /usr/local/apache/bin/apachectl ] then

echo "Apache Web Server Starting..."

/usr/local/apache/bin/apachectl start

fi


if [ -x /usr/local/mysql/share/mysql/mysql.server ] then

echo "MySQL Server Starting..."

/usr/local/mysql/share/mysql/mysql.server &

fi


-. 방법 2

# cp -p /usr/bin/apachectl /etc/rc.d/init.d/httpd

# cp -p /usr/bin/mysql.server /etc/rc.d/init.d/mysql


// 실행모드( run level ) 3일 경우

# cd /etc/rc.d/rc3.d

# ln -s /etc/rc.d/init.d/httpd S85httpd

# ln -s /etc/rc.d/init.d/mysql S90mysql


// 실행모드( run level ) 5일 경우

# cd /etc/rc.d/rc5.d

# ln -s /etc/rc.d/init.d/httpd S85httpd

# ln -s /etc/rc.d/init.d/mysql S90mysql


* itislord님에 의해서 게시물 복사되었습니다 (2005-04-24 14:18)
//보고서 제출여부 확인
//select * from 'kone'.bbsreport where writer = '20331056';

//주별 강의안 수강 확인
//select * from 'kone'.attend where user_id = '20380184';

//학사디비 view table 정보 확인
//select * from chung.view_student where user_id='20380052';
//select * from chung.view_sugang where user_id='20323097';
//select * from chung.view_student where user_name='김종선';
//select * from chung.view_class where jojik_cd='78';
//select count(*) from chung.view_sugang
//where year='2003' and term='1' and lecture_cd='103642' and (user_id like '203_____') ;
//select count(*) from chung.view_student;


//학생정보 확인
//select * from 'kone'.member where user_id='20380065';
//select * from 'kone'.member where user_name='강선미';

//시험응시 여부 확인 및 정답 확인
//select * from 'kone'.evalapplyanswer where student_id='20307083';
//select * from 'kone'.evaltest where student_id='20380272';
//select * from 'kone'.evalquest_list where lec_cd='103642200654';

//select lec_cd, user_id, sum(attnd_cnt) sum1 from 'kone'.attend
//where lec_cd='103642202567' group by lec_cd, user_id order by user_id;

//select a.user_id, b.user_name, a.lec_cd from 'kone'.attend a, 'kone'.member b
//where a.user_id=b.user_id and b.user_name='정찬교';


//학생들의 핸드폰 번호 뽑아내기
//select user_id, user_name, mobile from member
//where c_usercode = 'S' and user_id in (select user_id from cmember where lec_cd like '103642%')
//order by user_id;

//학과별, 학생들의 핸드폰 번호,이메일 뽑아내기
select c.cd_name, a.user_id, a.user_name, a.mobile, a.email from member a,schoolreg b, codemaster c
where a.c_usercode = 'S' and
user_id in (select user_id from cmember where lec_cd like '103800%' and org_sect='nep01' and year='2003' and term='2' and reg_type='s' )
and a.org_sect=b.org_sect and a.user_id=b.student_id and b.FACULTY_DEPARTMENT_CD=c.minor_cd and c.major_cd='HJ98'
order by c.cd_name, a.user_id;

//장기결석자(3월29일 이후로 수업을 드지 않은 학생 리스트)
//select user_id from cmember
//where org_sect='nep01' and year='2003' and term='1' and reg_type='s' and lec_cd='103642200654'
//and user_id not in (select user_id from attend where org_sect='nep01' and year='2003' and term='1'
//and lec_cd='103642200654' and modify_dt>to_date('20030329','%Y%m%d')  );

//lec_cd='????????' ??????? 부분에 해당 강좌 코드 입력
//장기결석자에 학과, 이름 표시하기  (3월29일 이후로 수업을 듣지 않은 학생 리스트)
//select a.user_id,b.kor_name,c.cd_name from cmember a, schoolreg b, codemaster c
//where a.org_sect='nep01' and a.year='2003' and a.term='1' and a.reg_type='s' and a.lec_cd='103642200654'
//and a.user_id not in (select user_id from attend where org_sect='nep01' and year='2003' and term='1'
//and lec_cd='103642200654' and modify_dt>to_date('20030329','%Y%m%d')  )
//and a.org_sect=b.org_sect and a.user_id=b.student_id and b.FACULTY_DEPARTMENT_CD=c.minor_cd
//and c.major_cd='HJ98' order by c.cd_name,b.kor_name;

//2003.2학기 결석자 뽑아내기
select c.cd_name,a.user_id,b.kor_name from cmember a, schoolreg b, codemaster c
where a.org_sect='nep01' and a.year='2003' and a.term='2' and a.reg_type='s' and a.lec_cd='103800202627'
and a.user_id not in (select user_id from attend where org_sect='nep01' and year='2003' and term='2'
and lec_cd='103800202627' and modify_dt>to_date('20030825','%Y%m%d')  )
and a.org_sect=b.org_sect and a.user_id=b.student_id and b.FACULTY_DEPARTMENT_CD=c.minor_cd
and c.major_cd='HJ98' order by c.cd_name,b.kor_name;

// 100016, 200063, 200177, 200795, 200954, 202095, 202120, 202322, 202626, 202627

// schoolreg는 학적대장 테이블, codemaster는 코드가 정의되어 있는 테이블


//특정 날짜 사이에 쓰여진  전체 게시물 수
//select count(*) from bbswritecnt
//where year='2003' and term='1' and lec_cd like '103642%'
//and room_type != 'D' //토론형
////and room_type != 'P'  //자료실형
//and ( written_dt between to_date('20030609','%Y%m%d') and to_date('20030615','%Y%m%d'));
//

//특정 날짜 사이에 쓰여진  공지사항  게시물 수
select count(*) from lecannoun
where year='2003' and term='1' and lec_cd like '103642%'
and ( modify_dt between to_date('20030609','%Y%m%d') and to_date('20030615','%Y%m%d'));

//해당 학번의 학생이 해당 게시판에 쓴 글 목록 출력
//select * from commonbbs where Lec_Cd='103642100127' and Bbs_Id='96' and User_Id like '%20380089%';

//해당 학점자 수 출력
//select count(*) from testscore where af='B+';

//해당 학생의 학사에 입력된 최종 성적 확인
//select * from testscore where user_id='20305051';

//각 강좌별 성적 확인
//select * from grading where year='2003' and term='1' and lec_cd='103642100127'
//order by user_id;

//각 강좌별 성적리스트 출력
select c.cd_name,a.user_id,b.kor_name,a.attend_conv,a.task_conv,a.midterm_conv,a.final_conv,a.conv_sum,a.rank,a.e_mark
from grading a, schoolreg b, codemaster c
where a.org_sect='nep01' and a.year='2003' and a.term='1' and a.lec_cd='103642100127'
and a.org_sect=b.org_sect and a.user_id=b.student_id and b.FACULTY_DEPARTMENT_CD=c.minor_cd and c.major_cd='HJ98'
order by c.cd_name,a.user_id;

//학사 디비 수강정보 중 학과별 인원수 확인
select a.lecture_jojik_cd,b.jojik_name, count(a.user_id)  from chung.view_sugang a, chung.view_class b
where a.lecture_jojik_cd=b.jojik_cd and a.year='2003' and a.term='2' and a.lecture_cd='103800'
group by a.lecture_jojik_cd, b.jojik_name;
* itislord님에 의해서 게시물 복사되었습니다 (2005-04-24 14:11)
PCLine에서 정리한 디지털 카메라 촬영법 자료입니다.

위의 링크를 누르시면 출력됩니다.

(편의상 PCLine에 나오는 내용을 제가 별도 화일로 만들었습니다. 모든 저작권은 PCLine에 있습니다)
www.pcline.co.kr


* itislord님에 의해서 게시물 복사되었습니다 (2005-04-24 14:21)
PC사랑에서 정리한 디지털 카메라 촬영법 자료입니다.

위의 링크를 누르시면 출력됩니다.

(편의상 PC사랑에 나오는 내용을 제가 별도 화일로 만들었습니다. 모든 저작권은 PC사랑에 있습니다)
www.ilovepc.co.kr

* itislord님에 의해서 게시물 복사되었습니다 (2005-04-24 14:21)
HOWPC에서 정리한 디지털 카메라 상황별 맞춤 촬영법 Top 10 자료입니다.

위의 링크를 누르시면 출력됩니다.

(편의상 HOWPC에 나오는 내용을 제가 별도 화일로 만들었습니다. 모든 저작권은 HOWPC에 있습니다)
* itislord님에 의해서 게시물 복사되었습니다 (2005-04-24 14:21)


#img1건강 지켜주는 '똑똑한 운동' 요령

가장 중요한 건강비결 중 하나가 운동이다. 당뇨와 뇌졸중.심장병.동맥경화.고혈압.복부비만과 암 등 현대인의 생명을 위협하는 각종 성인병을 단번에 극복할 수 있기 때문이다. 최근 화창한 봄날씨를 맞아 본격적으로 운동에 나선 이들도 많다.

그러나 운동에도 방법이 있다. 최근 일산백병원 양윤준 교수가 바람직한 운동요령을 제시한 '똑똑한 운동'이란 책을 내놓았다.

양교수는 2002년 부산 아시안게임 국가대표 팀닥터를 지낸 운동의학 전문가. 양교수를 통해 운동효과를 두 배로 늘릴 수 있는 다섯가지 방법을 살펴본다.

◇운동순서를 지켜라=운동은 준비 운동, 본격적 운동, 마무리 운동이란 3단계 순서를 지켜야 한다. 중요한 것은 준비 운동과 마무리 운동이다. 시간이 없으면 차라리 본격적 운동을 줄여서라도 준비 운동과 마무리 운동은 충분히 해줘야 한다.

준비 운동을 소홀히 하면 갑자기 심장에 가해지는 부담이 증가해 심장마비 등 낭패를 겪을 수 있다. 준비 운동은 대개 5~20분 정도 해야 하며 날씨가 추울수록, 나이가 많을수록, 질병 등으로 몸이 허약할수록 충분히 해야 한다.

본격적인 운동은 15~50분 정도 하면 된다. 마무리 운동은 10~30분 정도 한다. 마무리 운동은 휴식보다 근육 내 피로물질인 젖산을 효과적으로 제거하므로 운동 후 피로를 없애려면 반드시 해줘야 한다.

◇세가지 운동을 고루 해야 한다=세가지 운동이란 유산소 운동.근력 운동.유연성 운동을 말한다. 유산소 운동은 산소를 이용해 에너지를 얻는 운동.

전력 질주(전력 질주의 경우 산소를 이용하지 않는 무산소운동이다)만 아니라면 대부분의 종목이 여기에 포함된다. 심폐기능을 돕고 살을 빼는 효과가 있다.

근력 운동은 바벨이나 덤벨들기가 해당된다. 근육과 뼈가 튼튼해진다. 유연성 운동으론 스트레칭과 체조가 있다. 관절의 건강을 돕고 운동 부상을 줄인다. 어떤 운동을 선택하든 이들 세가지 운동이 혼합되는 형식을 취해야 한다.

*** 유산소.근력.유연성운동 같이 해야

◇먹는 것이 중요하다=운동 서너시간 전엔 단백질보다 탄수화물을 주로 먹는다. 고기보다 곡류를 먹어야 한다는 뜻이다. 탄수화물은 근육에서 글리코겐이란 물질로 저장된다. 글리코겐을 충분히 채워놓아야 경기력을 향상시킬 수 있다.

그러나 평소엔 단백질 섭취가 중요하다. 단백질은 에너지를 만드는 효과는 적지만 운동으로 손상된 조직을 복구하는데 중요한 역할을 맡고 있기 때문이다.

운동을 하지 않는 사람은 체중 1㎏당 0.75g이면 충분하지만 운동 선수는 1㎏당 1.2~1.6g의 단백질이 필요하다.65㎏의 체중을 지닌 운동선수라면 하루 1백g 정도의 단백질이 필요하다.

이때 단백질은 수분을 뺀 무게이므로 실제 고기로 환산하면 반 근 정도는 필요하다는 뜻이다. 마라톤이나 오래 달리기 등 심한 운동이라면 비타민제를 미리 먹어두는 것도 좋다. 격렬한 운동시 발생하는 유해산소가 조직의 손상과 노화를 유발할 수 있기 때문이다.

◇물은 충분히 마셔라=운동 도중 물 마시는 것을 주저해선 안된다. 운동은 필연적으로 땀을 수반하며 이 때문에 탈수에 빠진다. 문제는 객관적인 탈수와 주관적인 갈증이 서로 일치하지 않는다는 것. 목이 많이 마르지 않아도 탈수는 심할 수 있다.

따라서 운동을 할땐 갈증 여부와 상관없이 물을 마시는 것이 좋다. 한시간 이내 운동엔 맹물이 좋으나 한시간 이상 운동엔 시판 중인 전해질 음료가 권장된다.

맹물이나 전해질 음료나 흡수속도는 비슷하지만 한시간 이상 운동시 전해질과 영양분이 함께 소실되며 이 경우 전해질 음료가 도움이 되기 때문이다. 소금을 따로 먹는 것은 좋지 않다. 소금을 배설하기 위해 소변으로 더욱 많은 물이 빠져나가 탈수가 악화되기 때문이다.

*** 탈수 막게 물은 충분히 섭취

◇꾸준히, 규칙적으로 해야 한다=운동효과는 최소 3개월은 지나야 나타난다. 기대만큼 몸이 좋아지지 않는다고 중도에 포기하면 안된다. 운동은 적어도 일주일에 3회는 해야 한다.

이 경우도 월.화.수요일 운동하는 식으로 몰아서 하는 것보다 월.수.금 식으로 간격을 두고 하는 것이 좋다. 효과를 기대하기 어려운 운동에 시간을 낭비하지 않는 것도 중요하다.

나무에 등을 치는 운동이나 가만히 누운 상태에서 발을 기계에 올려놓으면 기계가 움직여주는 붕어운동, 벨트로 몸을 감고 진동을 유발하는 벨트 바이브레이션 운동 등은 운동효과가 거의 없다.

중앙일보 홍혜걸 의학전문기자.의사

중앙일보에서 나온 자료입니다.
편의상 제가 약간의 수정을 하였습니다. 모든 저작권은 중앙일보에 있습니다

* itislord님에 의해서 게시물 복사되었습니다 (2005-04-24 14:21)
○ 일반적으로 많은 디카 사용자분들이 모니터상에서  보여지는 크기와 품질이 인화시에도
똑같이 적용된다고 생각합니다.그렇지만 모니터에서 보여주는 이미지와 인화시에 이미지는 차이가 있습니다.
모니터는 보통 72dpi의 해상도를 가지고 있고, 인화지는 보통 300dpi의 해상도를 가지고 있습니다.
dpi상의 수치를 보더라도  해상도에 4배의 차이가 있는 것입니다.그러므로, 모니터에 보이는 이미지의 품질
그대로 인화하려면 모니터상의 이미지보다 4배정도 더 큰 이미지크기를 필요로 합니다.


○ 일반적으로 컴퓨터나 웹페이지상에서 감상하려는 이미지는 640x480 정도의 해상도를 사용해도 그리 무리가 없다고 생각합니다.그러나, 단순히 컴퓨터상에서 보는게 아니라 인화를 하려고 한다면 사이즈를 크게 해서 찍는것이 좋습니다.  

인화 사이즈       최저 해상도      권장 해상도
    3 x 5             750 x 525         1050 x 711 이상
    4 x 6             900 x 600         1218 x 812 이상
    5 x 7             1050 x 750        1421 x 1015 이상
    8 x 10           1500 x 1200       2030 x 1624 이상
    10 x 14          2100 x 1500       2842 x 2030 이상

(dcauser.co.kr)

dcauser.co.kr에서 나온 자료입니다.
편의상 제가 약간의 수정을 하였습니다. 모든 저작권은 dcauser.co.kr에 있습니다)

* itislord님에 의해서 게시물 복사되었습니다 (2005-04-24 14:21)
디카는 배우기 쉽고 찍기 편할 뿐 아니라, 비싼 필름 걱정없이 원하는대로 맘껏 찍을 수 있다.
어디 그뿐이랴, 파일로 저장되기 때문에 그 활용 범위가 넓다.
그래서 너나할것없이 디카를 사긴 하지만, 막상 찍고보면 남들처럼 잘 나오지도 않고 온통 흔들리고 초점도 맞지 않는 사진들뿐... 기대는 저만치 나오는게 한숨인 경우가 다반사다. 하지만 디카 알고보면 훌륭하고 똑똑한 카메라임을 인정하게 될 것이다.
중요한 사항 두세가지만 익혀두면, 당신의 디카는 아주 특별한 세상을 선물해 줄 것이다.

1. 카메라를 꼭 쥐고 촬영하자.  
디지털카메라는 액정을 보고 촬영하기 때문에 사진이 흔들려 촬영되기 쉽다.
따라서 촬영 때 양 팔꿈치를 몸에 밀착시키면 보다 선명한 사진을 촬영할 수 있다.  

2. 반셔터 사용을 습관화하자.  
디지털카메라는 셔터 속도가 느리다고 불평하는 사람들이 의외로 많다. 그러나 사실은 초점을 맞추기 위한 시간이 오래 소요되는 것이다.
대부분 셔터를 누를때 한번에 힘껏 누르는 경우가 대부분이지만, 디카의 경우 셔터를 두 번 나누어 누르면 흔들린 사진에서 해방될 수 있다.
먼저 원하는 장면을 포착하면, 안정적인 자세를 잡고, 셔터를 살짝 반만 눌러보자.
액정에 비치는 화면이 환해지면서 초점이 또렷하게 맞는 것을 확인할 수 있다.
그리고 나서 나머지 셔터를 눌러주면, 흔들림도 줄고 초점도 또렷하게 맞는 당신만의 사진을 얻을 수 있다.
원스텝에서 투스텝으로 넘어가는 과정시, 셔터에서 손가락을 떼면 아무 소용이 없다. Two-Step 으로 나눠누르되, 손가락을 셔터에서 떼지말고, 셔터는 되도록 부드럽게 눌러주는 것이 좋다. 셔터를 두 번에 나누어서 눌러 촬영하는 습관을 가지면 사진 촬영에 소요되는 시간이 몇 배로 줄어든다.  

3. 중요한 사진은 다시 한 번 확인하자.
잘못 촬영하는 불상사가발생하지 않도록 촬영 후 확인하는 습관을 가지는 것이 좋다.

4. 찍는 만큼 느는 실력..
동일한 사진을 여러 장 촬영한다.
디지털카메라의 장점은 아무리 많이 촬영해도 필름값이 들지 않는다는 점이다. 나중에 가장 잘 나온 사진으로 고를 수도 있고, 많이 찍어보는 것만큼 사진 실력을 늘게 하는 방법은 없다.
이때 여러장 찍는 원칙에만 연연한 나머지, 똑같은 포즈, 아니면 똑같은 구도의 사진을 찍지말고, 눈높이를 약간씩 다르게 하거나 각도, 구도 등을 다양하게 맞춰가며 찍도록 하자.  

5. 실내 촬영시에는 광각(줌을 사용하지 않은 상태)에서 촬영한다.
실내 촬영은 무엇보다 셔터 스피드를 빠르게 하는 것이 중요하다.
망원에서는 셔터 스피드가 느려지기 때문에 가급적 광각에서 촬영하는것이 좋다.  

6. 플래시를 효과적으로 사용하자.  
디지털카메라에 장착된 플래시는 꼭 밤에만 터뜨리는 것은 아니다. 그늘에서 혹은 햇빛이 인물 뒤에 있을 때 사용하면 효과적인 사진을촬영할 수 있다. 디카로 처음 찍다 보면, 대부분 플래시가 펑펑 터지면서 분위기가 확 날아, 보기 민망한 사진이 되기 쉽다.
진짜 초보라면, 플래시를 끄고 찍자. 훨씬 따뜻하고 자연스런 느낌의 사진을 얻게 된다. 실내 혹은 밤 촬영을 할 경우, 사진이 흔들리기 쉽지만, 플래시를 끄고 찍는 습관을 들이도록 하자
(물론 고급유저가 되면 플래시를 이용, 다양한 사진을 찍을 수도 있지만, 초보라면 일단 끄고 시작하자.)  

7. 움직이는 물체는 연속촬영으로 한다.  
아이들이나 동물 사진을 촬영하는 경우 움직임이 많기 때문에 촬영이 곤란할 때가 많다. 이럴 때는 연속촬영 기능을 사용하면 보다 효과적으로 사진을 촬영할수 있다.  

(참고 : 매일경제 )

매일경제에서 나온 자료입니다.
편의상 제가 약간의 수정을 하였습니다. 모든 저작권은 매일경제에 있습니다)

* itislord님에 의해서 게시물 복사되었습니다 (2005-04-24 14:21)

+ Recent posts