ORACLE/ORACLE TOOL2008. 11. 11. 17:30
반응형

SQL Developer

문서화와 모니터링, 그리고 관리

 

Oracle SQL Developer 1.5의 새로운 기능 활용하기

 

Oracle SQL Developer 1.5에서는다양한기능들이새롭게선보였다. 처 음에는사소한것처럼보이는기능조차도사용자들의일상적인작업에상 당히유용한도움을줄수있다. 본기사에서는Oracle Database의객체와 스키마를 문서화하고 관리할 수 있도록 돕는 Oracle SQL Developer 1.5 기능에대해다루고있다. 여기에서는다음을배울수있다.

 

•프로젝트 내 다른 참가자와 손쉽게 객체 세부 사항 공유

•인스턴트 보고서를 이용하여 데이터베이스 세션 및 테이블스페이 스에 대한 상세 내역을 입수하고 세션을 종료하며 데이터베이스를 닫을 수 있음

•복사및내보내기유틸리티를활용하여손쉽게여러스키마와연동 할 수 있음

 

본 기사의 예제는 Oracle SQL Developer 1.5.1을 필요로 한다. Oracle SQL Developer 1.5의 프로덕션 릴리스를 설치했다면, 이를 열고 Help - > Check For Updates를이용하여Oracle SQL Developer 1.5.1로업데 이트한다. 아니면OTN에서 전체 Oracle SQL Developer 1.5.1 설치를 다운로드하여 새로운 빈 폴더로 압축을 해제한다(기존 Oracle SQL Developer 폴더에서압축을해제하면안된다).

 

설치가진행되는동안Oracle SQL Developer 1.2.x 또는1.5에서Oracle SQL Developer 1.5.1로 데이터베이스 커넥션 및 환경 설정을 마이그레 이션할수있다. 환경설정을마이그레이션하기를원치않는경우, 설치이 후 모든 이전 릴리스에서 데이터베이스 커넥션을 가져올 수 있다. 커넥션 을가져오려면,

 

1. Oracle SQL Developer의 이전 릴리스를 시작한다.

2. Connections Navigator에서 Connections을 선택한다.

3. 오른쪽 마우스 버튼을 클릭하고 Export Connections을 선택한다.

4. 적절한 위치로 브라우저하고 connections.xml과 같은 파일명을 입력한 다음, Save를 클릭 한다.

5. 이전 릴리스를 닫고 Oracle SQL Developer 1.5.1을 시작한다.

6. Connections Navigator에서 Connections을 선택한다.

7. 오른쪽 마우스 버튼을 클릭하고 Import Connections을 선택한다

8. 파일로 브라우저하고 Open을 클릭한 다음, OK를 클릭한다.

 

본 기사에서는 Oracle Database 인스턴스 내HR 및OE 예제 스키마에 액세스해야한다.

 

데이터베이스 문서 작성하기

 

여러분은 자신만의 리뷰 또는 다른 사람과의 공유를 위해HTML 포맷으 로스키마에대한문서를작성할수있다. 다음과같은단계에따라스키마 문서를작성하고볼수있다.

 

1. 현재 HR 스키마에 대한 커넥션이 없다면, 하나를 만들어 HR_ORCL라고 명명한다(커넥션을 만드는 데 대한 상세 정보는“http://www.oracle.com/technology/oramag/oracle/08 -sep/o58sql.html#next#next”에서 확인할 수 있으며“, http://www.oracle.com/technology /oramag/oracle/08-may/o38sql.html”에서도 설명하고 있다).

2. HR_ORCL 커넥션을 오른쪽 마우스 버튼을 누르고 Generate DB Doc를 선택한다.

3. 만들어진 파일을 위해 적당한 위치를 선택하거나 \working과 같은 폴더를 만든다. 만들어 진 파일을 다른 사람들과 공유할 계획이라면 공유 파일 서버 위치를 이용한다(이 파일을 이 동하거나 복사할 수 있다).

 

기본브라우저에index.html 파일이자동으로열리게된다. 자동으로열리 지않으면브라우저에서\working\index.html 파일을탐색해이를연다. HTML 문서내모든데이터베이스객체에대한상세내역을보려면, 상단 좌측에있는스키마패널의객체유형을선택한다. 그러면, 해당유형의모 든 객체 목록이 스키마 패널 아래의 패널에 나타난다. 여기에서 객체를 선 택해해당상세내역을중앙패널에표시한다. 예를들어EMPLOYEES 테 이블의 상세 내역을 디스플레이하고, 최상위 패널에서 Tables와그아래 패널의

EMPLOYEES를선택한다(<그림1> 참조).

 

 

보고서를 이용한 모니터링 및 관리

 

Oracle SQL Developer’s View -> Reports 기능으로 여러 표준 시스템 보고서를선택하여데이터베이스및스키마의상세내역을볼수있다. 또한 손쉽게액세스할수있도록Tools 메뉴와Connections Navigator에서각 각2개의보고서가제공된다. 이들모두SYSTEM 또는SYS와같은권한이 높은(privileged users) 사용자에게 적합하다(일부 제약 조건을 가진HR 와같은권한이낮은-nonprivileged user-사용자로서도실행할수있음). Sessions 보고서는현재의활성및비활성세션에대한상세내역을보여준 다. 다음과같은단계에따라Sessions 보고서를표시할수있다.

 

1. SYSTEM 사용자를 위해 SYSTEM_ORCL라는 새로운 커넥션을 만든다.

2. Tools -> Monitor Sessions을 선택한다.

3. Select Connection 대화 상자에서 SYSTEM_ORCL를 선택하고 OK를 클릭하여 보고서를 연다.

 

예를 들어 사용자의 세션이 분명하게 닫히지 않은 경우, 권한이 높은 사용 자는Sessions 보고서에서세션을종료할수있다(기본HR 스키마는세션 을 종료할 수 없다). 만약 실습을 진행하는 동안, HR 커넥션이 계속 활성 상태를유지하면, 금방만든Sessions 보고서내에서HR 세션을선택하여 오른쪽 마우스 버튼을 누르고 Kill Session을 선택한 다음, Apply를클릭 한다.

 

이 레벨에서 이용할 수 있는 다른 보고서는 Manage Database 보고서다. Connections Navigator 내SYSTEM_ORCL connection을 오른쪽 마 우스버튼으로누리고Manage Database를선택한다. 이보고서는여러분 의데이터베이스테이블스페이스에대한상세내역을표시한다. 이보고서를 SYS connection에서 실행하면, Oracle SQL Developer 내에서 데이 터베이스를닫고재시작할수있다(Shutdown 버튼은권한이낮은사용자 들이이용할수없다).

 

객체를 새 스키마로 복사하기

 

여러 스키마를 함께 실행하는 경우 종종 여러 스키마 간에 객체와 그 데이 터를 복제하는 작업이 이루어지게 된다. Oracle SQL Developer 내에서 이를 수행할 수 있는 많은 방법이 있으며 대표적으로 다음과 같은 방법을 들수있다.

 

•먼저 DDL(Data Definition Language)를 만들고 실행하여 테이블 을 생성한 다음, 일련의 insert 문을 실행하여 새로운 데이터를 입 력하는 방식으로 차례로 객체를 복사한다.

•Tools -> Copy를 이용하여 그 데이터를 포함한 테이블의 복사본을 만든다.

•Tools -> Database Copy를 이용하여 데이터베이스의 복사본을 만든다.

•Database Export 마법사를 이용하여 여러 테이블과 기타 데이터 베이스 객체를 위한 DDL과 insert 문을 만든다.

 

다음 예제에서는4가지 메소드를 각각 이용하여 그 강점과 한계를 비교할 것이다.

 

1. 해당 스키마를 위해 OE_ORCL라는 이름의 새로운 데이터베이스 커넥션을 만든다.

2. OE_ORCL 커넥션을 선택하고 Tables 노드를 확장한다.

3. CATEGORIES 테이블을 오른쪽 마우스 버튼으로 누르고 Export DDL -> Save to Worksheet를 선택한다(<그림 2> 참조).

 

 

SQL Worksheet에나타난SQL은OE 스키마이름을포함하고있기때문 에 새로운 스키마 내에서 실행하는 데 적합하지 않다(이 SQL 구문은 DBMS_METADATA 패키지를이용하여수집되며일련의환경설정에 따라실행된다). OE 스키마이름없이SQL을생성하려면, 다음과같은단 계를따른다.

 

1. Tools -> Preferences를 선택하고 트리 내에서 Database 노드를 확장한 다음 ObjectViewer Parameters를 선택한다.

2. Show Storage 및 Show Schema 옵션의 확인란을 지우고 Show Constraints as Alter의 확인란을 선택한다.

3. OK를 클릭한다.

4. SQL Worksheet를 비우고 이전 단계를 반복한다: CATEGORIES 테이블을 오른쪽 버튼으 로 누르고 Export DDL -> Save to Worksheet를 선택한다. SQL Worksheet 내 SQL 코드 에는 더 이상 OE prefix가 포함되어 있지 않다.

 

이제 다음과 같은 단계를 거쳐 CATEGORIES 테이블과 그 데이터를 HR_ORCL 스키마로복사한다.

 

1. SQL Worksheet Connections 목록 내 HR_ORCL 커넥션을 선택하고 Run Script를 클릭 (또는 F5 누르기)하여 HR 스키마 내에 표시된 DDL이 실행되도록 한다.

2. HR_ORCL 노드를 확장하고 새로운 CATEGORIES 테이블을 검토한다. 여기에는 그 어떤 데 이터도 포함되지 않는 점을 유념해야 한다.

3. Connections Navigator에서 OE_ORCL 커넥션의 CATEGORIES 테이블을 오른쪽 마우스 버튼으로 누르고 Export Data -> Insert를 선택한다.

4. Export Data 대화 상자에서 클립보드로 출력물을 전송하고 Apply를 클릭한다.

5. HR_ORCL 사용자를 위해 새 SQL Worksheet를 열고 Ctrl-V를 눌러 클립보드의 내용을 붙 여 넣는다.

6. Run Script를 클릭(또는 F5 누름)하고 SQL을 실행한다.

7. Commit 버튼을 클릭(또는 F11 누름)하고 HR_ORCL 커넥션 내 CATEGORIES 테이블 데이 터를 검토한다.

 

앞의단계는1개의테이블과그데이터만을복사하기위한것이다. 1개객체 와그데이터를복사하는보다빠른방법은Copy context-menu 명령이다.

 

1. OE_ORCL 커넥션의 INVENTORIES 테이블을 오른쪽 마우스 버튼으로 누르고 Table -> Copy를 선택한다.

2. Copy 대화 상자에서 HR을 새 테이블 소유자로 선택하고 New Table Name에 INVENTORIES 를 입력한 다음 Include Data의 확인란을 선택한다.

3. Apply를 클릭한다.

4. 새 INVENTORIES 테이블을 보려면 HR_ORCL 커넥션의 Tables 노드의 새로 고침을 실행 한다.

 

여러테이블과그데이터를위한DDL 코드를만드려면Database Export마법사를이용해야한다. OE 스키마에서HR 스키마로하나의테이블집 합을복사하려면다음과같은단계를따른다.

 

1. Tools -> Database Export를 선택한다. 적절한 파일 위치에 브라우징하고 기본 파일명을 그대로 둔 다음, export.sql을 내보낸다(Tools -> Preferences를 선택하고 트리 내 Database 노드를 선택한 다음, 환경 설정 내에 익스포트를 저장하는 Select 기본 경로를 설정하는 방식으로 이 파일을 위한 기본 경로를 선택할 수도 있다).

2. Export Wizard에서 OE_ORCL 커넥션을 선택하고 Storage Schema 및 Show Schema 옵 션의 확인란을 지우도록 한다. Include Drop Statement and Automatically Include Dependent Objects의 확인란을 선택한다. Next를 클릭한다.

3. Types to Export 화면에서Toggle All의 확인란을 지우고 Tables and Data의 확인란을 선 택한다. Next를 클릭한다.

4. Specify Objects 화면의 OE 목록에서 Go를 클릭하여 선택할 테이블의 목록(list of tables to select)을 채운다. OE.ORDER_ITEMS 테이블만 우측 패널로 보낸다. Next를 클릭한다.

5. Specify Data 화면에서Go를 클릭하여 테이블의 목록을 채운다. OE.ORDER_ITEMS 테이 블만 우측 패널로 보내고 이를 선택해 해당 테이블을 하이라이트 한다. 다음의 빈 상자에, order_id < 2355을 입력하고 Apply Filter를 클릭한다(<그림 3> 참조). Next, 그 다음 Finish 를 클릭한다.

 

 

이제SQL Worksheet에나타난export.sql 스크립트는추가테이블을포 함하고 있다. 이는 여기에서 만들어지지 않은 제약 조건이 이들 테이블에 종속되기때문이다. 또한, 제한된데이터집합이반환된다.

SQL Worksheet의 커넥션 목록에서HR_ORCL을 선택하고 스크립트 를 실행한다. 변경을 커밋한 다음, Database Export 마법사가OE_ORCL 스키마에서 복사한 테이블을 보려면HR_ORCL 노드의 새로 고침을 실 행한다.

 

마지막으로 Oracle SQL Developer 내Database Copy를 이용하는 것은 객체를다른스키마로복사하는데매우효과적인방법이다. insert 문의스 크립트를작성하는대신, Database Copy가백그라운드의새테이블로데 이터를입력한다. Database Copy는또한, BLOBs와CLOBs를새스키마 로복사한다.

 

이비교실습을완료하려면, Database Copy를이용하여하나의객체집합 을HR 스키마로복사한다.

 

1. Tools -> Database Copy를 선택한다. OE_ORCL for Source Connection 및 HR_ORCL for Destination Connection를 선택한다. 여러분이 여기에서 선택할 수 있는 것은 새 객체 를 생성하고 기존 객체 내 데이터를 삭제(truncate)하여 새 데이터로 대체될 수 있도록 하 거나 객체를 드롭(및 대체)하는 것뿐이다.

2. Truncate Objects를 선택하고 Next를 클릭한다. Copy Summary는 모든 테이블이 삭제될 것이라는 것을 표시한다. 이는 여러분이 원하는 것이 아니기 때문에 Back을 클릭하고 Create Objects를 선택한 다음, Next를 클릭한다. 이를 통해 기존 객체가 드롭되거나 삭제 되지 않도록 보장하게 된다.

3. Finish를 클릭한다.

4. HR_ORCL 커넥션 내에 생성된 테이블과 데이터를 검토한다.

 

Database Export와 Database Copy는 2가지 점에서 큰 차이가 있다. Database Export는내보낼객체유형을선택할수있도록하며각카테고 리 내에서 개별 객체를 제한한다. 또한, Database Export를 이용하면 GRANT 문을 생성하고DROP 문을 포함하며INSERT 문을 생성하도 록결정할수있기때문에새로운또는기존스키마를위해반환할수있는 스크립트를원하는대로생성할수있는능력을갖게된다.

 

결론

 

본 기사에서는 Oracle SQL Developer 1.5에서 소개된 일부 기능을 검토 하고있다. 여러분은데이터베이스상세내역을공유하고세션을모니터링 및관리하며여러스키마간에데이터베스객체를복사하는새로운방법으 로생산성을높일수있다.

 

 

필자소개

 

Sue Harper는 오라클의 선임 제품 매니저(senior principal product manager)로서 런던에 거주하고 있다.그의 테크니컬 블로그, sueharper.blogspot.com에서는 Oracle SQL Developer 기능 및 특징에 대해 다루고 있다.

 

 

출처 : 한국 오라클

제공 : DB포탈사이트 DBguide.net

반응형
Posted by [PineTree]