restore还原 recover恢复
临时文件丢失 重启数据库会自动重新创建
联机日志(内存里面的重铸日志项)
在有归档的情况下 丢失日志文件 直接
alter database clear logfile group 1;
select group#,sequence#,status,archived,members from v$log;
查看日志文件的分组,编号,状态,归档
alter system switch logfile;
转换日志组
alter system checkpoint;active切换到inactive
archive log list;开启归档(mount下);
alter database noarchivelog;关闭归档
select member from v$logfile where group#=2;该组日志文件查看位置
. oraenv修改环境变量
alter database clear logfile group 2; clear日志文件
ALTER DATABASE CLEAR LOGFILE group 2
ALTER DATABASE CLEAR UNARCHIVED LOGFILE group 2 UNRECOVERABLE DATAFILE
口令文件:
cd $ORACLE_HOME/dbs
使用口令文件
cd $ORACLE_HOME/networ/admin
vi sqlnet.ora
SQLNET.AUTHENTICATION_SERVICES=(NONE)
丢失口令文件后,重建口令文件
orapwd file=orapwsztech1 entries=5 (实例名要相同);
表空间
查看表空间位置:
select file_name from dba_data_files where tablespace_name='';
文件模式可以直接拷贝
控制文件恢复
控制文件丢失,关闭数据库,启动到nomount
进入rman
restore controlfile from autobackup(自动备份);
若没有:
cd /u01/app/oracle/fast_recovery_area/SZTECH1/BACKUPSET 到自动恢复区找备份
restore controlfile from ‘/u01/app/oracle/fast_recovery_area/SZTECH1/BACKUPSET...’
成功后
mount
recover database;
alter database open resetlogs;
创建控制文件脚本
sql>
alter database backup controlfile to trace;
alter database backup controlfile to trace as '' resetlogs;
有控制文件脚本的情况下
启动到nomount
直接进入脚本执行
(
先创建控制文件,
然后从备份控制文件里面recover恢复数据库
)
select status from V$instance 查看数据库实例状态
表空间还原
create tablespace tbsname datafile '文件路径及文件名' size 500m;创建表空间
RMAN> SQL 'ALTER TABLESPACE inv_tbs OFFLINE IMMEDIATE';
RMAN> RESTORE TABLESPACE inv_tbs;
RMAN> RECOVER TABLESPACE inv_tbs;
RMAN> SQL 'ALTER TABLESPACE inv_tbs ONLINE';
增量更新备份
RMAN> recover copy of database with tag 'daily_inc';
RMAN> backup incremental level 1 for recover of copy
2> with tag 'daily_inc' database;
RMAN> backup incremental level 1 for recover of copy
2> with tag 'daily_inc' database;
RMAN> recover copy of database with tag 'daily_inc';
RMAN> SQL 'ALTER TABLESPACE inv_tbs OFFLINE IMMEDIATE';
RMAN> SWITCH DATAFILE 'filename' TO COPY;
RMAN> RECOVER TABLESPACE inv_tbs;
RMAN> SQL 'ALTER TABLESPACE inv_tbs ONLINE';
RMAN> report schema;
backup as copy datafile 6 format '/u01...';
恢复数据文件并放到新位置
RUN
{ ALLOCATE CHANNEL dev1 DEVICE TYPE DISK;
ALLOCATE CHANNEL dev2 DEVICE TYPE sbt;
SQL "ALTER TABLESPACE users OFFLINE IMMEDIATE";
SET NEWNAME FOR DATAFILE '/disk1/oradata/prod/users01.dbf'
TO '/disk2/users01.dbf';
RESTORE TABLESPACE users;
SWITCH DATAFILE ALL;
RECOVER TABLESPACE users;
SQL "ALTER TABLESPACE users ONLINE";
}
创建还原时间点
SQL> CREATE RESTORE POINT before_mods;当前时间点
desc v$restore_point;查看还原事件点表信息
需要启动到mount
run{
set until restore point rs_test;/set until TIME 'TIMESTAMP';
restore database;
recover database;
}
恢复到rs_test时间点
将数据库换到只读状态
alter database open read only;
打开数据库
alter database open resetlog
初始化文件
SQL> CREATE PFILE [= 'pfile_name' ]
FROM { { SPFILE [= 'spfile_name'] } | MEMORY } ;
SQL> CREATE SPFILE [= 'spfile_name' ]
FROM { { PFILE [= 'pfile_name' ] } | MEMORY } ;
{
set dbid
restore spfile from autobackup
}
restore spfile from 备份
归档模式下修复数据库
RMAN> STARTUP FORCE NOMOUNT;
RMAN> RESTORE SPFILE FROM AUTOBACKUP;
RMAN> STARTUP FORCE;
RMAN> STARTUP NOMOUNT;
RMAN> RESTORE CONTROLFILE FROM AUTOBACKUP;
RMAN> ALTER DATABASE MOUNT;
RMAN> RECOVER DATABASE;
RMAN> ALTER DATABASE OPEN RESETLOGS;
非归档模式下修复数据库
STARTUP FORCE NOMOUNT;
RESTORE CONTROLFILE;
ALTER DATABASE MOUNT;
RESTORE DATABASE;
RECOVER DATABASE NOREDO;
ALTER DATABASE OPEN RESETLOGS;
backup database format '' plus archivelog format='';
startup pfile='' nomount;
RUN
{
SET NEWNAME FOR DATAFILE 1 TO '?/oradata/test/system01.dbf';
SET NEWNAME FOR DATAFILE 2 TO '?/oradata/test/undotbs01.dbf';
SET NEWNAME FOR DATAFILE 3 TO '?/oradata/test/sysaux.dbf';
SET NEWNAME FOR DATAFILE 4 TO '?/oradata/test/users01.dbf';
SET NEWNAME FOR DATAFILE 5 TO '?/oradata/test/example01.dbf';
SQL "ALTER DATABASE RENAME FILE ''/u01/app/oracle/oradata/orcl/redo01.log''
TO ''?/oradata/test/redo01.log'' ";
SQL "ALTER DATABASE RENAME FILE ''/u01/app/oracle/oradata/orcl/redo02.log''
TO ''?/oradata/test/redo02.log'' ";
SQL "ALTER DATABASE RENAME FILE ''/u01/app/oracle/oradata/orcl/redo03.log''
TO ''?/oradata/test/redo03.log'' ";
SET UNTIL SCN 4545727;
RESTORE DATABASE;
SWITCH DATAFILE ALL;
RECOVER DATABASE;
}
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/28889722/viewspace-1246332/ ,如需转载,请注明出处,否则将追究法律责任。