반응형

1.시작 -> CMD 실행후 관리자 로그인  (오라클 sysdba 계정 접속)
sqlplus "/as sysdba"

2.시작 -> CMD 새로실행 후 리스너 종료 명령어 실행
lsnrctl stop

3. SQLPLUS 로그인 된 CMD 창으로 돌아가서 오라클 명령어 실행
shutdown immediate

 

4. 종료 메시지 발생 후 명령어 실행
startup

5. lsnrctl stop 한 창으로 돌아가서 명렁어 실행
lsnrctl start

 

 

제가 이용중인 방법 입니다.

더 좋은방법이 있으시면 댓글 부탁 드립니다.

 

* 복사가능

반응형
반응형

보통 오라클을 사용하시다보면 TOAD, GOLDEN , SQL Developer 등을 사용하게 됩니다.

이번 방법은 ui 를 통해 index rebuild 하는 방법이 아닌 sql문을 통해 인덱스 리빌드 방법에 대해서 알려드리겠습니다.

일단 cmd 창을 키고 index rebuild 가 필요한 계정에 접속 합니다.

 

Microsoft Windows [Version 10.0.15063]
(c) 2017 Microsoft Corporation. All rights reserved.

C:\Users\>sqlplus 해당하는계정/해당하는계정비밀번호 

SQL*Plus: Release 11.2.0.2.0 Production on 수 5월 29 19:25:30 2019

Copyright (c) 1982, 2014, Oracle.  All rights reserved.


Connected to:
Oracle Database 11g Express Edition Release 11.2.0.2.0 - 64bit Production

SQL>

 

이후에

 

 1. select index_name from user_indexes;
   // 인덱스 조회하는 명령어 

2. alter index 인덱스명 rebuild
   // 인덱스 리빌드하는 명령어 

 

명령어를 통해 1번으로 인덱스를 조회 후 2번으로 인덱스를 리빌드 합니다.

 

1.

SQL> select index_name from user_indexes;

INDEX_NAME
------------------------------------------------------------
PK_TEST1
IDX_TEST2
PK_TEST3
IDX_TEST4
IDX_TEST5
PK_TEST6
PK_TEST7
SYS_IL0000032323C00004$$
PK_TEST8
PK_TEST9
PK_TEST10

INDEX_NAME
------------------------------------------------------------
PK_TESTINFO
PK_TESTINFO2
PK_TESTINFO3
PK_TESTINFO_TEST
PK_TESTINFOTEST 
PK_TESTINFO4

17 rows selected.

 

2.

 

SQL> ALTER index PK_TEST1 rebuild;

Index altered.

 

인덱스 리빌드 완료 입니다.

 

하지만 이럴경우 17개의 인덱스를 일일이 쳐야 하기 때문에 좀더 쉬운 SQL 문이 있습니다.

 

3. 

select 'alter index '||index_name||' rebuild ;' from user_indexes;
    
// 인덱스 리빌드 조회 + 인덱스 리빌드 실행시 사용되는 명령어 자동 생성 쿼리 (1,2 번 따로 진행 안하고 3번 부터 진행 해도 문제 없음)

 

3번을 sql에 칠 경우

 

'ALTERINDEX'||INDEX_NAME||'REBUILD;'
--------------------------------------------------------------------------------
alter index PK_RTBS rebuild ;
alter index IDX_TTBERGTDT_AVRTIME rebuild ;
alter index IDX_THDGHDT_COUNT rebuild ;
alter index IDX_TIDFGDYR_LIST rebuild ;
alter index PK_TGST rebuild ;
alter index PK_THIS rebuild ;
alter index PK_TJTRST rebuild ;
alter index SYS_IL0000032323C00004$$ rebuild ;
alter index PK_TGDFGO rebuild ;
alter index PK_TVBTRYT rebuild ;
alter index PK_TBDFBGYNFO rebuild ;

'ALTERINDEX'||INDEX_NAME||'REBUILD;'
--------------------------------------------------------------------------------
alter index PK_ rebuild ;
alter index PK_HFGUTRNGFO rebuild ;
alter index PK_TDHGFHFGINFO rebuild ;
alter index PK_DFHFGHFGO_NS rebuild ;
alter index PK_TSGHSHGLINFO rebuild ;
alter index PK_HDGHFFT rebuild ;

17 rows selected.

 

이런식으로 자동으로 명령어를 복사 붙혀넣기 할수있게 나옵니다.

 

저 내용들을 긁어서 실행하면 자동으로 인덱스 리빌드가 진행 됩니다.

 

4. 마지막으로 COMMIT; 은 필수 입니다.

 

SQL> COMMIT;

Commit complete.

 

 

 

반응형
반응형

월요일 부터 전화 폭탄이 터지기 시작 했습니다.

제일 먼저 걸려온 전화로는 "시스템이 작동이 안되고 있습니다." 바로 확인하려 접속하자마자 반겨주는 에러창들

아.. 이 지긋한 에러창

이렇게 다수의 에러창이 발생하고 있었습니다. 처음에는 당황했습니다. 

리스너가 죽은건가 ? tnsname 이 바뀐건가?? tns로그가 쌓인게 터진건가?

이렇게 생각하면서 하나하나 차근차근 진행중 찾게되었습니다.

 

일단.. 서버에 들어가볼수 있을까? 싶어 접속 시도를 해보았지만..

12560 : ㅎㅇ?

네 그렇습니다. 접속이 안됩니다.

 

lsnrctl status 명령어로 살펴보아도 .. 문제는없었습니다.

리스너 상태

리스너를 재 시작 해보아도 같은 에러가 발생하기에 오라클을 강제로 재시작 하려고 서비스 창을 들어간 순간...

너.. 왜 꺼져있냐..

네.. 그렇습니다. 서비스가 죽어있었습니다. 일단.. 서비스를 오른쪽 키로 실행 버튼을 눌러 실행 시켰습니다.

무슨 문제일까 싶어 윈도우 이벤트 로그를 분석 해보았습니다.

발생 2일전 저녁부터 에러를 뿜어내고 있는 상태..

원인은 가상 메모리 부족으로 판단하고 있습니다.

경고가 나를 반겨주네..

많은 경고들과 함께..

보스 등장! 오라클 : DIE

죽었습니다.. 휴일이라 오라클 서비스가 죽었던게 월요일 되어서야 확인이 된겁니다.

 

오라클 재시작 , 리스너 재시작 후 정상가동을 확인 하였습니다.

이런경우 여유가 되시면 가상메모리를 가장 많이 차지하는 프로그램을 점검 후 서버 재부팅을 하여 사용해보시면 될거 같습니다.

반응형

+ Recent posts