기본 콘텐츠로 건너뛰기

라벨이 database인 게시물 표시

DB 전문가가 이야기 하는 DBMS선택 방법..

듣기 버전 :  https://youtu.be/gee37PXME2E?si=F3hsUPq9ptJ-Uidz DB 전문가가 이야기 하는 DBMS선택 방법..  많은 개발자 분들이 DBMS선택 방법에 대해서 동영상을 올려드리는데,  DBMS엔진에 대해 정확하게 알지 못하는 상태에서 개략적인 정보만으로 올리시는 분들이 많은 것 같아서 오히려 DBMS를 선택하는데까지의 충분한 도움이 안되는 것 같아서 DB전문가가 DB를 선택하는 방법을 알려드리겠습니다.  만약 DB전문가라는 사람이 당연히 오라클이죠.. 라던가 MySQL만큼 좋은게 없어요 라던가 하나만 밀고 있는 사람이라면 그 사람은 DB전문가가 아니라 그 제품 하나만 알고 있는 평범한 사람이라고 보시면 됩니다.  다양한 RDBMS의 특징을 모르면 뭐가 왜 좋은지 알 수 없잖아요.. 그리고 상황 및 데이터 타입 등등 다양한 환경에 따라 달라지는데 하나만 최고가 될 수가 있나요?  제가 있던 시절의 RDBMS는 DBase(HBase아님), Cybase, Infomix등등 다양한 RDBMS가 판치던 시절이었습니다.  이 때에는 Index 알고리즘도 B-Tree index뿐만 아니라 Bitmap index도 있었지요.  Bitmap index는 Cardinality가 낮은 데이터, 즉 1 이나 0 처럼 종류가 적을 수록 속도가 빠른 인덱스도 있었으나,  대부분의 데이터가 Cardinality가 높은 경우가 많아져 SQL Server도 6.5부터는 B-Tree index를 사용하게 되었지요.  그래서 MySQL, SQL Server, ORACLE등의 메이저 RDBMS의 엔진 성능도 엇비슷해 진 듯이 보입니다..  많은 곳에서 MySQL이 최고라면서 증거를 들이밀고, SQL서버가 최고라면서 데이터를 들이미는 곳이 있는가 하면 ORACLE이 최고라면서 발표하기도 합니다.  다들 거짓말을 하는 걸까요?  아닙니다! 그들이 하는 말은 맞지만,  가장 중요한 것은,  자기네 제품이 가장 좋은 환경을 만들어서 발표한다는 것이지요.  그래서

오라클에서 테이블 생성 쿼리 작성 - 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'; 이렇게 이름을 바꾸어 봤다. 이름은 바뀐다. 그래도 파일은 없으니.. 그럼 새로 만든 파일을 이름을 바꾸어 봤다. 읽기 에러가 뜬다. 그냥 복사해서 되는게 아닌가 보다. Recover를 해보려 했다. recover database until restore point before_drop; 리스토어 먼저 하랜다. restore database; 하루 종