一、数据库备份
Oracle数据库有三种标准的备份方法,它们分别是导出/导入(EXP/IMP)、热备份和冷备份。导出备件是一种逻辑备份,冷备份和热备份是物理备份。
1. 冷备份
冷备份发生在数据库已经正常关闭的情况下,当正常关闭时会提供给我们一个完整的数据库。冷备份时将关键性文件拷贝到另外的位置的一种说法。对于备份Oracle信息而言,冷备份时最快和最安全的方法。
冷备份的优点是:
1、 是非常快速的备份方法(只需拷文件)
2、 容易归档(简单拷贝即可)
3、 容易恢复到某个时间点上(只需将文件再拷贝回去)
4、 能与归档方法相结合,做数据库“最佳状态”的恢复。
5、 低度维护,高度安全。
但冷备份也有如下不足:
1、 单独使用时,只能提供到“某一时间点上”的恢复。
2、 再实施备份的全过程中,数据库必须要作备份而不能作其他工作。也就是说,在冷备份过程中,数据库必须是关闭状态。
3、 若磁盘空间有限,只能拷贝到磁带等其他外部存储设备上,速度会很慢。
4、 不能按表或按用户恢复。
以sys身份登陆查看数据文件、控制文件、日志文件:
select file#, status, enabled, name from V$datafile;--查看数据文件
select * from v$controlfile;--控制文件
select * from v$logfile;--日志文件
2. 热备份
热备份是在数据库运行的情况下,采用archivelog mode(归档)方式备份数据库的方法。所以,如果你有昨天夜里的一个冷备份而且又有今天的热备份文件,在发生问题时,就可以利用这些资料恢复更多的信息。热备份要求数据库在Archivelog方式下操作,并需要大量的档案空间。一旦数据库运行在archivelog状态下,就可以做备份了。
热备份的命令文件由三部分组成:
- 数据文件一个表空间一个表空间的备份。
(1) 设置表空间为备份状态
(2) 备份表空间的数据文件
(3) 回复表空间为正常状态 - 备份归档log文件
(1) 临时停止归档进程
(2) 备份下那些在archive redo log目录中的文件
(3) 重新启动archive进程
(4) 备份归档的redo log文件 - 用alter database backup controlfile命令来备份控制文件
热备份的优点是:
1. 可在表空间或数据库文件级备份,备份的时间短。
2. 备份时数据库仍可使用。
3.可达到秒级恢复(恢复到某一时间点上)。
4.可对几乎所有数据库实体做恢复 。
5.恢复是快速的,在大多数情况下可以再数据库仍工作时恢复。
热备份的不足是:
1. 不能出错,否则后果严重。
2. 若热备份不成功,所得结果不可用于时间点的恢复。
3. 因难于维护,所以要特别仔细小心,不允许“以失败告终”。
3.导出与导入
导出/导入(Export/Import)
利用Export可将数据从数据库中提取出来,利用Import则可将提取出来的数据送回到Oracle数据库中去。
1、 简单导出数据(Export)和导入数据(Import)
Oracle支持三种方式类型的输出:
(1)、表方式(T方式),将指定表的数据导出。
(2)、用户方式(U方式),将指定用户的所有对象及数据导出。
(3)、全库方式(Full方式),数据库中的所有对象导出。
1 数据的导出操作
·首先建立一个文件夹,用于保存所有的导出数据,路径:d:\backup;
·通过命令行方式进入到backup目录之中(cd backup);
·执行exp指令;
|-输入用户名和密码:scott / tiger;
|-导出文件: EXPDAT.DMP;
exp 用户名/密码@SID file=f:\xx.dmp owner=用户名
exp hr/hr@orcl file=c://backup/hr.dmp owner=hr
2、导入数据
·进入到备份文件所在的路径;
·执行imp指令导入数据;
但是这样的数据导入只适合小数据量,因为在整个导出过程之中,事务是锁定的,所以很多时候如果非要使用此类方式导出,就需要针对于数据进行分区的概念。
(1)、“完全”增量导出(Complete)
即备份三个数据库,比如:
exp system/system inctype=complete file=040731.dmp
(2)、“增量型”增量导出
备份上一次备份后改变的数据,比如:
exp system/system inctype=incremental