如果控制文件在 oracle 数据库中丢失,则检索数据

Har*_*ari 4 oracle backup recovery

假设数据库控制文件永久丢失(没有备份)。我们可以从 Oracle 数据库中的数据文件中检索数据吗?

Roy*_*Roy 6

您可以使用CREATE CONTROLFILE包含数据文件和重做日志列表的语句创建新的控制文件。

startup nomount

CREATE CONTROLFILE REUSE DATABASE TEST RESETLOGS NOARCHIVELOG
    MAXLOGFILES 32
    MAXLOGMEMBERS 2
    MAXDATAFILES 32
    MAXINSTANCES 1
    MAXLOGHISTORY 449
        LOGFILE
          GROUP 1 '/u01/oradata/test/redo01a.rdo', '/u02/oradata/test/redo01b.rdo'  SIZE 500M
        DATAFILE
          '/u01/oradata/system01.dbf',
          '/u01/oradata/undotbs01.dbf'
        CHARACTER SET WE8ISO8859P1
        ;
recover database;
alter database open;
Run Code Online (Sandbox Code Playgroud)

您需要列出您的实际数据库文件并为您的环境提出合理的参数,包括字符集、重做日志的大小和数据库的名称。

如果你不能,RECOVER DATABASE你可以改用ALTER DATABASE OPEN RESETLOGS;

CREATE CONTROLFILE可以在Oracle 数据库 SQL 参考中找到 的 完整文档