Loading
0

Backup Oracle Database

数据库中所存放的数据是一个系统、一个应用、甚至是一个企业最重要、最核心、最值钱的部分,所以数据的备份显得至关重要,Oracle数据库备份也是一个永恒不变的话题。Oracle数据库的备份工具有许多种,你可以使用Oracle自带的RMAN、exp、expdp等工具进行数据备份,也可以采用第三方工具,诸如NBU、TMS等,对于一个ORACLE DBA来说,不管你是否采用第三方工具来进行数据备份,Oracle自带的备份工具的使用肯定是要必须掌握的。

Oracle数据库的备份根据其备份原理的不同可分为物理备份和逻辑备份,物理备份就是通过底层拷贝数据块的方式备份数据,比如RMAN,而逻辑备份是通过导出数据的逻辑结构备份数据,比如exp、expdp。物理备份有三个层级--数据库级、表空间级、数据文件级,逻辑备份有四个层级--数据库级、表空间级、schema级、表级。

数据库的备份又分为热备与冷备,冷备即在数据库非打开或者非活动状态下进行备份,由于数据库是未打开状态,所以在备份期间不存在新数据的插入或者旧数据的更改而产生的数据一致性的问题。冷备可以通过直接拷贝所有数据库相关的数据文件、redo日志文件、undo文件等方式进行备份,也可以通过将数据库启动到mount状态,使用RMAN进行冷备份。

热备即在数据库打开状态下进行的数据库备份,在备份的过程中数据库依然可以访问,会产生新的数据。热备可以通过exp、expdp或者RMAN进行数据库热备份,exp和expdp可以在数据库运行时将数据导出,不影响数据库的实时访问,但是这种逻辑导出数据库备份的方式在恢复时只能恢复到你导出时的数据,在这个时间点之后的数据就丢失了无法恢复。

使用RMAN工具进行数据库热备份,数据库必须开启日志归档模式,它通过拷贝物理数据块方式进行备份,这种方式在恢复备份后可以通过存在的归档日志对数据库进行recover,从而实现完全恢复,使在备份点之后产生的数据也可以完整保留。RMAN可以将数据库备份到磁盘上,也可以直接将数据库备份到磁带库上。

在使用备份文件异地恢复或数据迁移的时候要注意的是,由于exp、expdp是逻辑备份导出数据结构,所以使用这种方式导出的数据是可以跨任何平台和版本的,而使用RMAN工具备份的数据由于其直接是拷贝物理数据块,而不同的操作系统平台在存储数据块的格式上一般是不相同的,比如有big-endian与little-endian大、小端序或者叫大、小尾序之分,linux使用的是little-endian,而AIX使用的是big-endian,所以不能直接拿来恢复,而需要在备份时或者在恢复时使用RMAN对数据库备份或者数据文件备份等进行平台格式转换,另一个需要注意的是,不是所有的平台都能支持转换,你可以通过以下sql查询出的结果来判断是否支持该平台的跨平台转换:

只有包含在V$TRANSPORTABLE_PLATFORM 这张视图中的平台才支持跨平台转换,并且要注意的是,如果是直接进行数据库级别的转换,那么源端平台与目标平台必须使用同样的endian端序才能转换,比如windows与linux for x86都使用了little-endian,HP-UX与AIX都使用了big-endian,如果要在使用不同endian的平台直接做转换,你只能先在目标平台新建数据库,然后通过表空间级的转换进行恢复。

Oracle数据库的备份今天先讲这些,之后会对这些备份方式和工具进行具体、深入的探讨,有兴趣的朋友请持续关注我的博客。

请尊重我们的辛苦付出,未经允许,请不要转载 Ask600 的文章!