Search

'commit'에 해당되는 글 2건

  1. 2017.10.17 [ORACLE]ALTER COLUMN
  2. 2014.10.29 [ORACLE]FLASH BACK을 이용한 데이터복구

[ORACLE]ALTER COLUMN

Database 2017.10.17 08:34 Posted by 애플자라

-- 일반 컬럼수정
ALTER TABLE EM_MMT_TRAN
MODIFY RECIPIENT_NUM VARCHAR2(16 BYTE)

 

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


-- 일반 컬럼수정(NOT NULL)
-- ORA-01442: column to be modified to NOT NULL is already NOT NULL
ALTER TABLE EM_MMT_TRAN
MODIFY CALLBACK VARCHAR2(16 BYTE) NOT NULL

 

-- DISABLE
ALTER TABLE EM_MMT_TRAN DISABLE CONSTRAINT SYS_C0037363 CASCADE

 

--> 일반 컬럼 수정문 실행

 

-- ENABLE
ALTER TABLE EM_MMT_TRAN ENABLE CONSTRAINT SYS_C0037363 

 

SYS_C0037363 Check    Enabled        Not Deferrable    Immediate    Validated            1    "CALLBACK" IS NOT NULL

 

[ORACLE]FLASH BACK을 이용한 데이터복구

Database 2014.10.29 14:31 Posted by 애플자라

 

오라클을 이용하다면 보면 의도치 않게 데이터를 삭제하거나 변경을 하고 커밋을 해버리는 경우가 종종 발생하는데요.

이런 경우 데이터를 COMMIT을 한지 얼마 안 되었거나 메모리를 넉넉하게 잡아놓은 경우 FLASHBACK 기술을 이용해서 데이터 복원이 가능합니다.


1. 먼제 임시 테이블과 데이터를 생성합니다.






2. 데이터를 삭제하고 COMMIT을 합니다.




3. FLASHBACK에 데이터가 존재하는 확인합니다. 

본 포스팅에서 사용할 명령어는 AS OF TABLE 입니다. 자세히 기술하면 다음과 같습니다.


SELECT * FROM TEMP_TABLE

  AS OF TIMESTAMP (SYSTIMESTAMP - INTERVAL '8' MINUTE); 여기에서 '8'은 몇분전에 데이터를 조회할지를 표시하는 것으로 본 포스팅에서 사용된 쿼리는 8번 데이터를 조회한다는 뜻입니다. 여기서 보여줄 수 있는 데이터의 인터벌은 시스템 설정 및 운영에 따라 달라질 수 있습니다.




   4. 데이터가 조회가 된다면 원래있던 테이블에 새롭게 INSERT 하는 방법 등으로 데이터를 복구 할 수 있습니다.

 

SELECT * FROM NEWYN_UPDATE_TRG01_LOG

AS OF TIMESTAMP(SYSTIMESTAMP - INTERVAL '8' MINUTE)

SELECT * FROM LAW_OP_FUND
AS OF TIMESTAMP(SYSTIMESTAMP - INTERVAL '1575' MINUTE)

 

출처 - http://hothobbang.tistory.com/63