firebird database (§Ö³t¤Jªù)
°Ñ¦Ò¤å¥ó(§¡¥i¦Ûfirebirdºô¯¸§ä¨ì):
Novice's Guide
Migration from MS-SQL to firebird
Firebord Release Notes
- ¾Ç²ß¸ê®Æ®w°ò¦¬O¦bsqlªº»yªkÀ³¥Î(½Ð°Ñ¦Ò:firebird
ºô¯¸ªº»¡©ú¤å¥ó³Ì¦n§â³o¥÷¤å¥ó¦L¥X¨Ó,¦b¼gµ{¦¡®É¥i¥H°Ñ¦Ò¨ä»y,ÁöµM¤j³¡¥÷³£¬Osql-92¬Û®e,¦ý¬O¦³®t²§,ÁÙ¦³¤@¨Ç±M¦³ªº»yªk)
- ·í§A»Ýnªº¸ê®Æ§ä¤£¨ì®É¥i¥H§ä´Minterbaseªº¬ÛÃö¸ê®Æ(¦]¬°firebird¬O¥Ñ
interbaseÄÀ©ñì©l½X©Òl¥Íªº)
- ¦³¤@¥»ºô¸ô¤W§¹¾ãªº®Ñ"BORLAND INTERBASE7¡D0 À³¥Î¶}µo«ü«n
(«À±Ò¬õµÛ)",ÁöµM¬Ointerbase¦ý«D±`¸Ô²Ó,n²`¤J¤F¸Ñ(«ØÄ³¥²Åª)
©|¦b¼¶¼g
¤¤............
¥Ø¿ý¯Á¤Þ
«e
¨¥
¥¦¬OBorland¤§«e±À¥Xinterbase¸ê®Æ®w,¨Ã±N¨ä¶}©ñì©l½Xªº§K¶O¸ê®Æ®w³nÅé,¥Ø«eª©¥»¬O1.5.2,¥¦¤ñmysql,
postgresql
§ó¾A¦X©ówindows§@·~¨t²Î,¥¦¨Ã¤£¬O¨Ï¥Îcygwinªº¤è¦¡²¾´Ó¨ìwindows¤W,¦Ó¬O¯u¥¿ªºwindows³nÅé¡A§Ṳ́@¯ë±N¨ä¤ñ¸û©óMs-
sql
server,¬O¤@Ó¤p¦Ó¬ü¸ê®Æ®w,³Ì¤jªºÀuÂI¦b©ó¥¦¬O§K¶Oªº(ms-sql
server¤¤Hª©¦Ü±Nªñ¤T¸U¤¸),¨ä¹ê¥¦¤]¤ä´©¤£¦P§@·~¥¥x(§tinux),¹ï©ólinux¤W§ÚÁÙ¬O«ØÄ³¤j®apostgresql©Î¬Omysql
¦]¬°firebirdYn¥Îphpªº¸Ü´N¦³ÂIÃø¤F...,§An®Ú¾Úºô¯¸¤å¥ó¨Ó§@¤@¨Ç×§ï½sĶªº°Ê§@
¡¤é«epostgresql 8.0ÄÀ©ñ¤w¸g¤ä´©windwosªºì©lÀÉ(¤£¨Ï¥Îcygwin¨Ó°õ¦æ),¦ý«Ü¥i±¤¤£¤ä´©98/me
¦]¥Ø«eÁÙ¬O¦³¤H¨Ï¥Îwin98³æ¾÷¨Ï¥Îªº¸ê®Æ®w,¦pªG§A³æ¾÷¤W¨Ï¥Înt¨t²Î(2000/xp)µ¥¥i¥H¨Ï¥Îpostgresql,¦]¬°postgresql
¤ñ°_firebird¨ÓÁ¿¬Y¤è±½T¹ê¤ñ¸û±j¡A¦Ó¨Ï¥ÎªÌ¤]¤ñ¸û¦h
¬[
ºc
firebird
¸ê®Æ®w³nÅ馳¤TºØ®M¥ó,¨Ã¦Ó¤ä´©¤£¦P§@·~¥¥x(windows¨t¦C,linux,freebsdµ¥...)
- Super Server-µLªkª½±µ¦s¨ú¸ê®Æ®wÀÉ®×,¥²¶·³z¹Lsocket¨Ó©M¦øªA¾¹·¾³q
- Classic-ª½±µ¦s¨ú¸ê®Æ®wªºÀÉ®×,¦hÓµ{¦¡¥i¥H¦P®É¦s¨ú¤@ÓÀÉ®×,¦³ÂI¹³vfp,dbase
- embedded-±M¬°¤@¨Ç¤p«¬¨t²Îªº´O¤J¦¡¸ê®Æ®w
(pda)
¤U¸ü¤Î¦w¸Ë
¥Dºô¯¸:http://firebird.sourceforge.net/
Download->Firebird relational database
ª½±µÂI¨â¤U´N¥i¥H¦w¸Ë,½Ð·Ó¨BÆJ,®Ú¾Ú¦Û¤vªº»Ý¨D¨Ó¦w¸Ë
¹w³]¦w¸Ë¸ô®|
windows:c:\program files\firebird\firebird_1_5
linux:/opt/firebird
¨âÓ§@·~¨t²Î¤Uªº¥Ø¿ýµ²ºc«D±`¹³
®Ú¥Ø¿ý¤U:
firebird.conf-³]©wÀÉ
aliases.conf -§O¦WÀÉ
friebird.log -°O¿ýÀÉ
SYSDBA.password -linux¤~¦³,ºÞ²zªÌªº¦WºÙ¤Î±K½X¦bùر,windows«h¹w³]:¦WºÙ:sysdba,±K½X:masterkey
windowsª½±µ¨Ï¥Îsecurity.fdb¨Ó¦ssysdbaªº±K½X
ª`·N:¨Ï¥ÎªÌ¦WºÙ¤£¤À¤j¤p¼g,¦ý±K½X¦³¤À
¥Ø¿ý/bin:
«h¬O¤@¨Ç¥²nªº¥Dn¤Î¤u¨ãµ{¦¡
³]©w
firebird
¥Dnªº³]©wÀÉ
firebird.conf
¹w³]tcp/ip·|±Ò°Êport:3050
§A¥i¥H¨Ï¥Îtelnet ip 3050¨Ó´ú¸Õ
aliases.conf
³]©w¸ê®Æ®wªº§O¦W
¸ê®Æ®w³s½u®É¤@¯ën«ü©w¸ô®|,¦³®É¸ô®|¤Óªø®É§A¥i¥H«ü©w,¦baliases.conf¤¤¨Ï¥Î§O¦W¨Ó¦s¨ú
¥¦¬O¦ì©ó§A¦w¸Ëfirebirdªº®Ú¥Ø¿ý,¥H¤U¬°¤º«Ø½d¨Ò
# §O¦W = ì©l¸ô®|
employee.fdb = /opt/firebird/examples/employee.fdb
¨ä¤¤#¬°µù¸Ñ,¦Ówindows¤Îlinuxªº¸ô®|¬O¦³©Ò¤£¦P:
# fbdb1 ¦bWindows¦øªA¾¹:
fbdb1 = c:\Firebird\sample\Employee.fdb
# fbdb2 ¦bLinux¦øªA¾¹:
fbdb2 = /opt/databases/killergames.fdb
¸ê®Æ®w°õ¦æ®É¥i¥H½s¿è³oÓÀÉ®×,¤£»Ýn«·s±Ò°Ê¦øªA¾¹
³s½u§O¦Wªº¤è¦¡:
Server_name:aliasname
¨Ï¥ÎªÌºÞ²z(consloe¤¶
±)
1.¹w³]ºÞ²zªÌ¦WºÙsysdba,±K½Xmasterkey
2.±K½XÀÉsecurity.fdb,¦ì©ófirebird¦w¸Ë¥Ø¿ý¤U
3.ºÞ²zµ{¦¡gsec
¦w¸Ë¥Ø¿ý¤U\bin
4.±K½Xªø«×¨î¦b8½X
¥Îªk:
¥»¦a¥D¾÷(¸ê®Æ®wserver¦b¥»¥x¹q¸£)
gsec -user sysdba -password <password> [options]
»·ºÝ¥D¾÷(¸ê®Æ®wserver¦b§O¥x¹q¸£)
gsec -user sysdba -password <password> -database
<databasename>
gsec©R¥O
di[splay]
|
Åã¥Ü©Ò¦³¨Ï¥ÎªÌ
|
di[splay] <username>
|
Åã¥Ü¬Y¨Ï¥ÎªÌ
|
a[dd] <username>
-pw
<password> [options]
|
·s¼W¨Ï¥ÎªÌ
|
mo[dify] <username>
[options]
|
×§ï¨Ï¥ÎªÌ
|
de[lete] <username>
|
§R°£¨Ï¥ÎªÌ
|
h[elp]
|
¨D§U
|
?
|
¦P¤W
|
q[uit]
|
Â÷¶}gsec
|
z
|
Åã¥Üª©¥»
|
options
-pa[ssword]
<password>
|
ºÞ²zªÌªº±K½X
|
-user <username>
|
¨Ï¥ÎªÌ¦WºÙ
|
-pw <password>
|
¨Ï¥ÎªÌ±K½X
|
-fname <first name>
|
^¤å¦W¦r¦³,¤TÓ³¡¥÷
|
-mname <middle name>
|
|
-lname <last name>
|
|
½d¨Ò
¦³¨âºØ¤è¦¡
1.ª½±µ¤U¦b©R¥O¦C-
2.¶i¤J¤¬°Ê¦¡ªº©R¥O¦C-ÃB¥~ªº©R¥O
·s¼W¨Ï¥ÎªÌ
gsec -user sysdba -password masterkey
gsec> add elvis -pw elvis -fname elvis -lnmae presley
×§ï±K½X
gsec> modify elvis -pw chunk
×§ïsysdba±K½X
gsec -user sysdba -password masterkey -modify sysdba -pw mykey37
×§ï»·ºÝ¦øªA¾¹linuxªºsysdba±K½X
gsec -user sysdba -password masterkey -database
harry:/opt/firebird/security.fbd -modify sysdba -pw hamburg
×§ï»·ºÝ¦øªA¾¹windowsªºsysdba±K½X
gsec -user sysdba -password masterkey -database sally:"c:\Program
files\Firebird\security.fdb" -modify sysdba -pw hannover
×§ï»·ºÝ¦øªA¾¹¨Ï¥Îtcp port 3050
gsec -user sysdba -password masterkey -database
jack/3050:/opt/firebird/security.fdb" -modify sysdba -pw londo
×§ï»·ºÝwindows¦øªA¾¹ip( a.b.c.d)¨Ï¥Îtcp port 3050
gsec -user sysdba -password masterkey -database
a.b.c.d/3050:"c:\program files\firebird\firebird_1_5\security.fdb
-modiyf sysdba -pw londo
§R°£¥»¦a¨Ï¥ÎªÌ
gsec -user sysdba -password masterkey -delete joe
¸ê®Æ®wºÞ²z(console)
µ{¦¡isql¦ì©ó¦w¸Ë¥Ø¿ý¤Uªºbin
¥H¤U¬O¤@Ó¾Þ§@½d¨Ò:
c:\Program
files\firebird\firebird_1_5\bin\>isql
-user sysdba
-password masterkey
Use CONNECT or CREATE DATABASE to
specify a database
SQL> connect test;
Database: test, User:
sysdba
SQL> show table;
COUNTRY
CUSTOMER
DEPARTMENT
EMPLOYEE
EMPLOYEE_PROJECT
JOB
PHONE_LIST
PROJECT
PROJ_DEPT_BUDGET
SALARY_HISTORY
SALES
SQL> select * from country ;
COUNTRY
CURRENCY
=============== ==========
USA
Dollar
England
Pound
Canada
CdnDlr
SQL>quit;
«Ø¥ß¸ê®Æ®w
1.«Ø¥ß¸ê®Æ®wcreate database
2.«Ø¥ß¸ê®Æªí®æcreate table (sql«ü¥O)
3.§R°£¸êªUªí®ædrop table (sql«ü¥O)
4.¬d¸ß¸ê®Æ®w¤¤©Ò§tªí®æ show table
5.¬d¸ßªí®æ¤¤ªºµ²ºc show table ªí®æ¦WºÙ
6.·s¼W,§R°£,§ó·s(insert,delete,update)§¡¬°sql«ü¥O
7.SQL©R¥O¥æ¥I,¦b·s¼W©Î§R°£®É,¸ê®Æ®w¨Ã¥¼ª½±µÅܧó,n¨Ï¥Îsql«ü©Rcommit ©Îcommit work¨Ó§ó·s
isql -user sysdba -password masterkey
Use CONNECT or CREATE
DATABASE
to specify a database
SQL> create database
'c:\temp\test.fdb';
SQL> create table abc (name
char(12),age numeric(3));
SQL> show table friend ;
FIRSTNAME
CHAR(15) Nullable
LASTNAME
CHAR(20) Nullable
CITY
CHAR(15) Nullable
STATE
CHAR(2) Nullable
AGE
INTEGER Nullable
SQL> insert into abc (name
,age) values( 'cschen',34);
SQL> select * from abc;
NAME
AGE
============ =======
cschen
34
¥H¤Wªº¾Þ§@¥Dn¬Osql«ü¥O
©R¥Oªºµ²§À¥²»Ý¨Ï¥Î";", ¦pªG¨S¦³¨Ï¥Î";"´£¥Ü·|¥ÑSQL>Åܬ°CON>,§i¶D§A©µÄò¤§«eªº©R¥O
SQL>create table friend
CON>(FIRSTNAME CHAR(13),
CON> LASTNAME CHAR(40),
CON> STATE CHAR(2),
CON> AGE INTEGER );
¦P¤U
SQL>create table
friend (FIRSTNAME CHAR(13),LASTNAME CHAR(40),STATE CHAR(2),AGE INTEGER);
¨C¤@Ó¸ê®Æ®w¦³¤@Ó¯S®í¸ê®Æ®w-¨t²Î¸ê®Æ®w,¥]§t¤F¨Ï¥ÎªÌÅv
µ¥...
SQL> show system;
RDB$CHARACTER_SETS
RDB$CHECK_CONSTRAINTS
RDB$COLLATIONS
RDB$DATABASE
RDB$DEPENDENCIES
RDB$EXCEPTIONS
RDB$FIELDS
RDB$FIELD_DIMENSIONS
..................
..................
¨Ï¥ÎªÌÅv
1.GRANT ±Â¤©¨Ï¥ÎªÌÅv
GRANT Åv ON ª«¥ó TO ¹ï¶H [with grant option]
2.REVOKE ºM®ø¨Ï¥ÎªÌÅv
REVOKE Åv ON ª«¥ó FROM ¹ï¶H
Åv:SELECT ,INSERT ,UPDATE,DELETE, ALL
ª«¥ó:TABLE,VIEW
¹ï¶H:¨Ï¥ÎªÌ,PUBLIC(¥Nªí¥þ³¡)
with grant option Åý¸Ó¦W¨Ï¥ÎªÌ¦³³]©w§Oªº¨Ï¥ÎªÌªºÅv
*¦]¬°isqlµLªk¿é¤J¤¤¤å,¦]¦¹µLªk¨Ï¥Î¦b¤¤¤å¿é¤J¸ê®Æ
*¦blinux¤U¥Ñ©ó¥i¯à·|¦³¦P¦Wªºisql(unixODBC®M¥ó),¦Ólinux¦w¸Ë¦b/opt/firebird,¦]¦¹¥²¶·¨Ï¥Îµ´¹ï¸ô®|¨Ó°õ¦æ,¥t
¸ê®Æ®wªººÞ²zªÌ¦WºÙ¥i¥H¤£©T©w,¦Ü©ó±K½X¦b¦w¸Ë®É·|¦Û°Ê²£¥Í¦bÀÉ®×SYSDBA.password¤¤
³s½u¤è¦¡(ÀÉ®×/tcpip)
µ{¦¡¤ä´©¨âºØ³s½u¤è¦¡
1.¨Ï¥Î§¹¾ã¸ô®|³s½u
c:\abcd.....
2.¨Ï¥Îtcpip³s½u,¦b¸ô®|«e¥[¥D¾÷ªº¦WºÙ©ÎIP
¥D¾÷:c:\abcd....
§ÚÌ¥i¥H®Ú¾Ú¤Á´«³o¨âºØ
windows ¤Uªº¸ô®|¦p¦³ªÅ¥Õ,¦³®É¥²¶·¨Ï¥Î" "±N¸ô®|®Ø°_¨Ó¤~¥i¥H¥Î
¸ê®Æ®w/¨Ï¥ÎªÌºÞ²z(gui)
§Ú¦³¸Õ¹L´XÓ§K¶OªºwindowsºÝªº³nÅé
¿ï¾Üibeasy+:
«D±`®e©öºÞ²z,¥²¶·¦³¸ê®Æ®wªºÆ[©À
¥t¥~¥i°t¦Xmarathon¨Ï¥Î
ibeasy+¨Ï¥ÎªÌºÞ²z¤¶±:
server->users management

(¿é¤JºÞ²zªÌªº¦WºÙ¤Î±K½X,¶i¤J¤U¤@Óµøµ¡)

(§A´N¥i¥HºÞ²z§Aªº¨Ï¥ÎªÌ)
³]©wodbc
¦bfirebird->download ->odbc
¤U¸ü«á¦w¸Ë
odbc

Database
1.§¹¾ã¸ô®|-c:\database\abc.fdb
2.tcp/ip-ip:§¹¾ã¸ô®|(127.0.0.1:c:\database\abc.fdb)
¸ê®Æ®wªº¦w¥þ(³Æ¥÷/¦^¦s)(console)
GBAK:©R¥O¦C¤u¨ã,©R¥O¦³¨âÓª¬ºA,³Æ¥÷/¦^¦s(-b / -c)
»yªk
gbak <options> -user <username>
-password <password> <source> <destination>
1.³Æ¥÷
gbak -b <source> ¬O§An³Æ¥÷ªº¸ê®Æ®w¨Ó·½,
<destination>¬O³Æ¥÷ªº¥Øªº¦aÀɦW.¤@¯ëªº©µ¦ùªþÀɦW ¬O .fbk .
¥u¦³SYSDBA ©Î¬O¸ê®Æ®wªº¾Ö¦³ªÌ¥i¥H°õ¦æ³Æ¥÷¤u§@. ¹ï©ó¦hÓÀɮתº¸ê®Æ®w,¥u»Ý«ü©w²Ä¤@ÓÀɮתº¦WºÙ¨Ó·í¸ê®Æ®wªº¦WºÙ.
2.¦^¦s
gbak -c <source> ¬O¥ý«e³Æ¥÷ªºÀɮצÓ<destination> ¬O¸ê®Æ®wªº¦WºÙ
¿ï¶µ
(¤¤¬A¸¹¤ºªº¬O«D¥²n,¤]´N¬O©R¥O¥i¥H¨Ï¥Î¤¤¬A¸¹«eªºÁY¼g,©Î¬O§t¤¤¬A¸¹¤º¬°ªø°Ñ¼Æ)
| °Ñ¼Æ |
»¡©ú |
¥\¯à
|
| -b[ackup_database]
|
³Æ¥÷ |
³Æ¥÷ |
| -bu[ffers] |
Set cache size for restored database |
¦^¦s |
| -c[reate_database] |
¦^¦s (¥²n°Ñ¼Æ) |
¦^¦s |
| -co[nvert] |
Âà´«¥~³¡ªí®æ¨ì¤º³¡ªí®æs |
³Æ¥÷ |
| -e[xpand] |
«Ø¥ß¤@Ó«DÀ£ÁYªº³Æ¥÷ |
³Æ¥÷ |
| -fa[ctor] n |
ºÏ±a¾÷ªº°Ï¶ô¨t¼Æ |
³Æ¥÷ |
| -g[arbage collect] |
³Æ¥÷®É¤£²MªÅ¤w§R°£ªº¸ê®Æ |
³Æ¥÷ |
| -i[nactive] |
©Ò¦³ªº¯Á¤Þ±N¦^¦s¬°INACTIVE |
¦^¦s |
| -ig[nore] |
³Æ¥÷®É¤£°µchecksum¿ù»~Àˬd |
³Æ¥÷ |
| -k[ill] |
¦b¤£«Ø¥ß©w¸q³Æ¥÷¤¤ªºshadows |
¦^¦s |
| -l[imbo] |
³Æ¥÷®É©¿²¤limbo transactions |
³Æ¥÷ |
| -m[etadata] |
¥u³Æ¥÷¸ê®Æªí®æªºmetadata (schema).¤£³Æ¥÷¸ê®Æ |
³Æ¥÷ |
| -mo[de] read_write
|
¦^¦s¤@Ó ¥iŪ/¼gªº¸ê®Æ®w(¹w³]) |
¦^¦s |
| -mo[de] read_only |
¦^¦s¤@Ó°ßŪ¼g¸ê®Æ®w |
¦^¦s |
| -n[o_validity] |
¤£¦^¦svalidity constraints.¤]´N¬O¦^¦s¸ê®Æ¤£¦^¦s constraints
|
¦^¦s |
| -nt |
«D¬Û®e©Êªº®æ¦¡(¥u¨Ï¥Î¦b¬Û¦P§@·~¥¥x,¤Îfirebirdª©¥») |
³Æ¥÷ |
| -o[ne_at_a_time] |
¤@¦¸¦^¦s¤@Óªí®æ.§A¥i¥H¤À§O¤À¦¸¦^¦sªí®æ
|
¦^¦s |
| -ol[d_descriptions] |
ªº®æ¦¡ |
³Æ¥÷ |
| -p[age_size] <size>
|
³]©wpage size of new database.
<size> ¥i¥H¬O
1024, 2048, 4096, 8192.¹w³]1024. |
¦^¦s |
| -pa[ssword] <password>
|
¸ê®Æ®wªº±K½X |
|
| -r[eplace_database] |
¦^¦s¦b¤@Ó¦s¦bªº¸ê®Æ®w¤W.¥u¯à¦b¾Ö¦³¥»¸ê®Æ®wªº¨Ï¥ÎªÌ¥i¥H¾Þ§@
³o¬OÂмg,¤£n°õ¦æ¦b¨Ï¥Î¤¤ªº¸ê®Æ®w! |
¦^¦s |
| -role <role> |
¨Ï¥Î¬Y¤@¸s²Õ(role )¨Ó³s½u |
|
| -se[rvice]
<hostname>:service_mgr |
³Æ¥÷: «Ø¥ß,¨Ï¥ÎªA°ÈºÞ²z.
¦^¦s: ¦^¦s,¨Ï¥ÎªA°ÈºÞ²z. |
|
| -t[ransportable] |
«Ø¥ß¥iÂಾªº³Æ¥÷(¤£¦P§@·~¨t²Î¤Îfirebirdª©¥») |
³Æ¥÷ |
| -u[ser] <username>
|
¸ê®Æ®w¨Ï¥ÎªÌªº¦W¦r
|
|
| -use_[all_space] |
¥¿±`,¦^¦s,¸ê®Æ®w¶·|¶ñº¡80%
°ßŪ¤~·|¼g¦^100%(¦]¬°¤£¥Î¹w¯dק諸ªÅ¶¡) |
¦^¦s |
| -v[erbose] |
Åã¥Ü©Ò¦³gbak°õ¦æªº¸Ô²Ó°Ê§@
|
|
| -y <filename> |
«¾É©Ò¦³ªº¿é¥X¨ì¤@ÓÀÉ®× <filename>.
ª`·N:©R¥O°õ¦æ¤§«e¤£¥i¥H¦s¦bÀɦW! |
|
| -y suppress_output |
Quiet mode |
|
| -z |
Åã¥Üª©¥»
|
|
½d¨Ò:
¥¿±`ªº³Æ¥÷:
gbak -v -t -user SYSDBA -password "masterkey"
dbserver:/db/warehouse.fdb c:\backups\warehouse.fbk
³Æ¥÷¨Ã°O¿ý©Ò¦³³Æ¥÷®Éªº¿é¥X°T®§:
gbak -v -t -user SYSDBA -password masterkey -y
c:\backups\warehouse.log dbserver:/db/warehouse.fdb
c:\backups\warehouse.fbk
¥¿±`ªº¦^¦s:
gbak -c -v -user SYSDBA -password masterkey
c:\backups\warehouse.fbk dbserver:/db/warehouse2.fdb
¦^¦s¨ì¤@Ó¤w¦s¦bªº¸ê®Æ®w:
gbak -c -r -v -user SYSDBA -password masterkey
c:\backups\warehouse.fbk dbserver:/db/warehouse.fdb
¦^¦s¤@Ó°ßŪªº¸ê®Æ®w:
gbak -c -v -mode read_only -use_all_space
-user SYSDBA -password masterkey c:\backups\warehouse.fbk
c:\files\warehousedb.fdb
¦h«Àɮ׳ƥ÷
·í¸ê®Æ®w«Ü¤j®É,n³Æ¥÷¦³ÂI§xÃø,¦]¦¹§Ú̱N¸ê
®Æ®w³Æ¥÷¦¨³\¦h¤pªºÀÉ®×,¦p¦¹Àx¦s®É¤ñ¸û¤è«K
³Æ¥÷»yªk:
gbak [options] <database> <target
file 1> <size 1> <target file 2> <size 2> ...
<target file n>
ª`·N: ¤£n«ü©w³Ì«á¤@ÓÀɮתº¤j¤p.¦]§Ṳ́£¤@©wª¾¹D³Ì«á¤@ÓÀÉ®×»Ýn¦h¤ÖªÅ¶¡¨ÓÀx¦s,©Ò¥H¥¦±N¦Û°Ê¨Ì¾Ú¤j¤p¨ÓÀx¦s.¦Ü©ó¨ä¥¦Àɮתº¤j¤p¥i¥H¬O
bytes (8192), kilbytes (1024k), megabytes (5m), ©Î gigabytes (2g)
¦^¦s»yªk:
gbak -c [options] <source file 1>
<source file 2> ... <source file n> <database>
¦^¦s¨ì¤@Ó¦hÓÀɮתº¸ê®Æ®w
¦³¨Ç¨t²ÎªºÀɮרt²Î¦³¨î,©Î¬O¬°¤F®Ä¯àªº¦]¯À,¦]¦¹³æ¤@¸ê®Æ
®w,¥i¤À¦¨¦hÓ¤pªº¸ê®Æ®w
gbak -c [options] <source file>
<db file 1> <size 1> <db file 2> <size 2> ...
<db file n>
ª`·N:¤£n«ü©w³Ì«á¸ê®Æ®wªº¤j¤p.¥¦¥i¥HµL¨îªº¨Ì¾Ú¦^¦sªºÀɮרÓÅܧó¤j¤p.
Size can be given in bytes (8192), kilbytes (1024k), megabytes (5m), or
gigabytes (2g)
¥Ñ³Æ¥÷¦hÓÀɮצ^¦s¨ì¦hÓÀɮתº¸ê®Æ®w:
gbak -c [options] <source file 1>
<source file 2> ... <source file n> <db file 1>
<size 1> <db file 2> <size 2> ... <db file n>
¸ê®Æ®w¦w¥þ(³Æ¥÷/
¦^¦s)(gui)
(ibeasy+,°Ñ¦ÒhlpÀÉ)
¿ï¶µ (Database | Save
Database)

§A¥i¥H²³æ½Æ»s¸ê®Æ®wÀÉ(¦p¤@¯ëªº«ü¥Ocopy) ¦ý¬OµLªk½T©w¸ê®Æ®wªº¦w¥þ.
ÀuÂI:
- §ïµ½®Ä¯à¸g¥Ñ±Æ°£¤£§¹¾ãªº(eliminating incomplete)¥æ©ö©M¹L´Áªº°O¿ý
- ´î¤Ö¸ê®Æ®wªº¤j¤p-²¾°£§R°£ªº°O¿ý
- ¿W¥ßªº³Æ¥÷©M¦^¦sªº¥\¯à©M§@·~¨t²ÎµLÃö
°õ¦æ®É¥²n°Ñ¼Æ:
- ¸ê®Æ®w¥þ¦W
- ³Æ¥÷Àɮתº¦WºÙ,¥i¥]§t¤j¤pµ¥¯S©Ê.
- The options which must be applied at the time of back up
- Checksums Àˬd¸ê®Æªº§¹¾ã.
- End transactions
- Metadata only ¥u¦sµ²ºc¤£¦s¸ê®Æ.
- Eliminate garbage ¤©³\ÄÀ©ñª©¥»°O¿ýªºªÅ¶¡.
- Old data format
- Transportable database ¥i¥H¦^¦s¸ê®Æ®w¨ì¤£¦Pªº§@·~¨t²Î.
- Convert to tables Âà´«¥~³¡Àɮר줺³¡ªí®æ.
¿ï¶µ: (Database |
Restore Database)

°õ¦æ³oÓ¾Þ§@,¥²¶·¬O³oÓ¸ê®Æ®wªº¾Ö¦³ªÌ©Î¬O¦³°õ¦æºÞ²z¨t²ÎªºÅv: SYSDBA.
¤@Ó¸ê®Æ³Æ¥÷ªº¸ê®Æ®w¥i¥H¦^¦s
°õ¦æ®É¥²n°Ñ¼Æ:
- ³Æ¥÷Àɮתº¦WºÙ
- ¸ê®Æ®w¥þ¦W
- ¥i¥Îªº°Ñ¼Æ
- Page size Åܧó¸ê®Æ®w¨C¶ªº¤j¤p,¥i¥H§ïµ½®Ä¯à.»¡¹ê¦b,©Ò¦³¸ê®Æ®w¦b¤@¶¤¤·|¤ñ¸û§Ö.
- Rebuild Indices. ««Ø¯Á¤Þ
- Create database image Allow the recovery of a database in
case of disk crash.
- Validity conditions Allow when data are not valid any more,
following for example a modification of the integrity constraints, to
be unaware of the integrity constraints.
- Commit after each table
- Replace database In this case, the database must be closed
beforehand, and no user must be connected.
- Create a new database This option is exclusive compared to
the preceding option
- Use all space to recreate the database. By default, at the
time of the restoration of a database, the pages are filled out to 80%.
This option makes it possible to fill them to 100%.
¸ê®Æ«¬ºA
| ¦WºÙ |
¤j
¤p |
½d
³ò /ºë«× |
´y
z |
| Blob |
¤£
©T©w
|
blob¬q¤j¤p©ó64K |
°Ê
ºAÅܪø«×¤G¶i¦ìÃþ«¬¡A¥Î©ó¦s©ñ¤j¶q¸ê®Æªº±¡ªp¡A¦p¹Ï¤ù¡Bµ¼Ö¡BµøÀW¡B¦h´CÅéµ¥¡C¨ä°ò¥»µ²ºc³æ¦ì¬°¬q¡A¥¦ªº¤lÃþ«¬´yz¤F¦sÀx¸ê®Æªº¸Ô²Ó¸ê°T |
| Boolean |
16¦ì |
True
False
Unkown |
¥N
ªí¤FÅÞ¿è¤Wªº(¯u¡B°²¡B¤£½T©w)»PDialectµL
Ãö¡C |
| Char(N) |
nÓ
¦r¤¸ |
1¨ì32767Ó
¦ì¤¸²Õ¡CÂù¦r¤¸¶°°£2 |
©T
©wªø«×ªº¦r¤¸©Î¦r¦ê |
| Date |
64¦ì |
±q
¦è¤¸«á100¦~
¤@¤ë¤@¤é¨ì32768¦~
¤G¤ë29¤é |
¤é
´ÁÃþ«¬¡C¥u¦³¦~¤ë¤é¡A¤£±a®É¶¡ |
| Decimal(P,S) |
ÅÜ
¼Æ(16¡B32©Î64¦ì¡^ |
ºë
«×p±q1¨ì18¡G
«ü©w¼Æ¦rªºÁ`ªø«×¡F¼Ð«×s±q0¨ì18¡G
«ü©w¤p¼ÆÂI«áªº¦ì¼Æ¡C |
©w
ÂI¤p¼Æ¡C¨Ò¦pdecimal(5,3)¥i
¥H¦sÀxªº¼Æ¦ì§Î¦¡¬°¡Gpp.sss |
| Double
Precision |
64¦ì |
±q2.225×10ªº-308
¦¸¤è
¨ì1.797×10ªº308¦¸¤è |
IEEEÂù
ºë«×¯BÂI¼Æ¡A15¦ì
ªø«× |
| Float |
32¦ì |
±q1.175×10ªº-38
¦¸¤è
¨ì3.402×0ªº38¦¸¤è |
IEEE³æ
ºë½T«×¯BÂI¼Æ¡A7¦ì
ªø«× |
| Integer |
32¦ì |
±q-2147483648
¨ì2147483647 |
¾ã
¼Æ |
| Numeric(P,S) |
ÅÜ
ªø¡]16¡B32©Î64¦ì¡^ |
ºë
«×p±q1¨ì18¡G
«ü©w¼Æ¦rªºÁ`ªø«×¡F¼Ð«×s±q0¨ì18¡G
«ü©w¤p¼ÆÂI«áªº¦ì¼Æ¡C |
©w
ÂI¤p¼Æ¡C¨Ò¦pdecimal(10,3)¥i
¥H¦sÀxªº¼Æ¦ì§Î¦¡¬°¡Gppppppp.sss |
| Smallint |
16¦ì |
±q-32768¨ì32767 |
µu
¾ã¼Æ |
| Time |
64¦ì |
±q0¡G00
AM¨ì23¡G59.9999
PM |
®É
¶¡Ãþ«¬ |
| Timestamp |
64¦ì |
±q
¦è¤¸«á100¦~
¤@¤ë¤@¤é¨ì32768¦~
¤G¤ë29¤é |
±a
¦³®É¶¡ªº¤é´ÁÃþ«¬ |
| Varchar(N) |
nÓ
¦r¤¸ |
1¨ì32767Ó
¦ì¤¸²Õ¡C¦r¤¸¶°¨M©w¤F¨ä¯à®e¯Çªº³Ì¤j¦r¤¸¼Æ |
|
#Blob
blob sub_type segment
³o¬O¤@Ó¯S¦³ªº¸ê®Æ«¬ºA,¬O¥Î©óÀx¦s¤ñ¸û¤j¶qªº¸ê®Æ,Ãþ¦ü¨ä¥¦¸ê®Æ®wªºtext©Î¬Omemo¸ê®Æ«¬ºA,¦b©w¸q®É¦³¨âÓªþ¥[°Ñ¼Æ¬Osub_type,
segment
sub_type¬Oblobªº¸ê®ÆÃþ«¬,¥H¤U¬O¥¦ªºtypes.h¤¤ªº©w¸q
©w¸q
|
»¡©ú
|
TYPE ("TEXT", 1,nam_f_sub_type)
TYPE ("BLR",
2,nam_f_sub_type)
TYPE ("ACL", 3,nam_f_sub_type)
TYPE ("RANGES", 4,nam_f_sub_type)
TYPE ("SUMMARY", 5,nam_f_sub_type)
TYPE ("FORMAT", 6,nam_f_sub_type)
TYPE ("TRANSACTION_DESCRIPTION", 7,nam_f_sub_type)
TYPE ("EXTERNAL_FILE_DESCRIPTION", 8,nam_f_sub_type) |
¤å¦r,Ãþ¦ümemo,¦Ó¸ê®Æ«¬ºAvarchar¨î
32K
¤G¦ì¤¸¸ê®Æ(¹Ï¤ù,¼vµÀɵ¥)
|
1,2¬O§Ú̱`¥Îªº,¨ä¥¦ªº«Ü¤Ö¨Ï¥Î
generator(p¼Æ¾¹)
p¼Æ¾¹¥i¥H§ÚÌÀ°§U²£¥Í´`§Çªº¼Æ¦r,§A¥i¥H±N¨ä¬Ý¦¨¦p¤@Ó¤½¦@ÅܼÆ,¨Ï¥Îgen_id(generator¦WºÙ,step)¨Ó¨ú±o¤@ÓȨÃ
¥[step
create generator my_gen
num=gen_id(my_gen,1)
«h
num
°ÝÃD
¦pªG¯Âºé¨Ï¥Îgenerator¨Ó¶ñ¤J,¦pªG¬Ouniqe©Îprimary key,·ígenerator³Ì¤jȬO264(18446744073709551616)
¦pªG¶W¹L·|«¦^¨ì0
¥Ñ©ógeneratorªº³Ì¤jÈ264 ¬O«Ü¤j¼Æ¦rn²£¥Í«½Æªº¾÷²v«Ü¤p
n¤£n¨Ï¥Î¤é´Á¨Ó°t¦X²£¥Í?
¦pªG°t¦X¤é´Á«h·|²£¥Í«½Æªº¾÷²v·|´î¤Ö(µo²¼,¶Ç²¼µ¥)
¦~¤ë¤é+¬y¤ô¸¹
20040303004
¦Ógenerator ¥un²£¥Í¬y¤ô¸¹,¦ý¬O¬y¤ô¸¹¨C¤Ñ³£¬O±q1¶}©l,¨Ã¥B¤@¯ë·|¨î¼Æ¦rªº¼e«×¦p¥|¦ì¼Æ©Î¤T¦ì¼Æ
¦p¦¹³y¦¨«½Æ©Ê·|¼W¥[
¥Ø«e¸ê®Æ®w¨ÃµLªk³B²z³oÓ°ÝÃD,§A¥²¶·¦Û¤v³]p¤@Óªí®æ¨ÓÀx¦s³oÓÈ,°t¦Xsql«ü¥O¨Ó¨ú±o³Ì«áªºÈ
(«ØÄ³:¤£n®ö¶O®É¶¡¦b¨Ï¥Î¦b¸ê®Æ®wºÝªº¸Ñ¨M¤èªk)
¶ñ¤JªºÄæ¦ìn¦r¦ê©Î¬O¼Æ¦r?
¦pªG¬O³æ¿W¨Ï¥Îgenerator,³Ì¦n¬O¥Î¼Æ¦rªº®æ¦¡¤ñ¸û¦n
#ª`·N:integer¥u¦³32¦ì¤¸
½d¨Ò:
¦Û°Ê®i¥Ü
create generator test_gen ;
CREATE TABLE test1 (serial_no char(3) not null primary key,name
char(15));
«Ø¥ßIJµo¨Ó¦Û°Ê¨ú±oID(new.Äæ¦ì¦WºÙ ,³oÓÅܼƬO¥i¥H³Qsql«ü¥O®É¦Û°Ê¤Þ¥Î)
set term !!;
create trigger test for test1
active before insert
as
begin
new.serial_no=cast(gen_id(test_gen,1) as char(3));
end
!!
set term ; !!
#°w¹ï¥»¨Äæ¦ìÅܧó¤èªk:IJµo¥]§t¤F¤TºØsql«ü¥O¤Î¤GºØª¬ºA
°õ¦æ«e/°õ¦æ
«á
¦binsertªº°õ¦æ«e,©Ò¦³ªº´¡¤J¨ì³QIJµoªºªí®æªºÄæ¦ì,§A¥i¥H¨Ï¥Î
new.Äæ¦ì¦WºÙ¨Ó¦s¨ú,¥unÅܧó¸ÓÈ´N¥i¥H¦Û°ÊÅܧó·s¼W¨ìªí®æ¤¤ªºÄæ¦ìÈ
#¦b«Ø¥ßtrigger
®É¥Ñ©ótrigger¤¤ªº;(¤À¸¹)·|²V²cµ²§ô²Å¸¹,¦]¦¹¨Ï¥Îsql«ü¥O©Î¦bisql¤¤·s¼Wtrigger½ÐÅܧó¨äµ²§À²Å¸¹,¬Oset term
µ²§À²Å¸¹,¹w³]ªºµ²§À²Å¸¹";",¦]¦¹°µ§¹n´_ìset term ;!!
¬y¤ô¸¹
¨C¤é«¸m¬y¤ô¸¹
¨Ï¥Îªí®æÄæ¦ì¨Ó°O¿ý¤é´Á,ÀˬdY¤é´Á¤£¦P«h¼g¤J·s¤é´Á¨Ã±NgeneratorÂk¹s(set generator ¦WºÙ to
0),¦ýµLªk¨Ï¥Î¦bÀx¦s¨ç¦¡¤¤
¦b·s¼W¤§«eIJµo³oÓ¥\¯à,¤ñ¤Wz§ó²³æ(©|¥¼´ú¸Õ)
create
trigger test2 for test active before insert
as
declare variable temp_date date;
declare variable serial_no char(3);
begin
if current_date==t_date then
#¨ú±o¬y¤ô¸¹
serial_no=cast(gen_id(generator¦WºÙ,1) as
char(3));
else
#±N¬y¤ô¸¹¸m¬°0,¨Ï¥Î¬Û´î
=GEN_ID(My_Generator,
-GEN_ID(My_Generator))
#¨ú±o¬y¤ô¸¹
endif
end
#current_date
select current_date from
rdb$database
Àx¦s¨ç¦¡©ÎIJµo©I¥s¨ä¥¦ªºÀx¦s¨ç¦¡
execute procedure ¦WºÙ[¡]ÅܼÆ1,ÅܼÆ2....¡^] [RETURNING_VALUES [¡]ÅܼƢ°¡AÅܼÆ2.....¡^]]
³Ì²³æªº©I¥s(¤£¶ÇÈ¡A¤]¤£¶Ç¦^È)ª½±µ°õ¦æ EXECUTE PROCEDURE ¦WºÙ
´ú¸Õ¨ç¦¡ªº°õ¦æ©Î
GENERATORªºµ²ªG
1.«Ø¥ß¤@ÓGENERATOR
CREATE GENERATOR TESTGEN
2.«Ø¥ß¤@ÓÀx¦s¨ç¦¡(¥u¬O±NGENERATOR¥[¤@)
create procedure TEST
as
DECLARE VARIABLE MY FLOAT;
BEGIN
MY=GEN_ID("TESTGEN",1);
END
3.ª½±µ°õ¦æ©R¥O
EXECUTE TEST
4.¬d¸ßGENERATOR¬O¤£¬OÅܬ°2
ÅܼÆ
¨ç¦¡¤¤¦Û¤v«Å§iªº°Ï°ìÅܼÆ
1.ª½±µ¤Þ¥Î-¤£»Ý¥ô¦ó«e¸m²Å¸¹
2.¥Î¦bsql»yªk¤¤-¥²¶·«e¸m:
°O¿ý¨Ï¥ÎªÌ
CURRENT_USER ©M CURRENT_ROLE
®É¶¡ÅܼÆ
current_time,current_date,current_timestamp
udf¦Û©w¨ç¦¡ªº¤º«Ø¨ç¦¡
¹w³]¦³¤º«Ø¨ç¦¡©ñ¦b¦b¦w¸Ë¥Ø¿ý¤Uªºudf
¤¤§t¦³ªº¨ç¦¡¸ê°T¦bfbudf.sql¡Bib_udf.sql,¦ý¯u¥¿¨ç¦¡¬O¦bfbudf.dll¡Bib_udf.dll
¦bfirebird¤¤¨Ï¥ÎªÌ¦Û©w¨ç¦¡,©M¨ä¥¦ªºsql-server¦³«Ü¤jªº¤£¦P
¦bfirebird¤¤udf¤@¯ë¬O¥Hc©Îc++¼g¦¨¨ç¦¡,µM«á½sͦ¨¬°¼Ò²Õ
1.windows- .dllÀÉ
2.linux - .so ÀÉ
¦A¨Ó±N¨ä©ñ¦b¦w¸Ë¥Ø¿ýªºUDF¥Ø¿ý¤U,¤@¯ë·|±N¨ä«Å§iÀÉ©ñ¦b¦P¤@¥Ø¿ý¤U,¦pªG¤£¬O©ñ¦b¹w³]ªº¥Ø¿ý¤U,§A¥²¶·¦bfirebirdªºÀô¹ÒÀɤ¤³]©w,¦ý¬O·|¦³¦w
¥þªº°ÝÃD.
¦pªG§A¤£·|¤]¤£·Q¼g¦Û©w¨ç¦¡,¦ý¬O·Qn¥Î§O¤H¼g¦nªº¨ç¦¡
n¨Ï¥Î«Å§i©R¥O
declare external function
¨ä»yªk¦p¤U:
declare external function '¦WºÙ'
¶Ç¤JªºÅܼƫ¬ºA¦Cªí
returns ¦^¶ÇÅܼƫ¬ºA FREE_IT
entry_point '¨ç¦¡¦WºÙ' '¼Ò²Õ¦WºÙ';
¦pªG§A¤£ª¾¹D¦³¨º¨Ç¨ç¦¡¥i¥H¨Ï¥Î,¥i¥H°Ñ¦ÒUDF¥Ø¿ý¤Uªº.sql
¥H¤U¬O§¹¾ã§Û¦Ûib_udf.sql
DECLARE EXTERNAL FUNCTION ltrim
CSTRING(255)
RETURNS CSTRING(255) FREE_IT
ENTRY_POINT 'IB_UDF_ltrim' MODULE_NAME 'ib_udf';
§A¥²¶·¦bisql³s½u¸ê®Æ®w§¹²¦«á°õ¦æ¤Wzªº©R¥O(©Î¨ä¥¦ºÞ²zµ{¦¡),«h¸Ó¨ç¦¡´N·|ÀH¸ê®Æ®w¥i¥H³Q©I¥s¨Ï¥Î,
FREE_IT¬O¦b¨ç¦¡¶Ç¦^Ȥ§«á²M±¼©Ò°t¸mªº°O¾ÐÅé.
Ó¤H»{¬°¥Ø«eclient©Ò´£¨Ñªº¨ç¦¡»·¦h©óserverºÝ,¦]¦¹°£«D¥²n§_«h¾¨¶q¨Ï¥ÎclientºÝªº¨ç¦¡
#ibeasy++¤£´£¨ÑUDFªººÞ²z
#marthon´£¨Ñ
¦w¥þ©Ê(«Ø¥ß¦hÓ¸ê®Æ®w³Æ¥÷ÀÉ)
create shadow
¤@¥¹¨Ï¥Î¤Wz©R¥O«h·|«Ø¥ß¤@Ó¦P¨Bªº¸ê®Æ®w¦b¨ä¥¦ªºÀx¦s³]³Æ¤W,³o¥i¥H«O»Ù·í¸ê®Æ®wÅÞ¿è©Î¹êÅ骺Àx¦s¤¶±·lÃa®É,¦³¤@ӳƥ÷ªº¸ê®Æ®w¥i¥H§Y®É¨ú¥N
««Ø¯Á¤Þ
alter index ¯Á¤Þ¦WºÙ inactive
alter index ¯Á¤Þ¦WºÙ active
¤Wz©R¥O¥i¥H¥Î¦b««Ø¯Á¤Þ,©Î¬O¸ê®Æ®w¦^¦s®É·Qn¥[³t¨ä°õ¦æ³t«×,¤£n¦^¦s®ÉÃä¦^¦sÃ䫨¥ß¯Á¤Þ,¥ý°õ¦æinactive«h¦^¦s®É¯Á¤Þ·|¥¢¥h§@¥Î,µ¥¸ê®Æ®w
¦^¦s§¹²¦®É¦A°õ¦æactiveªº°Ê§@,«h·|««Ø¯Á¤Þ,·íµM¥u¦³¦b¨S¦³¤H¨Ï¥Î¸Ó¸ê®Æ®w®É¤~¥i¥H¨Ï¥Î