搜索
首页数据库mysql教程优化Oracle停机时间及数据库恢复

优化Oracle停机时间及数据库恢复

正在看的ORACLE教程是:优化Oracle停机时间及数据库恢复。

 这里会讨论令Oracle停机时间最小化的步骤。各种形式的停机--计划的或者是非计划的--总是不断地发生,一个DBA应该有正确的备份策略,这样在数据库出现问题时就可以更快地恢复。

  以下是假定的备份策略和数据库的运作条件

   控制文件是镜像的

   数据库运行在archivelog模式

   每个星期都进行冷备份

   每日都进行热备份

   每日都进行一次全数据库导出

  事件1:完整的数据库重构

  在这种情形下,你可以使用全数据库导出或者冷热备份结合的方式来重构数据库。要注意的是无论你选择哪种方式,在线redo log中的事务都会丢失。

  事件2:恢复部分的表空间

  可以使用以下的步骤来恢复:

   1、以restrict模式启动数据库

   2、重新创建表空间

   3、使用最新的全数据库导出来导入,并且使用ignore=y的选项;

   4.关闭并且重新以normal的模式启动数据库实例

  事件3:丢失一般的数据文件

  丢失一般数据文件的恢复步骤根据所丢失的数据文件包含的表空间类型而定;例如:回滚段,用户表空间,索引表空间或者是只读的表空间、你可能会遇到以下的错误:

   . 尝试启动数据库并且碰到错误的信息ORA-1157, ORA-1110,可能还有一个操作系统的错误

   . 尝试以normal或者immediate的模式关闭数据库,可能会碰到ORA-1116, ORA-1110的错误信息,还有一个系统错误

  以下的步骤可以用作恢复:

   1、关闭数据库

   2、由热备份中恢复丢失的数据文件

   3、Startup mount数据库

   4、执行以下的查询来得到所有你的在线redo log文件和它们相应的次序和首次修改号:


  5、如果得到的CHANGE#比在线redo log最小的FIRST_CHANGE# 还小,那么该文件不能被完全恢复,你可以有两个选择:

   . 如果可以接受丢失最近一次冷备份以来的数据库修改,装入备份并且继续恢复

   . 如果不能接受丢失数据库的修改,那么必须重新创建表空间

  6、通过使用存档和在线的redo log来恢复数据文件

  7、打开数据库


[NextPage]

事件4:恢复一个特别的表

  可以采用以下的步骤恢复:

   1、使用最近的一次全数据库导出来导入表,并且使用owner=和tables=的选项

   2、考虑到性能的原因,可能需要重建表索引

  事件5:丢失控制文件

  在数据库起来并且运行时,通常都不能检测到控制文件的问题、如果控制文件丢失或者损坏了,Oracle将不会了解,下次数据库的启动时将会导致ORA-205错误(标识控制文件"%s的错误),还有一个系统级的错误、

  如果只是丢失了其中的一个控制文件,可以采用下面的步骤来恢复:

   1、如果它正在运行的话,先关闭它

   2、查找丢失控制文件的原因、是由于硬件的问题吗(磁盘还是控制器)?

   3、如果不是硬件的问题,将控制文件的一个好的拷贝复制到丢失的位置,并且跳到步骤5、

   4、如果是硬件的问题,复制一个好的控制文件拷贝到一个可靠的位置

   5、编辑initsid.ora 或者 configsid.ora,更新CONTROL_FILES以反映最新的控制文件位置

   6、启动数据库

  事件6:丢失全部的控制文件

  可以采用以下的步骤恢复:

   1、关闭数据库

   2、进行一次全数据库备份,包括全部的数据文件和redo log文件

   3、以NOMOUNT的状态启动数据库

   4、使用CREATE CONTROLFILE重新创建控制文件、你也可以备份控制文件到一个trace文件,然后执行该文件

   5、在数据库上进行媒体恢复

   6、打开数据库

   7、使用shutdown normal关闭数据库

   8、对数据库进行一次冷备份

  事件7:丢失一个索引

  最简单的方法就是重新创建丢失的索引

  事件8:丢失一个非活动的redo log

  如果丢失redo数据,恢复将是不完全的,必须重新创建涉及的表空间。要重新创建表空间,可以使用全的数据库导出,这样就可以很容易的导入数据并且重新创建该表空间的对象。可以使用以下的步骤来恢复:

   1、通过Alter system来切换redo log文件

   2、关闭数据库

   3、startup mount数据库

   4、离线删除涉及的数据文件

   5、打开数据库

   6、删除用户的表空间,包括其中的内容、

   7、通过全数据库备份重新创建表空间和其中的对象
 
  事件9:丢失活动的Redo log

  如事件8讨论的一样,如果丢失了redo数据,恢复将是不完全的,必须重新创建涉及的表空间、可以采用以下的步骤恢复:

   1、关闭数据库

   2、startup mount数据库

   3、离线删除涉及的数据文件

   4、打开数据库

   5、删除用户的表空间,包括其中的内容、

   6、通过全数据库备份重新创建表空间和其中的对象

  要注意的是活动的事务将会丢失

  事件10:丢失存档的Redo log文件

  如果存档的redo log文件丢失,应该马上进行一次冷备份、最好也进行一次全数据库导出、没有丢失的存档redo log文件的任何恢复都将是不完全的、

  事件11:丢失活动的回滚段

  这里指的是丢失一个回滚段的一个数据文件、这是一个危急的恢复过程,它主要是在于保存活动的事务。这里假定数据库已经起来,而你想保存当前运行的事务。要使用以下的恢复过程,数据库必须运行在archivelog模式下。

  可以使用以下步骤恢复:

   1、不要关闭数据库、对于这种事件,数据库启动比关闭更容易解决问题、

   2、令属于该数据文件中的全部回滚段离线

   3、删除全部离线的回滚段

   4、在上面的第2步中,如果回滚段中有活动的事务,你将不能令它离线、可运行以下的查询来查看哪些事物是活动的:


  如果上面的查询没有结果,那么所有的回滚段都是离线的,但是,如果上面的查询返回一行或者多行,并且其状态为PENDING OFFLINE,那么可检查这些回滚段的ACTIVE_TX列、带有0值的回滚段将很快会离线;但是,非0的值表示上面有活动的事务,它们需要被提交或者回滚、

   5、处理活动的事务、执行以下的查询来查看哪些用户的事务被指派到该回滚段:


  在知道哪些用户在"pending offline"的回滚段上有活动的事务后,可以要求他们提交或者回滚他们的事务,或者可以使用以下的命令杀掉它们的进程:

   ALTER SYSTEM KILL SESSION 'sid, serial#';

   6、在你处理完所有活动的事务后,执行以下的步骤:

    丢弃表空间及其中的全部内容

    重新创建回滚表空间

    重新创建回滚段,并且令它们在线

[NextPage]

事件12:丢失全部的回滚段

  在这种事件下,将丢失全部活动的事务,并且需要重新创建回滚段。这样大的问题可能是由于一个硬件问题造成的,可以采用以下的步骤恢复:

[1]

正在看的ORACLE教程是:优化Oracle停机时间及数据库恢复。
   1、关闭数据库

   2、使用DBVERIFY验证全部的数据文件

   3、解决其它的硬件问题或者数据文件损坏

   4、以startup mount的方式启动数据库实例

   5、在数据库上执行媒体恢复
 
   6、打开数据库

   7、按需要创建新的回滚段

  事件13:导出文件损坏

  如果导出文件不能用了,那么应该冷备份数据库并且进行一个全的数据库导出、这是假定数据库自身没有问题、如果数据库也损坏了,那么应该执行以下的步骤:

   1、ORA-1157错误信息通常都表示一个或者多个的数据文件损坏了。查明哪些表受到影响,它们应该是错误信息中指明的数据文件中的表格

   2、跳过坏的数据块,将数据由表格中选择到临时表格中、

   3、丢弃损坏的表

   4、将临时表重命名为丢弃的表

   5、重新建立受影响表上的全部索引

   6、使用VALIDATE STRUCTURE CASCADE的选项来分析全部损坏的表

  要注意的是损坏块中数据将会丢失并且不能恢复

  事件14:在热备份时关机

  如果在热备份正在进行的时候突然关机,其中的一些表空间将可能处在备份模式、当你尝试打开数据库时,它将只能mount,并且指示某些表空间处于热备份模式、由于数据库不能打开,你将不能让表空间脱离热备份模式、你可以使用以下的步骤恢复:

   1、startup mount数据库

   2、查询v$backup以查看哪些数据文件处于ACTIVE状态、

   3、通过使用命令ALTER DATABASE DATAFILE END BACKUP.来将这些数据文件脱离备份模式

   4、打开数据库

  事件15:恢复到某个特别的时间点

  以下的步骤可用来执行point-in-time恢复

   1、关闭数据库实例

   2、以NOMOUNT的状态启动数据库实例

   3、使用UNTIL的选项来恢复数据库

   4、打开数据库

   5、Shutdown NORMAL

   6、启动数据库实例

  事件16:恢复到一个特别的事件或者活动

  可以使用以下的步骤来恢复:

   1、关闭数据库实例

   2、以NOMOUNT状态启动数据库实例;

   3、使用UNTIL CANCEL来恢复数据库,提供存档的redo log文件请求直到该活动/事件为止

   4、输入CANCEL来取消恢复

   5、打开数据库;

   6、使用NORMAL的模式来关闭数据库

   7、启动数据库实例

  结论
 
  高可用性对于任何的商业都是很重要的,ORACLE DBA可以通过一些计划以确保停机时间最小化、这篇文章讨论了不同的策略可以达到这个目的。

上一页

[2]

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
您什么时候应该使用复合索引与多个单列索引?您什么时候应该使用复合索引与多个单列索引?Apr 11, 2025 am 12:06 AM

在数据库优化中,应根据查询需求选择索引策略:1.当查询涉及多个列且条件顺序固定时,使用复合索引;2.当查询涉及多个列但条件顺序不固定时,使用多个单列索引。复合索引适用于优化多列查询,单列索引则适合单列查询。

如何识别和优化MySQL中的慢速查询? (慢查询日志,performance_schema)如何识别和优化MySQL中的慢速查询? (慢查询日志,performance_schema)Apr 10, 2025 am 09:36 AM

要优化MySQL慢查询,需使用slowquerylog和performance_schema:1.启用slowquerylog并设置阈值,记录慢查询;2.利用performance_schema分析查询执行细节,找出性能瓶颈并优化。

MySQL和SQL:开发人员的基本技能MySQL和SQL:开发人员的基本技能Apr 10, 2025 am 09:30 AM

MySQL和SQL是开发者必备技能。1.MySQL是开源的关系型数据库管理系统,SQL是用于管理和操作数据库的标准语言。2.MySQL通过高效的数据存储和检索功能支持多种存储引擎,SQL通过简单语句完成复杂数据操作。3.使用示例包括基本查询和高级查询,如按条件过滤和排序。4.常见错误包括语法错误和性能问题,可通过检查SQL语句和使用EXPLAIN命令优化。5.性能优化技巧包括使用索引、避免全表扫描、优化JOIN操作和提升代码可读性。

描述MySQL异步主奴隶复制过程。描述MySQL异步主奴隶复制过程。Apr 10, 2025 am 09:30 AM

MySQL异步主从复制通过binlog实现数据同步,提升读性能和高可用性。1)主服务器记录变更到binlog;2)从服务器通过I/O线程读取binlog;3)从服务器的SQL线程应用binlog同步数据。

mysql:简单的概念,用于轻松学习mysql:简单的概念,用于轻松学习Apr 10, 2025 am 09:29 AM

MySQL是一个开源的关系型数据库管理系统。1)创建数据库和表:使用CREATEDATABASE和CREATETABLE命令。2)基本操作:INSERT、UPDATE、DELETE和SELECT。3)高级操作:JOIN、子查询和事务处理。4)调试技巧:检查语法、数据类型和权限。5)优化建议:使用索引、避免SELECT*和使用事务。

MySQL:数据库的用户友好介绍MySQL:数据库的用户友好介绍Apr 10, 2025 am 09:27 AM

MySQL的安装和基本操作包括:1.下载并安装MySQL,设置根用户密码;2.使用SQL命令创建数据库和表,如CREATEDATABASE和CREATETABLE;3.执行CRUD操作,使用INSERT,SELECT,UPDATE,DELETE命令;4.创建索引和存储过程以优化性能和实现复杂逻辑。通过这些步骤,你可以从零开始构建和管理MySQL数据库。

InnoDB缓冲池如何工作,为什么对性能至关重要?InnoDB缓冲池如何工作,为什么对性能至关重要?Apr 09, 2025 am 12:12 AM

InnoDBBufferPool通过将数据和索引页加载到内存中来提升MySQL数据库的性能。1)数据页加载到BufferPool中,减少磁盘I/O。2)脏页被标记并定期刷新到磁盘。3)LRU算法管理数据页淘汰。4)预读机制提前加载可能需要的数据页。

MySQL:初学者的数据管理易用性MySQL:初学者的数据管理易用性Apr 09, 2025 am 12:07 AM

MySQL适合初学者使用,因为它安装简单、功能强大且易于管理数据。1.安装和配置简单,适用于多种操作系统。2.支持基本操作如创建数据库和表、插入、查询、更新和删除数据。3.提供高级功能如JOIN操作和子查询。4.可以通过索引、查询优化和分表分区来提升性能。5.支持备份、恢复和安全措施,确保数据的安全和一致性。

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解锁Myrise中的所有内容
3 周前By尊渡假赌尊渡假赌尊渡假赌

热工具

EditPlus 中文破解版

EditPlus 中文破解版

体积小,语法高亮,不支持代码提示功能

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

WebStorm Mac版

WebStorm Mac版

好用的JavaScript开发工具

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Atom编辑器mac版下载

Atom编辑器mac版下载

最流行的的开源编辑器