oracle停止一切进程,oracle启动/停止的几种方法以及 启动和停止过程中出错的解决办法...

news/2024/7/7 19:03:55

一、启动几种方法:

1、

sqlplus /nolog

connect /as sysdba

startup

2、

sqlplus /nolog

connect /as sysdba

startup nomount

alter database mount

alter database open

在以上两种方法中,1方法中的startup相当于2方法中的

startup nomount

alter database mount

alter database open

三个命令

3、

$ORACLE_HOME/bin/dbstart

先启动数据库再启动监听

$ORACLE_HOME/bin/lsnrctl start

二、停止:

先停止监听再停止数据库

$ORACLE_HOME/bin/lsnrctl stop

停止的方法

1、

sqlplus /nolog

connect /as sysdba

shutdown immediate

2、

$ORACLE_HOME/bin/dbshut

三、startup的几个选项

1、nomount只启动实例,不安装和打开数据库

2、mount启动实例、安装数据库但不打开数据库,此参数用于修改数据库的运行模式或进行数据库恢复,如:

alter database archivelog;

alter database open;

archive log list

以上命令可以更改数据库的归档模式

3、read only只读属性

4、read write读写属性

5、open打开数据库

6、restrict表示数据库以受限制方式打开

7、pfile选项,用于参数文件破坏,或者另外指定参数文件,如:

startup pfile=/u01/user/proddb.ora

force以强制方式启动数据库,可以用于重新启动数据库

以上参数可以联合使用

四、数据库在启动过程中失败的几中恢复方法

1、数据库实例启动失败

1.1数据库实例定义错误

connect internal

select name from v$database;

show sga

执行以上两条语句会报如下错误:

ORA-01034:ORACLE not available

这是由于数据库实例与实际不相符造成的,重新定义数据库实例即可

$ORACLE_SID=orcl

$export ORACLE_SID

1.2参数文件错误

startup

ORA-03113:end-or-file on communication channel

重新修改参数文件,或者重新指定一个

2、数据库安装失败

ORA-00205:error in identifying controlfile,check alert log for more info

这是控制文件出错

重新建立一个控制文件

3、数据库打开失败

3.1数据文件破坏

ORA-01110:data file 11:'u01/app/oracle/oradata/ora8i/acc01.dbf'

这是数据文件损坏的错误

如果数据库运行在noarchivelog模式下

alter database 'u01/app/oracle/oradata/ora8i/acc01.dbf' offline drop;

alter database open;

这时数据库可以运行,但损坏的数据文件永远也不能恢复

如果是运行在archivelog模式下

alter database 'u01/app/oracle/oradata/ora8i/acc01.dbf' offline;

alter database open;

这时候数据库可以正常使用,而且损坏的数据文件也恢复了

3.2日志文件破坏

ORA-00312:inline log 4 thread 1:'u01/app/oracle/oradata/ora8i/log4a.log'

这是第四组的第一个日志文件出错了

删除已经损坏的日志文件组

alter database drop logfile group 4;

增加新的日志文件组

alter database add logfile group 4

('/u01/app/oracle/oradata/ora8i/log4a.log','/u01/app/oracle/oradata/ora8i/log4b.log') size 100m;

打开数据库

alter database open;

此外可以用dbv命令检测数据库文件是否损坏

dbv help=y

====================================================

启动数据库的同时也就创建了一个数据库的实例,并且可以选择数据库启动的状态。通常可以通过装载和打开数据库来启动实例。这样任何一个有效的用户都能连接到该实例并执行典型的数据访问操作,但是还可以选择另外的方法。这一节也将讨论这些内容

1.启动数据库的方法1. 使用SQL*Plus:可以先使用SQL*Plus 连接到具有管理员权限的Oracle 然后再发布STARTUP 命令

2.使用Recovery Manager:使用Recovery Manager RMAN 来执行STARTUP 和SHUTDOWN 命令

3. 使用Oracle Enterprise Manager

4. 使用DGMGRL.exe命令行数据库管理程序 (help查看所有命令)

2.使用SQL*Plus 启动数据库

1.作为SYSDBA 连接到Oracle:CONNECT username/password AS SYSDBA。

2.启动的初始化参数文件

使用STARTUP 命令来启动数据库实例要启动实例,Oracle 必须从服务器参数文件或传统的文本初始化参数文件中读取实例配置参数初始化参数。当发布不带PFILE 子句的STARTUP 命令时Oracle 将从平台指定的默认位置上的服务器参数文件SPFILE 中读取初始化参数。

对于UNIX 平台为服务器参数文件或文本初始化参数文件指定的默认位置目录是$ORACLE_HOME/dbs

对于Windows NT 和Windows 2000 其位置是%ORACLE_HOME%\database

在平台指定的默认位置上Oracle 通过检查文件名按照如下次序放置初始化参数文件

spfile$ORACLE_SID.ora

spfile.ora

init$ORACLE_SID.ora

通过使用STARTUP 命令的PFILE 子句命令,Oracle 从传统的文本初始化参数文件中读取初始化参数例如:

STARTUP PFILE = F:\oracle\ora92\database\INIToradb.ORA

从服务器参数文件创建初始化参数文件的语句如下:

connect system/system as sysdba;

create pfile from spfile;

3.启动实例可以采取不同的模式

启动没有装载数据库的实例

这种模式不允许访问数据库,并且通常只适用于数据库创建或控制文件的重新创建的情况。

启动实例并装载数据库,但是保持数据库关闭状态

这种模式适用于某些DBA 的动作,但是不允许对数据库的一般的访问动作。

启动实例,装载并打开数据库

这种模式可以在不受限制的方式下使用,允许所有用户访问,或者在受限制的方式下使用只允许数据库管理员访问。

另外,可以迫使实例启动,或者启动实例并立即开始完整的介质恢复过程。

STARTUP命令可以指定选项获取这些状态模式。

3.启动实例各种方案

当与STARTUP 命令的选项一起使用时会有一些限制条件:

注意如果没有可以利用的控制文件、数据库文件或重做日志文件,那么在启动实例时很可能会遇到一些问题。如果由CONTROL_FILES初始化参数指定的一个或多个文件不存在,或在装载数据库时不能打开,那么Oracle 将返回一条警告消息并不能装载数据库。如果数据文件或者重做日志文件,它的一个或多个不存在,或者在打开数据库时不能打开,那么Oracle 将返回一条警告消息并不能装载数据库。

1. 启动实例,装载并打开数据库

普通的数据库操作意味着某个实例已经启动并且数据库也已经装载并打开。这种模式允许任何一个有效的用户连接到数据库并执行典型的数据访问操作。

启动实例,接着从默认的服务器参数文件位置读取初始化参数,然后通过使用STARTUP 命令来装载和打开数据库(当然也可以选择由PFILE 或SPFILE 子句指定初始化参数文件)

STARTUP

2. 启动实例,不装载数据库

启动实例而不用装载数据库,通常只在整个数据库创建过程中使用该模式。使用带NOMOUNT 选项的STARTUP 命令。

STARTUP NOMOUNT

3. 启动实例并装载数据库

可以启动实例并装载数据库,不用打开数据库。该模式允许执行特定的维护操作。例如在下面的任务中必须装载数据库而不用打开数据库:

重命名数据文件

添加取消或重命名重做日志文件

允许和禁止重做日志存档选项

执行完整的数据库恢复操作

通过使用带MOUNT 选项的STARTUP 命令来启动实例并装载数据库,但是保持数据库关闭状态。

STARTUP MOUNT

4. 在启动过程中限制访问数据库

可以在受限制的模式下启动实例并装载和打开数据库,以便只有管理人员而不是一般的数据库用户可以利用数据库。当需要完成以下一种任务时使用这种数据库启动模式

执行数据库数据的导出或导入操作

执行数据装载操作用SQL*Loader

暂时阻止一般的用户使用数据

在某个移植过程和升级操作过程中

通常,所有拥有CREATE SESSION 系统权限的用户都能连接到一个打开的数据库上。以受限模式打开数据库可以允许拥有CREATE SESSION和RESTRICTED SESSION两种系统权限的用户访问数据库,只有数据库管理员拥有RESTRICTED SESSION 系统权限。

通过使用带RESTRICT 选项的STARTUP 命令,可以在受限模式下启动实例(还可以装载和打开数据库)。

STARTUP RESTRICT

之后使用ALTER SYSTEM 语句来禁止RESTRICTED SESSION 特性

ALTER SYSTEM DISABLE RESTRICTED SESSION;

如果是在非受限模式下打开的数据库,后来发现需要限制访问,此时可以使用带ENABLE RESTRICTED SESSION 子句的ALTER SYSTEM 语句来完成任务。

5. 迫使实例启动

在一些特殊环境下,可能会在启动数据库实例的时候遇到一些问题。一般不要迫使数据库启动,除非是在以下情形:

用SHUTDOWN NORMAL、SHUTDOWN IMMEDIATE、SHUTDOWN TRANSACTIONAL 命令不能关闭当前的实例时

在启动实例的时候遇到一些问题时

如果产生了上面的一种情形,通常可以使用带FORCE 选项的STARTUP 命令来启动一个新的实例,从而解决这个问题。

STARTUP FORCE

如果正在运行某个实例,那么在重新启动实例前STARTUP FORCE 可以使用ABORT模式关闭该实例。

6. 启动实例,装载数据库并启动完整的介质恢复过程

如果知道需要介质恢复过程,就可以启动实例并为其装载数据库,以及通过使用带RECOVER 选项的STARTUP 命令的方法来自动启动恢复进程。

STARTUP OPEN RECOVER

如果不需要任何的恢复进程时,在试图执行恢复进程时Oracle 将发布一条错误消息。

7. 在操作系统启动过程中自动启动数据库

使Oracle 实例和数据库在操作系统启动之后自动启动执行。这项任务的进程在不同的操作系统中是不同的


http://lihuaxi.xjx100.cn/news/236337.html

相关文章

Web.XML文件中关于代码提示的一些问题

1. 问题描述 在进行ssm的整合时,我发现在web.xml文件中里按了alt/以后没有下面的提示:这样真的很不爽。。。于是弄了半天(主要是等着)终于解决了,特此写篇博客记录下。 2. 解决方案 在eclipse中安装Spring IDE的插件&a…

C++动态二维数组演示的代码

将代码过程中经常用到的代码珍藏起来&#xff0c;下边资料是关于C动态二维数组演示的代码。 #include <iostream> #include <string>using namespace std;{for( int i 0; i < x; i ){List[i] new int[y];for( int j 0; j < y; j ){List[i][j] 0;}}for( i…

oracle scn与数据恢复,SCN与数据库恢复的关系

一。SCN与CHECKPOINTCKPT进程在checkpoint发生时&#xff0c;将当时的SCN号写入数据文件头和控制文件&#xff0c;同时通知DBWR进程将数据块写到数据文件。CKPT进程也会在控制文件中记录RBA(redo block address),以标志Recovery需要从日志中哪个地方开始。与checkpoint相关的SC…

从 Java 到 Scala(二):object

本文由 Rhyme 发表在 ScalaCool 团队博客。 object是一种让静态回归常态、打破模式、天然的语言特性。 其实在写这篇文章之前&#xff0c;我思绪万千&#xff0c;迟迟不能落笔&#xff0c;总想着自己会不会遗漏了某个知识点&#xff0c;或者有讲得不太那么准确的地方&#xff0…

redux-thunk使用教程

从无到有一步一步创建一个react-redux、redux-thunk使用教程&#xff1a;本教程GitHub地址&#xff1a;https://github.com/chunhuigao/react-redux-thunk创建react工程在电脑上找一个文件夹&#xff0c;在命令窗使用create-react-app 创建我的react工程&#xff1b;这一步应该…

oracle异地迁移,数据泵实现Oracle数据迁移到异地库

今天发现impdp命令有个特殊的用途&#xff0c;可以将数据库的一个用户迁移到另一台机器上的数据库的用户中。如果目标用户不存在&#xff0c;还可以对应的创建该用户。下面就来看一下命令格式&#xff1a;Impdpusername/passwddbsnameremap_schemauserA:userB remap_tablespace…

[Vue CLI 3] 插件编写实战和源码分析

当你看过了官方的几个插件之后&#xff0c;慢慢地&#xff0c;其实你也有需求了。 那如何编写一个 Vue CLI 3 的插件呢&#xff1f;本文代码已经放到 github 上&#xff0c;地址&#xff1a;https://github.com/dailynodej... 我们建一个文件夹&#xff0c;取名 vue-cli-plugin…

@HostListener 可接收的事件列表

下面有一个文档详细介绍Angular 中的事件列表&#xff1a; https://github.com/angular/angular/blob/master/packages/compiler/src/schema/dom_element_schema_registry.ts#L78。 星号代表的是事件 (no prefix): property is a string.*: property represents an event.!: pr…