如何在不使用第三方软件,使用Oracle自带功能的情况下,对历史数据进行归档?

ArchiveLog是非活动重做日志备份。通过使用ARCHIVELOG,可以保留所有重做历史记录。当数据库处于归档日志模式和日志切换时,后台进程ARCH会将重做日志的内容保存到归档日志中。当数据库出现介质故障时,可以使用数据文件备份、归档日志和重做日志来完全恢复数据库。

日志操作模式:ARCHIVELOGNOARCHIVELOG

1,更改日志操作模式:

检查当前日志操作模式。

SELECTlog _ modefromv $ database

关闭数据库,然后装载数据库。

立即关闭

启动安装

更改日志操作模式,然后打开数据库。

alterdatabaseaarchivelog;

ALTERDATABASEOPEN

2、实施手工归档

从oracledatabase10g开始,当日志操作模式更改为非归档日志模式时,oracle将自动启动ARCH进程。如果要使用手动存档,则在更改日志操作模式时,必须使用ALTERDATABASEARCHIVELOGMANUAL命令。

应该注意,使用手动存档,数据库管理员必须手动执行存档命令。如果不执行手动归档命令,日志组的原始内容将不会被覆盖。ALTERDATABASEARCHIVELOGMANUAL命令是为了与以前的版本兼容而保留的。未来的oracle版本将取消该命令。使用手动归档,数据库管理员可以执行以下命令来归档重做日志:

SLTERSYSTEMARCHIVELOGALL

3.配置存档流程

初始化参数LOG_ARCHIVE_MAX_PROCESSES用于指定例程最初启动的归档进程的最大数量。当数据库转换为ARCHIVELOG模式时,默认情况下,oracle将自动启动两个归档进程。通过更改初始化参数LOG_ARCHIVE_MAX_PROCESS的值,可以动态增加或减少归档进程的数量:

ALTERSYSTEMSETLOG _ ARCHIVE _ MAX _ PROCESSES = 3;

配置归档位置和文件格式

当数据库处于ARCHIVELOG模式时,如果日志被切换,后台进程将自动生成归档日志。存档日志的默认位置是%oracle_home%rdbms。在oracledatabase10g中,归档日志的默认文件格式是arc% s _% r.% t。为了更改归档日志的位置和名称格式,必须更改相应的初始化参数。

1,初始化参数LOG_ARCHIVE_FORMAT用于指定存档日志的文件名格式。设置此初始化参数时,可以指定以下匹配器:

%s:日志序列号:

%S:日志序列号(以0开头)

%t:重做线程号。

%T:重做线程号(以0开头)

%a:活动ID号

%d:数据库ID号

%rRESETLOGS的ID值。

从10g开始,配置归档日志文件格式时,必须有%s、%t和%r匹配项。配置存档文件格式后,必须重新启动数据库。

2.使用LOG_ARCHIVE_DEST配置归档位置。

如果不使用备用数据库,则只需要将归档日志存储在本地目录中。要配置本地归档位置,可以使用初始化参数LOG_ARCHIVE_DEST和log _ archive _ duplicate _ dest,其中第一个参数用于设置第一个归档位置,第二个参数用于指定第二个归档位置。

ALTERSYSTEMSETlog _ archive _ dest = ' d:demo archive 1 ';

ALTERSYSTEMSETlog _ archive _ duplex _ dest = ' d:demo archive 2 ';

3.使用LOG_ARCHIVE_DEST_n配置多个归档位置。

初始化参数LOG_ARCHIVE_DEST_n用于指定多个归档位置,最多可以指定10个归档位置。通过使用初始化参数LOG_ARCHIVE_DEST_n,不仅可以配置本地归档位置,还可以配置远程归档位置。

如果要在主节点上生成归档日志并将其传输到备用节点,则必须使用参数LOG_ARCHIVE_DEST_n。此参数与LOG_ARCHIVE_DEST有以下不同之处;

初始化参数LOG_ARCHIVE_DEST_n可以配置本地归档位置和远程归档位置,而初始化参数LOG_ARCHIVE_DEST和LOG_ARCHIVE_DUPLEX_DEST只能配置本地归档位置。

初始化参数LOG_ARCHIVE_DEST_n最多可以配置10个归档位置,而初始化参数LOG_ARCHIVE_DEST和LOG_ARCHIVE_DUPLEX_DEST最多只能配置两个归档位置。

初始化参数LOG_ARCHIVE_DEST_n不能与初始化参数log _存档_DEST和LOG _存档_复制_目标一起使用。

因为初始化参数LOG_ARCHIVE_DEST_n不能与初始化参数LOG_ARCHIVE_DEST和log _ archive _ duplicate _ dest一起使用,所以必须禁用初始化参数LOG_ARCHVE_DEST和LOG_ARCHIVE_DUPLEX_DEST。使用初始化参数LOG_ARCHIVE_DEST_n配置本地归档位置时,需要指定本地化选项。配置远程归档位置时,您需要指定服务选项。

例子如下:

ALTERSYSTEMSETlog _ archive _ duplex _ dest =“”;

ALTERSYSTEMSETlog _ archive _ dest =“”;

ALTERSYSTEMSETlog _ archive _ dest _ 1 = ' location = d:demo archive 1 ';

ALTERSYSTEMSETlog _ archive _ dest _ 2 = ' location = d:demo archive 2 ';

ALTERSYSTEMSETlog _ archive _ dest _ 3 = ' location = d:demo archive 3 ';

ALTERSYSTEMSETlog _ archive _ dest _ 4 = ' service = stand by ';

配置远程存档位置时,服务选项需要指定远程数据库的网络服务名(在tnsnames.ora文件中配置)。

4.使用LOG_ARCHIVE_DEST_n选项。

使用初始化参数LOG_ARCHIVE_DEST_n配置归档位置时,可以在归档位置上指定可选或强制选项。当指定强制选项时,可以设置重新打开属性。

可选:此选项是默认选项。使用此选项时,无论存档是否成功,重做日志都会被覆盖。

强制:强制存档。使用此选项时,只有在存档成功后才能覆盖重做日志。

重新打开:该属性用于指定重新归档的时间间隔。默认值为300秒,必须遵循强制值。

示例:

altersystemsetlog _ archive _ dest _ 1 = ' location = d:demo archive 1 mandatory ';

altersystemsetlog _ archive _ dest _ 2 = ' location = d:demo archive 2 mandatoryreopen = 500 ';

altersystemsetlog _ archive _ dest _ 3 = ' location = d:demo archive 3 optional ';

5.控制成功本地存档的最小次数。

使用初始化参数log _ archive _ min _ succeeded _ dest来控制成功的本地归档的最小数量。

altersystemsetlog _ archive _ min _ succeed _ dest = 2;

6.使用初始化参数LOG_ARCHIVE_DEST_STATE_n来控制存档位置的可用性。将该参数设置为ENABLE(默认值),表示对应的归档位置将被激活;将此参数设置为DEFER意味着相应的归档位置被禁用。当归档日志所在的磁盘损坏或已满时,DBA需要临时禁用归档位置。

altersystemsetlog _ archive _ dest _ state _ 3 = defer;(已禁用)

altersystemsetlog _ archive _ dest _ state _ 3 = enable;(已启用)

显示存档日志信息

1,ARCHIVELOGLIST命令可以显示日志操作模式、归档位置、自动归档机要归档的日志序列号等信息。

2显示日志操作模式

SELECTname,log _ modeFROMv $ database

3.显示存档的日志信息。

Colnameformata40

Selectname,swquence #,first _ change # from v $ archived _ log;

Name用于表示归档日志的文件名,sequence#用于表示归档日志对应的日志序列号,firs_change#用于标识归档日志的初始SCN值。

4执行媒体恢复时,需要使用归档日志文件。第四,归档日志的存储位置必须准确定位。归档日志所在的目录可以通过查询动态性能视图v$archive_dest获得。

SELECTdestinationFROMv $ archive dest;

5.显示日志历史信息。

SELECT * FROMv $ loghist

THREAD#用于标识重做线程号,SEQUNCE #用于标识日志序列号,FIRST_CHANGE#用于标识日志序列号对应的初始SCN值,FIRST_TIME用于标识初始SCN的发生时间。SWICTH_CHANGE#用于标识日志切换的SCN值。

6.显示存档过程信息。

当日志切换时,ARCH进程会自动将重做日志复制到归档日志中。为了加快归档速度,应该启用多个ARCH流程。可以通过查询动态性能视图V$ARCHIVE_PROCESSES来显示所有归档进程的信息!

SELECT * FROMv $ archive _ processes;

process用于标识ARCH进程的编号,status用于标识ARCH进程的状态(活动、停止:未启动),log_sequence用于标识被归档的日志序列号,state用于标识ARCH进程的工作状态。