其实,存在我们的现实世界中,早已经就存在很多备份策略,如RAID技术,双机热备,和集群技术发展的不就是计算机系统的备份和高可用性吗?有很多时候,好的系统的备份的确就能解决数据库备份的问题,要是磁盘介质的损坏,往往从镜相上面做简单的恢复,要么简单的切换机器就可以了。oRACLE数据库本身就提供了强大的备份与恢复策略,在这里我们只讨论ORACLE数据库备份策略,所以以下的备份都是指ORACLE数据库备份,对恢复将放到下一讲中。
首先了解ORACLE的运行方式
ORACLE数据库有两种运行方式:一是归档方式(aRCHIVELOG),其归档方式的目的是当数据库发生故障时最大限度恢复oracle数据库,能够保证不丢失任何已提交的数据;二是不归档方式(nOARCHIVELOG),这只能恢复数据库到最近的回收点(比如冷备份或是逻辑备份)。而我们根据数据库的高可用性和用户可承受丢失的工作量的多少,对于生产数据库,则强烈要求采用为归档方式;对那些正在开发和调试的数据库可以采用不归档方式。
怎么改变数据库的运行方式,在创建数据库时,身为创建oracle数据库的一部分,早就决定了数据库初始的存档方式。一般情况下为NOARCHIVELOG方式。在数据库创建好以后,依据我们的需要把需要运行在归档方式的数据库改成ARCHIVELOG方式。
1、把不归档方式为变为归档方式
a.关闭数据库,备份已有的数据,对改变数据库的运行方式是对数据库的重要改动,因此要对数据库做备份,所以可能出现的问题作出保护。
b. 修改初试化参数,使能自动存档 修改(添加)为初始化文件init[SID].ora参数:
log_archive_start=true #启动自动归档
log_archive_format=ARC%T%S.arc #归档文件格式
log_archive_dest=/arch12/arch #归档路径
在8i中,允许可以最多有五个归档路径,而且可以归档到其它服务器,如备用数据库(standbyDatabase)服务器
c.选择启动Instance到Mount状态,就是加载数据库但不打开数据库:
$>SVRMGRL
SVRMGRL >connect Internal
SVRMGRL >startup mount
d.发出修改命令
SVRMGRL >alter Database Archivelog;
SVRMGRL>alter Database open;
2、把归档状态改变为不归档状态
与以上步骤相同,不过有些操作不一样,其主要是在以上的b操作中,改为为删除或注释该参数,在d操作中,是命令为SVRMGRL >alter Database Noarchivelog; 注意,当归档方式转换到非归档方式后一定要做一次数据库的全冷备份,来防止意外事件的发生。