이 절에서는 Application Server 8.2에 번들로 제공된 Derby 데이터베이스 구현을 사용하기 위한 지침을 제공합니다.
Sun Java System Application Server 8.2에 Derby Network Server 시작 및 중지를 위한 두 asadmin 명령이 새로 추가되었습니다.
start-database 명령을 사용하여 Derby Network Server의 인스턴스를 시작할 수 있습니다.
start-database [--dbhost 0.0.0.0] [--dbport 1527] [--dbhome path/derby] |
호스트의 기본값은 0.0.0.0이며, 이 경우 Derby는 IP/호스트 이름 인터페이스와 localhost를 모두 수신할 수 있습니다. dbhome 등록 정보 값은 Derby 데이터베이스의 위치를 나타냅니다. 기본 path는 <appserver_install_dir>/derby입니다.
asadmin stop-database 명령을 사용하여 실행 중인 Derby Network Server의 인스턴스를 종료할 수 있습니다.
stop-database [--dbhost 0.0.0.0] [--dbport 1527] |
또한 Application Server 8.2와 함께 제공되는 Derby 구성에는 Derby를 사용하는 데 도움이 되는 여러 가지 유용한 스크립트가 포함되어 있습니다. 다음 스크립트는 <appserver_install_dir>/derby/frameworks/NetworkServer/bin 디렉토리에서 사용할 수 있습니다.
startNetworkServer.ksh/bat — 네트워크 서버를 시작하는 스크립트
stopNetworkServer.ksh/bat — 네트워크 서버를 중지하는 스크립트
ij.ksh/bat — 대화형 JDBC 스크립트 도구
dblook.ksh/bat — 데이터베이스의 모든 또는 일부 DDL을 보기 위한 스크립트
sysinfo.ksh/bat — Derby 환경에 대한 버전 관리 정보를 표시하는 스크립트
NetworkServerControl.ksh/bat — NetworkServerControl API에서의 명령 실행 방법을 제공하는 스크립트
DERBY_INSTALL 환경 변수가 <appserver_install_dir>/derby 디렉토리를 가리키도록 설정합니다.
CLASSPATH 환경 변수 설정을 해제합니다.
선택적으로 다음 등록 정보를 설정할 수도 있습니다.
이러한 유틸리티에 대한 자세한 내용은 Derby 도구 및 관리 설명서를 참조하십시오.
이 예에서는 Pointbase 테이블의 DDL을 캡처하고 Netbeans 5.0을 사용하여 Derby에서 동일한 테이블을 만드는 방법을 보여줍니다. commander 도구와 unload database 명령을 사용하여 이 작업을 수행할 수도 있습니다.
./startcommander.sh Do you wish to create a new Database. (Yes (Y) or No (N))? [default: N]: Enter product to connect with: (Embedded (E) or Server (S))? [default: E]: e Enter driver to use? [default: [com.pointbase.jdbc.jdbcUniversalDriver]: Enter database URL? [default: [jdbc:pointbase:embedded:sample]: Enter Username? [default: PBPUBLIC]: Enter Password? [default: PBPUBLIC]: PointBase Commander 5.2 ECF build 294 size restricted version EMBEDDED Interactive SQL command language. SunOS/5.9 (C) Copyright 2004 DataMirror Mobile Solutions, Inc. All rights reserved. Licensed to: Sun_customer_demo_use For commercial version contact PointBase at: pointbase.com PHONE: 1-877-238-8798 (US & CANADA) 1-408-961-1100 (International) WEBSITE: www.pointbase.com SQL> unload database sampledb.sql; SQL> unload database sampledb.sql; SQL> 13 Row(s) Unloaded. (PBPUBLIC.CUSTOMER_TBL) SQL> 4 Row(s) Unloaded. (PBPUBLIC.DISCOUNT_CODE_TBL) SQL> 30 Row(s) Unloaded. (PBPUBLIC.MANUFACTURE_TBL) SQL> 11 Row(s) Unloaded. (PBPUBLIC.MICRO_MARKETS_TBL) SQL> 9 Row(s) Unloaded. (PBPUBLIC.OFFICE_TBL) SQL> 4 Row(s) Unloaded. (PBPUBLIC.OFFICE_TYPE_CODE_TBL) SQL> 15 Row(s) Unloaded. (PBPUBLIC.ORDER_TBL) SQL> 6 Row(s) Unloaded. (PBPUBLIC.PRODUCT_CODE_TBL) SQL> 30 Row(s) Unloaded. (PBPUBLIC.PRODUCT_TBL) SQL> 10 Row(s) Unloaded. (PBPUBLIC.SALES_REP_DATA_TBL) SQL> 10 Row(s) Unloaded. (PBPUBLIC.SALES_REP_TBL) SQL> 52 Row(s) Unloaded. (PBPUBLIC.SALES_TAX_CODE_TBL) SQL> 12 Table(s) Unloaded. SQL> quit;
위의 예에서 unload database 명령 실행 결과가 sampledb.sql 파일에 기록됩니다. sampledb.sql 파일에는 필수 테이블과 색인을 만드는 데 필요한 모든 DDL이 포함되어 있습니다. 또한, 데이터베이스에 데이터를 다시 삽입하기 위한 DML도 포함되어 있습니다. commander 명령 RUN은 생성된 스크립트를 사용하여 데이터를 다른 Pointbase 데이터베이스로 가져오는 데 사용됩니다. 다음은 생성된 파일에서의 INSERT 문 및 관련 데이터의 모양을 보여주는 예입니다.
INSERT INTO "ADVENTURE"."CATEGORY" ( "CATID", "LOCALE", "NAME", "DESCRIPTION", "IMAGEURI" ) VALUES( ?, ?, ?, ?, ? ); { 'ISLAND ','en_US','Island Adventures','Experience an island / paradise in a way fit for your needs.','Island_Adventures.gif' 'JUNGLE ','en_US','Jungle Adventures','Experience a jungle / paradise in a way fit for your needs.','Jungle_Adventures.gif' 'MOUNTAIN ','en_US','Mountain Adventures','Experience an / elevated paradise with a view.','Mountain_Adventures.gif' 'ORBITAL ','en_US','Orbital Adventures','Experience a vacuum / paradise with a beautiful view and where no one can hear you scream.', / 'Space_Adventures.gif' 'WESTERN ','en_US','Western Adventures','Enjoy the Wild West. / ','Western_Adventures.gif' 'SOUTH_POLE ','en_US','South Pole Adventures','Experience a / frozen paradise in a way fit for your needs.','SouthPole_Adventures.gif' };
commander unload database 명령에서 생성된 파일이 DDL로만 구성되도록 쉽게 편집할 수 있습니다. 예를 들어, insert 문을 처리하는 프로그램을 쉽게 작성할 수 있습니다. 간단한 테스트를 위해 Pointbase의 sample 데이터베이스에 unload database 명령을 사용한 다음 생성된 스크립트를 편집하여 다음과 같이 변경했습니다.
모든 CREATE Table 문의 끝에서 Organization Heap 구문을 제거했습니다.
COMMIT 명령을 제거했습니다.
부울 datatype을 smallint로 변경했습니다.
모든 INSERT 문과 관련 데이터를 제거했습니다.
다음으로 sql 대상을 사용하여 DDL을 실행하는 데 간단한 Ant 스크립트를 사용합니다. 마지막으로 sun-appserv-samples 데이터베이스에 대해 동일한 시험을 반복합니다. 여기서 생성된 SQL 파일을 다음과 같이 추가로 변경해야 합니다.
샘플 데이터베이스에 대해 위에서 설명한 모든 변경을 수행합니다.
create user 명령을 제거합니다.
SET PATH 명령을 제거합니다.
Decimal 정밀도를 38에서 max인 31로 변경합니다.
float 정밀도를 64에서 max인 52로 변경합니다.
CREATE PROCEDURE에 대한 SPECIFIC 키워드는 현재 지원되지 않습니다.
GRANT 명령을 제거합니다.
Derby에서 작동하는 Pointbase Java 프로시저를 변환하려면 Java 코드와 CREATE PROCEDURE 문을 일부 변경해야 합니다. Derby Java 프로시저 작성에 대한 정보는 Derby Reference 설명서를 참조하십시오. Boolean 데이터 유형은 Derby의 다음 릴리스에서 지원됩니다.