Oracle数据库物理文件备份/恢复
2023-09-11 14:20:54 时间
之前也写过一篇类似的,虽然恢复不成问题,但总感觉有不对的地方,后面才了解到,以前自己有存在误区的地方,重新用此文方法简便得多。
环境:CentOS release 5.6 (Final)
Oracle Database Release 11.2.0.1.0
1、解压压缩好的数据库文件到相应目录
[root@OATest oabak]# tar -jxvf testoa_20140702.tar.bz2
2、还原文件
[root@OATest temp]# su - oracle
[oracle@OATest /]$ export ORACLE_SID=testoa
[oracle@OATest /]$ sqlplus "/as sysdba";
OPEN_MODE
--------------------
READ WRITE
3、关闭数据库
SQL shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL exit
4、在sql模式下直接质数据库物理文件至相应的目录(先显示各类文件的路径所在,后拷贝到相应路径)
select name from v$datafile; --显示延续性的初始化参数文件(延续性:对初始化参数的在线修改可以直接作用到参数文件中) show parameter spfile; --显示日志文件 select member from v$logfile; --orapw$ORACLE_SID密码文件:password file路径 在$ORACLE_HOME/dbs/orapw$ORACLE_SID //跟备份关系不大,可以随时生成。 [oracle@OATest temp]$ sqlplus "/as sysdba"; host cp /usr/oabak/temp/control01.ctl /app/oracle/oradata/testoa/control01.ctl host cp /usr/oabak/temp/control02.ctl /app/oracle/flash_recovery_area/testoa/control02.ctl host cp /usr/oabak/temp/system01.dbf /app/oracle/oradata/testoa/system01.dbf host cp /usr/oabak/temp/sysaux01.dbf /app/oracle/oradata/testoa/sysaux01.dbf host cp /usr/oabak/temp/undotbs01.dbf /app/oracle/oradata/testoa/undotbs01.dbf host cp /usr/oabak/temp/users01.dbf /app/oracle/oradata/testoa/users01.dbf host cp /usr/oabak/temp/redo03.log /app/oracle/oradata/testoa/redo03.log host cp /usr/oabak/temp/redo02.log /app/oracle/oradata/testoa/redo02.log host cp /usr/oabak/temp/redo01.log /app/oracle/oradata/testoa/redo01.log host cp /usr/oabak/temp/spfile${ORACLE_SID}.ora $ORACLE_HOME/dbs/ host cp /usr/oabak/temp/orapw${ORACLE_SID} $ORACLE_HOME/dbs/
--要删除临时文件, 重启的时候会自动创建temp01.dbf 若不删除临时文件,会出现下面的报错: ORA-01187: cannot read from file because it failed verification tests ORA-01110: data file 201: /app/oracle/oradata/testoa/temp01.dbf 恢复文件时候没有删除,旧的临时表空间数据文件(300MB),无法创建新的临时表空间文件(500MB) ..所以一直报错
5、启动数据库
select host cp /u03/backup/||substr(name,(instr(name,/,-1)+1))|| ||name from v$controlfile union all select host cp /u03/backup/||substr(name,(instr(name,/,-1)+1))|| ||name from v$controlfile union all select host cp /u03/backup/||substr(member,(instr(member,/,-1)+1)) || ||member from v$logfile union all select host cp /u03/backup/spfile${ORACLE_SID}.ora $ORACLE_HOME/dbs/ from dual union all select host cp /u03/backup/orapw${ORACLE_SID} $ORACLE_HOME/dbs/ from dual; 最新内容请见作者的GitHub页:http://qaseven.github.io/
select name from v$datafile; --显示延续性的初始化参数文件(延续性:对初始化参数的在线修改可以直接作用到参数文件中) show parameter spfile; --显示日志文件 select member from v$logfile; --orapw$ORACLE_SID密码文件:password file路径 在$ORACLE_HOME/dbs/orapw$ORACLE_SID //跟备份关系不大,可以随时生成。 [oracle@OATest temp]$ sqlplus "/as sysdba"; host cp /usr/oabak/temp/control01.ctl /app/oracle/oradata/testoa/control01.ctl host cp /usr/oabak/temp/control02.ctl /app/oracle/flash_recovery_area/testoa/control02.ctl host cp /usr/oabak/temp/system01.dbf /app/oracle/oradata/testoa/system01.dbf host cp /usr/oabak/temp/sysaux01.dbf /app/oracle/oradata/testoa/sysaux01.dbf host cp /usr/oabak/temp/undotbs01.dbf /app/oracle/oradata/testoa/undotbs01.dbf host cp /usr/oabak/temp/users01.dbf /app/oracle/oradata/testoa/users01.dbf host cp /usr/oabak/temp/redo03.log /app/oracle/oradata/testoa/redo03.log host cp /usr/oabak/temp/redo02.log /app/oracle/oradata/testoa/redo02.log host cp /usr/oabak/temp/redo01.log /app/oracle/oradata/testoa/redo01.log host cp /usr/oabak/temp/spfile${ORACLE_SID}.ora $ORACLE_HOME/dbs/ host cp /usr/oabak/temp/orapw${ORACLE_SID} $ORACLE_HOME/dbs/
--要删除临时文件, 重启的时候会自动创建temp01.dbf 若不删除临时文件,会出现下面的报错: ORA-01187: cannot read from file because it failed verification tests ORA-01110: data file 201: /app/oracle/oradata/testoa/temp01.dbf 恢复文件时候没有删除,旧的临时表空间数据文件(300MB),无法创建新的临时表空间文件(500MB) ..所以一直报错
5、启动数据库
select host cp /u03/backup/||substr(name,(instr(name,/,-1)+1))|| ||name from v$controlfile union all select host cp /u03/backup/||substr(name,(instr(name,/,-1)+1))|| ||name from v$controlfile union all select host cp /u03/backup/||substr(member,(instr(member,/,-1)+1)) || ||member from v$logfile union all select host cp /u03/backup/spfile${ORACLE_SID}.ora $ORACLE_HOME/dbs/ from dual union all select host cp /u03/backup/orapw${ORACLE_SID} $ORACLE_HOME/dbs/ from dual; 最新内容请见作者的GitHub页:http://qaseven.github.io/
相关文章
- 【C/C++学院】(24)Oracle数据库编程--管理oracle
- 【Python Oracle】使用cx_Oracle 连接oracle的简单介绍
- hibernate+oracle+servlet实现插入数据的时候,不立马显示!!
- 《oracle每日一练》免安装Oracle客户端使用PL/SQL
- 导出服务器Oracle数据库为dmp文件
- oracle: sql语句报ora-01461/ora-00911错误
- Oracle cmd乱码
- Oracle表空间(tablespaces)
- ORACLE 移动数据文件 控制文件 重做日志文件
- 当oracle丢失所有控制文件后可以重新创建控制文件来恢复数据库
- 【Oracle 集群】11G RAC 知识图文详细教程之RAC在LINUX上使用NFS安装前准备(六)
- 【Oracle 集群】ORACLE DATABASE 11G RAC 知识图文详细教程之RAC 工作原理和相关组件(三)
- Oracle归档日志满了怎么办
- oracle控制文件
- Oracle 控制文件的重建
- System.BadImageFormatException: 未能加载文件或程序集“Oracle.DataAccess”或它的某一个依赖项。试图加载格式不正确的程序。
- Oracle 数据库 恢复
- 未能加载文件或程序集“Oracle.DataAccess, Version=2.112.1.0, Culture=neutral, PublicKeyToken=89b483f429c47342"
- Atitit 视图参数解决方案 oracle版和mysql版本 attilax总结.docx
- atitit.sql server2008导出导入数据库大的表格文件... oracle mysql
- Oracle PGA
- Oracle启动中,spfile.ora、init<SID>.ora、spfile<SID>.ora 这三个文件正确的先后顺序是什么?