A database administrator's responsibilities can include the following tasks:
Installing and upgrading the Oracle Database server and application tools
Allocating system storage and planning future storage requirements for the database system
Creating primary database storage structures (tablespaces) after application developers have designed an application
Creating primary objects (tables, views, indexes) once application developers have designed an application
Modifying the database structure, as necessary, from information given by application developers
Enrolling users and maintaining system security
Ensuring compliance with Oracle license agreements
Controlling and monitoring user access to the database
Monitoring and optimizing the performance of the database
Planning for backup and recovery of database information
Maintaining archived data on tape
Backing up and restoring the database
Contacting Oracle for technical support
Application developers design and implement database applications.
Their responsibilities include the following tasks:
Designing and developing the database application
Designing the database structure for an application
Estimating storage requirements for an application
Specifying modifications of the database structure for an application
Relaying this information to a database administrator
Tuning the application during development
Establishing security measures for an application during development
Database users interact with the database through applications or utilities.
A typical user's responsibilities include the following tasks:
Entering, modifying, and deleting data, where permitted
Generating reports from the data
Evaluate how Oracle Database and its applications can best use the available computer resources.
This evaluation should reveal the following information:
How many disk drives are available to the Oracle products
How many, if any, dedicated tape drives are available to Oracle products
How much memory is available to the instances of Oracle Database you will run (see your system configuration documentation)
As the database administrator, you install the Oracle Database server software and any front-end tools and database applications that access the database.
In some distributed processing installations, the database is controlled by a central computer (database server) and the database tools and applications are executed on remote computers (clients). In this case, you must also install the Oracle Net components necessary to connect the remote systems to the computer that executes Oracle Database.
database.
It is important to plan how the logical storage structure of the database will affect system performance and various database management operations. For example, before creating any tablespaces for your database, you should know how many data files will comprise the tablespace, what type of information will be stored in each tablespace, and on which disk drives the data files will be physically stored. When planning the overall logical storage of the database structure, take into account the effects that this structure will have when the database is actually created and running. Consider how the logical storage structure of the database will affect:
The performance of the computer running Oracle Database
The performance of the database during data access operations
The efficiency of backup and recovery procedures for the database
Plan the relational design of the database objects and the storage characteristics for each of these objects. By planning the relationship between each object and its physical storage before creating it, you can directly affect the performance of the database as a unit. Be sure to plan for the growth of the database.
In distributed database environments, this planning stage is extremely important. The physical location of frequently accessed data dramatically affects application performance.
During the planning stage, develop a backup strategy for the database. You can alter the logical storage structure or design of the database to improve backup efficiency.
After you complete the database design, you can create the database and open it for normal use.
You can create a database at installation time, using the Database Configuration Assistant, or you can supply your own scripts for creating a database.
After you create the database structure, perform the backup strategy you planned for the database.
Create any additional redo log files, take the first full database backup (online or offline), and schedule future database backups at regular intervals.
After you back up the database structure, you can enroll the users of the database in accordance with your Oracle license agreement, and grant appropriate privileges and roles to these users.
After you create and start the database, and enroll the system users, you can implement the planned logical structure database by creating all necessary tablespaces. When you have finished creating tablespaces, you can create the database objects.
When the database is fully implemented, again back up the database. In addition to regularly scheduled backups, you should always back up your database immediately after implementing changes to the database structure.
Optimizing the performance of the database is one of your ongoing responsibilities as a DBA. Oracle Database provides a database resource management feature that helps you to control the allocation of resources among various user groups.
The database resource manager is described in Managing Resources with Oracle Database Resource Manager.
After the database installation, download and install Release Updates (Updates) and Release Update Revisions (Revisions) for your Oracle software on a regular basis.
Starting with Oracle Database 18c, Oracle provides quarterly updates in the form of Release Updates (Updates) and Release Update Revisions (Revisions). Oracle no longer releases patch sets. Check the My Oracle Support website for required updates for your installation.
After you have an Oracle Database installation properly configured, tuned, patched, and tested, you may want to roll that exact installation out to other hosts.
Reasons to do this include the following:
You have multiple production database systems.
You want to create development and test systems that are identical to your production system.
Instead of installing, tuning, and patching on each additional host, you can clone your tested Oracle Database installation to other hosts, saving time and avoiding inconsistencies. There are two types of cloning available to you:
Cloning an Oracle home—Just the configured and patched binaries from the Oracle home directory and subdirectories are copied to the destination host and fixed to match the new environment. You can then start an instance with this cloned home and create a database.
You can use Oracle Enterprise Manager Cloud Control to clone an Oracle home to one or more destination hosts. You can manually clone an Oracle home using a set of provided scripts and Oracle Universal Installer.
Cloning a database—The tuned database, including database files, initialization parameters, and so on, are cloned to an existing Oracle home (possibly a cloned home).
You can use Cloud Control to clone an Oracle database instance to an existing Oracle home.
2.2.1.1 About Connecting to the Database with SQL*PLUS
Step 1: Open a Command Window
Step 2: Set Operation System Enviroment Variables
Example 1-1 Setting Environment Variables in Unix (C Shell)
- setenv ORACLE_SID orcl
- setenv ORACLE_HOME /u01/app/oracle/product/database_release_number/dbhome_1
- setenv LD_LIBRARY_PATH $ORACLE_HOME/lib:/usr/lib:/usr/dt/lib:/usr/openwin/lib:/usr/ccs/lib
Example 1-2 Setting Environment Variables in Linux (Bash Shell)
- export ORACLE_SID=orcl
- export ORACLE_HOME=/u01/app/oracle/product/database_release_number/dbhome_1
- export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib:/usr/dt/lib:/usr/openwin/lib:/usr/ccs/lib
Example 1-3 Setting Environment Variables in Microsoft Windows
- SET ORACLE_SID=orawin2
- setenv LD_LIBRARY_PATH $ORACLE_HOME/lib:/usr/lib:/usr/dt/lib:/usr/openwin/lib:/usr/ccs/lib:$LD_LIBRARY_PATH
Figure 1-1 Example of an Oracle Database Release Number

First numeral: This numeral indicates the major release version. It also denotes the last two digits of the year in which the Oracle Database version was released for the first time.
Second numeral: This numeral indicates the release update version (Update, or RU).
Third numeral: This numeral indicates the release update revision version (Revision, or RUR).
Fourth numeral: This numeral is reserved for future use. Currently it is always set to 0.
Fifth numeral: Although only the first three fields are commonly used, the fifth field can show a numerical value that redundantly clarifies the release date of a release update (RU), such as 19.7.0.0.200414.
- SQL> col PRODUCT FORMAT A38
- SQL> col VERSION FORMAT A10
- SQL> COL VERSION_FULL FORMAT A12
- SQL> COL STATUS FORMAT A12
- SQL> SELECT * FROM PRODUCT_COMPONENT_VERSION;
-
- PRODUCT VERSION VERSION_FULL STATUS
- -------------------------------------- ---------- ------------ ------------
- Oracle Database 19c Enterprise Edition 19.0.0.0.0 19.3.0.0.0 Production
-
- SQL>
Administrative User Accounts
CREATE ANY TABLE or ALTER SESSION privilege, or EXECUTE privilege on packages owned by the SYS schema.SYS is automatically created with all the privileges.SYSTEM is also automatically created and granted the DBA role.SYSBACKUP, SYSDG, SYSKM, and SYSRAC.DBA role is automatically created with every Oracle Database installation. This role contains most database system privileges. Therefore, the DBA role should be granted only to actual database administrators.About Administrative User Accounts
The following administrative user accounts are automatically created when Oracle Database is installed:
SYS
SYSTEM
SYSBACKUP
SYSDG
SYSKM
SYSRAC
Note:If the database password file name or location is changed, then run the following command for the changes to take effect:
SQL> ALTER SYSTEM FLUSH PASSWORDFILE_METADATA_CACHE;
To synchronize the passwords for non-SYS administrative users, such as SYSDBA, SYSOPER, SYSBACKUP, SYSDG, and SYSKM users, you must first revoke and then regrant the privileges to these users as follows:
1.Find all users who have been granted the SYSDBA privilege
- SQL> SELECT USERNAME FROM V$PWFILE_USERS WHERE USERNAME != 'SYS' AND SYSDBA='TRUE';
-
- USERNAME
- --------------------------------------------------------------------------------
- MYDBA
-
- SQL>
2.Revoke and then re-grant the SYSDBA privilege to these users
- REVOKE SYSDBA FROM non-SYS-user;
- GRANT SYSDBA TO non-SYS-user;
3.Find all users who have been granted the SYSOPER privilege
- SQL> SELECT USERNAME FROM V$PWFILE_USERS WHERE USERNAME != 'SYS' AND SYSOPER='TRUE';
-
- no rows selected
-
- SQL>
4.Revoke and regrant the SYSOPER privilege to these users.
- REVOKE SYSOPER FROM non-SYS-user;
- GRANT SYSOPER TO non-SYS-user;
5.Find all users who have been granted the SYSBACKUP privilege.
SELECT USERNAME FROM V$PWFILE_USERS WHERE USERNAME != 'SYS' AND SYSBACKUP ='TRUE';
6.Revoke and regrant the SYSBACKUP privilege to these users.
- REVOKE SYSBACKUP FROM non-SYS-user;
- GRANT SYSBACKUP TO non-SYS-user;
7.Find all users who have been granted the SYSDG privilege.
SELECT USERNAME FROM V$PWFILE_USERS WHERE USERNAME != 'SYS' AND SYSDG='TRUE';
8.Revoke and regrant the SYSDG privilege to these users.
- REVOKE SYSDG FROM non-SYS-user;
- GRANT SYSDG TO non-SYS-user;
9.Find all users who have been granted the SYSKM privilege.
SELECT USERNAME FROM V$PWFILE_USERS WHERE USERNAME != 'SYS' AND SYSKM='TRUE';
10.Revoke and regrant the SYSKM privilege to these users.
- REVOKE SYSKM FROM non-SYS-user;
- GRANT SYSKM TO non-SYS-user;
Granting and Revoking Administrative Privileges
- SQL> show user;
- USER is "SYS"
- SQL> revoke sysdba from mydba;
- revoke sysdba from mydba
- *
- ERROR at line 1:
- ORA-01917: user or role 'MYDBA' does not exist
-
-
- SQL> ALTER SESSION SET CONTAINER=ORCLPDB1;
-
- Session altered.
-
- SQL> revoke sysdba from mydba;
-
- Revoke succeeded.
-
- SQL> grant sysdba to mydba;
-
- Grant succeeded.
-
- SQL>
Viewing Database Password File Members
- SQL> select * from v$pwfile_users;
-
- USERNAME
- --------------------------------------------------------------------------------
- SYSDB SYSOP SYSAS SYSBA SYSDG SYSKM ACCOUNT_STATUS
- ----- ----- ----- ----- ----- ----- ------------------------------
- PASSWORD_PROFILE
- --------------------------------------------------------------------------------
- LAST_LOGIN
- ---------------------------------------------------------------------------
- LOCK_DATE EXPIRY_DATE
- ------------------ ------------------
- EXTERNAL_NAME
- --------------------------------------------------------------------------------
- AUTHENTI COM CON_ID
- -------- --- ----------
- SYS