oracle归档相关


db_recovery_file_dest_size归档文件大小查看,修改

方式1:

SQL> show parameter db_recover; 

NAME                                 TYPE        VALUE

------------------------------------ ----------- ------------------------------

db_recovery_file_dest                string      /u/ss

db_recovery_file_dest_size           big integer 600G

方式2:

show parameter db_recovery_file_dest_size;

当我们将数据库的模式修改为归档模式的时候,如果没有指定归档目录,默认的归档文件就会放到Flash Recovery Area(上文的/u/ss)的目录,

但是这个目录是有大小限制的,如果超过了这个大小,就会导致2个问题,

一是不能完成归档;

二是,在出现问题后,如果此时重启数据库,那么数据库就无法正常启动。

这个问题有3个解决办法:

(1)扩大Flash Recovery Area的容量

(2)删除不用的归档日志文件

(3)指定归档日志文件到其他目录


归档日志删除的前提是要保证主备同步

delete noprompt archivelog until time 'sysdate-5';删除5天前的归档。

从Oracle9i开始,spfile被引入Oracle数据库,

Oracle首选spfile<ORACLE_SID>.ora文件作为启动参数文件;如果该文件不存在,Oracle选择spfile.ora文件;

SQL> set line 256;#(设置linesize为256,即每行不超过256个字符)

SQL> select * from v$flash_recovery_area_usage;

FILE_TYPE            PERCENT_SPACE_USED(已使用的) PERCENT_SPACE_RECLAIMABLE(可回收的) NUMBER_OF_FILES

-------------------- ------------------ ------------------------- ---------------

CONTROL FILE                          0                         0               0

REDO LOG                              0                         0               0

ARCHIVED LOG                      80.68                         0            1533

BACKUP PIECE                          0                         0               0

IMAGE COPY                            0                         0               0

FLASHBACK LOG                         0                         0               0

FOREIGN ARCHIVED LOG                  0                         0               0



oracle归档:

oracle 10g 中系统默认的情况是以DB_RECOVERY_FILE_DEST定义的目录来存放归档日志。DB_RECOVERY_FILE_DEST参数是默认的flash recovery area(闪回恢复区路径)的路径,里面存放有归档日志、闪回日志以及rman的备份文件等文件。

要使用rman备份就必须要对数据库开启归档。

archive log list查看是否开启归档


SQL>  archive log list;

Database log mode            Archive Mode(数据库日志模式 归档模式)

Automatic archival             Enabled(自动存档 启用)

Archive destination            USE_DB_RECOVERY_FILE_DEST(指定闪回恢复区路径。存档终点 )

Oldest online log sequence     18965(最早的联机日志序列)

Next log sequence to archive   0(下一个存档日志序列)

Current log sequence           18983(当前日志序列)


归档的删除方式:

controlfile中记录着每一个archivelog文件的相关信息

当然们在OS下把这些物理文件delete掉后,在我们的controlfile中仍然记录着这些archivelog文件的相关信息,

在oracle的OEM管理器中有可视化的日志展现出,当我们手工清除 archive目录下的文件后,这些记录并没有被我们从controlfile中清除掉

 一个ORACLE归档日志经常满,表现为/archivelog这个文件空间占用100%大。


开启数据库归档:

在SQL*Plus下执行以下脚

alter system set log_archive_start = true scope = spfile;

修改系统的日志方式是归档模式。

shutdown immediate;

关闭数据库

startup mount;开启到mount状态

启动 mount 实例,但不启动数据库

alter database archivelog;

更改数据库为归档日志模式

alter database open;

正式开启数据库


RMAN(Recovery Manager)是一种用于备份(backup)、还原(restore)和恢复(recover)数据库的 Oracle 工具

备份整个数据库或数据库部件,如表空间、数据文件、控制文件、归档文件以及Spfile参数文件。(SPfile(Server Parameter File,服务器参数文件)

rman通过控制文件找到数据文件。数据块为单位进行备份。只备份使用过的数据库。

支持对备份的数据进行压缩。(1:5的压缩比例)


rman需要备份控制文件的

rman备份的时候会使用占用io,开启io并发就可以了(等同于给raan配置通道)

raan是通过备份脚本进行全库备份的。

备份顺序:先备份数据文件(datafile),再备份归档,再备份控制文件。


(一)、连接本地数据库

[oracle@oracle ~]$ rman target /

[oracle@DB:/home/oracle]$rman target /

Recovery Manager: Release 11.2.0.3.0 - Production on Mon May 6 18:08:16 2019

Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.

connected to target database: S (DBID=14628404, not open)

或者先使用rman进入rman模式,然后使用connect target / 连接到相应的dbid


显示 RMAN 默认配置

show all;

#使用控制文件来代替恢复目录数据库存放rman元数据信息

using target database control file instead of recovery catalog

RMAN configuration parameters for database with db_unique_name S are:

#当完成一次备份后,在做完第二次备份的时候,第一次备份结果将被标识为废弃。

CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default

#关闭备份优化

CONFIGURE BACKUP OPTIMIZATION OFF; # default

#指定i/o操作的设备类型:SBT or DISK.缺省是disk。

CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default

#当autobackup别置为on时,rman做任何备份操作,都会自动对控制文件进行备份。

CONFIGURE CONTROLFILE AUTOBACKUP OFF; # default

#配置控制文件的备份片的路径和格式

CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; # default

#配置数据库设备类型的并行度。并行的数目决定了开启通道的个数

CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET; # default

CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default

CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default

#配置备份集的大小

CONFIGURE MAXSETSIZE TO UNLIMITED; # default

CONFIGURE ENCRYPTION FOR DATABASE OFF; # default

#指定加密算法,还有一个是 ‘AES128'

CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # default

CONFIGURE COMPRESSION ALGORITHM 'BASIC' AS OF RELEASE 'DEFAULT' OPTIMIZE FOR LOAD TRUE ; # default

#指定归档文件的删除策略,即:归档备份到备库就可以被删除

CONFIGURE ARCHIVELOG DELETION POLICY TO APPLIED ON STANDBY;

#配置控制文件的快照文件的存放路径和文件名,这个快照文件是在备份期间产生的,用于控制文件的读一致性

CONFIGURE SNAPSHOT CONTROLFILE NAME TO '/u/oracle/product/11.2/dbs/snapcf_s.f'; # default


归档日志对于ORACLE的数据恢复和备份非常重要,不到万不得已不要删除归档日志。

DELETE ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE-7';

说明:

SYSDATA-7,表明当前的系统时间7天前,before关键字表示在7天前的归档日志,如果使用了闪回功能,也会删除闪回的数据。