0:39:34';
restore database;
recover database;
alter database open resetlogs;
}
时间也可以这么写:
set until time="to_date('2013-11-01 15:29:34','yyyy-mm-dd hh24:mi:ss')";
-----还原点:
select count(*) from copy_emp;
创建还原点:
create restore point before_delete;
delete from copy_emp where ID >=10;
commit;
alter table copy_emp enable row movement;
flashback table copy_emp to restore point b;
--------------------------------------------------------------------------------------------------------------
将数据库还原到新主机:
为了还原数据库,请在还原主机上执行以下步骤:
1.配置 ORACLE_SID 环境变量。
2.启动 RMAN 并在 NOCATALOG 模式下连接到目标实例。
3.设置数据库标识符 (DBID)。
4.在 NOMOUNT 模式下启动实例。
5.
从备份集中还原服务器参数文件。
6.关闭实例。
7.
编辑还原的初始化参数文件。
8.
在 NOMOUNT 模式下启动实例
9.创建 RUN 块以执行下列任务:
--还原控制文件
--
装载数据库
10.创建 RMAN 恢复脚本以还原和恢复数据库。
11.执行 RMAN 脚本。
12.使用 RESETLOGS 选项打开数据库。
9 利用备份将数据库还原到新主机:目标库需要有oracle软件
1)准备工作
源库数据库全备及控制文件自动备份,当然也包括参数文件
RMAN> backup as backupset database;
2)拷贝RMAN备份文件到目标库
可以用scp
3)配置目标库
目标库设置环境变量
export ORACLE_SID=new_orcl
启动rman到nomount状态,设置dbid(即源库dbid)
$ rman target /
RMAN> set dbid 1357901988
RMAN> startup nomount; --没有参数文件,会报错,但是可以启动实例
4)恢复参数文件
RMAN> restore spfile to pfile '' from '';
编辑pfile参数文件:文件位置,数据库实例名..,创建相应的目录
5) 启动数据库到nomount模式
SQL> create spfile from pfile;
SQL> startup nomount;
6)还原控制文件
$ rman target /
RMAN> restore controlfile to '' from '';
RMAN> alter database mount;
7) 还原数据文件
run{
SET NEWNAME FOR DATAFILE 1 TO '/u01/app/oracle/oradata/orcl/system01.dbf';
SET NEWNAME FOR DATAFILE 2 TO '/u01/app/oracle/oradata/orcl/sysaux01.dbf';
SET NEWNAME FOR DATAFILE 3 TO '/u01/app/oracle/oradata/orcl/undotbs01.dbf';
SET NEWNAME FOR DATAFILE 4 TO '/u01/app/oracle/oradata/orcl/users01.dbf';
SET NEWNAME FOR DATAFILE 5 TO '/u01/app/oracle/oradata/orcl/example01.dbf';
SET NEWNAME FOR DATAFILE 6 TO '/u01/app/oracle/oradata/orcl/test.dbf';
RESTORE DATABASE;
SWITCH DATAFILE ALL;
RECOVER DATABASE;}
--rename日志文件
run{
SQL "ALTER DATABASE RENAME FILE ''/u01/app/oracle/oradata/ENMOEDU/redo01.log'' TO
''/u01/app/oracle/oradata/orcl/redo01.log'' ";
SQL "ALTER DATABASE RENAME FILE ''/u01/app/oracle/oradata/ENMOEDU/redo02.log'' TO
''/u01/app/oracle/oradata/orcl/redo02.log'' ";
SQL "ALTER DATABASE RENAME FILE ''/u01/app/oracle/oradata/ENMOEDU/redo03.log'' TO
''/u01/app/oracle/oradata/orcl/redo03.log'' ";
}
RMAN> alter database open resetlogs;
8)临时文件位置不对
SQL> select file_name from dba_temp_files;
SQL>create temporary tablespace tempa tempfile
'/u01/app/oracle/oradata/orcl/tempa01.dbf' size 10m reuse autoextend on maxsize 200m;
SQL>alter database default temporary tablespace tempa;
SQL>drop tablespace temp;
SQL>select file_name from dba_temp_files;
注:这个测试改变了实例名
--------------------------------------------------------------------------------------------------------------
执行灾难恢复 :
灾难意味着丢失了整个目标数据库、恢复目录数据库、所有当前控制文件、所有联机重做日志文件和所有参数文件。
灾难恢复包括还原和恢复目标数据库。
备份集的最低要求:
1.数据文件的备份
2.
相应的归档重做日志文件
3.
至少一个控制文件自动备份
基本过程:
1.
还原服务器参数文件的自动备份。
2.启动目标数据库实例。
3.从自动备份还原控制文件。
4.装载数据库。
5.还原数据文件。
6.恢复数据文件。
7.使用 RESETLOGS 选项打开数据库。