分类: Oracle
2006-10-14 08:07:04
Movement environment:Win2003Server + Oracle 9i
Correlation connection:
Author:Stylist
通常数据仓库的备份可能会由于数据库的尺寸巨大而出现问题。数据仓库的大小超过1TB是常有的事,但是就目前的技术水平,备份这么多数据需要花费大量的时间。假设备份一个1.3TB地数据库。备份该数据仓库需要10小时,假如我们需要将备份时间降为2小时。所以我们将选择归档日志模式(ARCHIVELOG)执行热备份。
步骤:
1、shutdown 数据库
2、备份出所有的数据文件、控制文件和日志文件等
3、设置 log_archive_start= true
log_archive_start = true
log_archive_dest_1 = "location=/home/oracle/admin/idap3/arch" 归档目标
log_archive_format = arch_%t_%s.arc 归档文件格式
4、启动数据库接着
>startup mount
>alter database sid archivelog;
>alter database open
但由于每天装载的数据超过3GB,所以我们担心装载过程会因为归档而减慢。故就应该提高数据仓库的备份次数。
考虑一下数据仓库中的数据可以假设在一个成熟的数据仓库中,动态数据只占整个数据库的一小部分。数据仓库中的大部分数据并不随着时间而改变。俗话说“装载一次读取多少次(load once and read many,lorm)”或“写一次读多少次(write once and read many,worm)”的数据无疑是数据仓库的重要部分。现在可以理解为:为什么我们还要一次又再一次的备份那些几乎没有的数据呢?结论是,假如使用只读(Read-only)标空间的话我们就不必这么做。只读表空间是那些被告之所含数据不会发生变化的表空间。这样做的好处是我们只需要北方能一次只读表空间。所以,我们可以可以把表设置为只读模式后立即对其进行备份,并且在把它重新设置为只读(Read-write)模式之前无须对它再进行备份。要设置一个表空间为只读模式,只需使用下列命令:
|
完成。现在如果再把表空间设置为只读模式后又想用这个表空间,就会接收到错误。在下面的代码清单中,我们试图在一个只读表空间ABRAMSON中创建一个表。看看会发生什么呢!
|
可以看出,在表空间被设置为只读属性后再创建一个表是不可能的。然而,如果能香皂将来还可能需要用到这个表空间的话,就可以使用下面的命令将这个表空间重新设为读写模式:
|
根据这一新信息,让我们看一下如果把1个月以前的所有静态数据都设为只读模式,我们的1.3TB地数据库会发生什么变化!幸运的是,我们按照月份对数据进行分区的,因此做起来相对简单些。
下面表格显示了数据的组织情况以及我们在哪里使用只读空间。
这样处理以后完成一次完整备份仍需要10小时。但是现在我们备份数据仓库的活动部分时,所需的时间减少到两小时。备份方案可按月进行以及每两周进行一次活动数据的增加量备份及备份其他要备份的Oracle文件 。从而减少了每月备份的时间。