oracle如何进行冷备份
发布时间:2025-05-23 15:07:36 发布人:远客网络
一、oracle如何进行冷备份
Oracle冷备份的通常步骤:1正常关闭数据库2备份所有重要的文件到备份目录(数据文件、控制文件、重做日志文件等)3完成备份后启动数据库用冷备份进行恢复时,只需要将所有文件恢复到原有位置,就可以启动数据库了。1进入数据库#sqlplus"/assysdba"2如果没有启动则要启动:SQL>startup3查询数据文件datafile的所在目录:SQL>SELECTnameFROMv$datafile;查询控制文件controlfile的所在目录:SQL>SELECTnameFROMv$controlfile;查询重做日志文件的所在目录:SQL>SELECTmemberFROMv$logfile;4关闭数据库SQL>shutdown5备份文件到备份的目录#cp/u01/app/oracle/oradata/orcl/*.dbf/home/mzl/BackupDatabase#cp/u01/app/oracle/oradata/orcl/*.ctl/home/mzl/BackupDatabase#cp/u01/app/oracle/oradata/orcl/*.log/home/mzl/BackupDatabase6然后启动数据库#sqlplus"/assysdba"SQL>startup冷备份完毕。
二、oracle冷备份的过程
利用Export可将数据从数据库中提取出来,利用Import则可将提取出来的数据送回Oracle数据库中去。
<1>表方式,将指定表的数据导出
2用户方式U方式将指定用户的所有对象及数据导出
3全库方式Full方式将数据库中的所有对象导出
数据导出Import的过程是数据导入Export的逆过程它们的数据流向不同
增量导出是一种常用的数据备份方法它只能对整个数据库来实施并且必须作为SYSTEM来导出在进行此种导出时系统不要求回答任何问题导出文件名缺省为export.dmp如果不希望自己的输出文件定名为export.dmp必须在命令行中指出要用的文件名
exp system/manager inctype=complete file=990702.dmp
备份上一次备份后改变的数据比如:
exp system/manager inctype=incremental file=990702.dmp
累计型导出方式只是导出自上次完全导出之后数据库中变化了的信息比如
exp system/manager inctype=cumulative file=990702.dmp
数据库管理员可以排定一个备份日程表用数据导出的三个不同方式合理高效地完成
比如数据库的备份任务可作如下安排
如果在星期日数据库遭到意外破坏数据库管理员可按以下步骤来恢复数据库
第一步用命令CREATE DATABASE重新生成数据库结构
第二步创建一个足够大的附加回段
imp system./manager inctype= RECTORE FULL=Y FILE=A
imp system/manager inctype= RECTORE FULL=Y FILE=E
imp system/manager inctype=RESTORE FULL=Y FILE=F
冷备份发生在数据库已经正常关闭的情况下当正常关闭时会提供给我们一个完整的数据库冷备份是将关键性文件拷贝到另外位置的一种说法对于备份Oracle信息而言冷备份是最快和最安全的方法冷备份的优点是
1是非常快速的备份方法只需拷贝文件
3容易恢复到某个时间点上只需将文件再拷贝回去
4能与归档方法相结合作数据库最新状态的恢复
1单独使用时只能提供到某一时间点上的恢复
2在实施备份的全过程中数据库必须要作备份而不能作其它工作也就是说在冷备份过程中数据库必须是关闭状态
3若磁盘空间有限只能拷贝到磁带等其它外部存储设备上速度会很慢
如果可能的话主要看效率应将信息备份到磁盘上然后启动数据库使用户可以工作并将所备份的信息拷贝到磁带上拷贝的同时数据库也可以工作冷备份中必须拷贝的文件包括
值得注意的是冷备份必须在数据库关闭的情况下进行当数据库处于打开状态时执行数据库文件系统备份是无效的
2用拷贝命令备份全部的时间文件重做日志文件控制文件初始化参数文件
SQLDBA>! cp< file>< backup directory>
热备份是在数据库运行的情况下采用archivelog mode方式备份数据的方法所以如果你有昨天夜里的一个冷备份而且又有今天的热备份文件在发生问题时就可以利用这些资料恢复更多的信息热备份要求数据库在Archivelog方式下操作并需要大量的档案空间一旦数据库运行在archivelog状态下就可以做备份了热备份的命令文件由三部分组成
1数据文件一个表空间一个表空间地备份
< 1>设置表空间为备份状态
< 2>备份表空间的数据文件
< 3>恢复表空间为正常状态
< 2>log下那些在archive redo log目标目录中的文件Oracle数据库的备份方法北京长通联合宽带网络技术有限公司
< 4>备份归档的redo log文件
3用alter database backup controlfile命令来备份拷贝文件
1可在表空间或数据文件级备份备份时间短
3可达到秒级恢复恢复到某一时间点上
4可对几乎所有数据库实体作恢复
5恢复是快速的在大多数情况下在数据库仍工作时恢复
2若热备份不成功所得结果不可用于时间点的恢复
3因难于维护所以要特别仔细小心不允许以失败而告终
三、Oracle冷备份
1、冷备份发生在数据库已经正常关闭的情况下当正常关闭时会提供给我们一个完整的数据库
2、冷备份是将关键性文件拷贝到另外位置的一种做法对于备份Oracle信息而言冷备份是最快和最安全的方法值得注意的是冷备份必须是数据库关闭的情况下完成当数据库开着的时候执行数据库文件系统备份无效
3、冷备份所需备份的文件包括以下几种
4、 INIT<sid> ORA文件(可选)
5、正常关闭要备份的实例(instance)
6、如果数据库是运行在非归档日志模式下将备份文件拷贝回原来的目录即可非归档日志模式下数据库只能恢复到备份时刻的状态
7、如果数据库是运行在归档日志模式下将数据文件拷回原来的目录(不包括联机redolog文件)然后依次选择相应的重做日志文件进行恢复即可恢复冷备份后的所有操作即是说可以恢复到系统崩溃前的状态
8、示例一 windows环境下的冷备份与恢复
9、在本例中数据库实例名wh所有数据文件所有控制文件和所有联机REDO LOG文件都在文件夹D:\oracle\ora \wh中备份恢复的操作如下
10、进入 sql*plus以sysdba的身份登录数据库
11、 SQL>sys/oracle@wh as sysdba
12、关闭数据库SQL>shutdown immediate
13、拷贝D:\oracle\ora \wh到目标备份目录E:\bacakupora\wh
14、数据库冷备份完成下面对数据库中的内容进行更改
15、 SQL>delete from wh test(删除某个用户的表)
16、拷贝目标备份目录E:\bacakupora\wh到D:\oracle\ora \wh
17、数据库恢复完毕通过查询可以发现数据库恢复到进行备份时刻的状态备份后所进行的所有操作无效
18、示例二 linux环境下的冷备份与恢复
19、在本例中数据库实例名urpdb所有数据文件存放在\oradata\urpdb目录下所有控制文件和所有联机REDO LOG文件都在文件夹opt\ora \oradata\urpdb中备份恢复的操作如下
20、 sys/oracle@urpdb as sysdba进入sql*plus;
21、 SQL>shutdown immediate(保持所有数据文件在时间点上的一致性)
22、拷贝\oradata\urpdb和opt\ora \oradata\urpdb下的所有文件到新的备份目录
23、 SQL>create table test(c number() c varcharc());
24、 SQL>insert into text values( a);
25、此后假设有一个数据文件坏了然后将备份的所有文件包括联机重做日志文件拷贝回来