From Fedora Project Wiki

mNo edit summary
Line 13: Line 13:
** absolute file name at server filesystem.
** absolute file name at server filesystem.
** <hostname>:<database> where db-file mapping is in server ''/etc/firebird/aliases'' file.
** <hostname>:<database> where db-file mapping is in server ''/etc/firebird/aliases'' file.
* You might want to read about ''transaction isolation levels'', it could be confusing at the beginning.
Packager's notes:
Packager's notes:
  # cat /usr/share/doc/$(rpm -q --qf="%{NAME}-%{VERSION}" firebird-filesystem)/README.Fedora
  # cat /usr/share/doc/$(rpm -q --qf="%{NAME}-%{VERSION}" firebird-filesystem)/README.Fedora

Revision as of 11:51, 27 January 2021

Firebird is a cross-platform SQL-database, forked in 2000 from Borland's Interbase RDBMS. These are quick instructions how to get started with Fedora / CentOS system.

Good to know

  • binaries have been renamed with postfix -fb to avoid conflict with ODBC-binaries.
  • firebird comes with default database employee.
  • server config file is /etc/firebird/firebid.conf
  • all databases reside physically in /var/lib/firebird/data directory
  • on CentOS /etc/init.d/firebird-superserver daemon arguments (-daemon -forever -pidfile) are in wrong order.
  • cli interpreter comes in server package, there is no traditional client-server split/subpackages.
  • usernames and passwords are truncated to 8 characters, masterkey becomes masterke, both are valid.
  • DSN syntax:
    • absolute file name at server filesystem.
    • <hostname>:<database> where db-file mapping is in server /etc/firebird/aliases file.
  • You might want to read about transaction isolation levels, it could be confusing at the beginning.

Packager's notes:

# cat /usr/share/doc/$(rpm -q --qf="%{NAME}-%{VERSION}" firebird-filesystem)/README.Fedora

Installation

There are three versions of Firebird server software. You want superserver.

# yum install -y firebird-superserver
# service firebird-superserver start

Changing the admin password

# gsec -user sysdba -pass masterkey -mo sysdba -pw newpwd1

Creating a user

# gsec -user sysdba  -password masterkey  add dude -pw dudepwd1

Connecting to a database

A localhost database:

# isql-fb -u sysdba -p masterkey employee
SQL> SHOW USERS;
# SYSDBA

SQL> SHOW VERSION;
ISQL Version: LI-V2.5.5.26952 Firebird 2.5
Server version:
Firebird/linux AMD64 (access method), version "LI-V2.5.5.26952 Firebird 2.5"
Firebird/linux AMD64 (remote server), version "LI-V2.5.5.26952 Firebird 2.5/tcp (example.com)/P12"
Firebird/linux AMD64 (remote interface), version "LI-V2.5.5.26952 Firebird 2.5/tcp (example.com)/P12" 
on disk structure version 11.2

SQL> QUIT;
#

A remote host database, with aliases mapping:

# isql-fb -u sysdba -p masterkey example.com:employee

Creating a database

There is no need to connect any database to create a new database into server. When CREATE DATABASE is entered, intrepreter will instantly connect to the new database.

# isql-fb -u sysdba -p masterkey
SQL> CREATE DATABASE '/var/lib/firebird/data/foobar.fdb' PAGE_SIZE 8192 DEFAULT CHARACTER SET UTF8;

SQL> SHOW DATABASE;
Database: /var/lib/firebird/data/foobar.fdb
        Owner: SYSDBA                         
PAGE_SIZE 8192
Number of DB pages allocated = 164
Sweep interval = 20000
Forced Writes are ON
Transaction - oldest = 1
Transaction - oldest active = 2
Transaction - oldest snapshot = 2
Transaction - Next = 6
ODS = 11.2
Default Character set: UTF8
SQL>

Removing a database

Removing a database, deleting all its content - must be done in connected state and can be done when being connected to the database being removed.

# isql-fb -u sysdba -p masterkey
SQL>
SQL> CONNECT foobar;
SQL> DROP DATABASE;
SQL> quit
CON>

This also removes the actual database file from filesystem.

Backup

# gbak -b -v -user sysdba -pass masterkey example.com:foobar /var/tmp/foobar.fbk

Backups are in binary format, not text.

Finally

Change that sysdba password.

External links