기본 콘텐츠로 건너뛰기

라벨이 오라클인 게시물 표시

AIX의 대규모 오라클데이터를 x86으로 마이그레이션 하면서 있었던 일...

영상 버전 :  https://youtu.be/KtRKb2Py5xs 아무 생각없이 쉽게 생각해버린 20 년간 축적된 AIX위의 ORACLE 데이터 이전 작업..  AIX가 서비스연한이 다되어 신규 구매를 해야만 하는 상황이다. 신규 구매 18억 + 연간 6억원의 유지 비용. 5년 사용기준으로 연간 약 10억원의 비용이 드는 것을 x86으로 교체함으로 신규 구매비용 5천만원(2대 이중화)으로 퉁치고 오라클 라이선스도 44Core -> 16 Core로 줄이는 것이 이번 프로젝트의 목표이다. 별 준비 없이 오라클이니까 라는 생각만으로 너무 자체 기능을 믿고 진행 한 것이 문제 였다.  서비스 정지 허용 시간은 교섭에 교섭을 해서 단 7시간..  Full backup만으로 40시간이 걸린다. 게다가 센터가 클라우드 센터 내에 있는 물리 서버라 백업 장비 반입 불가, 백업 영역이 500GB도 채 남지 않은 곳에서 NAS 이용 불가, 1Gbps 네트워크에서 알아서 하랜다. 프로젝트를 받고 나서 이런 상황이었다는 사실을 뒤늦게 알았다.. 당연히 이런거 다 지원해주는 곳인줄 알았는데.. ㅠㅡㅠ 나중에 안 얘기로는 SI업체 견적으론 30억이었다고 한다.  이전이 결정되자마자 DBA는 사표를 던지고.. 대타가 없어 내가 들어와서 간단한 인수인계만으로 준비를 시작.. 서버 선택에서부터 이전준비, 이전작업까지 모두 나 혼자 하게 되어버렸는데, 그냥 그 동안의 경험상 문제 없겠지 하고 개시.. 사전에 이건 미션임파서블이기 때문에 일부 데이터의 누락이 발생하거나 하면 수동처리하는 걸로 합의 했다.  병렬 export & import용 스크립트를 만들어서 충분히 테스트 해봤다. 별 문제없이 계산 상으로 7시간정도에 맞출 수 있었다. 이전 당일... 서비스 정지후 복사 작업 진행.. 사전에 변경되지 않을거라 생각되는 2800여개 테이블을 미리 복사해두고 남은 1500여개의 테이블을 복사하는 시간만 40시간인 것이다....

오라클에서 테이블 생성 쿼리 작성 - ORACLE Management by SQL

Oracle의 관리 툴은 대부분 비용이 비싸서 가급적 무료툴로 관리를 한다. 그러다보면 기능들이 부족해서 SQL로 해결해야 하는 것들이 생기는데, 그 중에서 많이는 사용하지 않으나 있으면 관리하기 편한 하나가 바로 테이블이나 Procedure의 생성쿼리 이다. Oracle에서는 기본으로 제공해주는 쿼리이므로 주기적으로 select * from all_tables where owner = '<owner>' 로 테이블 명을 가져와서 아래 쿼리로 테이블 생성 쿼리를 업데이트 해주면 변경이력 관리가 필요없게 된다. select dbms_metadata . get_ddl ( ' TABLE ' , ' TableName ' , ' Owner ' ) from dual; select dbms_metadata . get_ddl ( ' Procedure ' , ' ProcedureName ' , ' Owner ' ) from dual; 추가로 Procedure작성쿼리도 추가함.. select * from all_objects 로 검색해서 Procedure나 Function도 가져오면 편할 듯.. Do not login your server any more! giip :: Free server management tool! https://giipasp.azurewebsites.net/

오라클 복구의 마지막... ORACLE RMAN

처음에 시작된 것은 NFS로 연결된 REDO LOG파일이 사라진 것인데.. 왜 REDO LOG를 NFS마운트에 올렸는지도 궁금하지만.. (아마 용량이 부족해서 이렇게 일시적으로 한 듯..) NFS는 끊어졌는데 그 원천 서버의 디스크가 날라가서 OS재설치하면서 REDO LOG파일이 사라졌다. 더 큰 문제는 REDO LOG 파일이 CURRENT로 지정된 데다가 파일이 하나밖에 설정되어 있지 않다. 이로서 불가능한 옵션은 ALTER DATABASE ADD LOGFILE MEMBER '/mnt/sdb1/redolog/redo05.log' TO GROUP 5; 기존 파일이 없댄다.. ALTER   DATABASE   DROP  LOGFILE GROUP  5 ; 파일이 없어서 삭제 안된단다.. ALTER   DATABASE  ADD LOGFILE GROUP  6 ; 신규로 그룹을 추가 했다.. 성공.. 이제 바꾸고 싶다.. alter  system  archive  log  current; 안된단다.. select  *  from  v$logfile; 이걸로 없어진 파일은 보이는데.. 이걸 빼고 다른걸로 바꿀 방법이 없다. ALTER DATABASE    RENAME FILE '/NFS/app/oracle/oradata/smartdb/redo05.log'            TO '/mnt/sdb1/redolog/redo05.log'; 이렇게 이름을 바꾸어 봤다. 이름은 바뀐다....