在oracle中归档日志备份

我是一名SQL Server数据库pipe理员,最近被赋予了一个Oracle环境的责任。 (11克)

现在我在SQL Server上定时备份我的事务日志,然后将它们迁移到不同的服务器。 我也想用Oracle来做到这一点。

Oracle的重做日志在切换之前似乎基于大小,并允许服务器将其归档。

有人可以提供一些技巧/最佳实践如何实现这一点。

我也很感激任何关于调整重做日志大小以及如何处理白天使用模式变化的build议。

我忘了说这是在Redhat 5 Enterprise服务器上

第一个build议是,除非你真的知道你在做什么,否则不要手动弄乱它们。

你想要做的是阅读rman ,这是用于执行备份(包括重做日志备份)的Oracle工具。 我强烈build议您仔细研究,以确保您在采取任何行动之前充分了解Oracle备份的各个方面。

现在,通常Oracle重做/归档日志应该保留在写入位置,直到执行备份。 通常会设置备份以包含数据库备份所需的归档日志。

至于重做日志的大小,它将直接基于数据库更改事务的数量。 日志变化越大,日志量越大。 这对你的应用程序和用法来说是非常个人化的,所以我build议你开始logging它的统计数据(事务量,事务日志大小,数据库大小等等,全部用时间戳)。 一旦获得了数周的数据,您就可以开始将活动与日志相关联,并将其提取到一些有效的估计值。

编辑:我想我部分误解了原来的问题。 我认为您需要一种方法来基本检查重做日志,当您运行备份时,以便您完全与备份一致,直到发出备份开始。

而且,rman实际上会为你处理那些肮脏的工作。 从一些rman文档:

在备份包含最新日志的归档重做日志时(即在没有UNTIL或SEQUENCE选项的情况下运行BACKUP … ARCHIVELOG命令),如果数据库处于打开状态,则在开始备份之前,RMAN将切换当前联机重做日志组以及所有尚未归档的联机重做日志,直到发出命令时最新的重做日志组(包括重做日志组)。 这可确保备份包含在命令启动之前生成的所有重做。

另一点提供了更多的细节:

您可以使用BACKUP … PLUS ARCHIVELOG子句将归档重做日志添加到其他文件的备份中。 添加备份… PLUS ARCHIVELOG会导致RMAN执行以下操作:

  1. 运行ALTER SYSTEM ARCHIVE LOG CURRENT命令。
  2. 运行BACKUP ARCHIVELOG ALL。 请注意,如果启用了备份优化,则RMAN会跳过已经备份到指定设备的日志。
  3. 备份BACKUP命令中指定的其余文件。
  4. 运行ALTER SYSTEM ARCHIVE LOG CURRENT命令。
  5. 备份备份期间生成的所有剩余归档日志。

这可以确保在命令期间执行的数据文件备份可恢复到一致状态。

rman文档应该能够为你提供更多的细节。 我会给我从(在线Oracle Rman文档)拉来的URL,但是URL已经从我书签的时候就改变了,所以我不相信它留在周围。 尽pipe如此,谷歌search文档应该能够find它。

编辑:我想补充一件事。 。 。 你提到了一些关于尺寸的问题。 Oracle 11g确实支持压缩的重做日志。 我自己没有用过,但是我知道它支持他们。 另外,Oracle 10g和11g支持压缩备份。 如果你还没有进行压缩备份, 你应该 。 减less的规模是巨大的,而且,当我们启用了压缩备份时,我们的备份运行也得到了显着提升。

Oracle的重做日志在切换之前似乎基于大小,并允许服务器将其归档。

查看Oracle 9i及更高版本的参数archive_lag_target。

这是一个折衷。 我听说大日志文件更高效,但我们不使用它们,因为A)文件丢失越大,数据丢失越大,B)我们的带宽是废话

这导致我们将文件假脱机几个小时,然后在各种备用机器上传输和运行更新。 我们实际上仍然在使用Oracle8i,而且由于数据库是很久以前由不是DBA的人devise的,我仍然需要手动创build新的数据文件和控制文件。 /叹

我会告诉你如何从SQL Server迁移到Oracle后,您可以移动数据。 对于迁移,您需要使用JDK1.5对SQL Developer进行编程,以将数据从Ms sql移动到oracle。 如果你想知道清楚,请阅读SQL Developer的帮助。

对于备份数据库,我build议您阅读oracle中的rman命令,您将清楚如何备份和恢复。

你可以看到这个网站下载并阅读帮助进行迁移。 你可以下载任何有关oracle数据库的文件。

http://www.oracle.com/technology/products/database/sql_developer/index.html

自从我问这个问题以来,我已经有一段时间了,但最近我find了答案。 从Oracle 10G R2起,有一个参数可以确保日志切换不会超过指定的时间。

如果你去alter system set archive_lag_target = 900;

这将确保交换机每15分钟发生一次,无论使用多less日志。