본문 바로가기

oracle159

[통계정보 export/import]다른 테이블에 통계정보 복사 운영중에 원본테이블을 두고 CTAS 등으로 새로운 테이블을 만들어서 작업을 해야할 때가있습니다. 저의 경우에는 임시테이블에 작업 후에 원본과 RENAME하여 원본테이블과 바꿔치기하는 작업까지 해야했는데, 이때 크기가 큰 테이블의 경우에는 통계정보 수집시에 시간이 오래걸리고, 기존 원본 테이블에는 통계정보가 있는 경우, 통계정보의 export/import 기능을 사용하여 통계정보의 복사가 가능합니다. 이름이 다른경우에는 import를 하더라도 통계정보가 이식되지 않고 , 통계정보를 export받은 테이블을 update로 이름을 바꿔줘야 됩니다. 참고한 자료로는 아래의 SR입니다. 아래 SR은 스키마까지 변경될 때를 나타내었지만 저는 동일스키마로 진행하였습니다. 2701368.1.How To Transfer.. 2023. 12. 14.
ORA-00257: Archiver error. Connect AS SYSDBA only until resolved. 테스트 DB에서 아래의 에러가 발생하였습니다. sys 이외의 유저의 접속은 제한되었습니다. ORA-00257: Archiver error. Connect AS SYSDBA only until resolved. 원인은 아카이브쪽 용량이 100%라서 추가 파일을 생성하지 못했고, 그에 따라 난 에러였습니다. 해결은 특정 날짜 이전의 아카이브 파일을 삭제하였습니다. 명령어입니다. RMAN> connect target / RMAN> LIST ARCHIVELOG ALL; RMAN> delete archivelog all completed before 'sysdate -7'; 감사합니다. 2023. 11. 11.
통계정보 restore 하기 통계정보를 restore하는 방법입니다. 먼저 통계정보가 보관되는 기간확인하는 쿼리입니다. SQL> select dbms_stats.get_stats_history_retention from dual; GET_STATS_HISTORY_RETENTION ------------------------------------------------------ 31 1 rows selected. 해당 테이블의 통계정보관련 update된 시간을 보여주는 테이블입니다. SQL> select * from dba_Tab_stats_history where table_name='테이블명'; OWNER TABLE_NAME PARTITION_NAME SUBPARTITION_NAME STATS_UPDATE_TIME --------.. 2023. 10. 5.
테이블 컬럼삭제 Drop Column과 Unused 일반적으로 컬럼을 삭제할 때는 ALTER TABLE ... DROP COLUMN을 사용합니다. 하지만 테이블이 현재 트랜잭션이 발생해서 사용중(Online) 상태라면? drop 컬럼은 사용할 수 없을 것입니다. 그때 사용할 수 있는 방법이 UNUSED 인데요. 컬럼을 사용하지 않는다고 mark하는 것입니다. mark만 하기 때문에 용량이나 블록은 그대로이지만 딕셔너리뷰나 테이블에서 조회시에는 drop된것과 동일하게 보입니다. 그리고 트랜잭션이 없을때 UNUSED된 컬럼을 삭제하면 된다고 하는데, 24시간 사용중인 테이블이라면 별 효과가 없을 것같다는 생각을 했습니다. 이번 글은 unused 컬럼에 대해서 여러가지 테스트를 해보면서 비교해보려고 합니다. 1) drop column과 unused 후 drop.. 2023. 7. 19.