본문 바로가기

DataBase/Oracle

테이블스테이스 확인쿼리 * Online상태에서 데이터파일 Rename 순서 0. sqlplus 접속 SQL> connect / as sysdba 1. 테이블스페이스를 OFFLINE 및 확인 SQL> SELECT FILE_NAME, -- 해당하는 데이터파일 확인 TABLESPACE_NAME, BYTES, -- SIZE확인 STATUS -- OFFLINE인지 확인 FROM DBA_DATA_FILES WHERE TABLESPACE_NAME ='해당 테이블스페이스명'; SQL> ALTER TABLESPACE 해당 테이블스페이스명 OFFLINE; 2. 운영 체제 명령을 이용하여 해당 테이블스페이스에서 사용하고 있는 데이터파일을 복사(copy). 3. 해당 테이블스페이스에서 사용하고 있는 데이터파일들에 대하여 각각 ALTER TABLES.. 더보기
오라클 버젼확인 쿼리 SELECT * FROM SYS.V_$VERSION 더보기
중복행제거 중복된 로우를 찾아보기만 하는 경우 SELECT EMPNO, ENAME FROM EMP A WHERE ROWID > ( SELECT MIN(ROWID) FROM EMP B WHERE A.EMPNO = B.EMPNO ); 중복된 로우를 찾아서 ROWID가 더 큰 것을 삭제하는 경우 이 때 ROWID가 더 큰 것은 아마도 뒤에 생긴 데이터일 가능성이 더 많기 때문이다 DELETE FROM EMP A WHERE ROWID > ( SELECT MIN(ROWID) FROM EMP B WHERE A.EMPNO = B.EMPNO ); 만약 나중에 들어온 데이터를 살리고 먼저 들어온 데이터를 삭제하고자 한다면 WHERE 조건의 부등호와 MIN을 MAX로 바꾸어서 다음과 같이 하면 된다. DELETE FROM EMP A.. 더보기
[펌] 쿼리 - 사용자별 테이블 생성 스크립트 알아내기 select 'rem **** Create Table DDL for '||chr(10)|| 'rem **** '||username||''''||'s tables'||chr(10)||chr(10) from dba_users where username = upper ('&&1') / select table_name y, 0 x, 'create table ' || rtrim(table_name) || '(' from dba_tables where owner = upper('&&1') union select tc.table_name y, column_id x, rtrim(decode(column_id,1,null,','))|| rtrim(column_name)|| ' ' || rtrim(data_type) ||.. 더보기
[펌] import/export 사용 * import/export. 데이터베이스의 백업(backup)과 복구(recovery), 다른 머신으로 데이터나 데이터 베이스를 옮기기 위해 사용된다. 오라클의 imp/exp 유틸은 오라클전용 binary file 형식으로 데이터를 가공하므로 오라클 사이에서만 쓸수 있다. 정리해 볼까? import/export 유틸리티의 사용목적 - 백업과 복구 ( 작은 디비의 경우 ) - 데이터 재구성 ( re - fragmentation, organization ) - 디비가 날아갈 것에 대비해서. - 디비간의 tablespace 이동. * 사용법 imp/exp 라고 쳐도 아무 응답이 없는 경우... DBA등 시스템 관리자가 보안상의 이유로 막았을 수 있고( 이럴경우, 전화해야지), 아닌 경우는 path 에 추가되.. 더보기
[펌] 오라클 딕셔너리 http://www.databaser.net/oracle/often_ref_dictionary.htm 자주 참조하는 딕셔너리(출처: 마소지 2003.09) 분류 성능뷰 / 딕셔너리 딕셔너리 세션과 관련된 정보 V$SESSION 세션에 대한 전반적인 정보를 보여준다 V$SESSTAT 세션의 현황에 대한 통계정보를 보여준다 V$SESSION_WAIT 세션의 WAITING 통계정보를 보여준다 V$SESSION_EVENT 세션의 현재 WATING EVENT를 보여준다 V$SESS_IO 세션의 IO현황을 보여준다 V$STATNAME SESSSTAT의 STATUS의 이름을 보여준다. 성능 관련 정보 V$SYSTAT 시스템 전반의 성능 통계 정보를 보여준다 V$SYSTEM_EVENT 시스템의 WATING EVENT별.. 더보기
[펌] 오라클(ORACLE) 실무강좌 데이터 마이닝 PL/SQL코드 숨기기(wrap유틸리티 사용) 패키지/함수/프로시저 Net8 설정 Oracle Database 생성(8.1.7) External Table 하나의 호스트에 2개의 DB인스턴스 실행 redo log파일이름 변경 실수로 데이터파일 삭제시 처리방안 초간단 트리거강좌 Recovery Catalog를 위한 DB생성 data file이름 변경 SQL*LOADER 1편 COPY사용법 스냅샵의 사용 Database Link사용법 DBVERIFY사용 사용자의 default tablespace변경 파티셔닝 이용하기 SQL Trace / TKPROF 의 사용 autotrace사용하기(Windows 2000 + Oracle 8i(8.1.6) ) 실행계획 설명 윈도NT에서 커맨드라인에서 오라클서비.. 더보기
ALTER명령어 모음 * 컬럼명변경 ALTER TABLE 테이블명 RENAME COLUMN 기존컬럼명 TO 바꿀컬럼명; * 컬럼삭제 alter table table명 drop column column명 * 컬럼추가 ALTER TABLE 테이블명 ADD (컬럼명 NUMBER(7) DEFAULT 0 NOT NULL); * 컬럼사이즈수정 ALTER TABLE 테이블명 MODIFY(컬럼명 NUMBER(7) DEFAULT 0 NOT NULL); 더보기
리소스를 많이 차지 하는 sql찾기 1) 총 메모리 사용량이 많은 SQL (상위 N개) SELECT BUFFER_GETS,DISK_READS,EXECUTIONS,SQL_TEXT FROM (SELECT BUFFER_GETS,DISK_READS,EXECUTIONS,SQL_TEXT FROM V$SQLAREA ORDER BY BUFFER_GETS DESC ) WHERE ROWNUM :p_val2 OR EXECUTIONS > :p_val3 from en-core 白面書生 더보기
실수로 지운 데이터 살리기 예 kfm08ot1이라는 테이블의 bnk_cd ='04' 인 데이터를 실수로 삭제를 했다. commit; 도 완료된 상태라면.. 앞이 막막할것이다. 이럴땐 이렇게 데이터를 불러보자.. SELECT * FROM KFM08OT1 as of timestamp ( systimestamp - interval '10' minute) where bnk_cd = '04' 조회후 파일을 txt나 엑셀로 저장후.. 다시 임포트 해야 합니다. 아래와같은 방법으로 해보니 된다....ㅋㅋ 엑셀로 임포트 작업안해도됨!! INSERT INTO EMP (SELECT * FROM EMP AS OF TIMESTAMP ( SYSTIMESTAMP - INTERVAL '1' MINUTE)) 더보기