ORACLE控制文件损坏处理办法

ORACLE控制文件损坏处理办法
ORACLE控制文件损坏处理办法

ORACLE控制文件损坏处理办法

--关于ORACLE控制文件错误的处理

处理方法一.更改INIT.ORA中的参数,删除不能使用的controlFile ;

处理方法二.

先备份ORACLE安装目录和所有自定义创建的数据文件,再按照以下步骤进行试验处理。进入MS-DOS窗口,适用SVRMGRL工具;

CONNECT INTERNAL/ORACLE ;

STARTUP NOMOUNT;

CREATE CONTROLFILE REUSE DA TABASE "ORCL" NORESETLOGS NOARCHIVELOG MAXLOGFILES 32

MAXLOGMEMBERS 2

MAXDATAFILES 32

MAXINSTANCES 16

MAXLOGHISTORY 1815

LOGFILE

#此处根据实际情况处理

GROUP 1 'D:\ORACLE\ORADATA\ORCL\REDO03.LOG' SIZE 1M,

GROUP 2 'D:\ORACLE\ORADATA\ORCL\REDO02.LOG' SIZE 1M,

GROUP 3 'D:\ORACLE\ORADATA\ORCL\REDO01.LOG' SIZE 1M

DA TAFILE

#此处根据实际情况处理

'D:\ORACLE\ORADA TA\ORCL\SYSTEM01.DBF',

'D:\ORACLE\ORADA TA\ORCL\RBS01.DBF',

'D:\ORACLE\ORADA TA\ORCL\USERS01.DBF',

'D:\ORACLE\ORADA TA\ORCL\TEMP01.DBF',

'D:\ORACLE\ORADA TA\ORCL\TOOLS01.DBF',

'D:\ORACLE\ORADA TA\ORCL\INDX01.DBF',

'D:\ORACLE\ORADA TA\ORCL\DR01.DBF',

'D:\ORACLE\ORADA TA\ORCL\SDE.ORA',

'D:\ORACLE\ORADA TA\ORCL\GIS.ORA',

'D:\ORACLE\ORADA TA\ORCL\OEM_REPOSITORY.ORA'

CHARACTER SET ZHS16GBK

;

# Take files offline to match current control file.

# 可以不执行以下DROP

ALTER DATABASE DATAFILE 'D:\ORACLE\ORADA TA\ORCL\USERS01.DBF'

OFFLINE DROP;

ALTER DATABASE DATAFILE 'D:\ORACLE\ORADA TA\ORCL\TOOLS01.DBF'

OFFLINE DROP;

ALTER DATABASE DATAFILE 'D:\ORACLE\ORADA TA\ORCL\INDX01.DBF' OFFLINE DROP;

ALTER DATABASE DATAFILE 'D:\ORACLE\ORADA TA\ORCL\DR01.DBF' OFFLINE

DROP;

# Recovery is required if any of the datafiles are restored backups,

# or if the last shutdown was not normal or immediate.

# 可以直接使用RECOVER

RECOVER DATABASE

# Database can now be opened normally.

ALTER DATABASE OPEN;

# No tempfile entries found to add.

# OK !!!!一切搞定

另外控制文件出现错误时ORACLE不提示控制文件错误,而是提示数据文件错误;比如:Ora-01122 ora-01110 ora-01207 ,可以在MOUNT状态下查询V$RECOVER_FILE,

Oracle DBA 数据库日常维护手册 常用SQL 脚本

Oracle数据库日常维护 【版本整理日期:2011/02/26 】 版本整理人:1634068400@https://www.360docs.net/doc/212811487.html, 本文档包含以下内容: 1.Oracle数据库日常维护 2.Oracle DBA 常用管理脚本 3.Oracle DB 常用SQL 语句

/******************************************************** https://www.360docs.net/doc/212811487.html,(若跳转不成功,请复制到浏览器或联系Q) https://www.360docs.net/doc/212811487.html,/item.htm?id=7437120468Metalink Sharing ********************************************************/

在Oracle数据库运行期间,DBA应该对数据库的运行日志及表空间的使用情况进行监控,及早发现数据库中存在的问题。 一、Oracle警告日志文件监控 Oracle在运行过程中,会在警告日志文件(alert_SID.log)中记录数据库的一些运行情况: l数据库的启动、关闭,启动时的非缺省参数; l数据库的重做日志切换情况,记录每次切换的时间,及如果因为检查点(checkpoint)操作没有执行完成造成不能切换,会记录不能切换的原因; l对数据库进行的某些操作,如创建或删除表空间、增加数据文件; l数据库发生的错误,如表空间不够、出现坏块、数据库内部错误(ORA -600)

DBA 应该定期检查日志文件,根据日志中发现的问题及时进行处理 问题 处理 启动参数不对 检查初始化参数文件 因为检查点操作或归档操作没有完成造成重做日志不能切换 如果经常发生这样的情况,可以考虑增加重做日志文件组;想办法提高检查点 或归档操作的效率; 有人未经授权删除了表空间 检查数据库的安全问题,是否密码太简 单;如有必要,撤消某些用户的系统权 限 出现坏块 检查是否是硬件问题(如磁盘本生有坏 块),如果不是,检查是那个数据库对象 出现了坏块,对这个对象进行重建 表空间不够 增加数据文件到相应的表空间 出现ORA-600 根据日志文件的内容查看相应的TRC 文件,如果是Oracle 的bug ,要及时打 上相应的补丁 二、数据库表空间使用情况监控(字典管理表空间) 数据库运行了一段时间后,由于不断的在表空间上创建和删除对象,会在表空间上产生大量的碎片,DBA 应该及时了解表空间的碎片和可用空间情况,以决定是否要对碎片进行整理或为表空间增加数据文件。 select tablespace_name,

oracle备份控制文件

如何备份控制文件 ?1、 ?ALTER DATABASE BACKUP CONTROLFILE TO TRACE; ?ALTER DATABASE BACKUP CONTROLFILE TO TRACE RESETLOGS; ?ALTER DATABASE BACKUP CONTROLFILE TO TRACE NORESETLOGS; ? ?2、 ?ALTER DATABASE BACKUP CONTROLFILE TO 文件名; ?ALTER DATABASE BACKUP CONTROLFILE TO 文件名 REUSE;(如果此文件已存在) ? ?例: ?SQL> ALTER DATABASE BACKUP CONTROLFILE TO 'c:\a'; ? ?数据库已更改。 ? ?SQL> ALTER DATABASE BACKUP CONTROLFILE TO 'c:\a'; ?ALTER DATABASE BACKUP CONTROLFILE TO 'c:\a' ?* ?ERROR 位于第 1 行: ?ORA-01580: 创建控制备份文件c:\a时出错 ?ORA-27038: skgfrcre: 文件存在 ?OSD-04010: <创建> 选项指定,文件已经存在 ? ? ?SQL> ALTER DATABASE BACKUP CONTROLFILE TO 'c:\a' reuse; ? ?数据库已更改。 ? ?SQL> ? ?3、 ?Shutdown,直接看init.ora文件中的control_files项,找到其中任意一个控制文件, ?用操作系统命令复制到备份地点即可(如:软盘、光盘、磁带等) ? ?第一种方法产生的是一个跟踪文件,里面存放的是创建控制文件的脚本,可以用记事本等文本编辑器打开 ?这个脚本可以让你重新创建控制文件, ?生成一个跟踪文件到init.ora中user_dump_dest所指的目录下($ORACLE_HOME\ADMIN\ORADB\UDUMP\)。 ?

7损坏或丢失控制文件的恢复方法

一、损坏单个控制文件 损坏单个控制文件是比较容易恢复的,因为一般的数据库系统,控制文件都不是一个,而且所有的控制文件都互为镜相,只要拷贝一个好的控制文件替换坏的控制文件就可以了。 1、控制文件损坏,最典型的就是启动数据库出错,不能mount数据库 SQL>startup ORA-00205: error in identifying controlfile, check alert log for more info 查看报警日志文件,有如下信息 alter database mount Mon May 26 11:59:52 2003 ORA-00202: controlfile: 'D:Oracleoradatachencontrol01.ctl' ORA-27041: unable to open file OSD-04002: unable to open file O/S-Error: (OS 2) 系统找不到指定的文件。 2、停止数据库 SQL>shutdown immediate

3、拷贝一个好的控制文件替换坏的控制文件或修改init.ora中的控制文件参数,取消这个坏的控制文件。 4、重新启动数据 SQL>startup 说明: 1、损失单个控制文件是比较简单的,因为数据库中所有的控制文件都是镜相的,只需要简单的拷贝一个好的就可以了 2、建议镜相控制文件在不同的磁盘上 3、建议多做控制文件的备份,长期保留一份由alter database backup control file to trace产生的控制文件的文本备份 二、损坏全部控制文件 损坏多个控制文件,或者人为的删除了所有的控制文件,通过控制文件的复制已经不能解决问题,这个时候需要重新建立控制文件。同时注意,alter database backup control file to trace可以产生一个控制文件的文本备份。 以下是详细重新创建控制文件的步骤 1、关闭数据库

Oracle数据库日常维护手册

Oracle数据库日常维护手册 在Oracle数据库运行期间,DBA应该对数据库的运行日志及表空间的使用情况进行监控,及早发现数据库中存在的问题。 一、Oracle警告日志文件监控 Oracle在运行过程中,会在警告日志文件(alert_SID.log)中记录数据库的一些运行情况: ●数据库的启动、关闭,启动时的非缺省参数; ●数据库的重做日志切换情况,记录每次切换的时间,及如果因为检查点(checkpoint)操作没有执行完成造成不能切换,会记录不能切换的原因; ●对数据库进行的某些操作,如创建或删除表空间、增加数据文件; ●数据库发生的错误,如表空间不够、出现坏块、数据库内部错误(ORA-600) DBA应该定期检查日志文件,根据日志中发现的问题及时进行处理 问题处理 启动参数不对检查初始化参数文件 因为检查点操作或归档操作没有完成造成重做日志不能切换如果经常发生这样的情况,可以考虑增加重做日志文件组;想办法提高检查点或归档操作的效率; 有人未经授权删除了表空间检查数据库的安全问题,是否密码太简单;如有必要,撤消某些用户的系统权限 出现坏块检查是否是硬件问题(如磁盘本生有坏块),如果不是,检查是那个数据库对象出现了坏块,对这个对象进行重建 表空间不够增加数据文件到相应的表空间 出现ORA-600根据日志文件的内容查看相应的TRC文件,如果是Oracle的bug,要及时打上相应的补丁 二、数据库表空间使用情况监控(字典管理表空间)

数据库运行了一段时间后,由于不断的在表空间上创建和删除对象,会在表空间上产生大量的碎片,DBA应该及时了解表空间的碎片和可用空间情况,以决定是否要对碎片进行整理或为表空间增加数据文件。 select tablespace_name, count(*) chunks , max(bytes/1024/1024) max_chunk from dba_free_space group by tablespace_name; 个人收集整理 上面的SQL列出了数据库中每个表空间的空闲块情况,如下所示: TABLESPACE_NAME CHUNKS MAX_CHUNK -------------------- ---------- ---------- INDX 1 57.9921875 RBS 3 490.992188 RMAN_TS 1 16.515625 SYSTEM 1 207.296875 TEMP 20 70.8046875 TOOLS 1 11.8359375 USERS 67 71.3671875个人收集整理 其中,CHUNKS列表示表空间中有多少可用的空闲块(每个空闲块是由一些连续的Oracle 数据块组成),如果这样的空闲块过多,比如平均到每个数据文件上超过了100个,那么该表空间的碎片状况就比较严重了,可以尝试用以下的SQL命令进行表空间相邻碎片的接合: alter tablespace 表空间名 coalesce; 然后再执行查看表空间碎片的SQL语句,看表空间的碎片有没有减少。如果没有效果,并且表空间的碎片已经严重影响到了数据库的运行,则考虑对该表空间进行重建。 MAX_CHUNK列的结果是表空间上最大的可用块大小,如果该表空间上的对象所需分配的空间(NEXT值)大于可用块的大小的话,就会提示ORA-1652、ORA-1653、ORA-1654的错误信息,DBA应该及时对表空间的空间进行扩充,以避免这些错误发生。 对表空间的扩充对表空间的数据文件大小进行扩展,或向表空间增加数据文件,具体操作见“存储管理”部份。 三、查看数据库的连接情况

oracle及操作系统对于文件大小的限制

[ORACLE]:单个表空间的数据限制 当将表空间加到4GB的时候,系统提示表空间不足。 原因: FAT12 单文件最大支持8M Fat16单文件最大支持2G Fat32单文件不能大于4G NTFS单文件最大64GB NTFS5.0单文件最大2TB 解决方案: 增加多个数据文件,对应同一个表空间。 因为:size of a tablespace = size of each datafile * number of datafiles ======================================== Oracle中数据文件大小的限制 https://www.360docs.net/doc/212811487.html,/archives/2007/07/oracle_datafile_limit.html Oracle数据文件的大小存在一个内部限制,这个限制是: 每个数据文件最多只能包含2^22-1个数据块。 这个限制也就直接导致了每个数据文件的最大允许大小。 在2K Block_size下,数据文件最大只能达到约8G 在32K的Block_size下,数据文件最大只能达到约16*8G的大小。 这个限制是由于Oracle的Rowid中使用22位来代表Block号,这22位最多只能代表2^22-1个数据块。 为了扩展数据文件的大小,Oracle10g中引入了大文件表空间,在大文件表空间下,Oracle使用32位来代表Block号,也就是说,在新的技术下,大文件表空间下每个文件最多可以容纳4G个Block。 那么也就是说当Block_size为2k时,数据文件可以达到8T 。 当block_size为32K时,数据文件可以达到128T。 上周在做2K block_size测试时,第一次遇到了这个限制: SQL> alter tablespace eygle add datafile 'f:eygle02.dbf' size 8192M; alter tablespace eygle add datafile 'f:eygle02.dbf' size 8192M * ERROR 位于第 1 行: ORA-01144: 文件大小 (4194304 块) 超出 4194303 块的最大数

oracle 数据文件、表空间、日志文件、控制文件数据库管理

实验四 oracle 数据库管理 一、试验目的 掌握对数据文件、表空间、日志文件、控制文件的常用命令,作为DBA的必要准备。 二、实验内容 2.1 数据文件的管理 (1)在安装完毕之后,在INITsid.ORA参数文件有一个DB_FILES 参数,用于设置当前实例的数据外文件的个数。如: db_files = 80 如果在INITsid.ORA文件没有该参数,则可以用下面查询语句从视图中查到。如: SQL> col name for a20 SQL> col value for a50 SQL> set lin 100 SQL> select name,value from v$parameter where name = 'db_files'; NAME V ALUE -------------------- -------------------------------------------------- db_files 1024 (2)行命令建立表空间: 例1 CREATE TABLESPACE user_stu DA TAFILE 'h:/oracle/oradata/orcl/user_stu.dat' SIZE 20M DEFAULT STORAGE ( INITIAL 10K NEXT 50K MINEXTENTS 1 MAXEXTENTS 99 PCTINCREASE 10 ) ONLINE ; 例2:建立一个新的表空间,具有两个数据文件: CREATE TABLESPACE CRM_TAB DA TAFILE 'h:/oracle/oradata/orcl/crm01.dbf' size 10 MB,'h:/oracle/oradata/orcl/crm02.dbf' size 10 MB; (3)对一个已存在的表空间追加新数据文件: 例1 ALTER TABLESPACE user_stu Add datafile 'H:/oracle/oradata/orcl/user_stu01.dbf' size 30M; 例2 为表空间增加数据文件 ALTER TABLESPACE users ADD DATAFILE 'userora1.dbf ' SIZE 10M ; (4)数据文件更名 ALTER TABLESPACE users

修改oracle实例名(sid)和数据库名(db_name)

修改oracle实例名(sid)和数据库名(db_name) 有时我们需要修改数据库的sid和dbname,除了使用rman进行备份恢复之外,也可以通过手工方式修改,主要由两个主要过程完成: 1、修改实例名(SID) 2、修改数据库名(dbname) 下面演示将数据库sid和dbname由orcl修改为cnhtm的过程: 1、修改实例名(sid) 1.1、检查原来的数据库实例名(sid) oracle@oracle[/home/oracle]> echo $ORACLE_SID orcl oracle@oracle[/home/oracle]> sqlplus / as sysdba SQL*Plus: Release 10.2.0.1.0 - Production on Sun Dec 20 11:14:49 2009 Copyright (c) 1982, 2005, Oracle. All rights reserved. Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production With the Partitioning, OLAP and Data Mining options sys@ORCL> select instance from v$thread; INSTANCE -------------------------------------------------------------------------------- orcl 1.2、关闭数据库 注意不能用shutdown abort,只能是shutdown immediate或shutdown normal

oracle数据库基本操作

实战经验Oracle数据库基本操作步步详解来源:2007年06月12日15:34网友评论:0条点击: 274 一,约束操作 1:更改约束名称: ALTER TABLE TName RENAME CONSTRAINT oldname TO newname; 2:删除约束 ALTER TABLE TName DROP CONSTRAINT cname 3:停止约束 ALTER TABLE TName MODIFY CONSTRAINT cname DISABLE; 4:起用约束 ALTER TABLE TName MODIFY CONSTRAINT cname ENABLE VALIDATE; 5:新增约束 ALTER TABLE TName ADD CONSTRAINT cname FOREIGN KEY (ORG_ID) REFERENCES ref_table (ORGID); 二,字段操作 1:更改字段数据类型: ALTER TABLE TName MODIFY(ORG_ID VARCHAR2(50 BYTE)); 2:更改字段数据长度: ALTER TABLE TName MODIFY(ORG_ID VARCHAR2(80 BYTE)); 3:修改表的列名 alter table TName rename column xx to yy; 三,表操作 1:删除表数据: truncate table TName; 2:复制空表结构 create table new_table as select * from old_table where 1=2; 3:复制表(含记录) create table new_table as select * from old_table ; 四,存储过程 1:命令行编译存储过程 ALTER PROCEDURE procedure_name COMPILE;

Oracle案例:损坏控制文件的恢复方法

Oracle案例:损坏控制文件的恢复方法 一:损坏单个控制文件 损坏单个控制文件是比较容易恢复的,因为一般的数据库系统,控制文件都不是一个,而且所有的控制文件都互为镜相,只要拷贝一个好的控制文件替换坏的控制文件就可以了。1、控制文件损坏,最典型的就是启动数据库出错,不能mount数据库 SQL>startup ORA-00205: error in identifying controlfile, check alert log for more info 查看报警日志文件,有如下信息 alter database mount Mon May 26 11:59:52 2003 ORA-00202: controlfile: 'D:\Oracle\oradata\chen\control01.ctl' ORA-27041: unable to open file OSD-04002: unable to open file O/S-Error: (OS 2) 系统找不到指定的文件。 2、停止数据库 SQL>shutdown immediate 3、拷贝一个好的控制文件替换坏的控制文件或修改init.ora中的控制文件参数,取消这个坏的控制文件。 4、重新启动数据 SQL>startup 说明: 1、损失单个控制文件是比较简单的,因为数据库中所有的控制文件都是镜相的,只需要简

单的拷贝一个好的就可以了 2、建议镜相控制文件在不同的磁盘上 3、建议多做控制文件的备份,长期保留一份由alter database backup control file to trace产生的控制文件的文本备份 二:损坏全部控制文件 损坏多个控制文件,或者人为的删除了所有的控制文件,通过控制文件的复制已经不能解决问题,这个时候需要重新建立控制文件。 同时注意,alter database backup control file to trace可以产生一个控制文件的文本备份。 以下是详细重新创建控制文件的步骤 1、关闭数据库 SQL>shutdown immediate; 2、删除所有控制文件,模拟控制文件的丢失 3、启动数据库,出现错误,并不能启动到mount下 SQL>startup ORA-00205: error in identifying controlfile, check alert log for more info 查看报警日志文件,有如下信息 alter database mount Mon May 26 11:53:15 2003 ORA-00202: controlfile: 'D:\Oracle\oradata\chen\control01.ctl'

处理数据损坏

Oracle 实训张大鹍手打总结 Oracle 实训张大鹍手打总结 处理数据损坏

一、关于bbed bbed用于检测坏块和处理坏块。 BBED(OracleBlockBrowerandEDitor Tool),用来直接查看和修改数据文件数据的一个工具,是Oracle一款内部工具,可以直接修改Oracle数据文件块的内容,在一些极端恢复场景下比较有用。该工具不受Oracle支持,所以默认是没有生成可执行文件的,在使用前需要重新连接。 二、编译bbed 1、进入lib目录 [oracle@zdk ~]$ cd $ORACLE_HOME [oracle@zdk db_1]$ cd rdbms/lib/ [oracle@zdk lib]$ pwd /u01/app/oracle/product/10.2.0.1/db_1/rdbms/lib 2、激活bbed [oracle@zdk lib]$ make -f ins_rdbms.mk /u01/app/oracle/product/10.2.0.1/db_1/rdbms/lib/bbed Linking BBED utility (bbed) rm -f /u01/app/oracle/product/10.2.0.1/db_1/rdbms/lib/bbed gcc-o/u01/app/oracle/product/10.2.0.1/db_1/rdbms/lib/bbed -L/u01/app/oracle/product/10.2.0.1/db_1/rdbms/lib/ -L/u01/app/oracle/product/10.2.0.1/db_1/lib/ -L/u01/app/oracle/product/10.2.0.1/db_1/lib/stubs/ -L/usr/lib -lirc

ORACLE控制文件损坏处理办法

ORACLE控制文件损坏处理办法 --关于ORACLE控制文件错误的处理 处理方法一.更改INIT.ORA中的参数,删除不能使用的controlFile ; 处理方法二. 先备份ORACLE安装目录和所有自定义创建的数据文件,再按照以下步骤进行试验处理。进入MS-DOS窗口,适用SVRMGRL工具; CONNECT INTERNAL/ORACLE ; STARTUP NOMOUNT; CREATE CONTROLFILE REUSE DA TABASE "ORCL" NORESETLOGS NOARCHIVELOG MAXLOGFILES 32 MAXLOGMEMBERS 2 MAXDATAFILES 32 MAXINSTANCES 16 MAXLOGHISTORY 1815 LOGFILE #此处根据实际情况处理 GROUP 1 'D:\ORACLE\ORADATA\ORCL\REDO03.LOG' SIZE 1M, GROUP 2 'D:\ORACLE\ORADATA\ORCL\REDO02.LOG' SIZE 1M, GROUP 3 'D:\ORACLE\ORADATA\ORCL\REDO01.LOG' SIZE 1M DA TAFILE #此处根据实际情况处理 'D:\ORACLE\ORADA TA\ORCL\SYSTEM01.DBF', 'D:\ORACLE\ORADA TA\ORCL\RBS01.DBF', 'D:\ORACLE\ORADA TA\ORCL\USERS01.DBF', 'D:\ORACLE\ORADA TA\ORCL\TEMP01.DBF', 'D:\ORACLE\ORADA TA\ORCL\TOOLS01.DBF', 'D:\ORACLE\ORADA TA\ORCL\INDX01.DBF', 'D:\ORACLE\ORADA TA\ORCL\DR01.DBF', 'D:\ORACLE\ORADA TA\ORCL\SDE.ORA', 'D:\ORACLE\ORADA TA\ORCL\GIS.ORA', 'D:\ORACLE\ORADA TA\ORCL\OEM_REPOSITORY.ORA' CHARACTER SET ZHS16GBK ; # Take files offline to match current control file. # 可以不执行以下DROP ALTER DATABASE DATAFILE 'D:\ORACLE\ORADA TA\ORCL\USERS01.DBF' OFFLINE DROP; ALTER DATABASE DATAFILE 'D:\ORACLE\ORADA TA\ORCL\TOOLS01.DBF' OFFLINE DROP; ALTER DATABASE DATAFILE 'D:\ORACLE\ORADA TA\ORCL\INDX01.DBF' OFFLINE DROP; ALTER DATABASE DATAFILE 'D:\ORACLE\ORADA TA\ORCL\DR01.DBF' OFFLINE

Oracle 建立控制文件

Oracle 建立控制文件 在一般情况下,如果使用了复合控制文件,并且将各个控制文件分别存储在不同的磁盘中,则丢失全部控件文件的可能性将非常小。但是,如果数据库的所有控制文件全部丢失,这时惟一的补救方法就是以手动方式重新创建控制文件。 另外,如果DBA需要改变数据库的某个永久性参数,也需要重新创建控制文件。永久性参数是在创建数据库时设置的一些参数,主要包括:数据库名称、MALOGFILES(最大的重做日志文件数)、MAXLOGMEMBERS(最大的重做日志组成员数)等。 下面介绍创建新的控制文件的命令CREATE CONTROLFILE语句的基本用法,具体步骤: (1)查看数据库中所有的数据文件和重做日志文件的名称和路径。 在创建新控制文件时,首先需要了解数据库中的数据文件和重做日志文件。如果数据库中所有的控制文件和重做日志文件都已经丢失,这时数据库已经无法打开,因此也就无法来查询数所字典获得数据文件和日志文件的信息,这时惟一的办法就是查看警告文件中的内容。如果数据库可以打开,那么可以通过执行下面的查询来生成文件列表:SQL> select member from v$logfile; SQL> select name from v$datafile; SQL> select name from v$controlfile; 如果既无法打开数据库,又无法打开可靠的文件列表,那么就只能够用手工方法通过查找操作系统文件来制作文件列表。 (2)关闭数据库。 如果数据库处于打开状态,则可能采取正常模式关闭数据库。 SQL> connect as sysdba …. SQL> shutdown immediate 数据库已经关闭。 已经卸载数据库。 ORACLE 例程已经关闭。 (3)在操作系统级别备份所有的数据文件和重做日志文件。 在使用CREATE CONTROLFILE语句创建新的控制文件时,如果操作不当可能会损坏数据文件和日志文件,因此,需要事先对其进行备份。 (4)启动实例,但是不加载数据库。 在建立控制文件时,要求实例处理NOMOUNT状态,即不打开控制文件。 SQL> startup nomount ORACLE 例程已经启动。 Total System Global Area 401743872 bytes Fixed Size 1333480 bytes Variable Size 255854360 bytes Database Buffers 138412032 bytes Redo Buffers 6144000 bytes

ORACLE坏块(ORA-01578)处理方法

ORACLE坏块(ORA-01578)处理方法 文章分类:数据库 0.模拟出现坏块环境 SQL> CREATE TABLESPACE "TEST" 2 LOGGING 3 DATAFILE 'D:\ORACLE\ORADATA\ALAN\TEST.ora' SIZE 1M EXTENT 4 MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO 5 / 表空间已创建。 SQL> create user alantest identified by alantest 2 default tablespace test 3 temporary tablespace temp; 用户已创建 SQL> grant dba to alantest; 授权成功。 SQL> connect alantest/alantest 已连接。 SQL> show user USER 为"ALANTEST" SQL> create table test_alan as select * from dba_objects; RMAN> backup database format='c:\rmanbackup\FULL_%U'; 启动 backup 于 07-7月 -06 正在使用目标数据库控制文件替代恢复目录 分配的通道: ORA_DISK_1 通道 ORA_DISK_1: sid=18 devtype=DISK 通道 ORA_DISK_1: 正在激活 full 数据文件备份集 通道 ORA_DISK_1: 正在指定备份集中的数据文件 在备份集中包含当前的 SPFILE 备份集中包括当前控制檔 输入数据文件 fno=00001 name=D:\ORACLE\ORADATA\ALAN\SYSTEM01.DBF 输入数据文件 fno=00002 name=D:\ORACLE\ORADATA\ALAN\UNDOTBS01.DBF 输入数据文件 fno=00003 name=D:\ORACLE\ORADATA\ALAN\INDX01.DBF 输入数据文件 fno=00005 name=D:\ORACLE\ORADATA\ALAN\USERS01.DBF

ORACLE数据库监控配置规范方案

ORACLE数据库配置规范和监控清单 2015年12月

目录 一、常规参数配置 (3) 1.1 数据库最大连接数 (3) 1.2 归档配置 (3) 1.3 最大文件数设置 (4) 1.4 关闭回收站 (4) 1.5 控制文件配置 (5) 1.6 白名单设置 (5) 1.7 闪回区设置 (6) 1.8 在线日志组 (6) 1.9 控制文件记录保留数 (7) 二、常用监控项 (8) 2.1 数据库在用连接数 (8) 2.2 监控数据库文件数 (8) 2.3 表空间使用率 (8) 2.4 闪回区使用率 (9) 2.5 数据库等待事件 (10) 2.6 告警日志监控 (10) 2.7 灾备DataGuard同步监控 (10) 2.8 AWR采样报告分析 (10)

一、常规参数配置 1.1数据库最大连接数 参数: processes 说明: 数据库用户最大连接数通过processes参数进行配置,默认值为 300,该值表示能够同时连接到数据库的最大会话数,当连接数达到最大值,后续新增连接均会被拒绝。 修改命令: alter system set processes=1000 scope=spfile; 生效方式: 需重启实例生效。 1.2归档配置 参数: archive log list 说明: 数据库开启归档,任何生产环境均应在归档方式下运行,从而达到可通过备份进行数据恢复要求,提高系统安全性 修改命令: 数据库启动至mount状态,执行 alter database archivelog; 生效方式:

重启数据库设置生效 1.3最大文件数设置 参数: db_files 说明: 该参数用于控制在扩容表空间时,数据文件能够达到的最大数量,默认值为 200 修改命令: alter system set db_files=800 scope=spfile; 生效方式: 重启数据库生效 1.4关闭回收站 参数: recyclebin 说明: 如果回收站未关闭,则如果表对象被删除,将进入回收站,并不会释放占用的存储 修改命令: alter system set recyclebin=’off’ scope=spfile; 生效方式:

oracle坏块修复

Oracle 坏块总结收藏 Oracle数据库出现坏块现象是指:在Oracle数据库的一个或多个数据块(一个数据块的容量在创建数据库时由db_block_size参数指定,缺省为8K)内出现内容混乱的现象。由于正常的数据块都有固定的合法内容格式,坏块的出现,导致数据库进程无法正常解析数据块的内容,进而使数据库进程报错乃至挂起,并级联导致整个数据库实例出现异常。 一.坏块的产生原因 坏块产生的原因大致有以下几种: 1.1 硬件问题 Oracle进程在处理一个数据块时,首先将其读入物理内存空间,在处理完成后,再由特定进程将其写回磁盘;如果在这个过程中,出现内存故障,CPU计算失误,都会导致内存数据块的内容混乱,最后反映到写回磁盘的数据块内容有误。同样,如果存储子系统出现异常,数据块损坏也就随之出现了。 1.2 操作系统BUG 由于Oracle进程对数据块的读写,都是以操作系统内核调用(system call)的方式完成的,如果操作系统在内核调用存在问题,必然导致Oracle进程写入非法的内容。 1.3 操作系统的I/O错误或缓冲问题 1.4 内存或paging问题 Oracle软件BUG Oracle软件特定版本上,可能出现导致数据块的内容出现异常BUG。

1.5 非Oracle进程扰乱Oracle共享内存区域 如上文所述,在当数据块的内容被读入主机的物理内存时,如果其他非Oracle进程,对Oracle 使用的共享内存区域形成了扰乱,最终导致写回磁盘的数据块内容混乱。 1.6 异常关机,掉电,终止服务 异常关机,掉电,终止服务使进程异常终止,而破坏数据块的完整性,导致坏块产生。注:这也是为什么突然断电会导致数据库无法启动 由上可见,坏块的形成原因复杂。当出现坏块时,为了找到确切的原因,需要大量的分析时间和排查操作,甚至需要多次重现才能找出根本原因。但当故障发生在生产系统上,我们为了减少停机时间,会尽快实施应急权变措施以保证系统的可用性,这样就破坏了故障现场,对根本原因的分析因而也更加困难了。 二.坏块的预防 坏块问题破坏性大,但并非不可预防。 2.1 在https://www.360docs.net/doc/212811487.html,网站,Oracle定期发布基于特定软件版本的“已知问题(known issues)说明”。对于可能导致坏块的Oracle软件BUG,在Oracle公司内部,是作为高严重级别的问题进行处理,在“已知问题(known issues)说明”中,这些BUG以严重(Noticable)问题标出(标记为*或+),部分问题,Oracle还会发布警告(Alert)通告。在文档中,Oracle会提供相应的补丁或应对措施。 2.2 Oracle提供备份恢复工具-Recovery Manager,提供了扫描文件检查坏块的功能。 在Recovery Manager界面中,使用: RMAN> BACKUP CHECK LOGICAL V ALIDATE DATAFILE n ;

Oracle数据库的物理存储结构之数据库控制文件详解

Oracle数据库中,数据库控制文件维护着数据库的全局物理结构,用以支持数据库成功的启动和运行。创建数据库时,同时就提供了与之对应的数据库控制文件。在数据库使用过程中,Oracle不断的更新数据库控制文件,所以只要数据库是打开的,数据库控制文件就必须处于可写状态。如果,犹豫某些原因控制文件不能被访问,那么数据库也就不能正常的工作了。 每一个控制文件只能与一个Oracle数据库相关联。数据库控制文件包含了数据库实例的启动和正常操作时,访问数据库所需的关于数据库的信息。数据库控制文件的内容只有Oralce 可以修改,数据库管理员和用户都不能对其进行编辑。 控制文件包含了以下信息: ?数据库名称 ?数据库创建的时间戳 ?相关的数据文件、重演日志文件的名称和位置 ?表空间信息 ?数据文件脱机范围 ?日志历史 ?归档日志信息 ?备份组和备份块信息 ?备份数据文件和重演日志信息 ?数据文件拷贝信息 ?当前日志序列数 ?检查点(checkpoint)信息 数据库名称和时间戳源自数据库创建之时,数据库名称或是来自DB_NAME初始化从参数,或者来自Cteate Database语句使用的名称。 每当数据文件或重演日志文件被添加内容、重新命名或者直接从数据库删除时,控制文件都要进行更新以反应物理结构的变化。记录下这些变化后,Oracle就可以:在数据库启动的时候,能够确定并打开数据文件和重演日子文件。 在必须要恢复数据库的时候,能够确定哪些文件是必须的、哪些文件是可用的。 PS:如果数据库的物理结构发生了改变(使用了Alert Database语句),用户应该立刻备份控制文件。 控制文件还记录了关于检查点的信息。每3秒,检查点进程(CKPT)就会在控制文件里记录重演日志文件的检查点位置信息。这些信息用于数据库的恢复过程,告诉数据库在这一点之前的已经记录下的重演条目不必进行恢复,因为它们已经被写入数据文件了。 由于控制文件对数据库的至关重要,所以联机存储着多个副本。这些文件一般存储在各个不同的磁盘上,以便将因磁盘试下哦引起的潜在危险降至最低程度。Oracle支持对同一个数据库并发的打开、书写多个相同的控制文件。通过为一个数据库在不同的磁盘上保存多个控制文件,可以幼小的降低对于控制文件可能发生的单点失败。例如,包含一个控制文件的磁盘崩溃了,如果Oracle试图访问这个被破坏的文件,当前实例就会失败,但是如果在不同的磁盘上保存了当前控制文件的复件,就可以重启一个实例而无需进行数据库恢复。

Oracle tablespace (表空间)的创建、删除、修改、扩展及检查等

Oracle tablespace (表空间)的创建、删除、修改、扩展及检查等 oracle 数据库表空间的作用 1.决定数据库实体的空间分配; 2.设置数据库用户的空间份额; 3.控制数据库部分数据的可用性; 4.分布数据于不同的设备之间以改善性能; 5.备份和恢复数据。 --oracle 可以创建的表空间有三种类型: 1.temporary: 临时表空间,用于临时数据的存放; create temporary tablespace "sample"...... 2.undo : 还原表空间. 用于存入重做日志文件. create undo tablespace "sample"...... 3.用户表空间: 最重要,也是用于存放用户数据表空间 create tablespace "sample"...... --注:temporary 和undo 表空间是oracle 管理的特殊的表空间.只用于存放系统相关数据. --oracle 创建表空间应该授予的权限 1.被授予关于一个或多个表空间中的resource特权; 2.被指定缺省表空间; 3.被分配指定表空间的存储空间使用份额; 4.被指定缺省临时段表空间。 select tablespace_name "表空间名称",status "状态",extent_management "区管理方式",allocation_type "磁盘扩展管理方式",segment_space_management "段管理方式" from dba_tablespaces; --查询各个表空间的区、段管理方式 --1、建立表空间 --语法格式: create tablespace 表空间名

Oracle数据库维护手册

Oracle 数据库定期维护手册 定期备份任务计划执行检查 打开附件(系统工具(任务计划 查看状态,如果状态是未能启动,则打开菜单高级(查看日志,看未能执行任务计划的原因,并处理,处理完成后,右击任务计划运行。 使用DBA 图形工具(8.1.7 DBA Studio,9i Oracle Enterprise manager Console,10G 网页的EM )检查数据库状态 主要检查空间使用情况,重点对超过80%已使用的表空间进行检查,必要时增加数据文件或将相应的数据文件设为自动扩展,注意单个数据文件大小不要超过3.9G Oracle警告日志文件监控 Oracle在运行过程中,会在警告日志文件(alert.log或alert_SID.log)中记录数据库的一些运行情况: ●数据库的启动、关闭,启动时的非缺省参数; ●数据库的重做日志切换情况,记录每次切换的时间,及如果因为检查点(checkpoint)操作没有执行完成造成不能切换,会记录不能切换的原因; ●对数据库进行的某些操作,如创建或删除表空间、增加数据文件; ●数据库发生的错误,如表空间不够、出现坏块、数据库内部错误(ORA-600) DBA应该定期检查日志文件,根据日志中发现的问题及时进行处理 问题处理 如提示启动参数不对,则检查初始化参数文件 因为检查点操作或归档操作没有完成造成重做日志不能切换如果经常发生这样的情况,可以考虑增加重做日志文件组;想办法提高检查点或归档操作的效率; 有人未经授权删除了表空间则检查数据库的安全问题,是否密码太简单;如有必要,撤消某些用户的系统权限 出现坏块检查是否是硬件问题(如磁盘本生有坏块),如果不是,检查是那个数据库对象出现了坏块,对这个对象进行重建 表空间不够增加数据文件到相应的表空间 出现ORA-600根据日志文件的内容查看相应的TRC文件,如果是Oracle的bug,要及时打上相应的补丁 数据库表空间使用情况检查 数据库运行了一段时间后,由于不断的在表空间上创建和删除对象,会在表空间上产生大量的碎片,DBA应该及时了解表空间的碎片和可用空间情况,以决定是否要对碎片进行整理或为表空间增加数据文件。 select tablespace_name, count(*) chunks , max(bytes/1024/1024) max_chunk from dba_free_space group by tablespace_name; 其中,CHUNKS列表示表空间中有多少可用的空闲块(每个空闲块是由一些连续的Oracle 数据块组成),如果这样的空闲块过多,比如平均到每个数据文件上超过了100个,那么该

相关文档
最新文档