Oracle数据库服务由两部分组成:数据库进程和网络监听器进程,它们分别可通过sqlplus和lsnrctl命令控制启动关闭。
使用DBCA工具创建数据库后,其进程已经自动启动,这些进程都是以数据库名称(在本例中为orcl)命名,如下所示。
$ ps -ef|grep orcl
oracle 870 1 0 11:54 ? 00:00:00 ora_pmon_orcl //进程监控器进程
oracle 872 1 0 11:54 ? 00:00:00 ora_vktm_orcl //时钟更新进程
oracle 876 1 0 11:54 ? 00:00:00 ora_diag_orcl //数据库诊断进程
oracle 878 1 0 11:54 ? 00:00:00 ora_dbrm_orcl //数据库资源管理进程
oracle 880 1 0 11:54 ? 00:00:00 ora_psp0_orcl //进程产生
oracle 884 1 0 11:54 ? 00:00:03 ora_dia0_orcl //另一个数据库诊断进程
oracle 886 1 0 11:54 ? 00:00:00 ora_mman_orcl //执行数据库的内部任务
oracle 888 1 0 11:54 ? 00:00:00 ora_dbw0_orcl //数据库写进程
oracle 890 1 0 11:54 ? 00:00:01 ora_lgwr_orcl //日志进程
oracle 892 1 0 11:54 ? 00:00:01 ora_ckpt_orcl //检查点进程
oracle 894 1 0 11:54 ? 00:00:04 ora_smon_orcl //系统监控进程
oracle 896 1 0 11:54 ? 00:00:00 ora_reco_orcl
oracle 898 1 0 11:54 ? 00:00:05 ora_mmon_orcl //收集SQL对象信息
oracle 900 1 0 11:54 ? 00:00:00 ora_mmnl_orcl //负责将SGA统计信息输出 //到数据库表中的进程
oracle 910 1 0 11:54 ? 00:00:00 ora_smco_orcl //负责空间管理协调的进程
oracle 912 1 0 11:54 ? 00:00:00 ora_fbda_orcl //快速归档进程
oracle 914 1 0 11:54 ? 00:00:00 ora_qmnc_orcl //负责监控队列信息的进程
oracle 930 1 0 11:54 ? 00:00:00 ora_q000_orcl
oracle 932 1 0 11:54 ? 00:00:00 ora_q001_orcl
oracle 11312 1 0 13:52 ? 00:00:00 oracleorcl (LOCAL=NO) //数据库连接进程
oracle 13153 1 0 14:14 ? 00:00:00 ora_w000_orcl //由smco产生的进程
可以通过sqlplus管理工具手工启动和关闭数据库。首先执行如下命令进入sqlplus并连接数据库。
$ export ORACLE_SID=orcl //指定使用的数据库名称
$ export NLS_LANG=american_america.zhs16gbk //指定sqlplus中使用的语言
$ sqlplus /nolog
SQL*Plus: Release 11.1.0.6.0 - Production on Wed Oct 29 14:22:46 2008
Copyright (c) 1982, 2007, Oracle. All rights reserved.
SQL> conn sys as sysdba //以sys用户登录数据库
Enter password: //输入sys用户的密码
Connected. //登录成功
如果要启动数据库,可在sqlplus中执行startup命令,如下所示。
SQL> startup //启动Oracle数据库
ORACLE instance started.
Total System Global Area 179941376 bytes //总的SGA大小
Fixed Size 1298724 bytes //固定内存大小
Variable Size 125832924 bytes //可变内存大小
Database Buffers 50331648 bytes //数据库缓存区大小
Redo Buffers 2478080 bytes //重做缓存区大小
Database mounted.
Database opened.
如果要关闭数据库,可在sqlplus中执行shutdown命令,如下所示。
SQL> shutdown immediate //关闭数据库
Database closed.
Database dismounted.
ORACLE instance shut down.
数据库进程启动后,用户只能在本地服务器上对数据库进行访问。如果要通过网络访问数据库,还需要启动网络监听程序。
启动网络监听程序的命令如下所示。
$ lsnrctl start //启动监听程序
LSNRCTL for Linux: Version 11.1.0.6.0 - Production on 29-OCT-2008 14:40:20
Copyright (c) 1991, 2007, Oracle. All rights reserved.
Starting /u01/app/oracle/product/11.1.0/db_1//bin/tnslsnr: please wait...
TNSLSNR for Linux: Version 11.1.0.6.0 – Production
//网络监听程序配置文件
System parameter file is /u01/app/oracle/product/11.1.0/db_1/network/admin
/listener.ora
Log messages written to /u01/app/oracle/product/11.1.0/db_1/log/diag/tnsl-
snr/demoserver/listener/alert/log.xml
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost.locald-
omain)(PORT=1521)))
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
//服务器和端口号
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=demoserver)(PORT=
1521)))
STATUS of the LISTENER
------------------------
Alias LISTENER //监听程序的别名
Version TNSLSNR for Linux: Version 11.1.0.6.0 – Production //版本号
Start Date 29-OCT-2008 14:40:21 //启动时间
Uptime 0 days 0 hr. 0 min. 1 sec //已经运行的时间
Trace Level off //跟踪级别
Security ON: Local OS Authentication
SNMP OFF //禁用SNMP
Listener Parameter File /u01/app/oracle/product/11.1.0/db_1/network/ad-
min/listener.ora //监听程序的参数文件名
Listener Log File /u01/app/oracle/product/11.1.0/db_1/log/diag/tn-
slsnr/demoserver/listener/alert/log.xml //监听程序的日志文件
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost.localdomain)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
The listener supports no services
The command completed successfully //启动成功
关闭网络监听程序。
$ lsnrctl stop
LSNRCTL for Linux: Version 11.1.0.6.0 - Production on 29-OCT-2008 14:39:31
Copyright (c) 1991, 2007, Oracle. All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=demoserver)(PORT=
1521)))
The command completed successfully //关闭成功