Oracle 数据库备份实战

最近公司的客户希望使用oracle数据库,所以我们只好将数据从mysql数据库迁移到oracle数据库,并对oracle数据库制定了一个备份策略,之前虽然对oracle很熟悉,但做备份策略还是第一次,所以详细记录下来并分享,欢迎大家指教。我们使用rman进行热备份,并启用了闪回表。平时在操作重要数据前,还会通过数据泵(expdb/impdb)进行一次逻辑备份。

备份模式

物理备份与逻辑备份

物理备份: 物理备份是磁盘块为基本单位将数据从主机复制到备机。

逻辑备份: 逻辑备份是以文件为基本单位将数据从主机复制到备机,通过sql或者flatfile文件为中转进行迁移。

高效性:

物理备份是位于文件系统之下和硬件磁盘驱动之上。增加了一个软驱动,它忽略了文件和结构,处理过程简洁,因此在执行过程中所花费在搜索操作上的开销较少,备份的性能很高。

逻辑备份是基于文件级别的备份,由于每个文件都是由不同的逻辑块组成。每一个逻辑的文件块存储在连续的物理磁盘块上,但组成一个文件的不同逻辑块极有可能存储在分散的磁盘块上。逻辑备份在对非连续存储磁盘上的文件进行备份时需要额外的查找操作。这些额外的操作增加了磁盘的开销,降低了磁盘的吞吐率。所以,跟物理备份相比较,备份性能较差。

物理备份避免了当文件出现一个小的改动的时候,就需要对整个文件做备份,只是会去做改动部分的备份,有效的提高了备份效率,节省了备份时间。

逻辑备份模式下,文件即使一个很小的改变,也需将整个文件备份。这样如果一个文件很大的情况下,就会大幅度的降低备份效率,增加磁盘开销和备份时间。

实时性:

物理备份可以做到高效的实时备份,因为在每次主机往磁盘写数据的时候,都需要同时将数据写入到备机,这种写入操作都是基于磁盘扇区的,所以,很快就能被识别。只有在备机完成之后,才会返回给上层的应用系统来继续下一步工作。

逻辑备份是很难做到实时备份的,因为它的每次修改都是基于文件的,而文件的哪部分被修改,系统很难实时捕获到,所以备份的时候需要把整个文件读一遍再发到备机 ,实时的效率不是很高。

支持度:

物理备份是在文件系统之下对数据进行复制,所以它不受文件系统限制,可以支持各种文件系统包括RAW分区。

逻辑备份是以单个文件为单位对数据进行复制,所以它受文件系统限制,仅能对部分支持的文件系统做备份,不支持RAW分区。

(原文摘自:https://yq.aliyun.com/articles/167057?utm_content=m_28176)

 

备份方式 数据泵备份、热备份和冷备份 数据泵备份

属于逻辑备份,以文件为备份单位,expdb的导出模式有:

1、表模式:导出用户所有表或者指定的表。

2、用户模式:导出用户所有对象以及对象中的数据。

3、导出表空间:导出数据库中特定的表空间。

4、整个数据库:导出数据库中所有对象。

 

我们以用户模式为例:

1、创建逻辑目录,该命令不会在操作系统创建真正的目录(要先创建真正的目录),最好以system等管理员创建逻辑目录。

SQL> sqlplus root/root@orcl

SQL> conn as sysdba;(输入sys用户名、密码)

SQL> create directory dump_dir as '/data/exp+imp';

2、查看管理员目录(操作系统下该目录必须存在,假如不存在,则出错)

SQL>select * from dba_directories;

3、给root用户赋予在指定目录的操作权限,最好以system等管理员赋予。

SQL>grant read,write on directory dump_dir to root;

4、导出数据

expdp root/root@orcl schemas=root dumpfile=expdp201810291556.dmp log=expdp201810291556.log directory=dump_dir;

5、导入数据

在另一台主机需要建相同的文件夹dump_dir,从用户root导入到用户root,不同用户使用REMAP_SCHEMA=orcldev:orcltwo。

impdp root/root@orcl directory=dump_dir dumpfile=expdp201810291556.dmp schemas=root table_exists_action=replace

 

实际在使用expdb/impdb时有很多参数可以选择,这里不多讲述,大家自行参考oracle相关资料。

(参考博客:)

 

热备份和冷备份

冷备份指在数据库系统shutdown之后,使用操作系统的命令对表空间进行拷贝进行备份。冷备份只能恢复到之前的某一备份点,而该备份点到出现问题之间这段时间的数据是无法恢复的。

热备份指在数据库系统不停机的情况下进行备份。热备份只能在归档模式下进行。热备份可以在数据库系统崩溃时根据归档日志恢复到之前的任一时间点。热备份通常用于数据的重要性较高、数据库系统为7 X 24不间歇工作模式时。

 

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpzfsf.html