Last Updated: 24.04.2018
If you're looking for Oracle DBA Interview Questions for Experienced or Freshers, you are at right place. There are a lot of opportunities from many reputed companies in the world. According to research, Oracle DBA has a market share of about 0.7%. So, You still have an opportunity to move ahead in your career in Oracle DBA Development. Mindmajix offers Advanced Oracle DBA Interview Questions 2018 that helps you in cracking your interview & acquire dream career as Oracle DBA Developer.
|Feature||Oracle DBA||Oracle Developer|
|Key Roles||Managing Databases||Development(Coding)|
|Type of Tasks||Streamlined||Wide Range|
|Work Environment||Database maintenance||Database development|
|Area of work||Backend database management||Front-end development|
|Few other tasks||Backup, recovery, server connectivity, etc||Coding, designing UI, etc|
Q. List four possible ways (direct or indirect) to execute an SQL query against an Oracle Database?
Q. What is SQL*Plus? How can one acquire it and what kind of operations can be performed with it?
Q. A user is logged on to a Linux server as root where Oracle database is running. The Oracle is installed at “/uo 1/app/oracle/product/188.8.131.52/dbhome” and the name of the SID is “ORCL”. The user wants to connect to the database locally using operating system authentication with SYSDBA privileges. Show the command that the user has to execute.
Q. In our organization, we’re using an Oracle database whose version is 184.108.40.206. Explain what each digit shows.
“11”: This first digit shows the major database version. Oracle usually publishes a major release once a 4 year. This digit is usually followed by a character describing the nature of the release. For example: 9i (internet), 10g (grid), 11g (grid), 12c (cloud).
“2”: This second digit shows the maintenance release number of the software. Oracle publishes the major release as maintenance release 1 and then usually publishes a second maintenance release during the lifetime of the software. New features are added to database Software with maintenance releases.
“o”: This third digit is Fusion Middleware Number. This will be o for database software.
“4”: This fourth digit is called Component-Specific Release Number and it shows the path set update that was applied to the software. Patch set updates are published 4 times a yearby Oracle and as you apply them to your database software, this fourth digit advances.
Q. You’re at a client’s office and you are expected to solve a problem in their database. The client is not sure about their database version and you want to find out the version of their existing database. Describe three different methods you can use to find the version of database software.
Oracle Database 11g Enterprise Edition Release 220.127.116.11.0 – Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options”
SQL: SELECT * FROM v$version;
A sample output would look like below:
Oracle Database 11g Enterprise Edition Release 18.104.22.168.0 – Production
PL/SQL Release 22.214.171.124.0 – Production
CORE 11.2.o.4.o Production
TNS for Linux: Version 126.96.36.199.0 – Production
NLSRTLVersion 188.8.131.52.0 – Production
Q. Your client said that he forgot the password for “SYSTEM” user of his database and he no longer could connect. How would you recover this admin password?
Q. What is a password file and why is it needed?
Passwords for database users are stored in the data dictionary of the database. When a user wants to log into the database, the username and password provided by the user is checked against the values stored in the database. If the username and password match, the user is granted access to database. The data dictionary is part of the database and it will be accessible as long as the database is open. The passwords for administrators are stored in the dictionary as well.
When the database is closed, the data dictionary will be inaccessible. There needs to be a mechanism for administrators to logon to database even when it is closed, because it is one of the administrator’s tasks to start up a down database. A password file is a separate operating system file that is stored on disk outside of the database. The username and password for the users who have SYSDBA or SYSOPER privileges are stored in it. Administrators who have those privileges are authenticated using this password file even when the database is down.
Q. You want to find out how many users are defined in the password file and what privileges those user have. How would you accomplish this?
You need to query the “v$pwfile_users” view to get information about the existing users in the password file. Execute the SQL query below:
Sql>SELECT * FROM v$pwfile_users;
The query above will return four columns for each user in the password file. The column names are USERNAME, SYSDBA, SYSOPER and SYSASM.
Q. What would be the main responsibilities of an Oracle DBA in an organization?
The main duty of an Oracle DBA isto keep the Oracle Databases of the organization up and running. This may involve installing and configuring a database from scratch.
On a running system, the DBA will be the only privileged person who can shut down and start up the database.
The DBA will create new users and manage the privileges of each user.
He will take regular backups to ensure that data is safe. In case of a disaster, he will be responsible of restoring the database from backups. He will have to do monitor the space usage and do capacity planning for the database.
He will be responsible for enforcing security policies. He will have to monitor database activities. He will have to tune the database so that it works at an acceptable speed.
He is expected to follow the latest patches and apply them when applicable.
Q. How does an Oracle DBA role differ from an Oracle Developer role in an organization? Are there any similarities between these too?
An Oracle developer is mainly responsible for developing backend applications. They do data modelling according to business rules. They design tables, create indexes and other types of constraints. They are expected to know SQL and PL/SQL. The develop procedures using this languages. However, the Oracle developers are not expected to administer the database software itself.
On the other side, an Oracle DBA’s main duty is to administer the database which involves tasks like doing maintenance to keep the databases up and running, taking backups, enforcing security policies etc. DBAs are not primarily assigned to develop code. DBAs are supposed to have a good knowledge of SQL and PL/SQL like a developer as these are also required for administering the database.
According to the structure of the organization, DBAs might also be assigned development tasks or at least assist the developers where necessary.
Q. There are 10 identical servers and you want to install Oracle Database on each of them. What would you use to automate the installation process?
If you are going to do batch installations, it is best to do it with Oracle Universal Installer in silent mode. For single installations.it is best to start installer in “interactive mode”and set installation options at each window. However in batch installations, this will take long. You need to do the installations in “silent” mode with a “response file”. In silent installation, you start the Oracle Universal Installer from a command prompt and specify the location of the “response file”.
The installation files and the response file can be shared among the servers via NFS so that you won’t have to copy the setup files to each server.
Q. You want to create a response file to speed up the installation of databases. How would you prepare a response file?
A response file is a plain text file, where options to create a database are stored. It is possible to create it manually from scratch but that would take long and would be erroneous.
Installation media comes with a template response file. It is rather easier to customize it manually. This file also contains notes about the parameters.
However the easiest and most reliable way to create a response file is using Oracle Universal Installer. If you start the installer in “record” mode, every option you choose at each step is automatically recorded in a response file in correct format. After the installer completes in “record” mode, you’ll have a complete response file with all the options set in it.
Q. When creating a database with SQL script, what would you specify in the script?
It is also possible to create a database via an SQL script. In this script I would specify:
Q. What makes up an Oracle Instance?
An instance is made up of a shared memory region on RAM called System Global Area (SGA) and background processes.
The system global area is a shared memory, which means it can be accessed by multiple processes. This are holds data which is required by the instance to operate.
The background processes are operating system processes and each process has a specific responsibility in the instance.
The System Global Area and background processes are created when the instance is “started”. When the instance is “shut down”, the processes are killed and the shared memory region is “released” back to operating system.
Q. What constitutes an Oracle Database?
An Oracle database is resides on disk and this is permanent. It is composed of files that are stored on disk. These files can be categorized into three types:
Q. Which tools can you use to start up an Oracle database?
You can start up a database with three tools.
Q. During startup of a database, at which order does Oracle software search a parameter file?
A parameter file holds instance parameters which govern how an instance operates. In order to startup an instance, Oracle needs to locate this file.
The search order is as below: /dbs/spfile.ora – This is an server parameter file and this is the first place that oracle will look for. SID- is the service identifier of the instance.
<$ORACLE_HOME-/dbs/spfile.ora -If Oracle cannot find the file in the first location, it will search this file. This is again a server parameter file.
/dbs/init.ora – This is a parameter file and it is plain text. If Oracle cannot find the two file listed above, it will search for this file. This is the last location to search.
Q. At what stages does an instance pass while starting up?
You can startup a database with the modes below:
Q. You want to do maintenance on your database but during the maintenance period, you don’t want any user to be able to connect to the database. How would you accomplish this?
When a database is open, any user with “CREATE SESSION” privilege can make a connection. However it is possible to open the database in “restricted” mode. When a database is open in restricted mode, only users with “RESTRICTED SESSION” privilege can make a connection to the database. By default, only DBAs have “RESTRICTED SESSION” privilege and it should not be granted to regular users.
Opening a database in “restricted” mode is a good way to prevent regular users from accessing the database during maintenance.
Q. Your database is open. You don’t want to interrupt currently connected users but you want to temporarily disable further logons. What would you do to achieve this and how would you revert the database back to normal state after that?
I would put the database in “restricted mode”. While in restricted mode, only users with “RESTRICTED SESSION” privilege can make a connection. I would run the below command to put database in restricted mode:
Sql> alter system enable restricted session;
After executing this command regular users won’t be able to logon to the database. Once I want to revert the database to normal, I execute this command:
Sql>alter system disable restricted session;
Q. What are the types of shutdown modes of an Oracle database?
Q. The data files of your database reside on a storage system. You want to take a snapshot of the storage so that you can use it backup purposes. You also want to ensure that no data is written to data files while the snapshot is being taken. Is it possible to accomplish this while the database is open?
Yes, it is possible to stop all I/O activity while the database is open. Normally, when a database is open, there will be constant I/O to online redolog files or data files. Even if the database is idle, there is no guarantee that database will not write anything to files during snapshot.
However, if you “suspend” the database, Oracle will halt I/O operations to these datafiles until it is reverted back to normal mode. So, you should “suspend” the database, take the snapshot of the disk and then put the database back in normal mode immediately after that.
Q. What kind of information can be given while creating a sequence?
Q. You want your database to start automatically, after a reboot of the server. How would you do that?
In default configuration, Oracle database will not automatically start after the server reboots. You’ll have to start it manually after each reboot. You’ll usually want it to start automatically. There are two methods to accomplish this:
Q. Which components of your database environment can be protected by an “Oracle Restart” configuration?
Q. Explain the difference between “shared server” architecture and “dedicated server” architecture?
When a user connects to a database, he sends SQL queries to the database to execute. These SQL queries are executed by a “server process” and the result is returned back to the user. In “dedicated server” architecture, the instance will create one server process for each connected user.
That process will be “dedicated” to that user and will only serve that client.
However in “shared server” architecture, a single server process will serve multiple clients. In shared server architecture, the total memory consumption will be less. However, certain operations like DBA activities can only be performed in dedicated server.
Q. Explain how “shared server” architecture works.
In shared server architecture, the clients connect to a “dispatcher” process. This dispatcher is responsible for delivering the SQL requests to the “request queue”.
The shared server process monitors the request queue. When they find an incoming request, they execute this SQL query and place the results in the response queue. The request queue and the response queue reside in the system global area.
The dispatcher processes also monitor response queue. When it receives a result, they deliver the result to the relevant client.
In this architecture, there will be multiple shared server processes and dispatcher processes.
Q. What are the instance parameters that are used for configuring shared server architecture?
Q. Explain how the “Database Writer” process works.
There can be multiple database background processes. They are named as “DBWn” at operating system. This process is responsible for writing “dirty” buffers to disk. When a server process wants to update a data block, it reads the block from disk to buffer cache if the block is not already in the cache and then updates the copy in the cache. The modified database block in the buffer cache is called a “dirty” block.
Oracle Data Structures & SQL
Q. Why is index used?
Q. Who is responsible to update the indexes?
Oracle automatically maintains and uses indexes and when any change is made in the table data Oracle automatically distributes it into relevant indexes.
Q. What is the definition of table in Oracle?
Table is the first level of physical unit in database. Oracle uses tables of a database to store data into rows and columns. Table is the first level of physical unit in database.
Q. What do you mean by view and what are its types?
View is a type of virtual table and there is a query attached to every view in order to identify specific rows and columns of the table. Views are read-only as well as read-write.
Q. In Oracle terminology, what do you mean by tablespace?
Tablespace is a Logical Storage Unit used to group related logical structures together. It is the logical structure where all the objects of database will be grouped.
Q. When does the SYSTEM tablespace get created?
In Oracle every database has a tablespace called SYSTEM and it is automatically created when database is created. It also contains the data dictionary table for the whole data.
Q. What is the relationship between tablespace and datafiles?
Each tablespace is divided into one or more data files and one and more tablespace(s) are created for each database.
Q. How do we use materialized view?
Materialized views are objects that have reduced sets of information that have been summarized, grouped, or aggregated from base tables. They are typically used in data warehouse or decision support systems.
Q. In Oracle terminology, what is Synonym?
A synonym is an identifier that can be used to reference another database object in a SQL statement. The types of database objects for which a synonym may be created are a table, view, sequence, or another synonym.
Q. Different types of synonyms are?
Synonym types are private and public.
Q. What you understand by public synonym?
A public synonym does not belong to any schema. In other words, when any database user can access it, it is called public synonym.
Q. What you understand by private synonym?
A private synonym is one that does belong to a specific schema. In other words, when only owner can access it, it is called private synonym.
Q. What are the advantages of synonyms?
Synonym is used to mask the original name and owner of an object and provides public access to an object.
Q. What is a sequence?
A sequence generates a serial list of unique numbers for numerical columns of a database tables. We can use sequence on columns for data where we want to insert data in sequential manner.
Q. What you understand by private database link?
Private database link is created for a specific user. It is only used when the owner of the link specifies a global object name in a SQL statement or in the definition of the owner’s views or procedures.
Q. What you understand by public database link?
Database link is a schema object in one database to access objects in another database. When you create database link with Public clause it is available for access to all the users.
Q. What do you mean by row chaining?
Row Chaining occurs when the row is too large to fit into one data block when it is first inserted. In this case, Oracle stores the data for the row in a chain of data blocks (one or more) reserved for that segment. Row chaining most often occurs with large rows, such as rows that contain a column of datatype LONG, LONG RAW, LOB, etc. Row chaining in these cases is unavoidable.
Q. What is the definition of extent?
An extent is a set of contiguous blocks allocated in a database. In the Oracle database program, the first set of contiguous blocks, set up automatically when a segment is created, is called the initial extent. After the initial extent has been filled, the program allocates more extents automatically. These are known as next extents.
The total number of extents that can be allocated in a database is limited by the amount of storage space available, or in some cases, by the program used.
Q. Explain the advantages of using view?
The view helps provide security, presentation of data in a different perspective and store complex queries.
Q. What do you mean by datafile?
An Oracle datafile is a big unit of physical storage in the OS file system. One or many Oracle data files are organized together to provide physical storage to a single Oracle tablespace.
Datafile is used to store tables and indexes allocated to the database. Every database consists of one or more data files.
Q. Explain the properties of data files?
Each data file can only be associated with only one database and once it is created it can not change its size.
Q. What do you mean by redo log?
The most crucial structure for recovery operations is the redo log, which consists of two or more pre-allocated files that store all changes made to the database as they occur. Every instance of an Oracle Database has an associated redo log to protect the database in case of an instance failure.
Q. Main function(s) of redo log is?
Redo log’s main function is to store all changes made to the database as they occur.
Q. What are the contents of control file?
Every Oracle database has a control file. A control file is a small binary file that records the physical structure of the database and includes:
Q. What are the advantages of control file?
The control file must be available for writing by the Oracle database server whenever the database is open. Without the control file, the database cannot be mounted and recovery is difficult. You might also need to create control files, if you want to change particular settings in the control files.
Q. What is definition of SQL?
SQL is a database computer language designed for managing data in relational database management systems (RDBMS), and originally based upon relational algebra. Its scope includes data insert, query, update and delete, schema creation and modification, and data access control.
Q. What is the use of SELECT statement?
SELECT statement is used to select the set of specific values from a table in a database depending on the various conditions specified in a SQL query.
Q. How can you compare a part of the name rather than the entire name?
In order to compare part we use LIKE operator which acts like a regex engine for database.
Q. What is the keyword to get distinct records from a table?
SELECT DISTINCT allows the user to select the distinct values from a table in a database.
Q. In order to get sorted records from a table, what is the keyword?
ORDER BY keyword is used for sorting the results. It returns the sorted results to your program.
Q. In order to get total records from a table, what is the keyword?
To find the total number of records in a table, COUNT keyword is used.
Q. What is definition of GROUP BY?
GROUP BY keyword is an aggregate function such as SUM, MULTIPLE, etc and without this function sum for each individual group values can not be calculated.
Q. Explain the difference among “dropping a table”, “truncating a table” and “deleting all records” from a table.
Q. Different types of SQL statements are?
There are five types of SQL statements
Q. What is definition of transaction?
Oracle supports transactions as defined by the SQL standard. A transaction is a sequence of SQL statements that Oracle treats as a single unit of work. As soon as you connect to the database, a transaction begins. Once the transaction begins, every SQL DML (Data Manipulation Language) statement you issue subsequently becomes a part of this transaction. A transaction ends when you disconnect from the database, or when you issue a COMMIT or ROLLBACK command.