안녕하세요.
얼마전 테이블스페이스가 용량 부족하다는 메세지와 함께 모든 DML문이 수행(update , delete 제외)이 안되는 현상이 있었습니다.
dbf파일의 사용률은 99.9%로 모든 설정을 해도 더이상 파일크기가 늘어나지 않아 데이터 파일을 추가해서
해결을 했는데 궁금한점이 생겼습니다.
테이블스페이스에 데이터파일이 2개가 있는 상태인데 이럴때 백업은 기존대로 export를 통해 진행을 해도 되는건지요??
복구시에는 import를 통해서 복구를 할텐데 복구도중 또 데이터파일 용량이 차서 복구가 안되는건 아닌지.. 아니면 오라클에서 데이터파일 사이즈를 고려해서 자동으로 데이터파일을 생성해서 복구를 하는지 궁금합니다.
이런식으로 데이터파일이 2개인 데이블스페이스의 백업과 복구 방법은 다른 방법이 있는걸까요??
해당 질문의 문제를 해결, 도움이 되는 선택된 답변이 있습니다.
작성된 다른 답변도 확인해 보시기 바랍니다..
19개의 답변이 있습니다.
export는 테이블스페이스 고민안하셔도 됩니다
import는 테이블스페이스 용량이 확보되어야 합니다
테이블스페이스도 자체 한계 용량이 있으니
수십기가 이상을 import하시려면 사전에 테이블스페이스를 넉넉하게 추가하셔야 합니다.
import 하는 양에 비례해서 운영하면서 추가로 데이터가 적재되니 운영하면서 발생할 데이터도 고려해서 테이블스페이스를 넉넉하게 확보하셔야 합니다
댓글 남기기
답변을 작성 하시려면 로그인이 필요합니다.
로그인 회원가입혹시 해결이 되었는지요? 아래 답변 채택되면 저도 참고하려고 합니다.
네 테이블스페이스 용량문제는 데이터파일을 추가하여 이미 해결하였습니다. 질문글 요지는 이렇게 되면 하나의 테이블스페이스에 복수의 데이터파일이 생성될 수 있는데 다른 테이블스페이스로 복구시 해당 테이블스페이스의 데이터파일이 1개면 용량문제로 복구가 실패할 것 같아서 문의를 드린거였습니다. 결론은 복구대상의 덤프파일 용량에 따라 데이터파일의 한계용량(32G)을 초과할 것 같으면 임포트전 데이터파일을 더 생성 후 진행 , 아니면 그냥 임포트 하면 된다입니다. 데이터파일의 개수가 의미가 없는게 이해가 안됐는데 복구하려는 용량에 따라서 파일을 추가하면 된다고 합니다.
댓글 남기기
답변을 작성 하시려면 로그인이 필요합니다.
로그인 회원가입답변 참조 하겠습니다.
댓글 남기기
답변을 작성 하시려면 로그인이 필요합니다.
로그인 회원가입DBF 파일이나 TableSpace와 관계없이 export, expdp 등으로 백업 받으면 됩니다.
복원은 import, impdp 등을 이용하면 되겠고요.
DB를 Cold 백업할 경우에는, oracle 서비스를 내리고, DBF 파일이 저장된 경로에 있는 개별 DBF 파일들을 복사해서 백업하면 되겠지만... 개별 DBF 파일을 백업할 경우에는 DB 정합성 문제를 고려해야 해서...
가급적 export, expdp 등의 hot backup을 이용하는 것이 좋을 거라 생각되네요.
DBF 파일이 저장되는 볼륨이 부족할 경우라면 tablespace를 여유 있는 볼륨으로 옮기거나, 아니면 해당 볼륨의 용량을 확보하는 방안을 마련해야 할 것 같네요.
리눅스라면 oracle 서비스를 내린후에 큰 용량의 디스크를 하나 준비해서 해당 경로에 있는 DBF 파일들을 복사해 넣은 후에 해당 디렉터리에다 준비한 디스크를 마운트해서 oracle 서비스를 올리면 간단하게 용량 증설이 될 수 있겠는데... 윈도를 사용한다면 이 부분에 있어서 리눅스보다 조금 더 번거로운 점이 있죠.
데이터파일의 용량이 무한정 늘어나 디스크의 크기가 부족해지는 현상이 아닙니다. 저도 이번일은 처음 겪어봐서 여기저기 문의를 해봤는데.. 하나의 dbf 파일 자체의 MAXSIZE 설정과 별개로 늘릴 수 있는 파일 용량에 한계가 있는거 같습니다. 약 32G 이상으론 어떠한 설정을 해도 데이터파일용량이 늘어나지 않습니다. 해서 해당 테이블스페이스에 데이터파일을 추가 생성을 해야한다고 합니다. 이렇게 되면 하나의 테이블스페이스에 데이터파일이 여러개인데 복구시에 문제가 발생할 수 있을 것 같아서요.
export, expdp할때 tablespace 설정에 맞춰서 백업 받아지게 되고, import, impdp할때 또한 설정에 맞춰 복원이 되게 됩니다.
export는 select 문을이용해서 데이터를 추출하는 방식과 유사하게 자료를 추출해 내어서 dump file에 table 내용들을 백업 받아 뒀다가 import는 insert 문과 유사하게 dump file에 저장되어 있는 data를 table에 입력하게 되는 걸로 알고 있고요.
insert문으로 생성되는 데 문제가 없다면 import 문으로 문제 없이 처리된다고 보면 될것 같습니다.
말씀하신대로 처음에 db 구성하실때에 bigfile 이라는 키워드를 지정해서
만들지 않았다 라면 데이터 파일에 용량 제한 있습니다.
그럴 경우 add datafile 를 통해서 데이터 파일을 추가 해야 합니다.
자세한 건 제가 보내드린 블로그 내용 참고하세요
https://jack-of-all-trades.tistory.com/372
댓글 남기기
답변을 작성 하시려면 로그인이 필요합니다.
로그인 회원가입export는 data file(dbf파일) 개수 무관하게 여러개의 dbf 파일에서 해당되는
tablespace 또는 table의 데이터를 추출하여 export dump 파일을 만듭니다.
역으로 import할때도 dbf 파일의 개수와는 무관하에 tablespace의 여유 공간이
복구하려는 tablespace 용량보다 많이 있어야 됩니다.
용량이 부족하면 복구 중 용량이 부족하다고 오류 납니다.
아 감사합니다. 이부분이 제일 궁금했습니다. 테이블스페이스가 가진 데이터파일 갯수도 항상 찍어둬야겠군요. 그럼 복구를 진행시 똑같은 테이블스페이스를 구성하고 데이터파일이 복수개라면 미리 원본과 동일하게 생성해두면 임포트시 아무 문제가 없는거겠죠??
약간 다른데요. 복구할 때 데이터파일 개수는 원본과 동일하지 않아도 됩니다.
tablespace가 데이터파일을 한 개든 여러 개든 개수와 무관하고
tablespace의 용량이 여유가 있냐 없냐입니다.
복구해야할 tablespace나 table이 10GB 라면
dbf 파일이 10GB짜리 1개이상 또는 dbf파일 5GB짜리 파일 2개이상이어야 복구할 때
용량 문제가 없습니다.
(물론 실제로는 안전하게 10GB보다는 좀 더 여유가 있어야 안전하게 복구가 됨)
참고로 export가 아니라 cold backup을 이용해서 복구한다면
원본 dbf 파일과 동일한 이름, 동일한 개수, 용량 등 원본과 구조가 같아야 되구요.
아.. 무슨말인지 이해했습니다. ㅎㅎ 지금 상태가 dbf가 가득차서 어쩔 수 없이 추가를 한것이라 분명 복구시에도 데이터파일이 가득찰거거든요. 여튼 운영을 하던 곳의 데이터파일 용량문제로 추가한거라면 복구할 스페이스의 데이터파일을 늘려야 하는거네요. 감사합니다~!
데이터파일의 허용용량 푸는 옵션이 있었네요. 단, 테이블스페이스를 생성할때 지정해줘야 하는가 봅니다.
danis78(제이컴즈)님 답변도 도움이 되었습니다. 감사합니다~!
댓글 남기기
답변을 작성 하시려면 로그인이 필요합니다.
로그인 회원가입데이터 파일이 몇개가 있더라고 export 백업은 해당 데이터베이스 내용을 기반으로
백업 받는 것이기 때문에 상관이 없습니다.
안녕하세요. 백업은 기존대로 유지한다해도 복구시가 문제인데 복구를 하면서 데이터파일 용량이 다시 차버리면 데이터파일을 오라클에서 추가 생성해서 복구를 하는건가요?? 이부분이 제일 궁금합니다. 애당초 복구를 진행할때 테이블스페이스의 데이터파일 개수(이름등)를 기억하고 있어야 하는지..
댓글 남기기
답변을 작성 하시려면 로그인이 필요합니다.
로그인 회원가입오라클 백업 방식에는 크게 2가지가 있습니다. 물리적인 백업 방식과 논리적인 백업 방식이 있죠
덤프 파일로 백업하는 건 논리적인 백업 방식입니다. 그리고 물리적인 백업 방식은
전체 파일들을 그대로 파일 복사 하듯이 백업 하는 걸 말합니다.
자세한 건 아래 블로그 내용 참고하세요
https://m.blog.naver.com/xogstar/221764212462
안녕하세요. 저도 처음에는 데이터파일 2개이니 당연히 물리적인 백업을 고려했습니다. 그런데 매번 백업을 진행할때 오라클 서비스를 내리고 오프라인으로 만들어 작업을 해야하는데 이것도 꽤나 부담입니다 ㅠㅠ 임포트를 통한 복구를 진행시 자동으로 데이터파일이 생성되면서 복구를 진행한다면 아무 문제가 없는데;; 이걸 테스트 해볼 수도 없고 ㅎㅎ 링크는 정독해보겠습니다. 감사합니다.
제가 올린 블로그 내용을 보시면 물리적인 백업 중에서 hot 백업이 있습니다.
hot 백업은 DB 서비스를 내리지 않고 온라인 상태에서 백업 가능합니다.
다만, 블로그에서도 잘 나와 있지만 hot backup 를 받을 경우 시점 정보가 불일치
할 수 있어서 Redo 로그를 통한 복구 작업이 필요합니다.
댓글 남기기
답변을 작성 하시려면 로그인이 필요합니다.
로그인 회원가입