61.Linux2008. 7. 18. 10:39
반응형

Linux(리눅스)에서 open port check하기

Ubuntu(우분투)에서 열려있는 포트 목록 보기


# nmap -v 서버아이피

이렇게 입력하면 다음과 같이 결과가 뜹니다.


Not shown: 1705 closed ports
PORT    STATE SERVICE
21/tcp  open  ftp
22/tcp  open  ssh
25/tcp  open  smtp
53/tcp  open  domain
80/tcp  open  http
110/tcp open  pop3
143/tcp open  imap
993/tcp open  imaps
995/tcp open  pop3s

혹시라도 설치가 되어있지 않다면 Ubuntu 유저는 다음과 같이 입력하면 nmap을 설치할 수 있습니다.


# apt-get install nmap
Posted by 1010
02.Oracle/DataBase2008. 7. 18. 09:47
반응형

오라클 원격 접속하기


1. 오라클 서버에 리스너(Listener) 를 가동한다.

다른 컴퓨터에서 오라클에 접속하려면 리스너가 동작해야 한다. 오라클 9i라면, 설치시에 기본적으로 리스너를 설치하고, 서비스를 구성한다. Enterprise Edition이나 Standard Edition은 기본으로 구성하는 단계가 있는데, 혹시 구성 중에 취소했다면 안 만들어 졌을 수도 있다.


리스너는 네트워크를 이용하여 클라이언트에서 오라클 서버로 연결하기 위한 오라클 네트워크 관리자 이다. 오라클 서버에서 리스너를 시작시켜 주어야 클라이언트들이 접속 할 수 있다.


리스너 관련 명령어

c:\>lsnrctl start  리스너 시작하기

c:\>lsnrctl stop  리스너 정지하기

c:\>lsnrctl reload  리스너 재시작하기

c:\>lsnrctl status  리스너 상태보기

c:\>lsnrctl help  도움말


리스너 구성 파일은 $ORACLE_HOME/network/admin 아래에 있는 listener.ora 파일이며, 오라클 서버에서 클라이언트의 요청을 듣고 클라이언트와의 통신 환경을 설정한다.


listener.ora 파일이 없다면, cmd 창을 열어서

C:\> lsnrctl start

라고 치면 자동으로 만들어진다.

만들어진 리스너는 서비스로 등록되는데, 서비스 관리자에서 Oracle....TNSListener라는 이름이 바로 리스너 서비스다.

이 서비스의 시작 유형을 "자동" 으로 해 놓는 것이 편리하다.


서비스 관리자에서 이 서비스를 start 시키거나, cmd 창에서

C:\> lsnrctl start

하면 외부에서 접속할 수 있다.

2. 클라이언트에 오라클 클라이언트를 설치 한다.


리눅스용 오라클 클라이언트는 http://www.oracle.com/technology/global/kr/software/products/database/oracle10g/index.html 에서 다운 받을 수 있다. 되도록이면 설치되어 있는 오라클 버전하고 같은 것을 다운 받는다.
주) 리눅스용 오라클 클라이언트는 X 윈도 에서 설치가 가능하다.

3. 리눅스 시스템의 경우 .bash_profile 파일을 수정한다.

SQL PLUS 같은 터미널 접속 이라면 먼저 해당 계정의 .bash_profile 파일을 수정해 주어야 한다.
예를 들면 아래와 같다.

export ORACLE_BASE=/oracle/app/oracle
export ORACLE_HOME=/oracle/app/oracle/product/8.1.7
export ORACLE_OWNER=oracle
export ORACLE_SID=ORCL
export TMPDIR=$ORACLE_BASE/tmp
export PATH=$PATH:$ORACLE_HOME/bin:/usr/local/java/bin
export JAVA_HOME=/usr/local/java
export TNS_ADMIN=$ORACLE_HOME/network/admin
export NLS_LANG=American_America.KO16KSC5601
export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH

이 계정으로 접속을 했을 때 아무 곳에서나 오라클의 접속이 가능 하도록 패스 지정을 한 것이다.
 

접속 방법

사용자 이름   : <사용자계정>

암호          : <계정비밀번호>

호스트 스트링 : tnsnames.ora 에 설정된 호스트의 별칭

주) 웹을 이용한 접속 이라면 PHP 의 경우 오라클 클라이언트 설치 경로를 지정해 주어 PHP 를 다시 컴파일 해주어야 하며 JSP 같은 경우 라면 오라클 경로를 다시 잡아 주어야 한다.

4. 클라이언트에서 tnsnames.ora 파일을 수정한다.


tnsnames.ora 파일은 오라클 서버로 접속할 때 필요한 프로토콜 및 포트번호, 서버주소, 인스턴스 등을 설정해 주는 파일로써, C:\oracle\ora92\network\admin 디렉토리에 위치한다.

 

MY_DB =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 126.138.95.21)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = oradb)
    )
  )


오라클 클라이언트는 원격 DB 접속을 위해 위의 파일 내용을 참조하게 된다.

MY_DB 는 원격 데이터베이스의 사용자 정의 명칭이다. 자신의 PC 에서만 유효한 이름이므로 아무렇게나 주어도 된다. HOST = 126.138.95.21 이 부분이 중요한데...실제 원격 DB 가 위치하고 있는 머신의 IP 주소를 입력하면 된다. 포트는 기본 값이 1521 이다.

SERVICE_NAME 이라는 것은 실제 데이터베이스 이름이라고 보면 된다. MY_DB 가 내 PC 에서만 유효한 것이라면 SERVICE_NAME 은 NETWORK 내에서 유일해야 하므로 실제 원격 머신 상에서 오라클 Database 를 Create할 때 결정되어진다. SERVICE_NAME 및 호스트 머신의 IP 주소에 대해서는 원격 Database 를 관리하는 DATABASE 관리자에게 문의하면 된다.


각 오라클의 버전별로 약간의 tnsname.ora 의 내용이 약간씩 다를 수 있으나 위에 설명한 내용은 9i 에서도 그대로 적용된다.


실제 연결을 위해서 tnsname.ora 를 직접 편집하는 것보다 Net Configuration Assistant 라는 프로그램을 이용하길 바란다. 이 프로그램을 이용하여 원격 DB 연결을 설정하면 실제 연결 테스트를 해 볼 수도 있고, 직접 작성으로 인한 tnsname.ora 파일의 버전간 차이 등의 문제를 피할 수 있다. 위의 프로그램은 오라클 클라이언트를 설치하면 프로그램 메뉴에서 찾아볼 수 있다. 해당 프로그램 사용법은 지면 관계상 생략하나 네이버에서 검색하면 쉽게 찾아볼 수가 있을 것이다.


그 후에 다시 로그아웃 하고 로그인을 한후 sqlplus 라고 입력하면 됩니다.

오라클의 설치도 쉽지 않지만 클라이언트의 설치도 간단치 않으므로 차근차근 실수 없이 진행 해야 합니다.

TNSPING으로 접속 TEST하는 방법

Windows 3.1용 SQL*Net을 설치한 경우에 Nettest.exe로써 Server에 접속 여부를 test했었으나, Windows 95용 SQL*Net을 설치하면 tnsping.exe라는 프로그램이 생긴다. 이 프로그램은 일반적인 TCP/IP 프로그램에서 제공하는 Ping Utility와 유사한 방식으로 DB Server에 Login 여부를 확인할 수 있다. SQL*Net 2.2이상에서만 제공이 되며, SQL*Net V1에서는 사용할 수 없다.


C:\oracle\ora92\bin\tnsping.exe

[ 사용 방법 ]

tnsnames.ora file에 tns services name 및 접속에 관련된 내용을 기술한다.  
예: MY_DB =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 126.138.95.21)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = oradb)
    )
  )


tnsping utility 사용 예
 

c:\>tnsping oradb 5

TNS Ping Utility for 32-bit WINDOWS: Version 9.2.0.1.0 - Production on 18-NOV-2006 09:52:34  

Copyright (c) Oracle 1997 Corporation. All rights reserved.

사용된 매개변수 파일

C:\oracle\ora92\network\admin\sqlnet.ora

별칭 분석을 위해 TNSNAMES 어댑터 사용
Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 126.138.95.21)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = oradb)))
확인 (50 밀리초) 
확인 (30 밀리초) 
확인 (30 밀리초) 
확인 (50 밀리초) 
확인 (30 밀리초)


주) tnsping 은 되는데 오라클 연결이 안될 때는 방화벽을 검사한다. 방화벽은 예외설정을 해도 되지 않고 사용안함 설정을 해야 한다. 또한 tnsnames.ora 파일에 HOST = 126.138.95.21 부분을 ip 주소가 아닌 host 명으로 했을 때 안되는 경우가 있다.

-----------------------------------------------------------------------------------------------------
TNSListener!! 잊지 않겠다 ㅡㅡ+

Posted by 1010
02.Oracle/DataBase2008. 7. 17. 17:46
반응형
오라클을 설치하기 위한 준비
 
 
필수 RPM 화일들 : gcc-3.2-7 5번째로 설치
cpp-3.2-7 1번째로 설치
glibc-devel-2.2.93-5 4번째로 설치
kernel-headers-2.4.19-5cl 3번째로 설치
binutils-2.13.90.0.2-2 2번째로 설치
Oracle 10g를 설치하려면 몇몇 패키지가 반드시 설치되어 있어야 합니다.
확인 후 설치가 안된 패키지는 따로 설치해 줍니다.
[root@ora10 src]# rpm -q binutils gcc make openmotif
[root@ora10 src]# rpm -Uvh --nodeps binutils-2.13.90.0.18-9.i386.rpm
[root@ora10 src]# rpm -Uvh --nodeps gcc-3.2.2-5.i386.rpm
[root@ora10 src]# rpm -Uvh --nodeps make-3.79.1-17.i386.rpm
[root@ora10 src]# rpm -Uvh --nodeps openmotif-2.2.2-14.i386.rpm

리눅스용 오라클은 설치시에 Linking 까지 같이 하므로 반드시 그에 따른 Library 가 필요하다.
위의 RPM 들이 그것인데 만일 설치 안 한 RPM 들이 있다면 Linking 할 때 Invoke 에러를 접하게
될 것이다. 위의 RPM 들은 RedHat8.0 CD나 http://rpmfind.net 에서 구할수 있다.
여기서 위의 것들을 설치할 때 의존성이 문제가 되므로 설치 순서를 따르는 게 편리할 것이다.
참고로 rpm 설치 명령어는 #rpm -i 패키지 이름 이다.
그리고 내 리눅스 서버에는 kernel-headers가 설치되어 있지 않았고 kernel-headers 인스톨 시
glibc-kernheaders-2.4-7.20 과 충돌하여 에러가 났는데
#rpm -e -nodeps glibc-kernheaders-2.4-7.20 명령을 내려 삭제한 후 다시
rpm -i kernel-headers-2.4.19-5cl.i386.rpm 을 해라. 이제 잘될 것이다.
위의 것들이 제대로 설치 되었는지 확인하려면 다음의 명령을 사용한다.

1. 오라클 프로그램 다운로드

아래의 주소에서 오라클 파일중, ship.db.cpio.gz을 다운 받습니다.



아래의 명령으로 압축을 풉니다.
# zcat ship.db.cpio.gz | cpio -idmv


2. OS 환경 변경

오라클 10g는 자체적으로 테스트된 몇 가지의 OS만 설치되도록 체크하는 부분이 있습니다.
이를 위해 /etc/redhat-release 파일을 생성 후 레드햇 3 버전으로 만듭니다.
Oracle 10g를 설치하려면 인증된 운영체제만 설치가 가능하도록 하는 부분이 있습니다.
RedHat Linux Advanced Server 3 로 속입니다.
# echo "redhat-3" > /etc/redhat-release


3. 사용자 및 그룹생성

아래의 명령으로 사용자 및 그룹을 생성합니다.

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


오라클이 설치될 디렉토리를 생성합니다. ---> 꼭 생성하지 않아도 /home/oracle를 디폴트로해도된다.

# mdkir -p /u01/app/oracle
# chown -R oracle.oinstall /u01
# chmod -R 755 /u01/app/oracle



4. 커널 파라미터 수정

원래 공유메모리와 세마포어를 변경한 값을 적용하여 커널을 재컴파일 해야하지만
여건이 되지 않는 (필자도 커널 재컴파일 여건이 안된다.) 경우 소프트웨어적으로
공유메모리와 세마포어를 변경할 수 있다.
가장 마지막에 다음을 추가합니다.
/etc/sysctl.conf 파일에 뒷 부분에 아래와 같이 내용을 추가합니다.

[root@localhost ~]# cat >> /etc/sysctl.conf << eof
### Oracle 10g Kernel Parameters
kernel.shmmax = 1073741824
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range=1024 65000

수정한 /etc/systl.conf의 파라미터 값을 새롭게 커널에 적용시킵니다.

[root@localhost ~]# /sbin/sysctl -p


5. 오라클 사용자의 환경변수 추가

/home/oracle/.bash_profile 파일의 뒤에 아래 내용을 추가합니다.

##############################################
export ORACLE_BASE=/u01/app/oracle  -->디폴트로 /home/oracle 로 했음
export ORACLE_SID=ORCL   ----------->편하게 oracle 로 했음
export ORACLE_HOME=ORACLE_BASE/product/10.1.0/db_1
export PATH=ATH:ORACLE_HOME/bin
export DISPLAY=127.0.0.1:0.0
##############################################


관리자(root) 권한으로 아래의 명령을 실행합니다.
# xhost + 127.0.0.1
※ 위 명령은 반드시 해당 로컬서버에서 작업을 하셔야 합니다.(원격에서는 안됩니다.)
   (오라클 설치는 로컬서버에서 모든 작업을 하시는 것이 좋습니다.)
root 이외의 일반계정도 권한상관없이 엑스윈도우를 사용할수있게 하기위한 명령

6. 오라클 설치시작

※ 지금부터는 반드시 oracle 사용자 계정으로 실행해야 합니다.
   지금 root권한으로 로그인 되어있다면 로그아웃 하시고,
   oracle 계정으로 다시 로그인하시기 바랍니다.

오라클 설치 프로그램을 압축푼 장소로 이동하여, 아래 파일을 찾아서 실행시킵니다.
runInstaller

이명령을 내렸을때 여러 가지 에러가 뜰수있다. /home /tmp /home/oracle 등의 퍼미션을 다시한번
확인하자 755

※ 만약 글자가 깨져서 보인다면, 프로그램을 종료하고 아래명령을 입력한후 다시 프로그램을 실행합니다.
unset LANG


7. Welcome

환영인사 입니다. Next를 클릭합니다.


8. Specify Inventory directory and credentials

디렉토리와 시스템그룹 지정. Next를 클릭합니다.

※ 경고창이 나타납니다.
/u01/app/oracle/oraInventory/orainstRoot.sh를 실행하라는 내용입니다.
콘솔을 띄워서 root 권한으로 변경한 다음, 아래와 같이 스크립트 파일을 실행합니다.
# /u01/app/oracle/oraInventory/orainstRoot.sh
팝업창의 Continue를 클릭합니다.


9. Specify File Locations

설치할 파일과 설치될 파일의 위치를 지정합니다. Next를 클릭합니다.


10. Select Installation Type

오라클을 설치할 유형을 선택합니다. Enterprise Edition을 선택하고, Next를 클릭합니다.


11. Specific Prerequisite Checks

이제까지의 설정을 확인합니다. 이상 없으면 Next를 클릭합니다.

커널 파라미터를 체크하는 부분에서 경고 팝업이 뜹니다.
Yes를 눌러 경고를 무시하고 계속 진행합니다.


12. Select Database Configuration

데이터베이스 사용 용도에 따라 설정 옵션을 선택합니다.
보통 General Purpose로 하면 됩니다. Next를 클릭합니다.


13. Specify Database Configuration Options

데이터베이스의 Global Database Name/SID/Character set의 옵션을 지정합니다.
Global Database Name와 SID는 [ORCL] 로 Character set은 [Korean KO16KSC5601]로 Database 예제 스키마도 생성합니다.
Next를 클릭합니다.


14. Select Database Management Option

데이터베이스를 관리하는데 필요한 옵션을 선택합니다. Next를 클릭합니다.


15. Specify Database File Storage Option

데이터베이스 파일의 스토리지 옵션을 지정합니다. 보통 File System으로 하시면 됩니다.
Next를 클릭합니다.


16. Specify Backup and Recovery Options

백업이나 복구 옵션을 지정합니다. 기본값으로 넘어갑니다.
Next를 클릭합니다.


17. Specify Database Schema Passwords

오라클 관리를 위한 계정들의 패스워드를 입력합니다.
(SYS, SYSTEM, SYSMAN, DBSNMP 등)
개별적으로 입력해도 되며, 하단의 "Use the same password for all the accounts"를 선택하여 한번에 동일하게 입력 가능합니다.
Next를 클릭합니다.

18. Summary

이제까지 선택한 내용을 창으로 보여줍니다. [Install] 버튼을 클릭하여 설치를 시작합니다.


19. Install

....[설치 진행 중]....

자동으로 설치가 진행되는 동안, 차한잔 하면서 느긋하게 기다려줍시다.



20. Configuration Assistants

파일 설치 후 데이베이스 관련 파일들을 복사하고 오라클 인스턴스를 생성합니다.

70%이상 넘어가면서 패스워드 오류가 날 수 있습니다. 이는 무시하셔도 좋습니다.

모든 설치가 끝난 후, 각 오라클 시스템에 패스워드를 지정하려면 [Password Management]를 클릭하고,
아니면 [OK] 버튼을 클릭합니다.


21. Setup Privileges

[OK] 버튼을 클릭하면 root.sh 파일을 실행하라는 창이 나타납니다.
root 권한으로 아래와 같이 스크립트 파일을 실행합니다.
# /u01/app/oracle/product/10.1.0/db_1/root.sh


22. End of Installation

이제 설치가 모두 종료되었습니다. Exit 버튼을 눌러서 프로그램을 종료합니다.



* 추가 덧글

데이타베이스를 기동만 하면 안되죠 외부에서 접속하도록 리스너를 띄워야 합니다.

우선 listener.ora 파일을 수정합니다.
ORACLE_HOME/network/admin/listener.ora 파일 내용

SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = /u01/app/oracle/product/10.1.0/db_1)
(PROGRAM = extproc)
)
# 추가부분 시작 - 이걸 추가해야 8i 이하의 클라이언트에서 연결했을 때 SERVICE_NAME 관련 내용이
없습니다.
(SID_DESC =
(SID_NAME = ORCL)
(ORACLE_HOME = /u01/app/oracle/product/10.1.0/db_1)
)
# 추가 부분 끝
)

LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))
)
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 해당ip)(PORT = 1521)) # <== 서버명 대신에 반드시
ip를 넣으세요 127.0.0.1을 넣으시면 안됩니다. 외부에서 소켓이 닫힌 것으로 인식합니다.
)
)
)

한텀내용을 일일이 보고 친 것이니 오타가 있을 수 있습니다. 이는 감안하고 보세요.

이제 리스너를 띄웁니다.

lsnrctl start

리스너의 기동을 확인합니다.

netstat -a | grep 1521
tcp 0 0 해당ip:1521 *:* LISTEN

절대
tcp 0 0 서버명:1521 *:* LISTEN
으로 나오면 위 설정중 HOST의 내용을 확인하세요. 데이타베이스를 기동만 하면 안되죠 외부에서
접속하도록 리스너를 띄워야 합니다.







Database 시작과 종료
오라클 데이터베이스 시작하기
Database 의 시작과 종료는 반드시!! Oracle 계정으로 수행해야 합니다.
[root@ora10 /]# su oracle
oracle 계정으로 로그인 후 oracle 계정의 환경설정을 reload 합니다.
(처음부터 오라클 계정으로 로그인 하였다면 이 과정은 불필요합니다.)
[oracle@ora10 /] sqlplus /nolog
SQL>connect / as sysdba
SQL> startup
오라클 데이터베이스를 시작하고 종료하기 위해서는 OS에서의 인증과 암호 파일을 생성하는
툴인 orapwd를 통해야 한다. 그리고 sys 스키마의 권한인 sysdba 권한과 public 스키마
권한인 sysoper 권한의 특별한 시스템 권한을 소유한 사용자이어야 한다.
· sysdba : 데이터베이스 시작/종료, 아카이브 및 복구 작업, ALTER DATABASE OPEN,
MOUNT, BACKUP, CHANGE, CHARACHER SET 절의 명령어 실행
· sysoper : 데이터베이스 시작/종료, 아카이브 및 복구 작업, ALTER DATABASE OPEN,
MOUNT, BACKUP 절의 명령어 실행
SQL> SELECT * FROM vversion;
현재의 오라클 데이터베이스 인스턴스의 버전 확인하기

오라클 데이터베이스 종료하기
[oracle@ora10 /] sqlplus /nolog
SQL> connect / as sysdba
SQL> shutdown immediate
SQL> exit

oratab 파일 편집하기
오라클 데이터베이스를 /etc/rc.d/ini.d에 스크립트로 설정하여 자동으로 실행하게 하여봅시다.
[root@ora10 /]# vi /etc/oratab
다음 부분을 수정 ([SID], [ORACLE_HOME], [자동실행/종료 플래그]로 구성되어 있습니다.)
ora10:/opt/oracle/product/10.1.0/db_1:Nè
ora10:/opt/oracle/product/10.1.0/db_1:Y

Parameter 파일 링크
xxxxxxxxxxxx은 일정치 않은 숫자 입니다.
[root@ora10 /]# cp /opt/oracle/admin/ora10/pfile/init.ora.xxxxxxxxxxxx \
/opt/oracle/product/10.1.0/db_1/dbs/initora10.ora

/etc/rc.d/init.d 에 등록하기
oracle10g 스크립트를 /etc/rc.d/init.d 에 복사합니다.
[root@ora10 /]# cp /usr/local/src/oracle-10.1.0.2.0 /etc/rc.d/init.d/
oracle10g에 실행권한을 부여합니다.
[root@ora10 /]# chmod 755 /etc/rc.d/init.d/oracle10g
시스템에 oarcle10g 데몬을 등록한다.
[root@ora10 /]# chkconfig --add oracle10g
[root@ora10 /]# chkconfig --level 2345 oracle10g on
Oracle Database를 재시작 시켜본 후, LISTENER 데몬이 띄워져 잇는지 확인합니다.
[root@ora10 /]# /etc/rc.d/init.d/oracle10g start
[root@ora10 /]# ps ax | grep LISTENER
################## listener.ora ##########################
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = xxx.xxx.xxx.xxx)(PORT
= 1521))
)
)
)

SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC=
(SID_NAME=ORA817)
(ORACLE_HOME = oracle_home 디렉토리경로명)
)
)

###############################################################

이렇게 수정하시고요..
>lsnrctl start <- 리스너 서비스 기동
해주시면 됩니다..
###############################################################

.MK 오류
링크할때 자꾸 .mk 오류가 나서 미치겠네요

오라클 설치시, 링크작업중 65%정도에서 나타나는 에러 처리방법입니다.

****************************************************************
"Error invoking target install of makefile
/opt/oracle/product/9.0.1/plsql/lib/ins_plsql.mk"
"Error invoking target install of makefile
/opt/oracle/product/9.0.1/precomp/lib/ins-precomp.mk"
"Error invoking target install of makefile
/opt/oracle/product/9.0.1/precomp/lib/ins-net-client"
"Error invoking target install of makefile
/opt/oracle/product/9.0.1/precomp/lib/ins-oemagent"
****************************************************************
위와 같은 에러발생시

1.
ORACLE_HOME/bin/genclntsh
파일의

LD_SELF_CONTAINED="-z defs"
이 부분을

LD_SELF_CONTAINED=""
이렇게 수정한 다음

2.
ORACLE_HOME/bin/genclntsh
이 스크립트를
"oracle" 유저로 실행
su - oracle
ORACLE_HOME/bin/genclntsh
Created /opt/oracle/product/9.0.1/lib/libclntst9.a

3. 그리고 나서 에러 팝업창의 재시도를 수행합니다.
##################################################################


저도 이문제 때문에 세번의 리눅스 재설치와 세번의 오라클 재설치를 시도해 보
았습니다만, 말짱 꽝이었습니다.

http://linux.oreillynet.com/lpt/a/4141

문서를 참조하십시오.. 100% 설치됩니다.

이상.
##################################################################
Posted by 1010
02.Oracle/DataBase2008. 7. 17. 17:13
반응형

sqlplus /nolog


sql> conecnt sys/pass as sysdba
sql> startup

sqlplus /nolog

connect sys/패스워드 as sysdba

Posted by 1010
02.Oracle/DataBase2008. 7. 17. 15:16
반응형

\uc815\ubcf4: make[1]: Leaving directory `/home/oracle/database/product/11.1.0/db_1/rdbms/lib'

\uc815\ubcf4: make[1]: *** [/home/oracle/database/product/11.1.0/db_1/rdbms/lib/extproc32] \uc624\ub958 1

\uc815\ubcf4: make: *** [extproc32] \uc624\ub958 2

\uc815\ubcf4: \uc0dd\uc131\ub41c \ud504\ub85c\uc138\uc2a4\uc5d0\uc11c \ucd9c\ub825 \ub9c8\uce68.
\uc815\ubcf4: ----------------------------------
\uc815\ubcf4: \uc791\uc5c5\uc5d0\uc11c \ubc1c\uc0dd\ud55c \uc608\uc678 \uc0ac\ud56d: make
\uc608\uc678 \uc0ac\ud56d \uc774\ub984: MakefileException
\uc608\uc678 \uc0ac\ud56d \ubb38\uc790\uc5f4: make \ud30c\uc77c '/home/oracle/database/product/11.1.0/db_1/rdbms/lib/ins_rdbms.mk'\uc758 'all_no_orcl' \ub300\uc0c1\uc744 \ud638\ucd9c\ud558\ub294 \uc911 \uc624\ub958\uac00 \ubc1c\uc0dd\ud588\uc2b5\ub2c8\ub2e4. \uc790\uc138\ud55c \ub0b4\uc6a9\uc740 '/home/oracle/oraInventory/logs/installActions2008-07-17_09-52-57PM.log'\uc744(\ub97c) \ucc38\uc870\ud558\uc2ed\uc2dc\uc624
\uc608\uc678 \uc0ac\ud56d \uc2ec\uac01\ub3c4: 1


-------------------------------------------------------------------------
Oracle Server - Enterprise Edition - Version: 10.2.0.1 to 10.2.0.2
This problem can occur on any platform.
After installing any One-off patch in RAC nodes, one of those nodes may fail to start the instance.


NOTE: We did observe the similar problem on 10.2.0.2 RAC installations where certain libraries are not copied from the installing node to other RAC nodes. For such type of problem while performing installation, please refer to the following note.

Note 363840.1 - 10.2.0.2 RAC: ORA-7445 in KKXSYN or KKXCMS ON ALL NODES BUT INSTALL NODE


Symptoms
Oracle Instance does not startup on one of RAC the nodes after installing any One-off Patch.

If you see the alert and trace log files, you may see the following errors:

ORA-00469: CKPT process terminated with error

ORA-07445: exception encountered: core dump [] [] [] [] [] []

Cause
It was noted that the resulting 'Oracle' binaries on different nodes were not the same. Running a cksum on all involved libraries in lib/ and rdbms/lib/, it was evident that libknlopt.a was different across nodes. The object modules that get into libknlopt.a however are identical, so it clearly appears that libknlopt.a isn't relinked on nodes other than the installation one.
Solution
Copy the good library in the faulty node and manually re-link the Oracle again.

Ensure all instances are shut down !


Manually copy good $ORACLE_HOME/rdbms/lib/libknlopt.a from the local node to all remote faulty nodes and relink Oracle again on all faulty nodes.


eg: cd $ORACLE_HOME/rdbms/lib
make -f ins_rdbms.mk ioracle

--------------------------------------------------------------------------

[root@smbi-web lib]# make -f ins_rdbms.mk ioracle
chmod 755 /home/oracle/database/product/11.1.0/db_1/bin

 - Linking Oracle
rm -f /home/oracle/database/product/11.1.0/db_1/rdbms/lib/oracle
gcc  -o /home/oracle/database/product/11.1.0/db_1/rdbms/lib/oracle -L/home/oracl
e/database/product/11.1.0/db_1/rdbms/lib/ -L/home/oracle/database/product/11.1.0
/db_1/lib/ -L/home/oracle/database/product/11.1.0/db_1/lib/stubs/   -Wl,-E /home
/oracle/database/product/11.1.0/db_1/rdbms/lib/opimai.o /home/oracle/database/pr
oduct/11.1.0/db_1/rdbms/lib/ssoraed.o /home/oracle/database/product/11.1.0/db_1/
rdbms/lib/ttcsoi.o  -Wl,--whole-archive -lperfsrv11 -Wl,--no-whole-archive /home
/oracle/database/product/11.1.0/db_1/lib/nautab.o /home/oracle/database/product/
11.1.0/db_1/lib/naeet.o /home/oracle/database/product/11.1.0/db_1/lib/naect.o /h
ome/oracle/database/product/11.1.0/db_1/lib/naedhs.o /home/oracle/database/produ
ct/11.1.0/db_1/rdbms/lib/config.o  -lserver11 -lodm11 -lsage11 -lnnet11 -lskgxp1
1 -lsnls11 -lnls11  -lcore11 -lsnls11 -lnls11 -lcore11 -lsnls11 -lnls11 -lxml11
-lcore11 -lunls11 -lsnls11 -lnls11 -lcore11 -lnls11 -lclient11  -lvsn11 -lcommon
11 -lgeneric11 -lknlopt `if /usr/bin/ar tv /home/oracle/database/product/11.1.0/
db_1/rdbms/lib/libknlopt.a | grep xsyeolap.o > /dev/null 2>&1 ; then echo "-lora
olap11" ; fi` -lslax11 -lpls11  -lrt -lplp11 -lserver11 -lclient11  -lvsn11 -lco
mmon11 -lgeneric11 `if [ -f /home/oracle/database/product/11.1.0/db_1/lib/libavs
erver11.a ] ; then echo "-lavserver11" ; else echo "-lavstub11"; fi` `if [ -f /h
ome/oracle/database/product/11.1.0/db_1/lib/libavclient11.a ] ; then echo "-lavc
lient11" ; fi` -lknlopt -lslax11 -lpls11  -lrt -lplp11 -ljavavm11 -lserver11  -l
wwg  `cat /home/oracle/database/product/11.1.0/db_1/lib/ldflags`    -lncrypt11 -
lnsgr11 -lnzjs11 -ln11 -lnl11 -lnro11 `cat /home/oracle/database/product/11.1.0/
db_1/lib/ldflags`    -lncrypt11 -lnsgr11 -lnzjs11 -ln11 -lnl11 -lnnz11 -lzt11 -l
ztkg11 -lmm -lsnls11 -lnls11  -lcore11 -lsnls11 -lnls11 -lcore11 -lsnls11 -lnls1
1 -lxml11 -lcore11 -lunls11 -lsnls11 -lnls11 -lcore11 -lnls11 -lztkg11 `cat /hom
e/oracle/database/product/11.1.0/db_1/lib/ldflags`    -lncrypt11 -lnsgr11 -lnzjs
11 -ln11 -lnl11 -lnro11 `cat /home/oracle/database/product/11.1.0/db_1/lib/ldfla
gs`    -lncrypt11 -lnsgr11 -lnzjs11 -ln11 -lnl11 -lnnz11 -lzt11 -lztkg11   -lsnl
s11 -lnls11  -lcore11 -lsnls11 -lnls11 -lcore11 -lsnls11 -lnls11 -lxml11 -lcore1
1 -lunls11 -lsnls11 -lnls11 -lcore11 -lnls11 `if /usr/bin/ar tv /home/oracle/dat
abase/product/11.1.0/db_1/rdbms/lib/libknlopt.a | grep "kxmnsd.o" > /dev/null 2>
&1 ; then echo " " ; else echo "-lordsdo11"; fi` -L/home/oracle/database/product
/11.1.0/db_1/ctx/lib/ -lctxc11 -lctx11 -lzx11 -lgx11 -lctx11 -lzx11 -lgx11 -lord
imt11 -lclsra11 -ldbcfg11   -lhasgen11 -lcore11 -lskgxn2 -locr11 -locrb11 -locru
tl11 -lhasgen11 -lcore11 -lskgxn2   -loraz -lsnls11 -lnls11  -lcore11 -lsnls11 -
lnls11 -lcore11 -lsnls11 -lnls11 -lxml11 -lcore11 -lunls11 -lsnls11 -lnls11 -lco
re11 -lnls11 -lsnls11 -lunls11  -lsnls11 -lnls11  -lcore11 -lsnls11 -lnls11 -lco
re11 -lsnls11 -lnls11 -lxml11 -lcore11 -lunls11 -lsnls11 -lnls11 -lcore11 -lnls1
1 -laio    `cat /home/oracle/database/product/11.1.0/db_1/lib/sysliblist` -Wl,-r
path,/home/oracle/database/product/11.1.0/db_1/lib -lm    `cat /home/oracle/data
base/product/11.1.0/db_1/lib/sysliblist` -ldl -lm   -L/home/oracle/database/prod
uct/11.1.0/db_1/lib
test ! -f /home/oracle/database/product/11.1.0/db_1/bin/oracle ||\
           mv -f /home/oracle/database/product/11.1.0/db_1/bin/oracle /home/oracle/databas
e/product/11.1.0/db_1/bin/oracleO
mv /home/oracle/database/product/11.1.0/db_1/rdbms/lib/oracle /home/oracle/database/produc
t/11.1.0/db_1/bin/oracle
chmod 6751 /home/oracle/database/product/11.1.0/db_1/bin/oracle

Posted by 1010
61.Linux2008. 7. 17. 13:34
반응형

환경 변수는  리눅스를 기준으로

해당 계정에만 설정 하는경우

  .bash_profile 에 정의 하거나

  /etc/profile 에 정의를 해둘수가 있습니다.


 /etc/profile 에 정의를 하면 모든 사용자들이 오라클을 사용할수 있습니다.

Posted by 1010
02.Oracle/DataBase2008. 7. 17. 13:22
반응형

ERROR:
ORA-01034: ORACLE not available
ORA-27101: shared memory realm does not exist
Linux Error: 2: No such file or directory


상태로 봐서는... 오라클DB를 기동하는 DB 파일중의 일부가 없기 때문입니다.

오라클DB를 기동하기 위해서는

1. 시스템 테이블스페이스 (기본 파일명 : system.dbf)

2. UNDO 테이블스페이스  (기본 파일명 : undotbs1.dbf)

3. TOOLS 테이블스페이스 (기본 파일명 : tools.dbf)

그리고

온라인 리두로그 파일(redo1.log, redo2.log, redo3.log,...),

컨트롤 파일 (control1.ctl,...)

가 필요한데, 해당 테이블스페이스가 속한 데이터파일이 파일 시스템에 없거나

경로가 잘못 지정되어 있어서 그렇습니다.


님이 관리하시는 서버에 Oracle DB가 어떻게 구성되어 있는지를 몰라서

정확한 답변을 드리기는 힘들고요

(외장 Disk Array 를 사용하시는지, 혹은 NFS를 사용하시는지...

 어떤 이유에서인지 linux 파일시스템 mount 가 되어 있지 않아서

 오라클 데몬이 파일을 찾지 못하는 경우입니다)


우선 파일시스템 체크를 해보시고요...


파일 시스템에 이상이 없다면

shell 에서 sqlplus "/ as sysdba" 로 접속하셔서 다음의 명령어를 입력해 보시기 바랍니다...


select tablespace_name, file_name

  from dba_data_files;


쿼리로 나온 결과에는 테이블스페이스 및 해당 테이블스페이스의 내용을 보관하고 있는

데이터파일 이름이 나옵니다.

이 결과값이 현재 물리적인 파일시스템과 일치하는지 하나씩 확인해 보시기 바랍니다.


참고로...

오라클의 관리자 계정인 system 계정의 기본 패스워드는 'manager' 입니다.

통상 오라클 9i 이상부터는 DBA가 DB를 관리하기 위하여 svrmgrl 을 사용하지 않고

sqlplus "/ as sysdba" 로 접속하게 되어 있습니다.


** 답변 일부를 수정드립니다.


또 하나의 가능성은


리눅스 Shell 환경변수에서

$ORACLE_HOME 이나 $ORACLE_SID 가 잘못 되어 있을수 있습니다.


계정의 home directory에서

vi .cshrc (C-Shell 사용시)

vi .profile (Korn Shell, Bourne-Shell 사용시)

하셔서 $ORACLE_SID 나 $ORACLE_HOME 이 어떻게 정의되어 있나 확인하시고요


echo $ORACLE_HOME

명령으로 나온 결과의 끝에 "/" 가 붙어 있으면 안됩니다.


예> ORACLE_HOME = /oracle/app/oracle/9204/product  (O)

        ORACLE_HOME = /oracle/app/oracle/9204/product/ (X)


$ORACLE_SID의 확인은

echo $ORACLE_SID

명령으로 확인 가능하고요


만약 $ORACLE_SID = MYDB 라면


오라클 데몬 프로세스가 떠 있는지 확인하시고요, 명령은

ps -ef | grep ora_

라고 치시면


ora_smon_MYDB


라고 나와야 정상입니다.

Posted by 1010
02.Oracle/DataBase2008. 7. 17. 13:15
반응형

오라클의 관리자 계정인 system 계정의 기본 패스워드는 'manager' 입니다.

통상 오라클 9i 이상부터는 DBA가 DB를 관리하기 위하여 svrmgrl 을 사용하지 않고

sqlplus "/ as sysdba" 로 접속하게 되어 있습니다.

Posted by 1010
61.Linux2008. 7. 17. 13:12
반응형
# .bash_profile
                
                # Get the aliases and functions
                if [ -f ~/.bashrc ]; then
                    . ~/.bashrc
                fi
                
                # User specific environment and startup programs
Posted by 1010
02.Oracle/DataBase2008. 7. 17. 13:11
반응형
Linux에서 오라클 삭제하기

1. $ORACLE_HOME 디렉토리에 있는 설치 화일을 전부 삭제.
2. /etc 디렉토리에 있는 oraInst.loc, oratab 파일을 삭제.
3. /usr/local/bin/oraenv 파일을 삭제.
4. /tmp 디렉토리에서 관련된 파일을 삭제.
5. oracle 설치시 생성한 계정의 환경설정 파일(.bash_profile)을 다른 위치에 복사.
6. oracle 설치시 생성한 계정 삭제.
7. oracle 설치시 생성한 계정의 HOME 디렉토리 삭제
8. 끝입니다. 다시 설치하시면 됩니다.

Posted by 1010