3

我刚刚开始工作,并且发现了一个问题,即数据库当前没有被正确备份。我们每 6 小时使用 Oracle 本地备份实用程序进行一次备份,但我们也被一家公司出售了一个进程,他们在该进程中表示,他们实际上可以通过简单地获取文件系统副本来执行我们的数据库的“热”备份我们的数据库文件,当我们需要恢复时,我们只需关闭 Oracle,然后复制已复制的文件,重新启动 Oracle,世界将再次变得完整。挑战在于我们还没有让它发挥作用。我需要花更多时间查看 Oracle 提供的信息,但我的主要问题是,“这可能吗” 在 Oracle 仍在运行时复制 Oracle 文件并在以后使用这些文件来恢复数据库?我知道如果关闭数据库,然后制作副本,它会起作用,但这是我第一次听说可以在数据库运行时制作副本(文件系统)。任何指导将不胜感激。这是我们得到的错误。

ORA-00314: log 3 of thread 1, expected sequence# 1939 doesn't match 1944
ORA-00312: online log 3 thread 1: 'E:\ORACLE\ORADATA\ITMS\REDO03.LOG'
4

4 回答 4

3

是的,这是可能的,但是您必须先将所有表空间置于备份模式,然后再将它们取出(例如ALTER TABLESPACE x BEGIN BACKUP,和ALTER TABLESPACE x END BACKUP;您需要检查语法并确保它适合您的情况!)。这大大简化了,这告诉 Oracle 不要写入任何数据文件,因此它们都保持一致状态。

否则,您会遇到的两个主要问题是在复制单个文件时会更新它们,因此单个文件可能会损坏;更明显的是,不同的文件具有不同的内部时间戳和序列,因此 Oracle 不允许使用它们。

如果您使用的是您购买的流程,那么它应该已经处理了所有这些。听起来备份没问题,但您还没有进行恢复。

我已经有一段时间没有参与从热备份中恢复了,所以其他人需要提供有关实际错误的详细信息。我对它的阅读是,您尝试使用恢复的数据文件打开但后来的实时重做日志。还原时,我认为您要么必须RECOVER使用备份后生成的重做日志来访问数据库;或者,如果您尝试恢复到该时间点,那么您可以使用RESETLOGS指令打开数据并丢失后来所有重做日志中的所有更改。但真的接受比这更明智的建议......

于 2010-10-28T14:08:22.570 回答
3

据我所知,有两种方法可以从正在运行的 Oracle 实例中“复制”数据文件。

  • 当表空间处于“BEGIN BACKUP”模式时,将为表空间复制数据文件。
  • 您正在使用诸如 Veritas 之类的高端日志文件系统,它可以在进行复制时对文件系统上的块更改进行快照和跟踪。
于 2010-10-28T14:12:35.697 回答
1

我已经通过在 Amazon EC2 上运行的非任务关键型数据库有效地做到了这一点。我的备份策略是定期拍摄 EBS 卷的快照。为了恢复备份,我从快照创建了一个新的 EBS 卷,使用它启动实例,然后运行RECOVER DATABASE​​.

当然,这会丢失拍摄快照时正在进行的所有事务。

于 2010-10-29T03:15:56.907 回答
1

有可能的。您必须处于 ARCHIVELOG 模式。

示例脚本将用于手动:

Alter tablespace USERS begin backup;
host cp -p /u02/oradata/PROD/users01.dbf /u03/backup/PROD/
host cp -p /u02/oradata/PROD/users02.dbf /u03/backup/PROD/
Alter tablespace USERS end backup;

但是,我建议只使用 RMAN。RMAN 非常强大,包括免费的,并且会进行热备份和冷备份。它将克隆到另一个实例,克隆为一个时间点,恢复到某个时间点等。任何手动备份过程都应该迁移到使用 RMAN。

如果您想在整个数据库打开时备份整个数据库(我更喜欢 Oracle 和 DBA,这样您就可以避免在脚本中输入密码,但是 ymmv):

$ ORAENV_ASK=NO
$ ORACLE_SID=PROD
$ . oraenv
$ rman target=/

Recovery Manager: Release 10.2.0.4.0 - Production on Thu Oct 28 14:23:29 2010

Copyright (c) 1982, 2007, Oracle.  All rights reserved.

connected to target database: PROD (DBID=x)

RMAN> backup as compressed backupset database plus archivelog;

...

Backup Complete.
于 2010-10-28T18:27:08.883 回答