cuwoom
2010년 4월 27일 화요일
gpg key error ???
2010년 4월 20일 화요일
raw device 관련 설정(in oracle linux 5)
2009년 12월 30일 수요일
Installing Oracle Database 11g Release 2 on Linux x86
- linux CD download : http://edelivery.oracle.com/linux
- 설치 환경 : 1024RAM , 20G HDD, 32bit vmware
1. Enterprise-R4-U6-i386-disc1.iso CD를 삽입하고 CD로 부팅합니다.
2. boot: 프롬프트에서 Enter키를 입력하여 설치를 진행합니다.
3. CD 검사를 선택적으로 실시합니다.
4. 설치언어를 선택합니다. (한글을 좋아하여 한국어를 선택했습니다.)
5. 키보드 설정은 기본값을 사용합니다.
6. Disk 파티션은 수동으로 설정하여 2048 Swap로 정하고 나머지는 "/"로 지정합니다.
7. 고정아이피를 설정합니다.(192.168.72.150)
8. 방화벽은 설정하지 않습니다.
9. 시간대를 설정합니다.(설치 언어를 한글로 했다면 대한민국으로 선택되어 있습니다.)
10. 추가 언어 설치(한국어가 선택되어 있습니다.)
11. 소프트웨어 선택
- 그래픽 인터넷을 선택하고 firefox를 제외하고 선택해제합니다.
- 서버는 아무것도 선택하지 않습니다.
- 개발 도구를 선택합니다.
- 관리자 도구를 선택합니다.
- 시스템 도구를 선택하고 추가로 sysstat을 선택합니다.
12. 설치를 시작합니다.
13. 사용 계약서 동의 합니다.
14. 날짜와 시간을 확인합니다.
15. 시스템사용자를 생성하지 않습니다.
16. 추가CD 설치는 하지 않습니다.
Oracle 사용자와 Group 생성
# groupadd oinstall
# groupadd dba
# useradd -m -g oinstall -G dba oracle
# passwd oracle
필요한 소프트웨어 설치 확인
compat-libstdc++-33.2.3
elfutils-libelf-0.97
elfutils-libelf-devel-0.97
gcc-3.4.6
gcc-c++-3.4.6
glibc-2.3.4-2.41
glibc-common-2.3.4
glibc-devel-2.3.4
glibc-headers-2.3.4
libaio-devel-0.3.105
libaio-0.3.105
libgcc-3.4.6
libstdc++-3.4.6
libstdc++-devel-3.4.6
make-3.80
pdksh-5.2.14
sysstat-5.0.5
unixODBC-2.2.11
unixODBC-devel-2.2.11
디렉토리 생성
# mkdir -p /u01/app/oracle /u01/app/oraInventory
# chown oracle:oinstall /u01/app/ora*
커널 파라미터 수정
# vi /etc/sysctl.conf
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 536870912
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048586
# sysctl -p (설정적용)
Oracle 계정 Shell Limits 설정
# vi /etc/security/limits.conf
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
# vi /etc/pam.d/login
session required pam_limits.so
Oracle 설치준비
오라클 공식 홈페이지에서 11g stage 파일을 다운 받습니다.
oracle 계정 환경 변수를 설정합니다.(기존 PATH 설정은 삭제)
$ vi .bash_profile
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
export ORACLE_SID=orcl
export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin
다운 받은 stage를 압축 해제합니다.
# unzip linux_11gR2_database_1of2.zip && unzip linux_11gR2_database_2of2.zip
Oracle 소프트웨어 설치(OUI)
$ cd database
$ ./runInstaller &









패키지는 설치되어있으나 버전이 맞지 않아 저렇게 나오는군요.
모두 무시하고 설치를 진행했습니다.


설치가 완료되고 루트 권한으로 두 스크립트를 실행해야 합니다.
/u01/app/oraInventory/orainstRoot.sh
/u01/app/oraInventory/orainstRoot.sh
# /u01/app/oraInventory/orainstRoot.sh
다음 권한 변경 중/u01/app/oraInventory.
그룹에 대한 읽기, 쓰기 권한을 추가하는 중입니다.
월드에 대한 읽기, 쓰기, 실행 권한을 제거하는 중입니다.
그룹 이름 변경 중 /u01/app/oraInventory 대상 oinstall.
스크립트 실행이 완료되었습니다.
# /u01/app/oracle/
checkpoints/ product/
# /u01/app/oracle/product/11.2.0/dbhome_1/root.sh
Running Oracle 11g root.sh script...
The following environment variables are set as:
ORACLE_OWNER= oracle
ORACLE_HOME= /u01/app/oracle/product/11.2.0/dbhome_1
Enter the full pathname of the local bin directory: [/usr/local/bin]:
Copying dbhome to /usr/local/bin ...
Copying oraenv to /usr/local/bin ...
Copying coraenv to /usr/local/bin ...
Creating /etc/oratab file...
Entries will be added to the /etc/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root.sh script.
Now product-specific root actions will be performed.
Finished product-specific root actions.
데이터베이스 설치
리스너가 실행되어 있어야 합니다. 특별한 설정이 없어서 설치되면서 동적으로 등록됩니다.
$ lsnrctl start
LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 30-DEC-2009 20:32:33
Copyright (c) 1991, 2009, Oracle. All rights reserved.
Starting /u01/app/oracle/product/11.2.0/dbhome_1/bin/tnslsnr: please wait...
TNSLSNR for Linux: Version 11.2.0.1.0 - Production
Log messages written to /u01/app/oracle/diag/tnslsnr/dba/listener/alert/log.xml
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=dba)(PORT=1521)))
Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for Linux: Version 11.2.0.1.0 - Production
Start Date 30-DEC-2009 20:32:52
Uptime 0 days 0 hr. 0 min. 17 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Log File /u01/app/oracle/diag/tnslsnr/dba/listener/alert/log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=dba)(PORT=1521)))
The listener supports no services
The command completed successfully
dbca 도구를 통하여 DB 생성 절차를 진행합니다.
$ dbca &













$ sqlplus / as sysdba
SQL*Plus: Release 11.2.0.1.0 Production on 수 12월 30 21:04:44 2009
Copyright (c) 1982, 2009, Oracle. All rights reserved.
다음에 접속됨:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
With the Partitioning, Oracle Label Security, OLAP, Data Mining,
Oracle Database Vault and Real Application Testing options
SQL> select status from v$instance;
STATUS
------------------------------------
OPEN
SQL> select * from v$version;
BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
PL/SQL Release 11.2.0.1.0 - Production
CORE 11.2.0.1.0 Production
TNS for Linux: Version 11.2.0.1.0 - Production
NLSRTL Version 11.2.0.1.0 - Production
em도 이미 시작되어 잘 되고 있습니다.

2009년 12월 8일 화요일
NT계열에서 생성된 텍스트 파일 유닉스 계열에서 인식되지 않을경우
보통 UNIX계열은 개행문자를 LF(Line Feed, \n)라고 인식하는 반면,
DOS / WinNT 계열은 CR(Carriage Return, \r), LF로 나타닙니다.
보통 텍스트파일을 vi나 gedit 등을 에디터를 통하여 볼때는 이상없이 보이나,
각종 툴을 이용하여 텍스트(스크립트)파일을 읽어들이고자 할경우 ERROR을 발생하는 경우가 있습니다.
특히 DBA의 경우 엑셀로 작성한 CSV 파일을 활용하는 경우가 많은데(export ,import 등),
이 텍스트 파일 또한 호환이 되지 않는 경우가 있습니다.
이때 유닉스 계열에서 잘 인식되도록 텍스트파일(CSV 등)을 CRLF에서 LF로 변경하면 잘 인식합니다.
우선 파일이 CRLF파일인지 확인하기 위해서는 file 명령어를 통하여 확인할수 있습니다.
$ file excel.csv
excel.csv : ASCII text, with CRLF line terminators
이렇게 ASCII text 뿐 아니라 CRLF 정보까지 나온다면 CR정보만 삭제해주면 됩니다.
방법은 vi또는 sed 등을 이용할수 있으나 이번엔 신선한 tr 명령어를 이용해 보겠습니다.
사용 방법은 tr -d "\r" < 입력파일 > 출력파일
예제 : tr -d "\r" < excel.csv > outfile.csv
이제 삭제된 LF파일을 확인할수 있습니다.
$ file outfile.csv
outfile.csv: ASCII text
반대로 LF파일을 NT계열에서 notepad를 이용하여 볼경우 개행문자를 정상적으로 인식하지 않아 줄바꿈이 되지 않습니다.
그러나, 좋은 에디터들이 많아 다른 툴들(gvim,editorplus 등)을 이용한다면 이는 쉽게 해결할수 있습니다.
2009년 12월 2일 수요일
mencoder를 이용한 인코딩
이 스크립트는 해당 폴더로 이동하여 명령어를 실행할경우 디렉토리 안 모든 동영상을 인코딩 합니다.
아래 스크립트를 아무곳에서나 실행가능하도록 ~/bin/ 에 생성합니다. vi ~/bin/omnia
실행 가능하도록 chmod 700 ~/bin/omnia
SUBCP="cp949"
TARGET_DIRECTORY="./incoding/"
TYPE=$1
FONT="/usr/share/fonts/truetype/lexi/LexiGulim.ttf"
mkdir $TARGET_DIRECTORY
for X in *.$TYPE; do
NEWNAME=`echo $X | sed "s/.$TYPE//g"`
echo "$NEWNAME".$TYPE
mencoder "$NEWNAME".$TYPE -o "$TARGET_DIRECTORY""$NEWNAME"-con.avi -sub "$NEWNAME".smi -subcp $SUBCP -font $FONT -subfont-text-scale 4 -mc 0 -audio-preload 0.0 -noodml -ofps 15.000 -vf-add crop=576:360:-1:-1 -vf-add scale=800:480 -vf-add expand=800:480:-1:-1:1 -ovc lavc -lavcopts vcodec=mpeg4 -lavcopts vbitrate=300 -ffourcc DIVX -srate 44100 -oac mp3lame -lameopts vbr=3 -lameopts br=96 -lameopts mode=1 -lameopts aq=7 -lameopts padding=3 -af volnorm
done
동영상이 있는 폴더로 이동하여 omnia 확장자 와 같은 방식으로 실행합니다.
cd 동영상
omnia avi
이렇게 avi 확장자로 된것을 모두 incoding 폴더에 인코딩 하게 됩니다.
특정 파일을 인코딩 하고 싶을 경우 특정 파일일 확장자를 변경하여 실행하면 됩니다.
어짜피 리눅스는 확장자가 프로그램 실행에 어떤 영향요소가 아닙니다.
지금까지는 터미널을 사용하는 방법이었습니다.
노틸러스 스크립트를 이용하여 인코딩하는 방법에 대하여 이야기 하겠습니다.
노틸러스가 스크립트로 인식하느 곳에 생성합니다.
vi ~/.gnome2/nautilus-scripts/incoding
FONT="/usr/share/fonts/truetype/lexi/LexiGulim.ttf"
SUBCP="cp949";
EX="omnia";
zenity --list --title="확인" --column "파일이름에 띄어쓰기가 있으면 안됩니다" $*
if [ $? = 1 ]; then
exit
fi
for X in $*; do
TYPE=`echo $X | awk -F. '{printf "%s\n",$NF}'`
FILENAME=`echo $X | sed "s/.$TYPE//g"`
echo $TYPE;
echo $FILENAME;
(mencoder $X -o $FILENAME"omnia.avi" -mc 0 -audio-preload 0.0 -of lavf -lavfopts format=MP4 -ofps 15.000 -vf-add crop=960:540:-1:-1 -vf-add scale=800:480 -vf-add expand=800:480:-1:-1:1 -ovc lavc -lavcopts vcodec=mpeg4 -lavcopts vbitrate=300 -ffourcc DIVX -srate 44100 -oac copy -font "$FONT" -sub "$FILENAME".smi -subcp $SUBCP -subpos 95 -subfont-text-scale 5 -subfont-blur 2 -subfont-outline 2 -af volnorm) | zenity --progress --pulsate --auto-close
done
exit

파일이름에 띄어쓰기가 있으면 정상적으로 인식되지 않아 확인하도록 하였습니다.(한글은 됩니다.)
개별 파일 또는 여려개 파일을 동시에 가능합니다.


인코딩을 신중히 해야 합니다.
취소버튼이 동작하여 않으며 닫기 버튼을 이용하여 종료할경우 화면에 보이는 창만 없어지고
실제로는 인코딩이 진행되고 있습니다.
취소를 시스템 감시(gnome-system-monitor)로 해야하는 안타까운 일이 발생합니다.
제가 스크립트 실력이 없어서 이정도에서 만족하고 사용하려고 합니다.
인코딩 설정은 옴니아용으로 되어 있으며, 인코딩은 한번 시작시 취소가 번거롭습니다.
2009년 11월 27일 금요일
DBA도 iSQL*Plus 사용하기(9i)
오라클(9i)에서 isqlplus를 이용하여 웹에서 sqlplus를 이용할수 있습니다.
기본 포트번호는 80,7777,7778 등을 이용하는데 아파치서버 설정파일을 통하여 확인할수 있습니다.
vi $ORACLE_HOME/Apache/Apache/conf/httpd.conf

%ORACLE_HOME%/Apache/Apache/conf/httpd.conf

이 파일 뿐만 아니라 여러가지 파일에서도 확인할수 있으나 가장 영향력 있는 설정파일입니다.
포트번호를 확인하였다면 아래과 같이 접속해볼수 있습니다.

Sample 사용자인 HR로 접속하여 테스트해보았습니다.

SYS 계정으로 접속하기 위해서는 해당 페이지를 접속할수 있는 사용자 설정을 먼저 해야 합니다.
기본 계정은 설정되어 있지 않습니다.
설정 파일을 열어서 확인하여도 아무 내용을 확인할수 없습니다.
NT계열의 경우 ORACLE_HOME 환경변수가 설정되어 있어야 합니다.
유닉스 계열시 설치시 설정을 해야 설치가 오라클 서버를 설치할수 있습니다.
NT계열 설정파일 : %ORACLE_HOME%\sqlplus\admin\iplusdba.pw
Unix계열 설정파일 : $ORACLE_HOME/sqlplus/admin/iplusdba.pw
에디터를 이용하여 사용자 아이디와 비밀번호를 추가해주는것이 아닙니다.
누구나 비밀번호를 볼수있다면 곤란한 일입니다.
아파치에서 제공하는 툴을 이용하여 iplusdba.pw 파일을 관리합니다.
이 툴은 오라클 설치(ISQLPLUS)설치기 같이 설치됩니다.
NT 계열 툴 : %ORACLE_HOME%\apache\apache\bin\htpasswd.exe
Unix 계열 툴 : $ORACLE_HOME\apache\apache\bin\htpasswd.exe
이 명령어를 통하여 oracle 사용자를 생성하는 예제입니다.
%ORACLE_HOME%\apache\apache\bin\htpasswd.exe %ORACLE_HOME%\sqlplus\admin\iplusdba.pw oracle
Automatically using MD5 format on Windows.
New password: ******
Re-type new password: ******
Updating password for user oracle
이제 접속하는 일만 남았습니다.
http://localhost/isqlplusdba 또는 http://127.0.0.1:7777/isqlplusdba 등과 같은 방법으로 접속합니다.
htpasswd.exe 툴을 이용하여 설정하였던 계정을 확인합니다.

SYS 권한을 가진 계정으로 접속을 합니다.

SYS로 접속하여 간단히 테스트해보았습니다.

정상적으로 접속하기 위해서는 아파치 서비스가 시작되어 있어야 합니다.(리스너 포함)
NT계열에서는 서비스에 등록되어 있습니다.

서비스를 직접 실행 하거나 시작메뉴에서도 시작할수 있습니다.

유닉스 계열에서는 명령어를 통하여 실행할수 있습니다.
명령어를 통한 방법은 비슷한 방법으로 NT에서도 가능합니다.
$ORACLE_HOME/Apache/Apache/bin/apachectl start
9i가 좀 이상한건 DISPLAY 변수가 설정되어 있지 않을경우 시작되지 않는경우가 있습니다.
그럴땐 DISPLAY변수를 사용하고 있는 것이 없다면 기본적인 값으로 설정하기 시작합니다.
export DISPLAY=:0.0
이제 웹으로 sql*plus를 이용합니다.
2009년 11월 25일 수요일
vmware 디스크 크기 조정
vmware를 통하여 XP를 사용하고 있었습니다.
여러가지 프로그램들을 설치하다 보니 예상했던것보다 디스크가 모자랐습니다.
다음과 같은 명령어를 통하여 디스크 크기를 늘려주었습니다.
vmware-vdiskmanager -x 20Gb XP.vmdk
디스크 크기는 늘어났지만 실제 파티션을 인식하는것은 그대로 전에 크기를 인식할것입니다.
간단히 우분투 라이브 CD로 부팅하여 파티션을 재설정 하도록 하였습니다.
다음은 우분투로 부팅하여 gparted를 실행한 모습입니다. 사용하지 않는 공간이 생겼습니다.

XP가 설치된 공간(/dev/sda1)을 선택(오른클릭)하여 Resize/Move를 클릭합니다.

수치를 직접 입력하지 않고 검은색 오른쪽 방향 화살표를 끝까지 잡아 당겨 줍니다.

디스크 전체를 사용하도록 조정하였고 Resize/Move 버튼을 클릭하여 완료합니다.

이제 사용하지 않는 공간은 없어졌습니다.
이상태가 적용된것이 아니니 체크하는 모양의 버튼을 클릭하여 설정을 적용합니다.

디스크에 관한 설정은 데이터를 모두 유실할수 있는 위험한 작업이기에 다시 한번 적용할것인지 묻습니다.
설정에 이상이 없다면 Apply를 통하여 적용을 시작합니다.

정상적으로 적용이 되고 있습니다.

적용이 모두 완료 되었습니다.

적용이 완료된 모습을 확인할수 있습니다.
설정이 모두 적용된 상태에서는 다시 적용버튼이 나타나지 않는것으로 적용 완료를 학인할수 있습니다.
