FireBird Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
파이어버드 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
IBPhoenix
FireBird Main site
볼랜드포럼 광고 모집

FireBird FAQ
[19] 파이어버드 FAQ
civilian,안영제 [civilian] 18802 읽음    2006-11-19 23:24
라이센스
Q
라이센스는 어떻게 되어?(특히 상이용·배포)

A
IPL라고 하는 독자적인 라이센스가 되어 있습니다.공개된 데이타베이스 본체나 라이브러리, 툴의 이용이나 배포에 관해서는 상용 이용도 포함해 프리입니다만, 공개물의 원시 파일에 대해서 변경을 더한 것을 사용하는 경우, 그 변경 내용에 관한 소스를 공개할 필요가 있습니다.IPL에 관한 자세한 정보는 볼랜드의 IPL에 관한 사이트 를 참조해 주세요.

플랫폼
Q
어느 플랫폼에 대응하고 있는 거야?
A
Windows, Linux, FreeBSD, Solaris, MacOSX 등입니다.

데이타베이스 파일
Q
데이타베이스 본체는 어디에 두는 거야?
A
데이타베이스의 작성시에, 자유로운 장소에 자유로운 이름·확장자(extension)로 파일로서 둡니다.전용의 영역을 확보하거나 할 필요는 없습니다.또, 다른 이름·파일명을 붙이는 것으로, 동시에 복수의 데이타베이스도 관리할 수 있습니다.파일 관리에 관해서는, 매우 자유도가 높고 취급하기 쉬운 데이타베이스 소프트라고 말할 수 있겠지요.데이타베이스가 정지하고 있는 상태라면, OS의 카피 커멘드로 단순하게 카피나 백업 할 수도 있습니다.다만, 이것은 긴급시의 방법입니다.통상은 gbak 커멘드로 백업 합니다.

Q
어디에서라도 둘 수 있다는 것은 편리하지만, 반대로 시큐러티의 약점이 되지 않아?
A
데이타베이스 어카운트가 새면, 확실히 공격을 받기 쉬워집니다.
Firebird1.5이후에서는, 데이타베이스명을 기존의 앨리어스(alias)만으로 지정 할 수 있는에 제한하거나 데이타베이스를 작성할 수 있는 디렉토리를 제한해 버리는 기능이 있습니다.디폴트에서는 오프가 되고 있기 때문에, 설정 파일을 변경해 봅시다.

Q
다양한 확장자(extension)가 사용되고 있는 것은 왜?
A
역사적 경위와 Windows Me/XP의 파일 보호 기능에 의한 속도 저하를 막기 (위해)때문입니다.Firebird에서는, 확장자(extension)는 자유롭게 선택할 수 있습니다만,".fdb"가 추천 되고 있습니다.낡은 IB에서는".gdb"를, 최근의 IB에서는".idb"를 추천 하고 있는 것 같습니다.
확장자(extension)의 선택이 적절하지 않으면 Windows Me/XP의 경우는 OS의 처리에 의해 극단적으로 속도가 저하하기 때문에 주의가 필요합니다.

Q
파일은 복수?그렇지 않으면 1개?
A
기본적으로, 테이블이 몇개 있어도 1개의 데이타베이스 본체의 파일은 1개입니다.그러나, OS의 제한이나 관리의 사정으로 1 파일의 크기를 작게 하고 싶은 경우는, 멀티 파일 구성의 데이타베이스도 구축할 수 있습니다.멀티 파일때라도, 테이블의 개수와 파일의 개수에는 아무 관계도 없습니다.접속시등도 포함하고, 논리적이게는 1개의 파일로서 취급합니다.

Q
취급할 수 있는 파일 사이즈의 제한은?
A
싱글 파일 데이타베이스의 경우는 64 TByte까지입니다만, 통상은 OS의 제한으로 의존합니다.OS의 제한보다 큰 데이타베이스를 구축하고 싶은 경우는, 멀티 파일 구성의 데이타베이스를 구축할 필요가 있습니다.내부에서의 격납 위치 표현은 64 bit가 되어 있기 때문에, 이론적으로는 64 TByte 이상의 데이타베이스도 구축으로 나무입니다.

Q
버젼간으로의 파일 호환성은?
A
IB6.0계와 FB1.0계는, 거의 완전 호환이라고 말해도 좋을 것입니다.FB1.0에서 1.5에의 변경도 거의 문제 없는 것 같습니다.그러나, 상용으로서 분기 한 IB6.5이후에 관해서는 요주의입니다.FB/IB6로부터 IB6.5에 업데이트 하면, 파일의 구조가 변환되어 바탕으로 되돌릴 수 없게 되는 것 같습니다.복수의 버젼이 혼재하고 있는 환경에서 사용하는 경우는 주의가 필요합니다.

기능
Q
일본어의 렬명(컬럼명)은 사용할 수 있는 거야?
A
예약어(reserved word)와 같은 컬럼명이나 한글 컬럼명이나 별명을 사용하고 싶은 경우는, 렬명을 더블 쿼테이션(")으로 둘러싸는 것으로 실현될 수 있습니다.다만, 캐릭터 세트의 지정을 할 수 없기 위해(때문에) 컬럼명의 취득의 관계인가, 접속 방법이나 툴에 따라서는 능숙하게 취급할 수 없거나 에러가 나오거나와 여러 가지 문제가 발생할 가능성이 있습니다.렬명의 취득을 실시하지 않는 듯한 어플리케이션이라면 문제는 적을 것입니다가, 그런데도 다른 문자 코드가 혼재하는 환경에서는 문제가 됩니다.어쨌든, 1.5.1에서는 너무 추천할 수 있는 사용법이라고는 할 수 없을지도 모릅니다.

Q
이벤트 알러트 기능은 뭐지?
A
데이터 베이스 서버측으로부터, 클라이언트측에 이벤트를 비동기에게 연락하는 기능입니다.스트아드프로시쟈나 방아쇠로부터 이벤트를 포스트하는 것으로써 실현됩니다.데이타베이스의 변경을 클라이언트에 통지하거나 에러 감시등 여러가지 용도에 응용할 수 있습니다.특히, 변경 통지는 클라이언트에 의한 정기 폴링을 실시하는 시스템에서는, 트래픽의 저감에 유효합니다.자세한 것은, SQL 레퍼런스의 이벤트아라타 관계를 참조해 주세요.

Q
데이타베이스 그림자 기능은 뭐?
A
데이타베이스 그림자라고 하는 데이타베이스의 백업 카피를 비동기 한편 자동적으로 작성해, 디스크 고장등에서 메인 데이타베이스에 문제가 발생했을 때에는 그림자를 메인 데이타베이스에 승격시키는 것으로, 조속한 복구와 데이터 로스트의 최소화를 실현하기 위한 기능입니다.replication의 일종이라고도 말할 수 있습니다만, 그림자는 메인 데이타베이스와 동일한 서버에 의해 관리되고 있습니다.통상은, 메인 데이타베이스와는 다른 디스크 장치로 설정합니다.자세한 것은, SQL 레퍼런스의 데이타베이스 그림자 관계를 참조해 주세요.

Q
UDF는 뭐?
A
Firebird에는, 유저가 데이타베이스를 자유롭게 기능확장 하기 위해서 유저가 정의한 함수를 데이타베이스 엔진과 다이나믹 링크를 실시하는 기능이 있습니다.그 유저 정의 함수를 UDF라고 호칭하고 있습니다.디폴트로, 어느 정도 기본적인 기능의 것이 준비되어 있습니다.

서버
Q
1.0계와 1.5계의 차이는?
A
1.0계는, 베이스가 된 InterBase6와 대부분의 면에서 호환성을 유지한 다음 약간의 기능 추가를 한 버젼입니다.1.5계는, 1.0계를 더욱 개량한 것으로, 일부 파일명의 변경도 행해지고 있고, API의 인터페이스등도 상위 호환 유지했다가 있습니다만, 약간 차이가 나는 부분도 있는 것 같습니다.1.0계는 안정도가 높게 동작 실적이 있기 때문에(위해), 또, InterBase6 치환등의 호환성 중시의 용도를 위해서 공개가 계속되고 있습니다.

Q
OS 에 따라서는 ClassicServer?판과 SuperServer?판이 있지만, 어느 쪽 사용하면 좋아?
A
ClassicServer?판은 접속마다 「별프로세스」를 생성해 처리하고 있어,SuperServer?판은 접속마다 「별스렛드」를 생성해 처리하고 있습니다.SMP 머신의 경우는 ClassicServer?판을 사용하는 것이 퍼포먼스가 높다고 합니다.통상의 1 CPU 머신의 경우는 SuperServer?판이 좋지 않을까요.단지, UNIX 유저는 ClassicServer? 을 사용하고 있는 사람도 상당히 있는 것 같습니다.

Q
스트아드프로시쟈는 대응해?
A
대응하고 있습니다.SQL의 것CREATE PROCEDURE으로 작성해,EXECUTE PROCEDURE등에서 호출합니다.자세한 것은"Firebird SQL 레퍼런스"(일본어 번역판) 혹은 인스톨 디렉토리하의,"doc/sql.extensions/README.execute_statement"(영문)를 참조해 주세요.

Q
통상 사용하는 TCP/IP의 포토 번호는?
A
데이타베이스의 접속으로 사용하는 것은 3050입니다.이벤트아라타로 사용되는 포토 번호는 디폴트에서는 랜덤이 되고 있습니다.어쨌든, 설정 파일등에 의해 변경하는 것이 가능합니다.

클라이언트로부터의 액세스 수단(프로그래밍)
Q
클라이언트의 프로그래밍 인터페이스는 무엇이 있는 거야?
A
Delphi, C++Builder 용 구성으로서의 dbExpress,IBX, IBObjects,FIBPlus 등 , Win 범용에서는 ODBC, ADO 드라이버나 .NET 용 드라이버, 그 밖에도 JDBC(Java), IBPerl(Perl), PHP, kinterbasDB Python)등의 미들웨어가 있습니다.또, 전용의 Firebird API도 당연히 준비되어 있습니다.

Q
(ORACLE의 Pro-C를 사용하는 경우와 같은) 매입 SQL는 사용할 수 있는 거야?
A
부속의 gpre.exe라고 하는 프리프로세서로 가능합니다.대응 언어는, C,C++,COBOL,PASCAL,FORTRAN가 되고 있습니다.다만, Firebird의 프로젝트에서는 적극적인 개발은 현재 행해지지 않은 모양입니다.

관리·운용
Q
서버의 기동·정지·확인은 어떻게 하는 거야?
A Windows
컨트롤 패널에 Firebird Server Manager 가 있기 때문에, 거기서 동작 상태의 확인, 수동에 의해 기동이나 정지, 자동 기동 설정을 실시합니다.
A Linux
 통상은 /etc/init.d/firebird 가 준비되어 있기 때문에, 이것 사용합니다.옵션은, start, stop, status, restart, reload의 5 종류입니다.통상은 수퍼 유저 상태로 사용합니다.
 정지:
# /etc/init.d/firebird stop
 기동 확인
# /etc/init.d/firebird status

Q
일상 실시하는 관리는?
A
관리가 간단한 것이 특징의 하나이므로, 통상의 설정이라면 일상의 관리라고 하면 정기 백업 정도입니다.저널의 삭제등도 없습니다만, 대신에 세세하게 백업을 취하도록 합시다.백업중은 처리는 무거워집니다만, 통상 운용중에서도 실시할 수 있습니다.또, cron나 AT커멘드에 의해, 자동 정시 백업 운용도 실현될 수 있습니다.유료의 GUI 관리툴에는 그 기능을 가진 것도 있습니다.

자동 이체 간격을 오프(0을 설정)로 했을 경우는, 정기 멘테넌스로서 수동 스위프를 실시하는 것이 좋습니다.gfix 커멘드나, GUI 툴로 실시합니다.
스위프 처리에서는 가베지 콜렉션등이 행해지기 때문에, 통상의 데이터 액세스가 매우 무거워집니다.그 때문에, 안정된 리스폰스를 중시하는 용도에서는, 트래픽의 적은 시간에 스위프 처리를 실시하는 것이 안정된 성능을 전망할 수 있습니다.그 경우에, 확실히 스위프 처리를 실시하는 시간을 정하기 위해서 자동 이체를 오프로 해, 정기적으로 수동, 또는 정시 기동에 의한 스위프를 실시한다고 하는 운용으로 합니다.

Q
어카운트나 설정도 포함한 완전한 백업은 어떻게 하면 좋아?
A
데이타베이스 본체를 gbak 커멘드등을 사용하고 백업을 취한 후, 데이타베이스를 정지해, Firebird를 인스톨 한 디렉토리아래에 있는, security.fdb(1.0. x는 isc4.gdb)과 firebird.conf, aliases.conf의 2 파일 (1.0. x에서는 isc_config 파일), 합계 3 파일(1.0. x에서는 2 파일)을 카피 커멘드등을 사용해 백업 해 주세요.
restore 할 때는, 클린 인스톨 직후 또는 데이타베이스를 정지한 후에, 방금전 백업 한 security.fdb등의 파일을 카피해, 그 후에 데이타베이스를 기동해, gbak 커멘드등에서 데이타베이스를 restore 합니다.

인스톨
Q
fbclient.dll의 인스톨
A
커멘드 라인으로
C:\Program Files\Firebird\bin>instclient.exe i f
와 치면 fbclient.dll 가 인스톨 된다.

Q
gds32.dll가 없어지고 있었지만?
A
커멘드 라인으로
C:\Program Files\Firebird\bin>instclient.exe i g
와 치면 gds32.dll 가 인스톨 된다.

언인스톨
Q
언인스톨은 어떻게 하는 거야?
A
Windows판의 경우는, 컨트롤 패널의 「Firebird Server Manager」로 서버를 정지시킨 후, 어플리케이션의 추가와 삭제로부터 언인스톨을 실시합니다.Linux판의 경우는,퀵 스타트를 봐 주세요.

문서
Q
문서는 어디에 있습니까?
A
IBPhoenix Download에 Firebird의 문서(조금)와InterBase(R)의 문서가 있습니다.그 밖에 있으면 가르쳐.borland에 InterBase 5.6 for Windows 95/NT 업그레이드판이 있습니다.이것을 전개하면 Interbase 5.6의 일본어 메뉴얼이 있습니다.

관리툴
Q
부속의 관리툴은 무엇이 있습니까?
A
기본적인 커멘드 라인 툴이 부속되어 있기 때문에, 커멘드 라인으로 관리를 할 수 있습니다.인스톨 한 디렉토리하의 bin 디렉토리를 봐 주세요.관리 관계의 커멘드는, SYSDBA 유저나, OS의 root/Administrator 권한을 가지는 유저 어카운트 이외에서는 사용할 수 없는 것이 많습니다.
gsec 유저 어카운트 관리
gbak 데이타베이스의 백업과 restore
isql 커멘드 라인 또는 대화 형식으로의 SQL 발행
gstat 데이타베이스 상태를 표시
gfix 데이타베이스의 설정 변경이나 제어를 실시한다.정지, 스위프, 린보 상태의 트랜잭션(transaction)의 강제 위탁, 플래시 실행 등 많은 기능이 있는

Q
GUI로 관리할 수 있는 툴은 있습니까?
A
Borland사의 개발툴이나 상용InterBase(R)에 부속되어 있는 IBConsole를 사용하는 것으로써, 대부분의 조작은 GUI로 실시할 수 있습니다.또, 오픈 소스판 IBConsole를 바탕으로 개발된 프리의 툴이나, 상용에 개발된 툴도 있습니다.주된 툴에 관해서 정리합니다.
툴명 설명
상용 IBConsole Borland의 개발툴이나 상용 제품에 부속.데이타베이스의 멘테넌스나 어카운트 관리, SQL 발행 등 보통의 기능이 있습니다.사용에는 뭔가의 유료 라이센스가 필요합니다.또, FB로의 동작 보증은 당연 없습니다.1.5계라고, 로컬 데이타베이스에는 직접 액세스 할 수 없을 때도 있는 것 같습니다.그 때는, localhost의 네트워크 경유를 시험해 봅시다
오픈 소스판 IBConsole IBConsole의 오픈 소스판으로서 공개된 버젼.판이 낡은 것과 패치를 적용하지 않으면 일본어가 온전히 통하지 않기 때문에 주의가 필요합니다
일본어화 오픈 소스판 IBConsole Twise Labo사의 다운로드 사이트에 일본어화한 프리판의 IBConsole이 Firebird1.0과 동시에 공개되고 있습니다.대응 FB의 버젼이 낡기 때문에 다소 문제 있습니다만, 네트워크 경유(localhost도 포함한다)라면 FB1.5에서도 사용할 수 있는 것 같습니다
IBOConsole 해외에서 개발되고 있는 IBConsole 와 거의 같은 기능을 가지는 툴입니다.무료로 이용할 수 있습니다.일단 일본어에도 대응하고 있습니다만, 문자가 변하므로 일본어로의 사용에게는 아직 난이 있습니다.Linux판도 있습니다.
IB Expert 기본적으로는 상용의 관리툴입니다.일본어에도 대응하고 있습니다.기능도 매우 높기 때문에, 본격적으로 사용하는 경우에는 구입해도 손해는 없습니다
IB Manager 상용의 관리툴입니다.
IB Admin4 상용의 관리툴입니다.영문판입니다만, 데이터 자체에는 일본어를 사용할 수 있는 것으로, 내용을 알 수 있고 있는 사람이라면 문제 없습니다.DB의 비교나 자동 백업등도 할 수 있습니다.Linux판도 있습니다.
ValueSql 모든 RDBMS에 접속 가능한 SQL 발행 클라이언트를 목표로 해 개발되고 있는 프리 소프트웨어입니다.텍스트 데이터에 개행이 들어가 있어도 깨끗하게 정형해 표시합니다.마우스 제스 차 탑재.

Q
isql로 한국어를(올바르게) 취급하려면?
A
isql에서는 CONNECT로 데이타베이스에 접속합니다만, 이 때의 캐릭터 세트의 지정은, 디폴트에서는"NONE"가 되어 있습니다.데이타베이스의 캐릭터 세트의 설정에 따라서는, 이 상태에서도 한국어를 취급할 수 있거나 합니다.그러나, 데이타베이스의 캐릭터 세트를 ksc_5601으로 설정하거나 하면, 에러가 나오거나 문자가 변해가 일어나는 경우가 있습니다.
이런 경우는, CONNECT등에서 접속하기 전에,"SET NAMES"커멘드로 캐릭터 세트를 지정해 봅시다.접속전으로 설정을 실시하는 것이 미소입니다."SET NAMES"에 관해서는, 커멘드 라인 툴의 간이 메뉴얼의 isql의 항을 참조해 주세요.

Apache등과의 연동
Q
Apache의 CGI등에서 사용하고 싶지만?
A
PHP에서는 Interbase로서 직접 액세스 가능합니다.ODBC 경유로의 액세스도 가능합니다만, 별도 ODBC 드라이버가 필요하게 됩니다.Java의 경우는 JDBC와 드라이버 경유입니다. Perl의 경우는, DBI/DBD에 의해 액세스 합니다.PHP와 Perl에 관해서는 이 페이지내에 더욱 자세한 문서가 있으므로 읽어 보세요.

Q
Apache의 사용자 인증으로 사용하고 싶지만?
A
PHP를 모듈(DSO)로 움직이고 있는 경우는, PHP 표준의 기능에 의해 Apache의 인증 동작을 훅 할 수 있습니다.자세한 것은 PHP의 메뉴얼을 참조해 주세요.또, 베이직 인증으로 충분한 경우는, Firebird용의 BASIC 인증 모듈(mod_auth_fb)이 있기 때문에, 간단하게 인증 을 할 수가 있습니다.또, mod_auth_dbi를 사용한다고 하는 방법도 있습니다.

출처 : http://firebird.skr.jp/wiki/FAQ

일본어 /한글 번역기로 돌린 문서를 일부 수정했습니다.
천년고독 [tjlee386]   2008-02-15 05:23 X
감사합니다

+ -

관련 글 리스트
19 파이어버드 FAQ civilian,안영제 18802 2006/11/19
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.