启动和关闭数据库

启动和关闭数据库
启动和关闭数据库

一、在sql * plus 中启动数据库

在数据库能够被用户连接并使用之前,必须启动数据库。

每一个启动的数据库至少对应有一个例程。例程是oracle用来管理数据库的一个实体,它在服务器中,由一组逻辑内存结构和一系列后台服务进程组成。当启动数据库时,这些内存结构和服务进程得到分配、初始化和启动,以便用户能够与数据库进行通信。

一个例程只能访问一个数据库,而一个数据库可以有多个例程同时访问。

例程是oracle 数据库在运行时位于系统内存中的部分,而数据库在运行时位于硬盘中的部分。

启动数据库的步骤:

Step 1. 创建并启动例程

例程由一组逻辑内存结构和一系列后台服务进程组成。当启动例程时,这些内存结构和服务进程得到分配、初始化和和启动,以便用户能够与数据库进行通信。但是,此时的例程还没有与一个确定的数据库相联系,或者说数据库是否存在对例程的启动并没有影响。在启动例程的过程中只会使用startup 语句中指定的(或使用默认的)初始化参数文件。如果初始化参数文件或参数设置有误,则无法启动例程。参数文件-- 内存结构

-- 后台服务

(由参数文件初始化参数决定如何启动例程)

Step 2. 装载数据库

装载数据库时,例程将打开数据库的控制文件,根据初始化参数control_files 的设置找到指定的文件,并从中获取数据库名称、数据文件的位置和名称等关于数据库物理结构的信息,为下一步打开数据库做好准备。在装载阶段,例程并不会打开数据库的物理文件,即数据文件和重做日志文件,所以数据库是处于关闭状态的。

参数文件-- 控制文件

(由参数文件找到控制文件,以便装载数据库)

Step 3. 打开数据库

只有将数据库设置为打开状态后,数据库才处于正常运行状态,这时用户才能够与数据库连接或会话,以存取数据中的信息。

打开数据库时,例程将打开所有处于联机状态的数据文件和重做日志文件。如果在控制文件中列出的任何一个数据文件或重做日志文件无法正常打开(如位置或文件名出错),数据库将返回错误信息,这时需要进行数据库恢复。

控制文件-- 联机状态的数据文件

-- 联机状态的重做日志文件

(控制文件找到各种数据库文件,以便打开数据库)

综上所述,在启动数据库的过程中,文件的使用顺序是:参数文件、控制文件、数据文件、重做日志文件。只有这些文件都被正常读取和使用后,数据库才正常启动,用户才能使用数据库。

数据库有3种启动模式,分别代表启动数据库的3个步骤:Nomount 启动例程,但不装载数据库。即完成启动步骤的第1步。Mount 启动例程,并装载数据库,但不打开数据库。即完成启动步骤的第1步和第2步。

Open 启动例程、装载数据库、打开数据库,即完成全部3个启动步骤。正常启动模式,如果startup命令行上没有任

何模式,默认是open。

当数据库管理员使用startup 命令时,可以指定选项来决定将数据库的启动推进至哪个启动模式。在进入某个模式后,可以使用alter Database 命令来将数据库提升到更高的启动模式,但不能是数据库降低到前面的启动模式。

启动数据库的语法是:

Startup nomount | mount | open | restrict | force | peile

Force 选项

如果在用正常方式启动数据库时遇到困难,可以使用force 启动选项。Force 选项首先异常关闭数据库,然后重新启动它,而不需要事先用shutdown 语句关闭数据库。

Restrict 选项

Restrict 选项启动数据库并把它置于open 模式,但此时只有拥有Restrict session 权限的用户才能访问数据库。

如果需要在数据库处于open模式下执行维护任务,又要保证此时其他用户不能在数据库上建立连接和执行任务,则应该使用restrict 选

项来打开数据库。

当工作完毕后,可以用alter system 语句禁用restrict session 权限即:alter system disable restrict session。

以便每个用户都能连接到数据库,并使用数据库。

Pfile 选项

数据库例程在启动时必须读取一个初始化参数文件。Oracle 需要从初始化参数文件中获得有关例程的参数配置信息。如果在执行startup 语句时没有指定pfile 选项,oracle 会首先读取默认位置的服务器初始化参数文件(spfile)。如果没有找到默认的服务器初始化参数文件,oracle将继续读取默认位置的文本初始化参数文件(pfile),如果也没有找到文本初始化参数文件,启动就会失败。

转换启动模式:

在数据库的各种启动模式之间切换需要使用alter database 语句,执行该语句的用户必须具有alter database系统权限。

二、在sql * plus 中关闭数据库

Step 1. 关闭数据库

关闭数据库时,oracle 将重做日志高速缓存中的内容写入重做日志文件,并且将数据库高速缓存中被改动过的数据写入数据文件,然后在关闭所有的数据文件和重做日志文件。这时数据库的控制文件仍然处于打开状态,但是由于数据库已经处于关闭状态,所以用户无法访问数据库。

Step 2. 卸载数据库

关闭数据库后,例程才能够卸载数据库。数据库的控制文件在这个时候被关闭,但是例程仍然存在。

Step 3. 终止例程

例程所拥有的所有后台进程和服务进程都将被终止,分配给例程的内

存SGA 区被回收。

关闭数据库的语法:

Shutdown normal | immediate | abort | transactional

Normal 选项

如果对关闭数据库的时间没有限制,通常会使用normal 选项来关闭数据库。如果没有提供任何关闭选项,就会按normal 选项关闭数据库。使用带有normal选项的shutdown语句将以正常方式关闭数据库。

按normal 选项关闭数据库时,oracle 将执行如下操作:

阻止任何用户建立新的连接。

等待当前所有正在连接的用户主动断开连接。正在连接的用户能够继续他们当前的工作,甚至能够提交新的事物。

一旦所有的用户都断开连接,才进行关闭、卸载数据库并终止数据库。Transactional 选项

Transactional 选项比normal 选项稍微主动些。它能在尽可能短的时间内关闭数据库。按transactional 选项关闭数据时,oracle 将等待所有的当前未提交的事务完成后在关闭数据库。

按transactional 选项关闭数据库时,oracle 将执行如下操作:

阻止任何用户建立新的连接,同时阻止当前连接的用户开始任何新的事物。

等待所有当前未提交的活动事务提交完毕,然后立即断开用户的连接。

一旦所有的用户都断开连接,立即进行关闭、卸载数据库,并终止例程。

Immediate 选项

按immediate选项关闭数据库,就能够在尽可能短的时间内关闭数据库。

通常在如下几种情况下需要选用该选项来关闭数据库:

即将启动数据库备份操作。

即将发生电力供应中断。

数据库本身或某个数据库应用程序发生异常,并且这时无法通知用户主动断开连接,或者用户根本无法执行断开操作。

按immediate 选项关闭数据库时,oracle 将执行如下操作:

阻止任何用户建立新的连接,同时阻止当前连接的用户开始任何新的事务。

任何当前未提交的事务均回退。

Oracle不再等待用户主动断开连接,而是直接关闭、卸载数据库、并终止例程。

Abort 选项

如果按上述三种选项都无法成功关闭数据库,就说明数据库存在严重错误。这时只能使用abort 选项来关闭数据库。

在下面的几种特殊情况下,可以考虑按abort 选项来关闭数据库。数据库本身或某个数据库应用程序发生异常,并且使用其他选项均无效。

出现紧急情况,需要立即关闭数据库(比如得到通知将在一分钟内发生停电)。

在启动数据库例程的过程中产生错误。

按abort 选项关闭数据库时,oracle 将执行如下操作:

阻止任何用户建立新的连接,同事阻止当前连接的用户开始任何新的事务。

立即结束当前正在执行的sql语句。

任何未提交的事务均不被回退。

立即断开所有用户的连接,关闭、卸载数据库、并终止例程。

Oracle数据库系统紧急故障处理方法

Oracle数据库系统紧急故障处理方法 Oracle物理结构故障是指构成数据库的各个物理文件损坏而导致的各种数据库故障。这些故障可能是由于硬件故障造成的,也可能是人为误操作而引起。所以我们首先要判断问题的起因,如果是硬件故障则首先要解决硬件问题。在无硬件问题的前提下我们才能按照下面的处理方发来进一步处理。 控制文件损坏: 控制文件记录了关于oracle的重要配置信息,如数据库名、字符集名字、各个数据文件、日志文件的位置等等信息。控制文件的损坏,会导致数据库异常关闭。一旦缺少控制文件,数据库也无法启动,这是一种比较严重的错误。 损坏单个控制文件: 1. 确保数据库已经关闭,如果没有用下面的命令来关闭数据库: svrmgrl>shutdown immediate; 2. 查看初始化文件$ORACLE_BASE/admin/pfile/initORCL.ora,确定所有控制文件的路径。 3. 用操作系统命令将其它正确的控制文件覆盖错误的控制文件。 4. 用下面的命令重新启动数据库: svrmgrl>startup; 5. 用适当的方法进行数据库全备份。 损坏所有的控制文件: 1. 确保数据库已经关闭,如果没有用下面的命令来关闭数据库: svrmgrl>shutdown immediate; 2. 从相应的备份结果集中恢复最近的控制文件。对于没有采用带库备份的点可以直接从磁带上将最近的控制文件备份恢复到相应目录;对于采用带库备份的点用相应的rman脚本来恢复最近的控制文件。 3. 用下面的命令来创建产生数据库控制文件的脚本:

svrmgrl>startup mount; svrmgrl>alter database backup controlfile to trace noresetlogs; 4. 修改第三步产生的trace文件,将其中关于创建控制文件的一部分语句拷贝出来并做些修改,使得它能够体现最新的数据库结构。假设产生的sql文件名字为createcontrol.sql. 注意: Trace文件的具体路径可以在执行完第3)步操作后查看 $ORACLE_BASE/admin/bdump/alert_ORCL.ora文件来确定。 5. 用下面命令重新创建控制文件: svrmgrl>shutdown abort; svrmgrl>startup nomount; svrmgrl>@createcontrol.sql; 6. 用适当的方法进行数据库全备份。 重做日志文件损坏: 数据库的所有增、删、改都会记录入重做日志。如果当前激活的重做日志文件损坏,会导致数据库异常关闭。非激活的重做日志最终也会因为日志切换变为激活的重做日志,所以损坏的非激活的重做日志最终也会导致数据库的异常终止。在ipas/mSwitch中每组重做日志只有一个成员,所以在下面的分析中只考虑重做日志组损坏的情况,而不考虑单个重做日志成员损坏的情况。 确定损坏的重做日志的位置及其状态: 1. 如果数据库处于可用状态: select * from v$logfile; svrmgrl>select * from v$log; 2. 如果数据库处于已经异常终止: svrmlgr>startup mount; svrmgrl>select * from v$logfile;

数据库常用命令

oracle常用命令 命令解释 $Ps –ef|grep oracle 查看oracle进程是否启动 $ sqlplus "/as sysdba" 以sysdba角色登陆oracle数据库 SQL>startup 显示当前系统中已登录的人员。 SQL>shutdown immediate 关闭数据库 SQL>select * from v$version; 查看oracle数据库版本 SQL>select name from v$database; 查看数据库SID SQL>truncate table table_name 快速清空一个表 SQL>select * from all_users;查看数据库中所有用户 SQL>alter tablespacename offline;将表空间offline SQL> alter tablespacename online ;将表空间online $oerr ora 2236 查错误 alert_{ORACLE_SID}.log 数据库告警日志文件 *.TRC 数据库跟踪文件 Oracle说明 1、数文件:SPFILE不能直接阅读是二进制文件,需要转为文本 2、oracle数据库后,可以查看数据库状态是否open,如果open会显示open字样 SQL> select status, instance_role from v$instance; 3、PFILE:SQL> connect / as sysdba 从spfile创建pfile:SQL> create pfile from spfile; 从pfile创建spfile:CREA TE SPFILE FROM PFILE='/home/oracle/admin/pfile/init.ora'; 4、names是客户端或应用程序需要连接数据库时必须配置的,使用$tnsping service_aliasname可以测试出tns配置的是否正确 5、要文件listener.ora、Tnsnames.ora、Sqlnet.ora,这三个位置在$ORACLE_HOME/network/admin目录下。 6、库启动时要先启动listener Network配置:监听程序lsnrctl

Oracle数据库startup和shutdown方式

Oracle数据库startup和shutdown方式 昨天晚上,回去好好整理了下关于"Oracle数据库提供了几种不同数据库启动和关闭方 式",然后,自己就回去就写了个示例. 其中,就出现了1个问题: ORA-12528: TNS:listener: all appropriate instances are blocking new connections 于是到网上就大量的查阅资料,哈哈,好不错,解决方法找到了.其中红色的就是主要解决方法.下面就把我整理的东西给共享下. 一:注意事项 要启动和关闭数据库,必须要以具有Oracle 管理员权限用户登陆,通常也就是以具有SYSDBA 权限用户登陆。一般我们常用INTERNAL用户来启动和关闭数据库(INTERNAL用户实际上是SYS用户以SYSDBA连接同义词)。Oracle数据库新版本将逐步淘汰INTERNAL这个内部用户,所以我们最还是设置DBA用户具有SYSDBA权限。 二:启动一个数据库需要三个步骤 1、创建一个Oracle实例(非安装阶段) 2、由实例安装数据库(安装阶段) 3、打开数据库(打开阶段) 三:Startup(启动数据库命令) 1、STARTUP NOMOUNT NONOUNT选项仅仅创建一个Oracle实例。读取init.ora初始化参数文件、启动后台进程、初始化系统全局区(SGA)。Init.ora文件定义了实例配置,包括内存结构大小和启动后台进程数量和类型等。实例名根据Oracle_SID设置,不一定要与打开数据库名称相同。当实例打开后,系统将显示一个SGA内存结构和大小列表,如下所示: SQL> startup nomount ORACLE 例程已经启动。 Total System Global Area 35431692 bytes Fixed Size 70924 bytes Variable Size 18505728 bytes Database Buffers 16777216 bytesu Redo Buffers 77824 bytes 2、STARTUP MOUNT 该命令创建实例并且安装数据库,但没有打开数据库。Oracle系统读取控制文件中关于数据文件和重作日志文件内容,但并不打开该文件。这种打开方式常在数据库维护操作中使用,如对数据文件更名、改变重作日志以及打开归档方式等。在这种打开方式下,除了可以看到SGA系统列表以外,系统还会给出"数据库装载完毕"提示。 3、STARTUP

Oracle数据库的启动与关闭

以下资料来自Oracle数据库精讲与疑难解析,仅供学习 一、Oracle数据库的启动 Oracle数据库的启动要经历3个阶段。 阶段一:启动实例 (Start An Instance)--nomount 阶段二:装载数据库 (Mount The Database)--mount 阶段三:打开数据库 (Open The Database)--open 1.启动实例 ①读取参数文件(Initialization Parameter File, PFILE 或者 Server Parameter Files, SPFILE) ②Oracle根据参数文件中的参数,分配系统全局区(System Global Area, SGA) ③启动后台进程(DBWR: 数据库写入进程,LGWR:日志写入进程,CKPT:检查点进程,SMON: 系统监控进程,PMON:进程监控进程,ARCH归档进程等)。 这些内存和后台进程组合起来组成实例(Oracle Instance)。 参数文件(PFILE或者SPFILE)还指定了控制文件(Control File)的位置。 2.装载数据库 打开控制文件(Control File),从控制文件中获得数据文件(Data File)和联机日志文件(Redo Log File)的名字和位置。这时候,Oracle已经把实例和数据库关联起来。对于普通用户,数据库 还是不可访问。 3.打开数据库 Oracle打开数据文件 (Data Files) 和联机日志文件 (Redo Log File) 。这时候,数据库可以使用。 普通可以登录数据库,对数据库进行操作。 4.分步启动Oracle STARTUP NOMOUNT; ALTER DATABASE MOUNT; ALTER DATABASE OPEN; 5.直接启动Oracle STARTUP (相当于上面三个过程依次进行) 6.使用特定初始化参数文件 (Initialization Parameter File, FILE) 启动数据库 STARTUP PFILE='C: \oracle\product\10.2.0\db_1\dbs\PFILEORCL.ORA'; 7.把数据库启动到限制模式(RESTRICT) 在限制模式下,只有CREATE SESSION 和RESTRICTED SESSION权限的用户可以访问数据库。 ①如果数据库是关闭的 STARTUP RESTRICT; ②如果数据库是开启的 ALTER SYSTEM enable restricted session; 8.以只读模式(Read Only)打开数据库 ①如果数据库是关闭的 STARTUP open read only; ②如果数据库是开启的 ALTER DATABASE OPEN read only; 在直读模式下,数据文件和日志文件都禁止写操作。整个数据库是只读的。 但是允许数据库恢复(Database Recovery)及其他不会产生回滚的操作。 9.把数据库启动到回复模式 (RECOVER) STARTUP OPEN RECOVER; 10.重启数据库(RESET) STARTUP FORCE

服务器(ORACLE)启动与关闭

服务器(O R A C L E)启动 与关闭

一、重启服务器顺序: 关闭数据库(toppord/toptest)→重启设备(reboot)→开启数据 库(只需要开启toptest,topprod已设置自动启用) 二、Linux下启动 oracle 数据库 -- ssh连接上数据库主机,正式区DB(172.16.13.228) / 测试区DB(172.16.13.224) -- su – root/tiptop -- su – oracle -- echo $ORACLE_SID #检查当前实例 -- export ORACLE_SID=topprod(正式区)/ export ORACLE_SID=topprod(测试区) # 设置实例 -- lsnrctl start -- sqlplus / as sysdba -- startup 至此,已将数据库开启到OPEN状态。 三、Linux下关闭ORACLE数据库 -- ssh连接上正式区DB(172.16.13.228) / 测试区DB(172.16.13.224) -- su - root/root #切换至ROOT管理员用户 -- su – oracle #切换至oracle用户(oracle用户密码原为oracle,但不正 确) -- echo $ORACLE_SID #检查当前实例 -- export ORACLE_SID=topprod(正式区)/ export ORACLE_SID=topprod(测试区) #设置实例

-- sqlplus / as sysdba #以数据库管理员身份进入数据库 -- shutdown immediate #关闭数据库 -- su – root/root #切换回系统ROOT用户 -- reboot #重启服务器 检查服务器资源命令 AP:top DB:topas 备注: oracle数据库几种关闭方式: 1、shutdown normal 正常方式关闭数据库 关闭时间较长,等待事务完成才会关闭数据库。 2、shutdown immediate 立即方式关闭数据库(一般使用该方式) 会结束事务,将未提交的事务全部回滚。在SVRMGRL中执行shutdown immediate,数据库并不立即关闭,而是在Oracle执行某些清除工作后才关闭(终止会话、释放会话资源),当使用shutdown不能关闭数据库时,shutdown immediate可以完成数据库关闭的操作。 3、shutdown abort 直接关闭数据库 会造成数据库的不一致,再次启动数据库会自动执行恢复,会造成等待时间较长。正在访问数据库的会话会被突然终止,如果数据库中有大量操作正在执行,这时执行shutdown abort后,重新启动数据库需要很长时间。

数据库常用命令

命令结构 FoxPro的命令结构一般由命令动词、语句体和注释几部分构成。 如:LIST [范围] [[FIELDS 字段名列表] [FOR 条件][WHILE 条件] [OFF] [TO PRINT] 常用子句 范围:表示记录的执行范围,可以是下面几项其中之一: ALL 表示全部记录; NEXT n 表示从当前记录开始的以下n条记录; RECORD n 表示第n号记录; REST 表示从当前记录到最后一条记录。 FIELDS 字段名表:用于指定操作的字段,多个字段时用逗号分隔。 FOR条件:对满足条件的记录进行操作。 WHILE 条件:当遇到第一个不满足条件的记录时,停止命令执行。 以下命令中,大写的英文词为关键词,必须原样照写。 “常用子句”指以下几个可选子句: [范围] [FIELDS 字段名表] [FOR 条件] [WHILE 条件] 命令中的“列表”,指用“,”分隔的各项。如“字段名列表”就是将各个字段名用逗号分隔。 部分英文词的意义:Databasename 数据名tablename 数据表名filename 文件名Viewname 视图名arrayname 数组名 提示:加下划线的为本课程要求掌握的命令。 一、数据库的建立、打开、关闭和删除 建立数据库: CREATE DATABASE [databasename|?] 从磁盘中删除数据库: DELETE DATABASE databasename|? 打开数据库: OPEN DATABASE [EXCLUSIVE|SHARED][NOUPDATE] 打开数据库设计器(允许用户按交互方式编辑当前数据库): MODIFY DATABASE [databasename|?] 指定的数据库databasename为当前数据库。 指定当前的数据库: SET DATABASE TO [databasename] Databasename必须为已经打开的数据库。如果省略数据库名称databasename,则不指定当前数据库(没有当前数据库)。 关闭数据库:

Oracle 数据库启动过程各步骤详解

Oracle 数据库启动过程各步骤详解 Oracle数据库的完整启动过程包含以下3个步骤:简单地说,就是:启动实例-->加载数据库-->打开数据库.------------------------------------------------------------------------------------------------------------------ 1.创建并启动与数据库对应的实例。在启动实例时,将为实例创建一系列后台进程和服务进程,并且在内存中创建SGA 区等内存结构。在实例启动的过程中只会使用到初始化参数文件,数据库是否存在对实例的启动没有影响。如果初化参数设置有误,实例将无法启动。 2.为实例加载数据库。加载数据库时实例将打开数据库的控制文件,从控制文件中获取数据库名称、数据文件的位置和名称等有关数据库物理结构的信息,为打开数据库做好准备。如果控制文件损坏,则实例将无法加载数据库。在加载数据库阶段,实例并不会打开数据库的物理文件----数据文件和重做日志文件。 3.将数据库设置为打开状态。打开数据库时,实例将打开所有处于联机状态的数据文件和重做日志文件。控制文件中的任何一个数据文件或重做日志文件无法正常打开,数据库都将返回错误信息,这时需要进行数据库恢复。只有将数据库设置为打开状态后,数据库才处于正常状态,这时普通用户才能够访问数据库。在很多情况下,启动数据库时并不是直接完成上述

3个步骤,而是逐步完成的,然后执行必要的管理操作,最后才使数据库进入正常运行状态。所以,才有了各种不同的启动模式用于不同的数据库维护操作。 ============================================== ===============================Oracle 数据库启动与关闭各种方式详解整理 前言: 首先要知道,Oracle数据库的完整启动过程是分步骤完成的,包含以下3个步骤:启动实例-->加载数据库-->打开数据库详解看这里: https://www.360docs.net/doc/9e15641023.html,/lutinghuan/article/details/7484103因为Oracle数据库启动过程中不同的阶段可以对数据库进行不同的维护操作,对应我们不同的需求,所以就需不同的模式启动数据库。 小白:在启动实例之前,需要先启动SQL*Plus,并以一个用户身份连接到Oracle。启动模式详解1.NoMount 模式(启动实例不加载数据库)命令:startup nomount 讲解:这种启动模式只会创建实例,并不加载数据库,Oracle 仅为实例创建各种内存结构和服务进程,不会打开任何数据文件。在NoMount模式下,只能访问那些与SGA区相关的数据字典视图,包括V$PARAMETER、V$SGA、V$PROCESS 和V$SESSION等,这些视图中的信息都是从SGA区中获

Php中关闭数据库链接的时候注意

Php中关闭数据库链接的时候注意 没有错 search ( "id=" . $_POST ["mId"] ); if ($member->countnum < 1) { $member->close(); echo ""; exit (); } //判断用户名是不是已经被注册了 $thisResult = $admin->getCount ( "aName='" . $_POST ["aName"] . "'" ); if ($thisResult > 0) { echo ""; $admin->close (); exit (); } //添加记录 $admin->add (); $member->close(); $admin->close (); turntopage ( "admin_add.php", "您已经成功添加一条记录!",3); } //从用户权限组里查找全部数据 $admintype = new systemtype ( );

oracle启动的三个阶段

oracle启动的三个阶段 三个阶段: 1. 启动到nomount状态,这个阶段数据库读取spfile/pfile文件中的参数,启动数据库实例。 1-1读取初始化参数文件.注意读取顺序.主要是指定控制文件及数据库实例名1-2分配系统全局区 1-3启动后台进程 1-4打开alertSID.log文件和跟踪文件 补充说明: 在nomount阶段,oracle 会查找参数文件,启动实例,参数文件的查找顺序为spfile.ora,init.ora,init.ora如果以上三个文件均查找不到oracle在此时就会报错,同时在此阶段oracle会查找alter文件,如果没有找到alter文件会自动创建;启动相应的后台进程至少包括五个 pmon,DBWn,ckpt,smon,LGWn。总之,这个阶段主要就是启动一个实例,并为加载数据库确定必要的参数。 2. 启动到mount状态,这个阶段数据库打开控制文件,验证控制文件。 2.装载数据库--startup mount,读控制文件等 2-1将数据库与一个已打开的实例相关联 2-2打开控制文件 2-3获取数据文件和重做日志文件的名称和状态.

补充说明: 在mount阶段,oracle会打开控制文件,加载数据库,此时数据库的基本结构信息都能够查询了,但是还不能查询用户表的内容。 3. 启动到open状态,这个阶段数据库打开控制文件里描述的文件。 3.打开数据库--database open 3-1打开数据文件 3-2打开联机重做日志文件. 补充说明: 在open阶段,就是打开数据库,在这个阶段SMON会对数据文件的检查点进行一致性检查,不一致时smon会介入进行恢复。 Oracle中数据库实例和数据库是独立实体,可以独立存在。因此启动过程分成多个阶段:首先在内存中构建实例,然后通过安装数据库启用到数据库的连接,最后打开数据库来使用它。Oracle数据库有四种状态:SHUTDOWN:所有数据库文件都关闭,不存在实例 NOMOUNT:实例在内存中创建(SGA已经被创建,根据参数文件指定启动某些后台进程),但没有连接到任何数据库。 MOUNT:实例定位并读取数据库控制文件。 OPEN:所有的数据库文件都被定位和打开,终端用户可以使用数据库。 数据库的启动可分为三个阶段:

Oracle数据库重新启动的方法

Oracle数据库重新启动的方法 2010-11-15 10:02 佚名互联网我要评论(0)字号:T | T Oracle数据库是大家都非常熟悉的数据库系统,下文就将教您重新启动Oracle的详细步骤方法,希望可以对您能有所帮助。 AD: Oracle数据库重新启动应该如何实现呢?这是很多人都提到过的问题,下面就为您详细介绍Oracle数据库重新启动的方法,供您参考。 1. 停应用层的各种程序。 2. 停oralce的监听进程: $lsnrctl stop 3. 在独占的系统用户下,备份控制文件: SQL>alter database backup controlfile to trace; 4. 在独占的系统用户下,手工切换重作日志文件,确保当前已修改过的数据存入文件: SQL>alter system switch logfile; 5. 在独占的系统用户下,运行下面SQL语句,生成杀数据库用户连接的kill_all_session.sql文件: set head off; set feedback off; set newpage none; spool /oracle_backup/bin/kill_all_session.sql select 'alter system kill session '''||sid||', '||serial#||''';' from v$session where username is not null; spool off; 6. 在独占的系统用户下,执行杀数据库用户连接的kill_all_session.sql文件: SQL>@/oracle_backup/bin/kill_all_session.sql

ORACLE数据库启动过程祥解

ORACLE数据库启动过程祥解 本文目的 在ORACLE数据库治理中,启动数据库遇到问题较多。而且多数ORACLE的使用者在数据库启动过程中遇到错误提示,无从下手使用了错误的方法修改数据库的相关文件,而从造成了不必要的数据缺失。通过本文使读者对ORACLE数据库的启动过程有一个较为详细的了解,遇到启动过程的错误不至于手忙脚乱造成更大的缺失。 一、数据库启动方法 1、UNIX平台数据库启动方法 使用oracle用户登录服务器 $>sqlplus ‘/ as sysdba’(使用sys用户登录数据库) Sql>(系统提示连接到一个没有启动的实例) Sql>startup(正常启动数据库) 2、WINDOWS平台数据库启动方法 ●使用手工方式启动数据库。 ?打开DOS窗口 ?C:\>ordim –startup –sid ora9i(其中ora9i为实例的名称) 在WINDOWS平台启动ORACLE时经常遇到如下错误:

以上错误是由于,没有启动ORACLE数据库在WINDOWS平台中的服务。 正确启动过程如下: C:\>oradim -startup -sid ora9i C:\>lsnrctl start LSNRCTL for 32-bit Windows: Version 9.2.0.1.0 - Production on 28-7月-2006 22:24 :16 Copyright (c) 1991, 2002, Oracle Corporation. All rights reserved. 启动tnslsnr:请稍候... TNSLSNR for 32-bit Windows: Version 9.2.0.1.0 - Production 系统参数文件为c:\oracle\ora92\network\admin\listener.ora 写入c:\oracle\ora92\network\log\listener.log的日志信息监听:(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXT PROC0ipc)))监听: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=dba)(PORT=1521)) )正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC0))) LISTENER 的STATUS ------------------------ 别名LISTENER 版本TNSLSNR for 32-bit Windows: Version 9.2.0.1.0 - Produc tion 启动日期28-7月-2006 22:24:16 正常运行时刻0 天0 小时0 分 4 秒 跟踪级别off 安全性OFF SNMP OFF 监听器参数文件c:\oracle\ora92\network\admin\listener.ora

AIX操作系统和数据库启动及关闭

AIX操作系统的关闭:shutdown –F AIX操作系统的重启动:shutdown -rF 开启ORACLE 1、等待操作系统正常启动结束 2、使用telnet工具(SecureCRT)登录到系统 3、使用lsvg查看当前卷组配置 P560B:/# lsvg rootvg datavg archvg 系统输出显示系统中总共有三个卷组 4、使用lsvg –o 查看当前已经加载的卷组 P560B:/# lsvg -o archvg rootvg 默认情况下由于datavg是一个同步卷,因此系统不能在启动时加载,所以使用lsvg –o时看不到这个卷组,必须要启动Cluster服务,系统才会加载同步卷 5、启动Cluster 服务命令:smitty cl_admin。输入命令后系统会显示一个字符界面的操作提示,询问是否要启动,直接回车即可。 6、启动过程会需要几十秒至几分钟。正常情况下都会顺利的完成,此时字符界面提示执行状态为:OK 7、按Esc+0回到命令行提示符,再使用lsvg –o 查看当前已加载的卷组。有些时候启动Cluster服务完成以后并不能马上看到datavg被加载。请耐心等待,也可以监控Cluster

服务启动的输出文件:tail –f /tmp/hacmp.out只有当/tmp/hacmp.out这个文件停止输出的时候,Cluster服务才算真正启动结束。 8、确认datavg已经被加载后,切换到oracle 用户:su – oracle 9、成功切换到oracle用户后,可以发现系统提示符已经改变 P560B:/# su - oracle [YOU HA VE NEW MAIL] [P560B]/home/oracle$ 10、检查oracle 的监听服务是否已经正常启动,输入命令:lsnrctl $ lsnrctl LSNRCTL for IBM/AIX RISC System/6000: Version 9.2.0.7.0 - Production on 28-APR-2007 10:18:14 Copyright (c) 1991, 2002, Oracle Corporation. All rights reserved. Welcome to LSNRCTL, type "help" for information. LSNRCTL> 在命令行输入status查看当前监听的状态 LSNRCTL> status Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=ZAP550A)(PORT=1521))) TNS-12541: TNS:no listener TNS-12560: TNS:protocol adapter error TNS-00511: No listener IBM/AIX RISC System/6000 Error: 79: Connection refused LSNRCTL> 这表示监听尚未启动,启动监听:start LSNRCTL> start Starting /oracle/app/product/9.2/bin/tnslsnr: please wait... TNSLSNR for IBM/AIX RISC System/6000: Version 9.2.0.7.0 - Production System parameter file is /oracle/app/product/9.2/network/admin/listener.ora Log messages written to /oracle/app/product/9.2/network/log/listener.log

Linux平台下Oracle启动说明(多个数据库实例)

Linux平台Oracle多个实例启动说明: 环境说明:oracle实例1的SID为orcl(为默认启动的实例),第二个实例的SID为orcl2 启动步骤: 1)启动数据库实例完成后,启动数据库监听服务 #lsnrctl start 2)切换到需要启动的数据库实例下,如下表示启动的是orcl数据库实例,若要启动orcl2,则修改ORACLE_SID=orcl2 #export ORACLE_SID=orcl 3)使用oracle账号登陆Linux系统 #oracle #passwd:oraclepass 4)启动数据库实例 #sqlplus /nolog #conn /as sysdba #startup #exit 5)启动实例对应的管理控制台服务 #emctl start dbconsole oracle数据库启动和关闭方式 一、几种启动方式: 1、startup nomount 非安装启动,这种方式启动下可执行:重建控制文件、重建数据库 启动instance,即启动SGA和后台进程,这种启动只需要init.ora文件。 2、startup mount dbname 安装启动,这种方式启动下可执行:数据库日志归档、数据库恢复、重新命名一些数据库文件 如:系统表空间或日志文件。 执行“nomount”,然后打开控制文件 3、startup open dbname 先执行“nomount”,然后执行“mount”,再打开包括Redo log文件在内的所有数据库文件,, 这种方式下可访问数据库中的数据。 4、startup,等于以下三个命令 startup nomount alter database mount alter database open 5、startup restrict 约束方式启动 这种方式能够启动数据库,但只允许具有一定特权的用户访问 非特权用户访问时,会出现以下提示: ERROR: ORA-01035: ORACLE 只允许具有RESTRICTED SESSION 权限的用户使用

4、数据库启动与关闭

一、填空题 1、可通过在SQL*Plus中查询动态视图(V$INSTANCE)来查看实例的禁止操作状态. 2、数据库处于(关闭)状态的时候,用户就可以在没有I/O影响的情况下备份一个数据库. 3、启动数据库时,如果装载数据库但不打开数据库可执行(STARTUP MOUNT)命令. 二、选择题 1 将数据库启动到装载状态的命令 A: startup B: startup nomount C: startup mount D: startup open 答案: C 2 使用shutdown命令关闭数据库,发生的次序是 A: 先关闭实例进程 B: 先关闭数据库 C: 先卸载数据库 D: 没有先后次序 答案: B 3 执行shutdown transactional命令 A: 数据库仍然允许新的用户连接 B: 数据库马上关闭 C: 等待当前所有会话结束后关闭 D: 如果没有执行中的数据库事物,即马上关闭 答案: C 4 服务器断电,发生的现象是哪一个? A: 数据缓冲区的修改写入数据库 B: 没有提交的事物自动撤销 C: 数据文件、控制文件和日志文件处于不一致状态 D: 下次启动,需要进行手工恢复 答案: B 5 用户SCOTT正在执行UPDA TE语句,需要保证SCOTT的修改操作完成,理想的关闭实例方式是 A: SHUTDOWN ABORT B: SHUTDOWN IMMEDIA TE C: SHUTDOWN TRANSACTIONAL D: SHUTDOWN NORMAL 答案: C 6 在哪种关闭方式下,SMON进程要对数据库实例进行恢复 A: NORMAL B: TRANSACTIONAL C: IMMEDIA TE D: ABORT 答案: D 7 静态初始化参数文件的特点是

数据库SHUTDOWN与重启过程

SHUTDOWN NORMAL:不允许新的连接、等待会话结束、等待事务结束、做一个检查点并关闭数据文件。启动时不需要实例恢复。 SHUTDOWN TRANSACTIONAL:不允许新的连接、不等待会话结束、等待事务结束、做一个检查点并关闭数据文件。启动时不需要实例恢复。SHUTDOWN IMMEDIATE:不允许新的连接、不等待会话结束、不等待事务结束、做一个检查点并关闭数据文件。没有结束的事务是自动rollback的。启动时不需要实例恢复。 SHUTDOWN ABORT:不允许新的连接、不等待会话结束、不等待事务结束、不做检查点且没有关闭数据文件。启动时自动进行实例恢复。 oracle的启动过程 Oracle 的启动需要经历四个状态,SHUTDOWN 、NOMOUNT 、MOUNT 、OPEN、 SHUTDOWN状态 第一状态没什么好解释的,oracle的所有文件都静静的躺在磁盘里,一切都还未开始,属于关机状态 https://www.360docs.net/doc/9e15641023.html, NOMOUNT状态 Starting the instance (nomount) * Reading the initialization file from $ORACLE_HOME/dbs in the following order: -first spfileSID.ora -if not found then, spfile.ora -if not found then, initSID.ora Specifying the PFILE parameter with STARTUP overrides the default behavior. * Allocating the SGA * Starting the background processes

Oracle数据库的启动与关闭方法

Oracle数据库的启动与关闭方法 这篇文章主要介绍了Oracle数据库的启动与关闭方法,需要的朋友可以参考下一、启动数据 $sqlplus "sys/pass as sysdba" sql>startup 二、启动监听器 数据库启动后,如果未启动监听进程,则客户端无法与数据库连接。监听进程的启动方法为: $lsnrctl start 在widnows中,可以从服务列表中启动监听器。 监听里程配置文件为listener.ora,位于目录/home/app/oracle/product/10.1.0/db1/ne twork/admin/。 此配置文件分为两部分,一部分为监听程序本身的配置,包括协议,地址,端口号等;另一部分为监听程序所连接的数据库的实例信息,包括:实例名,全局数据库名,oracle主目录等。监听器可以利用oracle net config 向导来配置。 要显示监听器的运行状态:$lsnrctl status; 要停止监听器:$lsnrctl stop。 三、数据库的启动过程 分为三个阶段: 1. 启动实例,包括以下操作: 1) 读取参数文件 2) 分配SGA 3) 启动后台进程 2.装载数据库

装载数据库是将数据库与已启动的实例相联系。数据库装载后,数据库保持关闭状态。3.打开数据库 此步骤使用数据库可以进行正常的操作的处理。主要是打开控制文件,数据库文件和 日志文件。 四、数据库启动参数 1.NOMOUNT:只启动实例,不装载数据库 sql>startup nomount 2.MOUNT:启动实例,并装载数据,但不打开数据库 sql>startup mount 3.READ ONLY:将数据库置为只读 sql>startup mount sql>alter database open read only 4.READ WRITE:以可读写方式打开数据,这是默认方式 sql>startup mount sql>alter database open read write 5.OPEN:打开数据库,这是默认方式 sql>startup mount sql>alter database open; 6.RESTRICT:以受限方式打开,只有具有RESTRICTED SESSION权限的用户才可以连接数据 库 sql>startup restrict 7.PFILE:启时指定参数文件 sql>startup pfile=/u02/user/mypfile.ora 8.FORCE:以强制方式启动数据库 sql>startup pfile=/u02/user/mypfile.ora open restrict force

服务器(ORACLE)启动与关闭

一、重启服务器顺序: 关闭数据库(toppord/toptest)重启设备(reboot)开启数据库(只需要开启toptest,topprod已设置自动启用) 二、Linux下启动 oracle 数据库 -- ssh连接上数据库主机,正式区DB(172.16.13.228) / 测试区DB(172.16.13.224) -- su – root/tiptop -- su – oracle -- echo $ORACLE_SID #检查当前实例 -- export ORACLE_SID=topprod(正式区)/ export ORACLE_SID=topprod(测试区) #设置实例 -- lsnrctl start -- sqlplus / as sysdba -- startup 至此,已将数据库开启到OPEN状态。 三、Linux下关闭ORACLE数据库 -- ssh连接上正式区DB(172.16.13.228) / 测试区DB(172.16.13.224) -- su - root/root #切换至ROOT管理员用户 -- su – oracle #切换至oracle用户(oracle用户密码原为oracle,但不正确) -- echo $ORACLE_SID #检查当前实例 -- export ORACLE_SID=topprod(正式区)/ export ORACLE_SID=topprod(测试区) #设置实例-- sqlplus / as sysdba #以数据库管理员身份进入数据库 -- shutdown immediate #关闭数据库 -- su – root/root #切换回系统ROOT用户 -- reboot #重启服务器 检查服务器资源命令 AP:top DB:topas

Oracle关闭数据库与实例

Oracle关闭数据库与实例 与数据库的启动相对应,关闭数据库时也是分步骤进行的。在关闭数据库与实例时,需要使用一个具有SYSDBA权限的用户账户连接到Oracle中,然后使用SHUTDOWN语句执行关闭操作。 1 数据库的关闭步骤 与启动数据库实例的3个步骤相同,关闭数据库与实例也可以分为3步:关闭数据,实例卸载数据库,最后终止实例。 当关闭数据库时,Oracle会将日志缓存中的重做日志记录到重做日志文件,并且将数据缓存中被修改的数据写入数据文件,然后再关闭所有的数据文件和重做日志文件。这时数据库的控制文件仍然处于打开状态,但是由于数据库已经处理关闭状态,用户也将无法访问数据库。 关闭数据库后,实例才能够卸载数据库。这时,数据库的控制文件已经被关闭,但是实例仍然存在。 最后是终止实例,实例所拥用的所有后台进程和服务进程都将被终止,内存中的SGA 区被回收。 在SQL*Plus中可以使用SHUTDOWN语句关闭数据库,SHUTDOWN语句可以带有不同的子句,以控制数据库关闭的方式,其语法格式如下: shutdown [normal | transactional | immediate | abort] 2 正常关闭方式(NORMAL) 如果对关闭数据库的时间没有限制,通常会使用正常方式来关闭数据库。使用带有NORMAL子句的SHTUDOWN语句将以正常方式关闭数据库,下面显示了在SQL*Plus中以正常方式关闭过程: SQL> shutdown normal 数据库已经关闭。 已经卸载数据库。 ORACLE 例程已经关闭。 在正常方式关闭数据库时,Oracle将执行如下操作: ●阻止任何用户建立新的连接。 ●等待当前所有正在连接的用户主动断开连接,已经连接的用户能够继续当前的操 作。 ●一旦所有的用户都断开连接,则立即关闭、卸载数据库,并终止实例。 注意以正常方式关闭数据库时,Oracle并不会断开当前用户的连接,而是等待当前用户主动断开连接。因此,在使用SHUTDOWN NORMAL语句关闭数据库时,应该通知所有在线的用户尽快断开连接。

相关文档
最新文档