博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
oracle数据库冷备中的手工备份和恢复
阅读量:5775 次
发布时间:2019-06-18

本文共 2316 字,大约阅读时间需要 7 分钟。

我的操作系统是red hat5.5 32位系统oracle11g

以我的系统为例:

冷备状态下,数据库必须是关闭的,但是我们现在要做一个实验,在开库的状态下分别查询出:

1.show parameter spfile

记录spfile的位置:/u01/oracle/dbs/spfileprod.ora

2.show parameter control

记录控制文件的位置:

/u01/oradata/prod/control01.ctl, /u01/flash_recovery_area/prod/control02.ctl

3.select name  from v$datafile;

记录数据文件的位置:

/u01/oradata/prod/system01.dbf

/u01/oradata/prod/sysaux01.dbf
/u01/oradata/prod/undotbs01.dbf
/u01/oradata/prod/users01.dbf
/u01/oradata/prod/example01.dbf

4,select member  from v$logfie;

记录日志文件的位置:

/u01/oradata/prod/redo03.log

/u01/oradata/prod/redo02.log
/u01/oradata/prod/redo01.log

然后shutdown immediate关闭数据库

mkdir -p /home/oracle/cold_backup

将上述查到各个文件的路径复制到cold_backup文件夹下

cp /u01/oracle/dbs/spfileprod.ora /home/oracle/cold_backup

cp /u01/oradata/prod/control01.ctl /home/oracle/cold_backup

cp /u01/flash_recovery_area/prod/control02.ctl /home/oracle/cold_backup

cp /u01/oradata/prod/*.dbf /home/oracle/cold_backup

cp /u01/oradata/prod/*.log /home/oracle/cold_backup(redo日志可备也可不备)

 

模拟数据库损坏

rm -rf /u01/oracle/dbs/spfileprod.ora

rm -rf /u01/oradata/prod/control01.ctl

rm -rf /u01/flash_recovery_area/prod/control02.ctl

rm -rf /u01/oradata/prod/*.dbf

rm -rf  /u01/oradata/prod/*.log

这时打开数据发现报错缺失各种文件,然后按照县恢复参数文件---控制文件----数据文件的顺序对数据库进行恢复

mkdir -p /home/oracle/controlfile

mkdir -p /home/oracle/datafile

mkdir -p /redologfile

1》用备份出来的这些文件把原来的数据库给搭建起来

cp /home/oracle/cold_backup/*.ctl /home/oracle/controlfile

cp /home/oracle/cold_backup/*.dbf /home/oracle/datafile

cp /home/oracle/cold_backup/*.log /home/oracle/redologfile

cp /home/oracle/cold_backup/spfileprod.ora /u01/oracle/dbs(此目录就是先前spfile的目录)

2》打开库到nomount,如果发现打不开可能丢失一个文件件

在此查询创建:

show parameter audit

mkdir -p /u01/admin/prod/adump

3》如果可以启动到nomount,逻辑上重新创建控制文件

alter system set control_files='/home/oracle/controlfile/control01.ctl','/home/oracle/controlfile/control03.ctl' scope=spfile;

4》关库重启

5》逻辑上修改数据文件和日志文件的位置

数据文件:

select 'alter database rename file '||''''||name ||''''||' to '||replace(name,'/u01/oradata/prod','/home/oracle/datafile')||''';' from v$datafile;

日志文件:

select 'alter database rename file '||''''||member ||''''||' to '||replace(member,'/u01/oradata/prod','/home/oracle/redologfile')||''';' from v$logfile;

通过对数据文件和日志文件批批处理得出的SQL语句粘贴运行

6》alter database open;

 

冷备中手工备份和恢复至此完成,仅供参考!!

 

转载于:https://www.cnblogs.com/wjmbk/p/7826643.html

你可能感兴趣的文章
第二章 概率图模型的基本原理
查看>>
Hadoop HDFS编程 API入门系列之路径过滤上传多个文件到HDFS(二)
查看>>
Nginx反向代理,负载均衡,redis session共享,keepalived高可用
查看>>
CentOS7 yum 安装git
查看>>
sublime text 3浅色主题
查看>>
数据结构之红黑树(三)——删除操作
查看>>
html5视频标签
查看>>
JAVA进阶-注解
查看>>
三元表达式之理解/jquery源代码分析之$.inArray实现
查看>>
STM32 mdk软件仿真时过不去时钟的问题
查看>>
(转)让Spring自动扫描和管理Bean
查看>>
Spark Streaming概念学习系列之Spark Streaming容错
查看>>
Windows Server 2003 用户账户的密码和用户配置文件
查看>>
单例模式
查看>>
使用Nginx反向代理 让IIS和Tomcat等多个站点一起飞
查看>>
老旧的金融机构,是时候赶赶云计算的时髦了
查看>>
晶澳向埃及11MW混合发电项目供应光伏组件
查看>>
国产x86 CPU性能达Intel的80%?
查看>>
用友网络陈强兵:企业互联网需解决五大问题
查看>>
SMA推出Powerwall兼容Sunny Boy Storage逆变器
查看>>