[급한 질문] ㅠ.ㅠ 곧 작업들어가는데. 한서버에 DB2대의 경우 0 7 1,930

by 임서희 [Oracle 백업/복구] [2011.09.30 09:28:33]


현재 한 서버에

AAA라는 DB가 돌고있습니다. (UNIX+ORACLE)

그런데 이 서버에다가 다른DB BBB서 가져온 백업 데이터 (mdf 등등 필요한 데이터)를 두고

컨트롤파일 재구성 / 리두로그 재구성 등등 하여 RECOVER하였습니다.

운영에서 백업으로가져온 BBB 를 DATABASE 복원하고서

나중에 SID (인스턴스명)만 BBB -> AAA로 바꿀 계획입니다.

따라서

oraBBB라는 계정을 만들어서

su - oraBBB 접속후,

환경변수니 뭐니 그대로 써서 (BBB에서 가져온 그대로일테니)

BBB를 recover 완료한 상태입니다.

질문1) 제 취지대로 이제 application을 방금 복원한 SID = BBB에만 연결해서 쓸 수가 있을런지;;

질문2) 위에꺼가 불가능하다면

혹시 기존의 su - oraAAA에 환경변수의 경로를 변경해서..

예를들어 PATH = /oracle/BBB ...

SID = AAA (이건그대로)

DB_SID = AAA

ORACLE_HOME = /oracle/ BBB

ORACLE_BASE = /oracle/

이런식으로 참조하는 데이터 경로만 BBB로 잡아주고서

운영가능할까요?

HOME이 BBB쪽이니, 기동될때도 제가 백업하여 가져온 컨트롤파일이니 파라미터니(pfile)

그대로 다 참조할테고요..

이 원리로 가능한가요?




by 연돌군 [2011.09.30 16:36:45]
질문 1) 2) 모두 가능하다고 생각되는데요
1)의 경우 clone DB 를 올렸다면 전의 운영 DB 를 사용하지 않고 계쏙 Clone DB 를 사용할 계획이시면 sid 만 변경하시면 될 것 같습니다.
굳이 DB를 복사 해서 사용하실 필요조차 없거니와 그럴 이유도 없습니다.
2) 의 경우도 1)의 경우와 별반 다르지 않습니다. 1이 되니 2의 경우는 더욱 더 할 필요가 없겠찌요
http://thankyeon.tistory.com/22
http://thankyeon.tistory.com/21
을 참고하셔도 될 것 같고요 또한 왜 굳이 운영DB 를 내리고 새로운 DB를 가동하시려는 이유도 사실 알수가 없네요 복구하고 복구한 Datab만ㄴ 옮겨주시면 될것 같네요

by 연돌군 [2011.09.30 16:44:02]
그리고 2번 방법으로 한다면 계정 생성후 홈디렉토리 변경하시고 많은 작업을 하셔야 할 것같네요

by 연돌군 [2011.09.30 16:48:49]
http://support.dbworks.co.kr/2888 여기는 디비를 통째로 옮기는 작업에 관한 글입니다.

by 글쓴이 [2011.10.01 21:42:57]
아..
정확한 설명은

개발기가 있고 운영기가 있는데
개발기에서 테스트가 있을 것 같아서..
운영의 백업데이터를 갖다가
개발기에서 부어 쓰려고 하는 취지입니다.



by 글쓴이 [2011.10.01 21:58:14]
연돌님,
지금 마주친 문제상황은,

1. aaa라는 개발기에 bbb라는 운영기 백업데이터를 가져옴

2. aaa서버의 빈 파일시스템 공간에 그대로 oracle/BBB/경로로 데이터/로그파일만 가져옴 (aaa 인스턴스는 돌고잇음)

3. aaa서버 내에서, orabbb를 가지고 bbb데이터 복원완료.

4. aaa 서버 내리고 oracle/aaa 이하 데이터파일 삭제

5. aaa서버에서복원해둔 oracle/BBB 데이터 oracle/AAA경로로 copy

6. oraAAA접속, controlfile oracle/AAA용으로 재구성

7. 복원시켰던 bbb 데이터 open 하니 잘 조회됨.

(바로 oracle/aaa로 가져와서 복원하지않은 이유는
다운타임을 줄이기 위해서입니다.)



그런데 지금 이 aaa서버에 돌던 application(SAP쓰고있음) 에서
돌아가는 aaa DB를 인식을 못합니다. (경로체크는 다 했음)


더 챙겨야하는데 놓친 부분이 있을까요?
가져와서 aaa내 bbb라는 인스턴스로 복구 (aaa는 돌고있음)


by 연돌군 [2011.10.01 22:42:26]
흠...
우선 마지막 글쓴이님의 글에서 저의 작은 지식으로 의견을 말씀드리자면요
2 . 번에서 로그파일을 가져왔다는 말씀... 잘 이해가.. 우선 switch 를 발생 시킨 후 archive 파일을 이용해서 복구가 가능했을 것 같습니다. 그럼 redo log file 이 필요하지 않았을테니 db를 내릴 필요가 없었을 것 같습니다. ^^
3. 그리고 orabbb를 가지고 복원했다는 말씀은 oracle 내부에서 recovery 가 아니라 os 단에서 파일을 다시 살리셨다는 말씀인가요?? orabbb 계정을 새로 생성해서 하실 필요가 없을 것 같다는 생각을 하게되서 ㅜㅜ 제가 원래 이해력이 부족하니 이해해주세염
그냥 저의 소견으로 말씀드리자면 어차피 한계정에서 DB를 2개든 3개든 새로 올리는 것이 가능하기에 굳이 oraAAA 계정에서 oraBBB를 만들어 하실 필요가 있을까 해서요 ㅜㅜ
흑...물론 ORACLE_SID 는 달라야 겠지만 ㅜㅜ

가져와서 aaa내 bbb라는 인스턴스로 복구 (aaa는 돌고있음) <-- 그리고 무슨 뜻인지 잘 ㅜㅜ

그런데 지금 이 aaa서버에 돌던 application(SAP쓰고있음) 에서
돌아가는 aaa DB를 인식을 못합니다. (경로체크는 다 했음) <-- 물론 확인 하셨겠지만 connection string 부분도 확인하셨는지요.. (SAP 측)
listener 도 확인해 보시길
그리고 개잘용 DB 를 위해 같은 OS 에 같은 버전의 oracle 로 옮기는 가장 간단한 방법은 역시 datapump 를 이용하시는게 가장 편할 듯 하네요
혹은 완전히 같은 디비를 원하신다면 그냥 오픈백업 고고싱....

by 글쓴이 [2011.10.04 12:40:32]
( ' ')연돌군님 다 잘 해결이 되었습니다.
감사합니다^^

이름 기억하고 궁금한 사항이 있으면
또 찾을게요 ^^
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입