Network상태 진단방법

[Network상태 진단방법]

윈도우즈 계열의 OS 에서 제공하는 프로그램중 유용한 도구의 사용법을 게시하오니 많은 활용 바랍니다. 윈도우에서는 네트웍진단에대한 많은 도구를 제공하고 있으나 현업이나 데이타통신국에서는 이것을 활용하지 못하고 고가의 측정장비를 구입하여 예산을 낭비하는 사례가 있음.
아래에 있는 명령도구만 잘 활용하더라도 어느 전문가 못지않는 네트웍의 진단이나 심지어는 보안성 진단까지 가능합니다. 모든사람들이 ping만을 이용한 네트웍시험을 하고 있는데 이는 잘못된 방법중 하나입니다. ping으로는 되더라도 서비스가 정상이 아니면 web이 열리지 않을 수도 있습니다.
네트워크를 점검하기 전에 접속을 원하는 싸이트의 서비스까지 점검합시다.

▶ IP 어드레스 설정상태 확인 및 인터넷 접속시 부여받은 유동IP확인법
C:\WINDOWS>ipconfig
Windows 2000 IP Configuration
0 Ethernet adapter : IP Address. . . . . . . . . : 0.0.0.0 Subnet Mask . . . . . . . . : 0.0.0.0 Default Gateway . . . . . . :
1 Ethernet adapter : IP Address. . . . . . . . . : 168.248.131.105 <-랜카드 혹은 다른 어댑터의 설정되거나 부여받은 IP ADDRESS
Subnet Mask . . . . . . . . : 255.255.255.0 <-네트웍어드레스를 결정하는 서브넷마스크 Default Gateway . . . . . . : 168.248.131.1 <-라우터 어드레스

▶ 내PC의 송수신 패킷확인 C:\WINDOWS>netstat -e I
nterface Statistics Received Sent Bytes 84198 26740 <- 송수신 바이트 Unicast packets 237 231 <- 송수신 유니캐스트 패킷
Non-unicast packets 590 68 Discards 0 0 Errors 0 0 <- 데이타깨짐 확인 Unknown protocols 30

▶ 라우팅 테이블 확인 Microsoft(R) Windows 2000 (C)Copyright Microsoft Corp 1981-2001

c:\WINDOWS>route print
Active Routes: Network Address Netmask Gateway Address Interface etric 0.0.0.0 0.0.0.0 168.248.131.1 168.248.131.105 1 <- 인터넷접속을 위한 라우팅 127.0.0.0 255.0.0.0 127.0.0.1 127.0.0.1 1 <- 로컬호스트 네트웍어드레스 라우팅 168.248.131.0 255.255.255.0 168.248.131.105 168.248.131.105 1 <- 네트웍어드레스 접근을 위한 라우팅 168.248.131.105 255.255.255.255 127.0.0.1 127.0.0.1 1 <- 로컬어드레스와 ip어드레스의 매핑 168.248.255.255 255.255.255.255 168.248.131.105 168.248.131.105 1 <- B CLASS로 브로드캐스트를 위한 어드레스매핑 224.0.0.0 224.0.0.0 168.248.131.105 168.248.131.105 1 <- 컴퓨터내부의 브로드캐스팅을 위한 어드레스매핑 255.255.255.255 255.255.255.255 168.248.131.105 0.0.0.0 1 <- ip어드레스가 unique한네트웍매핑

▶ 내PC가 접속한 싸이트 및 내PC에 접속된 싸이트 확인
C:\WINDOWS>netstat
Active Connections Proto Local Address Foreign Address State TCP ns:1047 MSVRMAIN:3300 ESTABLISHED TCP ns:1071 168.248.107.84:9000 TIME_WAIT

▶ 특정싸이트 접속불가시 어느 곳에서 막히는지 경로 진단(추적)하는 법
C:\WINDOWS>tracert
soback.kornet.net Tracing route to soback.kornet.net [168.126.3.3] over a maximum of 30 hops
1 3 ms 2 ms 2 ms 168.248.131.1
2 5 ms 4 ms 4 ms 168.248.103.181
3 9 ms 9 ms 8 ms 147.6.156.57
4 9 ms * 11 ms red.kt.co.kr [147.6.80.105]
5 10 ms 8 ms 10 ms 147.6.80.9
6 13 ms 13 ms 14 ms 147.6.80.10
7 9 ms 12 ms 12 ms 168.126.109.149
8 10 ms 9 ms 10 ms 168.126.104.2
9 10 ms 12 ms 12 ms 211.192.46.202
10 12 ms 10 ms 10 ms soback.kornet.net [168.126.3.3] Trace complete.

▶ 랜에서 상대편 mac 어드레스를 보는 방법
C:\WINDOWS>arp -a
Interface: 168.248.131.105 on Interface 0x2000003 Internet Address Physical Address Type 168.248.131.1 00-00-a2-0f-5f-f6 dynamic 168.248.131.181 00-00-f0-1b-dd-3e dynamic

▶ ping에 관련된 유용한 옵션
C:\>ping -t www.kornet.net <- www.kornet.net 으로 연속적인 ping시험
C:\>ping -n 2 www.kornet.net <- www.kornet.net 으로 2개의 패킷을 보내어 ping 시험
C:\>ping -f -l 1462 www.kornet.net <- www.kornet.net으로 1462바이트크기의 패킷 시험(라인테스트용)

▶ 특정싸이트로 ping시험이 되지만 web,mail,dns 등의 서비스가 정상인지 확인하는 방법 (비정상이면 모래시계표시가 나타나며 잠시후 접속할수 없다는 메시지 창이 뜬다)
C:\>telnet kkmail2.kt.co.kr pop3 <- pop3 서비스가 정상이면 다음과 같이 표시 +OK QPOP (version 2.4) at kkmail2.kt.co.kr starting. +OK Password required for ktjang. <- user ktjang 에 대한 결과 +OK ktjang has 0 messages (0 octets). <- pass #### 에 대한 결과
C:\> telet kkmail2.kt.co.kr smtp <- smtp서비스 즉 메일전송서비스가 정상인지 시험(정상이면 다음과 같이 표시) 220 kkmail2.kt.co.kr ESMTP Sendmail 8.9.3/8.8.8; Tue, 22 Aug 2000 21:33:38 +0900 (KST) 214-This is Sendmail version 8.9.3 <- help커맨드를 쳤을때 다음과 같이 표시되면 보안성에 문제점이 있음
214-Commands: 214- HELO MAIL RCPT DATA RSET 214- NOOP QUIT HELP VRFY EXPN 214-For more info use "HELP ". 214-For local information contact postmaster at this site. 214- 214-To report bugs in this implementation, 214-within the US: 214- contact the Digital Customer Support Center at 1-800-354-9000. 214-outside of the US: 214- please contact your country representative.
214- 214 End of HELP info * 보안성에 문제가 없는 시스템은 접속시 아무런표시가 되지 않으며 아무런 커맨드도 먹지 않아야 한다.

- telnet www.kornet.net 80 <- www서비스를 하는지 확인 정상이면 접속이 완료되고 아무표시는 없음
- telnet news.kornet.net nntp <- news서버가 정상적으로 작동하는지 확인
- telnet ftp.kornet.net 21 <- 이 싸이트가 화일전송서비스가 가능한지 점검
- telnet 168.126.63.1 domain <- 168.126.63.1 이 네임서버역활을 제대로 하는지 확인하는 법 . 접속이 완료되고 telnet화면에 아무표시가 없으면 정상임
- ping 168.126.63.1 <- 168.126.63.1 이 살아있는지 확인하는 법

▶ 기타 유용한 네트웍 관련 명령어 c:\>net use <- 현재 내pc가 공유하는 자원 목록보기
C:\>net use f: \\myserver\c <- myserver란 컴퓨터의 c(하드디스크) 자원을 가상디스크 f로 설정
C:\>net use lpt1 \\myerver\qlaser <- myserver란 컴퓨터의 레이저프린터 자원을 자신의 프린트포트(lpt1)으로 사용
C:\>net view <- 자신이 속한 workgroup의 공유가능한 컴퓨터의 컴퓨터 자원 목록 표시
C:\>net view /workgroup:c <- 자신이 속하지 않은 c 라는 workgroup명의 네트워크자원 표시
C:\>net view \\dtms <- dtms라는 컴퓨터에서 공유가능한 자원목록 표시

by matz | 2011/07/28 19:18 | 서버 | 트랙백 | 덧글(0)

다른 Tablespace 로 Import 시키기

#################################################################################
다른 Tablespace 로 Import 시키기
메타링크 원문 : 1012307.6
A. Table Level 로
B. User Level 로 [ 다른 디비로 동일 유저로 ]
C. From User A to user B 로 [ 동일 디비에서 다른 유저로 ]

#################################################################################
A. Table Level 로
1. Tablespace Check [ Export 할 Table 가 속한 ]
2.
 2.1 충분한 공간이 확보 된다면, Import 전에,
     Rename Table 및 Index Drop, 성공적으로 Import 후 삭제 조치
 2.2 충분한 공간이 없다면, Import 전에, Table 을 Drop 하라.
# Dump 화일 정상 체크
   imp username/password full=y file=expdat.dmp show=yes log=imp.log
   ==> 실제 Object 가 Create 되거나, Import 되어지지 않는다.

3. INDEXFILE=<filename> 을 가지고 Import 하라.
   그리하여, create table 과 create index 문장을 획득하라.        

4. Tablespace 절을 새로운 Tablespace 로 Editing 하라.
   Import 속도를 위해서 Create Index 문장을 삭제 하라.  

5. 새로운 Tablespace 에 대해서 Quota 를 부여하라.

6. Editing(4번) 한 Script 를 실행 하라   

7. Import 하라 ( IGNORE = Y ), 해서 New Table 을 원하는 Tablespace 에
   위치시키고, Index 를 생성하라.
   fromuser=scott
   touser=scott
   commit=y
   ignore=y
   indexes=n

################################################################################
예제
From
SID : TESTDOM
Username : SCOTT
Table : EMP
SQL> create tablespace ts_tg_d datafile
     '/u01/ORACLE/MIGDOM/MIGDOM/ts_tg_d_01.dbf'
     size 100M autoextend on next 100m maxsize 500m
     extent management local autoallocate
     segment space management auto ;
    
SQL> create tablespace ts_tg_i datafile
     '/u01/ORACLE/MIGDOM/MIGDOM/ts_tg_i_01.dbf'
     size 100M autoextend on next 100m maxsize 500m
     extent management local autoallocate
     segment space management auto ;    

To
SID : MIGDOM
Username : SCOTT
Table : EMP
SQL> create tablespace ts_mig_d datafile
     '/u01/ORACLE/MIGDOM/MIGDOM/ts_mig_d_01.dbf'
     size 100M autoextend on next 100m maxsize 500m
     extent management local autoallocate
     segment space management auto ;
    
SQL> create tablespace ts_mig_i datafile
     '/u01/ORACLE/MIGDOM/MIGDOM/ts_mig_i_01.dbf'
     size 100M autoextend on next 100m maxsize 500m
     extent management local autoallocate
     segment space management auto ;    
  
SQL> create user scott identified by tiger
     default tablespace users
     temporary tablespace temp ;


SQL> grant connect, resource to scott ;

SQL> alter user scott default tablespace ts_mig_d ;

A.
A.1 EXPORT
more exp.par
userid=system@TESTDOM
buffer=10000
file=emp.dmp
log=emp.log
statistics=none
tables=('SCOTT.EMP')


exp parfile=exp.par
....
Export terminated successfully without warnings.


A.2 EXPORT 결과물 체크

imp system/oracle123 full=y file=emp.dmp show=y log=imp.log


A.3 INDEXFILE=<filename> 을 통한 Script 생성
imp system/oracle123 full=y file=emp.dmp indexfile=index.sql

A.4 Editing
cp index.sql table.sql
vi table.sql - tablespace 이름 변경, 인덱스 부분 제거
vi index.sql - 인덱스 생성 Tablespace 변경, Nologging, Parallel 로 생성 후
               Logging, Noparallel 로 다시 변경을 포함

A.5 Tablespace 에 대한 권한 및 공간 체크

A.6 Create Table [ by A.4 ]

A.7 Import 수행 아래 Option 을 포함
   fromuser=scott
   touser=scott
   commit=y
   ignore=y
   indexes=n
   Index 생성
#################################################################################
B. User Level 로 [ 동일 유저를 타 디비로 이관 ]
1. 유저 Level 혹은 Database Level 로 Export 수행
2. Drop or Rename Objects
# Dump 화일 정상 체크
   imp username/password full=y file=expdat.dmp show=yes log=imp.log
   ==> 실제 Object 가 Create 되거나, Import 되어지지 않는다.
3. Tablespace 관련 권한 조치
  3.1 유저의 Default Tablespace 변경
    ALTER USER <username> DEFAULT TABLESPACE <new tablespace>;
  3.2 유저의 Old Tablespace QUOTA 를 "0"으로 조치
    ALTER USER <username> QUOTA 0 ON <old tablespace>;
  3.3 신규 Tablespace 에 대한 QUOTA 설정 
    ALTER USER <username> QUOTA <bytes> ON <new tablespace>;
  3.4 "RESOURCE" 권한이 부여됐다면, "UNLIMITED TABLESPACE" 를 REVOKE 하라.
    SELECT GRANTED_ROLE FROM DBA_ROLE_PRIVS
    WHERE GRANTEE='SCOTT'
    -- RESOURCE 가 RETUNN 된다면 아래와 같이 진행
    REVOKE  UNLIMITED TABLESPACE FROM SCOTT ;
    -- DBA 가 RETURN 된다면 아래와 같이 진행
    REVOKE DBA FROM SCOTT ;
   
4. 기존 Tablespace 에 Table 을 생성 할 수 없는지 다시 한번 체크 하라 .
   CREATE TABLE JUNK (A NUMBER) TABLESPACE <old tablespace>;
   ORA-01950 이 Return 되면 성공

5. User Level 로  Import 를 진행하라 .

6. 작업을 위해서 한시적으로 Revoke 하였던 Resource, DBA 권한을 원복 하라.      
   
3. INDEXFILE=<filename> 을 가지고 Import 하라.
   그리하여, create table 과 create index 문장을 획득하라.   
  
#################################################################################
예제
...
#################################################################################
C. From User A to user B 로 [동일 디비내에서 다른 유저로 이관 ]
   Import 되어지는 유저의 Default Tablespace 와 상관없이 Export 되어질때의
   Tablespace 로 Import 된다.
   FROMUSER=USER_A(USER_A_TS) TOUSER=USER_B(USER_B_TS)
   환경에서 Import 를 진행 하면, USER_A_TS 로 IMPORT 되어진다.
1. USER_A 의 User Level 로 Export 진행
2.
 2.1USER_B 의 USER_A_TS, USER_B_TS 의 QUOTA 를 체크
   USER_A_TS - QUOTA 를 "0" 으로
   SELECT * FROM DBA_TS_QUOTAS where username = 'USER_B';
   ALTER USER USER_B QUOTA 0 ON TABLESPACE USER_A_TS;
 2.2 RESOUCE ROLE 이 있다면 REVOKE UNLIMITED TABLESPACE 하라.
   SELECT GRANTED_ROLE FROM DBA_ROLE_PRIVS WHERE GRANTEE='USER_B';
   REVOKE UNLIMITED TABLESPACE from USER_B ;
3. USER_A_TS 에 대해서 더이상 권한이 없음을 확인 하라
   CREATE TABLE JUNK (A NUMBER) TABLESPACE <USER_A_TS>;
  
4. Import 수행
5. 권한 원복 수행
   ALTER USER <userB> QUOTA nn ON TABLESPACE <USER_A_TS>;
      
!! 테스트 하진 않았지만,
   요점은 원래의 Tablespace 가 있어야 한다는 것으로 보여진다.
   있지만, 권한이 없다면 USER_B 의 Default Tablespace 로 Import 되어질것으로
   예상된다.
################################################################################  
요약
- TABLE LEVEL 시에는 INDEXFILE=<indexfile> 을 통한 editing 을 통해서 제어   
- 시나리오 B,C 는 별차이가 없다.
- DEFAULT TABLESPACE 변경 및 원래의 TABLESPACE 에 대해서는 QUOTA "0" 조치  
################################################################################

by matz | 2011/07/26 23:10 | oracle | 트랙백 | 덧글(0)

unlock 풀기

시스템계정 비밀번호 3회이상 오류시

ORA-28000 : the account is locked

해결방안 :
alter user [user] account unlock
identified by [pwd]

by matz | 2010/05/15 22:50 | oracle | 트랙백 | 덧글(0)

jsp null값 체크

jsp 페이지에서

 

String Reckey = getParameter("ReckeyList");

 

ReckeyList라는 인자를 넘겨받을때,

 

ReckeyList는 null값을 가지게 되는데 문제는 이것이 null값인지 비교하는 문장이 들어갈 때 이다.

 

if(Reckey == null){

       Reckey = "NO";

}

 

이런 경우에 Reckey 값을 못받아서 null인데도 불구하고도 "NO"값이 제대로 들어가지 않는다.

 

해결책

 

if( Reckey == null || Reckey .equals("") || Reckey .equals("null") ){

       Reckey = "NO";

}

 

이렇게 모든 경우를 생각해서 처리해줄 경우엔 현재까지는 널체크가 제대로 되었다.

by matz | 2010/04/21 16:19 | jsp | 트랙백 | 덧글(0)

◀ 이전 페이지          다음 페이지 ▶