Firebird Interview Questions
1. What is Firebird?
Firebird is a relational database that offers many ANSI SQL standards features. It has support for Linux, Windows, and a variety of UNIX platforms. It offers excellent concurrency, high-performance, and powerful language support for stored procedures. First released in 1981, Firebird has now been used in many production systems. Firebird can be used without any fee for download, registration, licensing, or deployment.
2. Enlist few advantages of Firebird?
Some of the advantages of using a Firebird are:-
1.It can be used free of cost.
2.Firebird is a powerful and technologically developed product.
3.It is easily configurable than the MS SQL Server.
4.It has support for all major platforms like Windows, Linux, and Unix with easy installation steps.
5.The backup process is easy with Firebird.
6.It uses the internal SQL language for programming data checking, recounts, and filters directly into the SQL server.
7.Each Firebird database is located in one independent file so that it can be located anywhere on the disk.
8.The product functionality is not artificially limited with the Firebird.
3. Explain generators in Firebird?
Generators are a thread-safe integer count which lives inside a Firebird database. It can be created easily by just giving it a name. After creating a generator, you can increase, decrease, or get the value of it like a "var i: integer" in Delphi.
4. List the platforms supported by Firebird?
Some list of firebird supported platforms is:- Linux, Windows, and a variety of UNIX platforms.
5. What is Firebird Guardian?
Firebird Guardian is a small application that is used to check whether the Firebird server is running and restarting or if it crashes. Firebird Guardian can only be used if you run Firebird as an application. If you configure Firebird as a service, then there is no need for the Guardian. On Linux, the Super Server uses Guardian for the process called the ibguard or fbguard depending upon the Firebird version.
6. Firebird is written in which programming language?
The Firebird project is written in C++.
7. What is the default concurrency system supported by Firebird?
The Firebird architecture allows for high transaction concurrency. So by default, all the Firebird transactions are ACID compliant.
8. How would you replicate the Firebird database?
By default, Firebird doesn’t offer replication out-of-the-box, so you should use third-party tools to replicate a Firebird database.
Some of the third party tools for Firebird database replication are IBReplicator, FiBRE, FBReplicator, IBO Replication Module, ReplicadorBR, and Replicador Firebird.
9. How firebird handle row-level locks?
For an application that needs row-level locks, Firebird offers it in its SELECT statement. The WITH LOCK feature provides a limited explicit pessimistic locking capability.
//syntax for with lock feature
SELECT ... FROM single_table
[WHERE ...]
[FOR UPDATE [OF ...]]
[WITH LOCK]
The WITH LOCK feature secures a lock on the selected rows so any other transactions can be prevented from writing or reading to any of these locked rows until the transaction ends.
10. Is Firebird support UUIDs or GUIDs?
UUID is a UNIX standard, and GUID is a Microsoft standard. Firebird has basic support for UUID fields. The built-in function in the Firebird called the GEN_UUID is used to create a 128bit UUID.
11. Is it possible to determine clients IP address?
To get it from SQL, you need to use Firebird 2.0 (own address), or Firebird 2.1 (anyone's):
If you use Firebird 2.0 or higher, use the GET_RDB$Context function with ('SYSTEM', 'CLIENT_ADDRESS') parameters.
If you use Firebird 2.1 or higher, you can get address of any client by selecting from the monitoring tables.
With Firebird 1.x you can try to get the information from TCP/IP stack, using netstat or lsof commands from the command-prompt. Just search for Firebird's port (3050 or gds_db).
12. 11. How to tell Firebird to only accept conections from XYZ host or network?
This isn't really a thing you should be configuring in Firebird. There is a RemoteBindAddress setting in firebird.conf which configures on which interfaces/addresses the Firebird listens but that's all. You should really use your system's firewall to set this up.
Beside firewall, if you use Classic on Linux, you can use xinetd or inetd access control files /etc/hosts.allow and /etc/hosts.deny. With xinetd you can also edit the xinetd configuration file for Firebird service, which is in /etc/xinetd.d/firebird and add a line like this:
"only_from = 192.168.0.0/24"
13. How to pump the data from one database to another?
Many recommend IB Pump or IB Data Pump, but the problem is when you have complex relations between tables. In such cases, it is better to use tool like FBCopy which sorts the tables by dependencies (foreign keys, check constraints) into correct order.
No comments:
Post a Comment