■监听程序
#lsnrctl start ---> 启动
#lsnrctl stop ---> 停止
#lsnrctl status ---> 状态
#lsnrctl help ---> 帮助
■一个例程只能访问一个数据库,而一个数据库可以由多个例程同时访问.
例程由一组逻辑内存结构和一系列后台服务进程组成.
在启动数据库的过程中,文件的使用顺序是:参数文件、控制文件、数据文件和重做日志文件.
■启动模式
nomount模式 启动例程,但不装载数据库,即只完成启动步骤的第1步。(读取参数文件)
mount模式 启动例程,并装载数据库,但不打开数据库。即,只完成启动步骤的第1和第2步。
open模式 启动例程,装载数据、打开数据库、即完成全部3个启动步骤.
启动语法
startup [nomount|mount|open|force] [restrict] [PFILE=filename];
■NOMOUNT选项
只创建例程,不装数据库,读取参数文件,为例程创建各种内存结构和后台服务进程,用户能与数据库进行通信,
但不能使用数据库中的任何文件.
如果要执行下列维护工作,就必须用NOMOUNT选项启动数据库
◆ 运行一个创建新数据的脚本
◆ 重建控制文件
在NOMOUNT启动模式下,只能访问那些与SGA区相关的数据库字典视图,如V$PARAMETER,V$SGA,V$OPTION,
V$PROCESS,V$VERSION,V$INSTANCE等.这些视图中的信息都是从SGA区中获取的,与数据库无关.
■MOUNT选项
MOUNT选项不仅创建例程,还装载数据库,但却不打开数据库.读取控制文件.管理员可以通过部分命令修改数据库,
用户还无法与数据库建立连接或会话.
如果要执行下列维护工作,就必须用MOUNT选项启动数据库
◆ 重命名数据文件
◆ 添加、删除或重命名重做日志文件
◆ 执行数据库完全恢复操作
◆ 改变数据库的归档模式
在MOUNT启动模式下,除了可以访问那些与SGA区相关的数据字典视图之外,还可以访问到那些与控制文件相关的数据字典
视图,如V$THREAD,V$CONTROLFILE,V$DATABASE,V$DATAFILE,V$LOGFILE等,这些视图中的信息是从控制文件中获取的.
■OPEN选项
OPEN选项不仅创建例程,还装载数据库,并且打开数据库.这是正常启动模式.如果startup命令行上没有指定任何
模式,默认就是start open选项启动数据库.
■FORCE选项
如果在正常启动数据库遇到困难,可以使用force启动选项.例如服务器突然断电.
FORCE选项与正常启动选项之间的差别还在于,无论数据库处于什么模式,都是先异常关闭数据库,然后再重新启动.
而不需要事先用SHUTDOWN语句关闭数据库.
■RESTRICT选项
RESTRICT选项启动数据库并把它置入OPEN模式,但些时只有拥有RESTRICTED SESSION权限的用户才能访问数据库.
如果需要在数据库处于OPEN模式下执行维护任何,又要保证此时其他用户不能在数据库上建立连接和执行任何,则应该
使用RESTRICT选项来打开数据库,以便完成如下任务:
◆ 执行数据库数据的导出或导入操作.
◆ 执行数据装载操作(用SQL*Loader)
◆ 暂时阻止一般的用户使用数据.
◆ 进行数据库移植或升级
当工作完成后,可以用如下语句禁用RESTRICT SESSION权限,即:
alter system disable restricted session
■关闭选项
■NORMAL选项
按NORMAL选项关闭数据库时,Oracle将执行如下操作:
◆ 阻止任何用户建立新的连接
◆ 等待当前所有正在连接的用户主动断开连接.正在连接的用户能够继续他们当前的工作,甚至能够提交新的事务.
◆ 一旦所有的用户都断开连接,才进行关闭、制裁数据库,并终止例程。
注意:
按NORMAL选项关闭数据库时,Oracle并不会断开当前用户的连接,而是等待当前用户主动断开连接。在这个过程中,连接的用
户甚至可以建立新的事务。此选项关闭数据库,在下次启动数据库时不需要任何恢复操作。关闭数据库所耗费的时间完全取决
于用户主动断开连接的时间.
■TRANSACTIONAL选项
TRANSACTIONAL选项比NORMAL选项稍微主动些。它能在尽可能短的时间内关闭数据库。
按NORMAL选项关闭数据库时,Oracle将执行如下操作:
◆ 阻止任何用户建立新的连接,同时阻止当前连接的用户开始任何新的事务
◆ 等待所有当前未提交的活动事务提交完后,然后立即断开用户的连接
◆ 一旦所有的用户都断开连接,立即进行关闭、制裁数据库,并终止例程
注意:
按TRANSACTIONAL选项关闭数据库,既能保证用户不会丢失当前工作的信息,又可以尽可能快地关闭数据库,此选项关闭数据库,在下次
启动数据库时不需要任何恢复操作。
■IMMEDIATE选项
IMMEDIATE选项关闭数据库,就能够在尽可能短的时间内关闭数据库。
按IMMEDIATE选项关闭数据库时,Oracle将执行如下操作:
◆ 阻止任何用户建立新的连接,同时阻止当前连接的用户开始任何新的事务
◆ 任何当前未提交的事务均被回退
◆ Oracle不再等待用户主动断开连接,而是直接关闭、制裁数据库,并终止例程
注意:
如果存在很多未提交的事务,则按IMMEDIATE选项关闭数据库仍然会耗费很长时间。此选项关闭数据库,在下次启动数据库时不需要任何
恢复操作。
■ABORT选项
如果上述三种选项都无法成功关闭数据库,就说明数据库存在严重错误。这时只能使用ABORT选项来关闭数据库。
在下面几种特殊情况中,可以考虑按ABORT选项来关闭数据库。
◆ 数据库本身或某个数据库应用程序发生异常,并且使用其他选项均无效
◆ 出现紧急情况,需要立刻关闭数据库(比如得到通知将在一分钟内发生停电)
◆ 在启动数据库例程的过程中产生错误。
按IMMEDIATE选项关闭数据库时,Oracle将执行如下操作:
◆ 阻止任何用户建立新的连接,同时阻止当前连接的用户开始任何新的事务
◆ 立即结束当前正在执行的SQL语句
◆ 任何未提交的事务均不被回退
◆ 立即断开所有用户的连接,关闭、缺氧数据库,并终止全程.
注意:
按ABORT选项关闭数据库时,由于当前未完成的事务并不会被回退,所以可能会丢失一部分数据信息。这样数据库的完整性遭到损害,在下一次启动时需要
进行恢复。因此建议尽量避免按ABORT选项来关闭数据库.
■在WINDOWS中启动和关闭数据库所使用的服务名称及说明
Oracle<ORACLE_HOME_NAME>TNSListener 对应于数据库监听程序
OracleService<SID> 对应于数据库例程
OracleDBConsole<sid> 对应于Oracle Enterprise Manager 或 OEM
Oracle<ORACLE_HOME_NAME>iSQL*Plus 对应于iSQL*Plus
这几个服务之间的关系是:
◆ 首先启动Oracle<ORACLE_HOME_NAME>TNSListener服务,然后再启动其他服务。
◆ 如果不启动Oracle<ORACLE_HOME_NAME>TNSListener,则可以使用SQL*Plus,但不能使用OEM和iSQL*Plus。
◆ 因为OracleDBConsole<sid>依赖于OracleService<SID>,所以必须先启动OracleService<SID>,之后再启动
OracleDBConsole<sid>.关闭反之。
============================
■提示:全局数据库名是数据库的默认服务名,由初始化参数文件中的SERVICE_NAMES参数指定.
■Oracle网络配置分为服务器端配置和客户机端配置,服务器端配置的目的就是配置监听程序的配置文件(listener.ora).
客户机端配置的目的就是配置网络服务名的配置文件(tnsnames.ora).服务器端本身也有一个网络服务名的配置文件(
tnsnames.ora),在服务器端,一般不需要配置tnsnames.ora文件,但如果服务器要与其他服务器连接时(如在分布式网
络环境中),同样需要配置tnsnames.ora文件。根据网络连接的实际情况,每个listener.ora和tnsnames.ora内容都可能
不同,以便监听不同的连接请求信息或连接到不同的数据库.