关于备份之言已经发布了一章rman工具的使用 今天九妹带你玩转数据泵 -----
一.数据泵
数据泵实现逻辑备份
逻辑备份是创建数据库对象的逻辑副本,并存入一个二进制转储文件的过程。从本质上说,逻辑备份与恢复实际就是对数据库实施数据的导入和导出。
导出:
导出即数据库的逻辑备份,实质是读取一个数据库集并将这个数据集写入一个文件(扩展名通常是dmp),这些记录的导出与物理位置无关。
导入:
导入及数据库的逻辑恢复,实质是读取被导出的二进制转储文件并将其恢复到数据库。
1、使用数据泵技术导入/导出
数据泵(data pump)是一种在数据库之间或在数据库与操作系统之前高速传输的技术。数据泵工具运行在服务器上,数据库管理员需要指定数据库目录来保存转储的数据。
基于命令行的数据泵导出步骤如下
1)连接oracle数据库
在连接数据库之前 首先创建一个操作目录存放的位置
mkdir -p /opt/backup
chown -R oracle:oinstall /opt/backup
alter user scott account unlock
设置密码为scott:alter user scott identified by pwd123
2)创建操作目录及授予用户对目录的权限
3)
5)导出scott用户下的表
使用expdp命令导入数据(可以按照表导出,按照用户模式导出,按照表空间导出和全库导出),使用impdp命令导入数据(可以按照表导入,按照用户模式导入,按照表空间导入和全库导入)。
expdf scott/pwd123 direcotry=dump_dir dumpfile=scott.dmp tables=emp,dept
6)已经备分成 公
测试删除emp表
sqlplus scott/pwd123
drop table emp;
7)导入emp表
8)select * from scott.emp
查看是否恢复回来
二.使用闪回技术
1、闪回技术概述
为了使数据库能够从任何逻辑误操作中迅速恢复,oracle退出了闪回技术。采用该技术,可以对行级和事务级的数据变化进行恢复,减少了数据恢复的时间,而且操作简单,通过sql语句就可以实现数据的恢复,大大提高了数据库恢复的效率。闪回技术是数据库恢复技术历史上一次重大的进步,从根本上改变了数据恢复。
闪回技术包括以下各项:
1)闪回查询(flashback query):查询过去某个时间点或某个SCN(system change number,系统更改号)值时表中的数据信息。
2)闪回版本查询(flashback version query):查询过去某个时间段或某个SCN段内表中数据的变化情况。
3)闪回事务查询(flashback transaction query):查看某个事务或所有事务在过去一段时间对数据进行的修改。
4)闪回数据库(flashback database):将数据库恢复到过去某个时间点或某个SCN值时的状态。
5)闪回删除(flashback drop):将已经删除的表及相关联的对象恢复到删除前的状态。
6)闪回表(flashback table):将表恢复到过去的某个时间点或某个SCN值时的状态。
SCN:scn是当Oracle数据库更新后,有dbms自动维护而累积递增的一个数字,可以通过查询数据字典V$DATABASE中的CURRENT_SCN获得当前的SCN号。
注意:
闪回数据库是基于闪回恢复区(Flash Recovery Area)特性实现的,如果要使用闪回数据库技术,还需要启用闪回恢复区
闪回删除是基于回收站(Recycle Bin)特性实现的,如果要使用闪回删除技术,还需要启用回收站
闪回查询、闪回版本查询、闪回事务查询以及闪回表主要是基于撤销表空间中的回滚信息实现的
2、闪回恢复区
1)闪回恢复区的含义
Oracle推荐指定一个闪回恢复区(flash recovery area)作为存放备份与恢复相关文件的默认位置,这样oracle就可以实现自动的基于磁盘的备份与恢复(automatic disk-based backup and recovery)。那么,什么是闪回恢复区?简单地说,闪回恢复区是一块用以存储恢复相关的文件的存储空间,允许用户集中存储所有恢复相关的文件。如下集中文件可以放到闪回恢复区中。
控制文件
归档的日志文件
闪回日志
RMAN备份集
数据文件拷贝
2)闪回恢复区的优点
闪回恢复区提供了一个集中化的存储区域,很大程度上减少了管理开销,这是其最主要的优点,另外,与RMAN结合使用可以进行快速恢复。
闪回恢复区主要通过以下3个初始化参数来设置和管理。
Db_recovery_file_dest:指定闪回恢复区的位置
Db_recovery_file_dest_size:指定闪回恢复区的可用空间大小
Db_flashback_retention_target:该参数用来控制闪回日志中数据保留的时间,或者说,希望闪回数据库能够恢复到的最早的时间点。单位为MIN,默认为1440min,也就是一天。当然,实际上可退回的时间还取决于闪回恢复区的大小,因为里面保存了回退所需要的闪回日志,所以这个参数要和db_recovery_file_dest_size配合修改。
如果要撤销闪回恢复区,把初始化参数DB_RECOVERY_FILE_DEST的值清空即可。
注意:db_recovery_file_dest_size只有在db_recovery_file_dest清空之后才可以清空。
5)设置闪回数据库
设置可闪回恢复区之后,要启用闪回数据库的功能,还需要进一步配置。数据库必须已经处于归档模式,再设置闪回数据库。
设置闪回数据库的步骤如下:
启用归档模式(闪回数据库只能处于归档模式)
归档模式的设置
shutdown immediate
2)启动数据库
startup mont
3)设置归档模式
alter database archivelog
4)查询模式
archive log list
3.设置闪回
查看是否设置闪回
建立闪回区
设置闪回数据库的数据保留周期为一天以min为单位
启用闪回日志
shutdown immediate
查询是否已经启用闪回