|Oracle8i Administrator's Guide
This chapter describes the procedures for starting and stopping an Oracle database, and includes the following topics:
This section includes the following topics:
To start up a database or an instance from the command line, use SQL*Plus to connect to Oracle with administrator privileges and then issue the STARTUP command. You can also use Recovery Manager to execute STARTUP and SHUTDOWN commands. If you are using the Enterprise Manager GUI and prefer not to use the command line, refer to the Oracle Enterprise Manager Administrator's Guide for instructions.
You can start an instance and database in a variety of ways:
In addition, you can force the instance to start, or start the instance and have complete media recovery begin immediately. If your operating system supports the Oracle Parallel Server, you may start an instance and mount the database in either exclusive or shared mode.
See Also: For more information about starting a database in an OPS environment, see Oracle8i Parallel Server Concepts and Administration.
For more information on SQL*Plus command syntax, see SQL*Plus User's Guide and Reference.
For more information about Recovery Manager commands, see the Oracle8i Backup and Recovery Guide.
You need to perform several tasks before attempting to start an instance.
connect username/password as sysdba
Note that you cannot be connected via a multi-threaded server.
STARTUP database_name PFILE=myinit.ora
If you do not specify the PFILE option, Oracle uses the standard parameter file. If you do not specify a database name Oracle uses the value for DB_NAME in the parameter file that starts the instance.
See Also: The use of filenames is specific to your operating system. See your operating system-specific Oracle documentation.
For information about the DB_NAME parameter, see Oracle8i Reference.
The following scenarios describe the many ways in which you can start up an instance.
You may encounter problems starting up an instance if control files, database files, or redo log files are not available. If one or more of the files specified by the CONTROL_FILES parameter does not exist or cannot be opened when you attempt to mount a database, Oracle returns a warning message and does not mount the database. If one or more of the datafiles or redo log files is not available or cannot be opened when attempting to open a database, Oracle returns a warning message and does not open the database.
You can start an instance without mounting a database; typically, you do so only during database creation. Use the STARTUP command with the NOMOUNT option:
You can start an instance and mount a database without opening it, which you can do when you want to perform specific maintenance operations. For example, the database must be mounted but not open during the following tasks:
Start an instance and mount the database, but leave it closed by using the STARTUP command with the MOUNT option:
Normal database operation means that an instance is started and the database is mounted and open; this mode allows any valid user to connect to the database and perform typical data access operations.
Start an instance and then mount and open the database by using the STARTUP command by itself:
You can start an instance and mount and open a database in restricted mode so that the database is available only to administrative personnel (not general database users). Use this mode of database startup when you need to accomplish one of the following tasks:
Typically, all users with the CREATE SESSION system privilege can connect to an open database. Opening a database in restricted mode allows database access only to users with both the CREATE SESSION and RESTRICTED SESSION system privilege; only database administrators should have the RESTRICTED SESSION system privilege.
Start an instance (and, optionally, mount and open the database) in restricted mode by using the STARTUP command with the RESTRICT option:
Later, use the ALTER SYSTEM statement to disable the RESTRICTED SESSION feature.
See Also: For more information on the ALTER SYSTEM statement, see the Oracle8i SQL Reference.
In unusual circumstances, you might experience problems when attempting to start a database instance. You should not force a database to start unless you are faced with the following:
If one of these situations arises, you can usually solve the problem by starting a new instance (and optionally mounting and opening the database) using the STARTUP command with the FORCE option:
If an instance is running, STARTUP FORCE shuts it down with mode ABORT before restarting it.
If you know that media recovery is required, you can start an instance, mount a database to the instance, and have the recovery process automatically start by using the STARTUP command with the RECOVER option:
STARTUP OPEN RECOVER;
If you attempt to perform recovery when no recovery is required, Oracle issues an error message.
If your Oracle server allows multiple instances to access a single database concurrently, choose whether to mount the database exclusively or in parallel. For example, open in parallel mode you can issue:
STARTUP OPEN sales PFILE=INITSALE.ORA PARALLEL;
The following statement starts an instance using the parameter file INITSALE.ORA, mounts and opens the database named
sales in exclusive mode, and restricts access to administrative personnel. The database administrator is already connected with administrator privileges.
STARTUP OPEN sales PFILE=INITSALE.ORA EXCLUSIVE RESTRICT;
Many sites use procedures to enable automatic startup of one or more Oracle instances and databases immediately following a system start. The procedures for performing this task are specific to each operating system.
If your local Oracle server is part of a distributed database, you might need to start a remote instance and database. Procedures for starting and stopping remote instances vary widely depending on communication protocol and operating system.
See Also: For more information about making a database available to non-privileged users, see "Restricting Access to an Open Database".
For more information about recovering control files, database files, and redo logs, see Chapter 6, "Managing the Online Redo Log" and Chapter 7, "Managing Archived Redo Logs".
For more information about the side effects of aborting the current instance, see "Shutting Down with the ABORT Option".
For more information about starting up in exclusive or parallel mode, see the Oracle8i Parallel Server Concepts and Administration manual.
For more information about the restrictions that apply when combining options of the STARTUP statement, see the Oracle8i SQL Reference.
For more information about automatic startup procedure topics, see your operating system-specific Oracle documentation.
You can make a database partially available by starting an instance and opening a mounted database. The following sections explain how to alter a database's availability:
When you need to perform specific administrative operations, the database must be started and mounted to an instance, but closed. You can achieve this scenario by starting the instance and mounting the database.
When mounting the database, indicate whether to mount the database exclusively to this instance or concurrently to other instances.
To mount a database to a previously started instance, use the SQL statement ALTER DATABASE with the MOUNT option. Use the following statement when you want to mount a database in exclusive mode:
ALTER DATABASE MOUNT;
See Also: For a list of operations that require the database to be mounted and closed (and procedures to start an instance and mount a database in one step), see "Starting an Instance and Mounting a Database".
You can make a mounted but closed database available for general use by opening the database. To open a mounted database, use the SQL ALTER DATABASE statement with the OPEN option:
ALTER DATABASE OPEN;
After executing this statement, any valid Oracle user with the CREATE SESSION system privilege can connect to the database.
Opening a database in read-only mode enables you to query an open database while eliminating any potential for online data content changes. While opening a database in read-only mode guarantees that datafile and redo log files are not written to, it does not restrict database recovery or "state" modifications that don't generate redo. For example, you can take datafiles offline or bring them online since these operations do not effect data content.
Ideally, you open a database read-only when you alternate a standby database between read-only and recovery mode; note that these are mutually exclusive modes.
The following statement opens a database in read-only mode:
ALTER DATABASE OPEN READ ONLY;
You can also open a database in read-write mode as follows:
ALTER DATABASE OPEN READ WRITE;
See Also: For more information about the ALTER DATABASE statement, see the Oracle8i SQL Reference.
For more conceptual details about opening a database in read-only mode, see Oracle8i Concepts.
Under normal conditions, all users with the CREATE SESSION system privilege can connect to an instance. However, you can take an instance in and out of restricted mode. When an instance is in restricted mode, only users who have both the CREATE SESSION and RESTRICTED SESSION system privileges can connect to it. Typically, only administrators have the RESTRICTED SESSION system privilege.
Restricted mode is useful when you need to perform the following tasks:
To place an instance in restricted mode, use the SQL statement ALTER SYSTEM with the ENABLE RESTRICTED SESSION option. After placing an instance in restricted mode, you might want to kill all current user sessions before performing any administrative tasks. To lift an instance from restricted mode, use ALTER SYSTEM with the DISABLE RESTRICTED SESSION option.
See Also: For more information about starting a database instance, and mounting and opening the database in restricted mode, see "Restricting Access to a Database at Startup".
For more information on the ALTER SYSTEM statement, see the Oracle8i SQL Reference.
The following sections describe shutdown procedures:
To initiate database shutdown, use the SQL*Plus SHUTDOWN command. Control is not returned to the session that initiates a database shutdown until shutdown is complete. Users who attempt connections while a shutdown is in progress receive a message like the following:
ORA-01090: shutdown in progress - connection is not permitted
You cannot shut down a database if you are connected to the database via a multi-threaded server process.
To shut down a database and instance, first connect as SYSOPER or SYSDBA. Figure 3-1 shows the sequence of events when the different SHUTDOWN commands are entered during a transfer of funds from one bank account to another.
Normal database shutdown proceeds with the following conditions:
To shut down a database in normal situations, use the SHUTDOWN command with the NORMAL option:
Use immediate database shutdown only in the following situations:
Immediate database shutdown proceeds with the following conditions:
To shut down a database immediately, use the SHUTDOWN command with the IMMEDIATE option
The SHUTDOWN IMMEDIATE statement disconnects all existing idle connections and shuts down the database. If, however, you have submitted processes (for example, inserts, selects or updates) that are awaiting results, the SHUTDOWN TRANSACTIONAL statement allows the process to complete before disconnecting.
When you wish to perform a planned shutdown of an instance while allowing active transactions to complete first, use the SHUTDOWN command with the TRANSACTIONAL option:
After submitting this statement, no client can start a new transaction on this instance. If clients attempt to start a new transaction, they are disconnected. After all transactions have completed, any client still connected to the instance is disconnected. At this point, the instance shuts down just as it would when a SHUTDOWN IMMEDIATE statement is submitted.
A transactional shutdown prevents clients from losing work, and at the same time, does not require all users to log off.
You can shut down a database instantaneously by aborting the database's instance. If possible, perform this type of shutdown only in the following situations:
Aborting an instance shuts down a database and yields the following results:
If both the normal and immediate shutdown options do not work, abort the current database instance immediately by issuing the SHUTDOWN command with the ABORT option:
The ALTER SYSTEM SUSPEND statement suspends all I/O (datafile, control file, and file header) as well as queries, in all instances, enabling you to make copies of the database without having to handle ongoing transactions. Do not start a new instance while you suspend another instance, since the new instance will not be suspended. Use the ALTER SYSTEM RESUME statement to resume normal database operations.
The suspend/resume feature is useful in systems that allow you to mirror a disk or file and then split the mirror. If you use a system that is unable to split a mirrored disk from an existing database while writes are occurring, then you can use the suspend/ resume feature to facilitate the split. The suspend/resume feature is not a handy substitute for normal shutdown operations, however, since copies of a suspended database can contain uncommitted updates.
Note that you can issue SUSPEND and RESUME statements from different instances. For example, if instances 1, 2, and 3 are running, and you issue a SUSPEND statement from instance 1, then you can issue the RESUME statement from instance 1, 2, or 3 with the same effect.
To Facilitate Mirror Splits Using SUSPEND and RESUME:
Do not use the SUSPEND statement as a substitute for placing a tablespace in hot backup mode.
See Also: For more information about the ALTER SYSTEM SUSPEND/RESUME and ALTER TABLESPACE statements, see the Oracle8i SQL Reference.
The following sections include information about how to use parameter files:
To start an instance, Oracle must read a parameter file, which is a text file containing a list of instance configuration parameters. Often, although not always, this file is named INIT.ORA or INITsid.ORA, where sid is operating system specific.
If you are using Oracle Enterprise Manager, see the Oracle Enterprise Manager Administrator's Guide information about using stored configurations as an alternative to the initialization parameter file.
You can edit parameter values in a parameter file with a basic text editor; however, editing methods are operating system-specific. For detailed information about initialization parameters, see the Oracle8i Reference.
Oracle treats string literals defined for National Language Support (NLS) parameters in the file as if they are in the database character set.
See Also: For more information about initialization parameter file, see your operating system-specific Oracle documentation.
A sample parameter file (INIT.ORA or INITsid.ORA) is included in the Oracle distribution set. This sample file's parameters are adequate for initial installations of an Oracle database. After your system is operating and you have some experience with Oracle, you will probably want to change some parameter values.
See Also: For more information about optimizing a database's performance using the parameter file, see the Oracle8i Tuning manual.
Each Oracle database has at least one parameter file that corresponds only to that database. This way, database-specific parameters such as DB_NAME and CONTROL_FILES in a given file always pertain to a particular database. It is also possible to have several different parameter files for a single database. For example, you can have several different parameter files for a single database so you can optimize the database's performance in different situations.
The client you use to access the database must be able to read a database's parameter file to start a database's instance. Therefore, always store a database's parameter file on the computer executing the client.
In non-distributed processing installations, the same computer executes Oracle and the client. This computer already has the parameter file stored on one of its disk drives. In distributed processing installations, however, local client workstations can administer a database stored on a remote machine. In this type of configuration, the local client machines must each store a copy of the parameter file for the corresponding databases.
See Also: For more information about using administering Oracle in a distributed environment, see Oracle8i Distributed Database Systems.