当前位置:首页 » 数据仓库 » 数据库归档方案
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

数据库归档方案

发布时间: 2022-05-10 14:53:52

‘壹’ 如何实现大数据量数据库的历史数据归档

使用工具pt-archiver
原理解析
作为MySQL DBA,可以说应该没有不知道pt-archiver了,作为pt-toolkit套件中的重要成员,往往能够轻松帮助DBA解决数据归档的问题。例如线上一个流水表,业务仅仅只需要存放最近3个月的流水数据,三个月前的数据做归档即可,那么pt-archiver就可以轻松帮你完成这件事情,甚至你可以配置成自动任务,无需人工干预。

作为DBA,我们应该知其然更应该知其所以然,这样我们也能够放心地使用pt工具。相信很多DBA都研究过pt-online-schema-change的原理,那么今天我们深入刨一刨pt-archiver的工作原理。
一、原理观察
土人有土办法,我们直接开启general log来观察pt-archiver是如何完成归档的。
命令
pt-archiver --source h=127.0.0.1,u=xucl,p=xuclxucl,P=3306,D=xucl,t=t1 --dest h=127.0.0.1,P=3306,u=xucl,p=xuclxucl,D=xucl_archive,t=t1 --progress 5000 \
--statistics --charset=utf8mb4 --limit=10000 --txn-size 1000 --sleep 30
常用选项
--analyze
指定工具完成数据归档后对表执行'ANALYZE TABLE'操作。指定方法如'--analyze=ds',s代表源端表,d代表目标端表,也可以单独指定。
--ask-pass
命令行提示密码输入,保护密码安全,前提需安装模块perl-TermReadKey。
--buffer
指定缓冲区数据刷新到选项'--file'指定的文件并且在提交时刷新。
只有当事务提交时禁用自动刷新到'--file'指定的文件和刷新文件到磁盘,这意味着文件是被操作系统块进行刷新,因此在事务进行提交之前有一些数据隐式刷新到磁盘。默认是每一行操作后进行文件刷新到磁盘。
--bulk-delete
指定单个语句删除chunk的方式来批量删除行,会隐式执行选项'--commit-each'。
使用单个DELETE语句删除每个chunk对应的表行,通常的做法是通过主键进行逐行的删除,批量删除在速度上会有很大的提升,但如果有复杂的'WHERE'条件就可能会更慢。
--[no]bulk-delete-limit
默认值:yes
指定添加选项'--bulk-delete'和'--limit'到进行归档的语句中。
--bulk-insert
使用LOAD DATA LOCAL INFILE的方法,通过批量插入chunk的方式来插入行(隐式指定选项'--bulk-delete'和'--commit-each')
而不是通过逐行单独插入的方式进行,它比单行执行INSERT语句插入的速度要快。通过隐式创建临时表来存储需要批量插入的行(chunk),而不是直接进行批量插入操作,当临时表中完成每个chunk之后再进行统一数据加载。为了保证数据的安全性,该选项会强制使用选项'--bulk-delete',这样能够有效保证删除是在插入完全成功之后进行的。
--channel
指定当主从复制环境是多源复制时需要进行归档哪个主库的数据,适用于多源复制中多个主库对应一个从库的情形。
--charset,-A
指定连接字符集。
--[no]check-charset
默认值:yes
指定检查确保数据库连接时字符集和表字符集相同。
--[no]check-columns
默认值:yes
指定检查确保选项'--source'指定的源端表和'--dest'指定的目标表具有相同的字段。
不检查字段在表的排序和字段类型,只检查字段是否在源端表和目标表当中都存在,如果有不相同的字段差异,则工具报错退出。如果需要禁用该检查,则指定'--no-check-columns'。
--check-slave-lag
指定主从复制延迟大于选项'--max-lag'指定的值之后暂停归档操作。默认情况下,工具会检查所有的从库,但该选项只作用于指定的从库(通过DSN连接方式)。
--check-interval
默认值:1s
如果同时指定了选项'--check-slave-lag',则该选项指定的时间为工具发现主从复制延迟时暂停的时间。每进行操作100行时进行一次检查。
--columns,-c
指定需要归档的表字段,如有多个则用','(逗号)隔开。
--commit-each
指定按每次获取和归档的行数进行提交,该选项会禁用选项'--txn-size'。
在每次获取表数据并进行归档之后,在获取下一次数据和选项'--sleep'指定的休眠时间之前,进行事务提交和刷新选项'--file'指定的文件,通过选项'--limit'控制事务的大小。
--host,-h
指定连接的数据库IP地址。
--port,-P
指定连接的数据库Port端口。
--user,-u
指定连接的数据库用户。
--password,-p
指定连接的数据库用户密码。
--socket,-S
指定使用SOCKET文件连接。
--databases,-d
指定连接的数据库
--source
指定需要进行归档操作的表,该选项是必须指定的选项,使用DSN方式表示。
--dest
指定要归档到的目标端表,使用DSN方式表示。
如果该选项没有指定的话,则默认与选项'--source'指定源端表为相同表。

--where
指定通过WHERE条件语句指定需要归档的数据,该选项是必须指定的选项。不需要加上'WHERE'关键字,如果确实不需要WHERE条件进行限制,则指定'--where 1=1'。
--file
指定表数据需要归档到的文件。使用类似MySQL DATE_FORMAT()格式化命名方式。
文件内容与MySQL中SELECT INTO OUTFILE语句使用相同的格式,文件命名选项如下所示:
%Y:年,4位数(Year, numeric, four digits)
%m:月,2位数(Month, numeric (01..12))
%d:日,2位数(Day of the month, numeric (01..31))
%H:小时(Hour (00..23))
%i:分钟(Minutes, numeric (00..59))
%s:秒(Seconds (00..59))
%D:数据库名(Database name)
%t:表名(Table name)
二、原理解析
根据general log的输出,我们整理出时序表格如下
三、其他说明
咋一看这个过程貌似也没有什么问题,但是,假如在原表扫描出数据,插入到新表的过程中,旧数据发生了变化怎么办?
带着这个疑问,我们进行了源码的跟踪,我们在pt-archiver的6839行打上了断点
然后我分别在几个session窗口做了如下动作
最后pt-archiver输出如下:
# A software update is available:
TIME ELAPSED COUNT
2020-04-08T09:13:21 0 0
2020-04-08T09:13:21 0 1
Started at 2020-04-08T09:13:21, ended at 2020-04-08T09:13:51
Source: A=utf8mb4,D=xucl,P=3306,h=127.0.0.1,p=...,t=t1,u=xucl
Dest: A=utf8mb4,D=xucl_archive,P=3306,h=127.0.0.1,p=...,t=t1,u=xucl
SELECT 1
INSERT 1
DELETE 1
Action Count Time Pct
sleep 1 30.0002 99.89
inserting 1 0.0213 0.07
commit 2 0.0080 0.03
select 2 0.0017 0.01
deleting 1 0.0005 0.00
other 0 0.0008 0.00
很明显,id=3这条记录并没有进行归档(我们这里是改了条件列,实际生产中可能是更改了其他列,造成归档数据不准确)
那么如何来解决这种情况的发生呢?
显然,数据库在数据库中可以通过加排它锁来防止其他程序修改对应的数据,pt-archiver其实早就已经帮我们考虑到了这样的情况,pt-archiver提供了两种选择
--for-update:Adds the FOR UPDATE modifier to SELECT statements
--share-lock:Adds the LOCK IN SHARE MODE modifier to SELECT statements
四、总结
pt-archiver作为归档工具无疑是MySQL DBA日常运维的大利器之一,在使用过程中在知道如何使用的基础上也能够知晓其原理
归档过程中最好能对归档记录进行加锁操作,以免造成归档数据不准确
在主从环境中,归档过程最好控制速度,以免造成主从延迟
尽量控制好chunk的大小,不要过大,造成大事务

‘贰’ 如何将oracle数据库设置为归档模式

则按下方法修改数据库归档模式。
1. 关闭数据库
SQL> shutdown immediate;

2. 启动数据mount状态:
SQL> startup mount;

3. 修改数据库为归档模式:
SQL> alter database archivelog;

4. 打开数据库:
SQL> alter database open;

‘叁’ 数据库中的归档是什么意思

这里就涉及到重做日志得问题了,在归档模式下,当日志文件进行切换得时候,进程LGWR会将日志写入磁盘,作为日志文件为以后的数据库恢复准备,在非归档模式下就不行,当日志文件进行切换得时候会覆盖原来的日志文件,对于非归档模式一般只能进行完全恢复!不过建议应该把DB设为归档模式

‘肆’ 提供一些大规模数据库归档的解决方案

数据立方云计算一体机是大数据处理平台,采用英特尔E5家族系列CPU及英特尔服务器组件,具有超高性价比、超高处理性能、超高可靠性等特性,提供千亿纪录级别的海量数据实时入库、实时检索等功能。
数据立方云计算一体机是一种处理海量数据的高效分布式软硬件集合的云处理平台,该平台可以从TB乃至PB级的数据中挖掘出有用的信息,并对这些海量信息进行快捷、高效的处理。平台支持100GBps以上量级的数据流实时索引,秒级响应客户请求,秒级完成数据处理、查询和分析工作。平台可以对入口数据进行实时索引,对数据进行分析、清理、分割,并将其存储在云存储系统上,不仅在入库和检索时具有非常高的性能优势,还可以支持数据深度挖掘和商业智能分析等业务。

‘伍’ 如何将oracle数据库 设置为归档模式

查看归档状态为非归档
sys@JSL> select log_mode from v$database;
LOG_MODE
------------
NOARCHIVELOG

archive状态Disabled
sys@JSL> archive log list
Database log mode No Archive Mode
Automatic archival Disabled
Archive destination USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence 2
Current log sequence 4

sys@JSL> select * from v$archive_processes;

PROCESS STATUS LOG_SEQUENCE STAT
---------- ---------- ------------ ----
0 STOPPED 0 IDLE
1 STOPPED 0 IDLE
2 STOPPED 0 IDLE
3 STOPPED 0 IDLE
...
...
29 STOPPED 0 IDLE

修改为归档模式

首先要关闭数据库,启动到mount状态。
sys@JSL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
sys@JSL> startup mount
ORACLE instance started.

Total System Global Area 184549376 bytes
Fixed Size 1218412 bytes
Variable Size 62916756 bytes
Database Buffers 117440512 bytes
Redo Buffers 2973696 bytes
Database mounted.

修改为归档模式
sys@JSL> alter database archivelog;
Database altered.

oracle 9i还要设置log_archive_start 这是个静态参数
alter system set log_archive_start=true scope=spfile;
oracle 10g则不用设置了。

验证修改结果
sys@JSL> select log_mode from v$database;
LOG_MODE
------------
ARCHIVELOG

打开数据库
sys@JSL> alter database open;
Database altered.

设置归档格式
log_archive_format,是设置归档命名规则的静态参数,设置后重启数据库才生效。
对log_archive_dest和log_archive_dest_n指定的归档有效。

常用参数如下
%s log sequence number
%S log sequence number, zero filled
%t thread number
%T thread number, zero filled
%a activation ID
%d database ID
%r resetlogs ID
resetlogs,防止恢复的时候会报错,归档默认文件扩展名是dbf,习惯设置成arc
例如:_%t_%s_%r.arc

sys@JSL> select name from v$database;
NAME
------------------------------
JSL
sys@JSL> alter system set log_archive_format='jsl_%t_%s_%r.arc' scope=spfile;
System altered.
重启数据库才生效。

sys@JSL> archive log list
Database log mode Archive Mode
Automatic archival Enabled
Archive destination USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence 2
Next log sequence to archive 4
Current log sequence 4
sys@JSL> alter system switch logfile;
System altered.

archive变成Enabled,我们没有设置归档目的地,
默认USE_DB_RECOVERY_FILE_DEST使用DB_RECOVERY_FILE_DEST目录,也就是我们常说的闪回目录。
sys@JSL> archive log list
Database log mode Archive Mode
Automatic archival Enabled
Archive destination USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence 3
Next log sequence to archive 5
Current log sequence 5

查看当前日志组
sys@JSL> select * from v$log;

GROUP# THREAD# SEQUENCE# BYTES MEMBERS ARC STATUS FIRST_CHANGE# FIRST_TIME
------ ------- --------- -------- -------- --- --------- ------------- -----------------
1 1 5 52428800 1 NO CURRENT 1565953 20101206 17:57:21
2 1 4 52428800 1 YES ACTIVE 1559083 20101206 15:07:00
3 1 3 52428800 1 YES INACTIVE 1534317 20101206 10:44:06

切换日志
alter system archive log current; --先归档再切换
alter system switch logfile; --先切换至于能不能归档再说

sys@JSL> alter system switch logfile;
System altered.

查看已经归档的信息
sys@JSL> select RECID,NAME,DEST_ID,SEQUENCE#,RESETLOGS_CHANGE#,ARCHIVED,STATUS ,BACKUP_COUNT from v$archived_log;

RECID NAME DEST_ID SEQUENCE# RESETLOGS_CHANGE# ARC S BACKUP_COUNT
----- ------------------------------ ---------- ---------- ----------------- --- - ------------
1 /u01/app/oracle/flash_recovery 10 1 1484108 YES A 0
_area/HYJT/archivelog/2010_12_
05/o1_mf_1_1_6hq6z3db_.arc
2 /u01/app/oracle/flash_recovery 10 4 1484108 YES A 0
_area/JSL/archivelog/2010_12_0
6/o1_mf_1_4_6hsdw1mv_.arc
3 /u01/app/oracle/flash_recovery 10 5 1484108 YES A 0
_area/JSL/archivelog/2010_12_0
6/o1_mf_1_5_6hsdx63y_.arc

查看归档进程,开启了三个归档进程
sys@JSL> select * from v$archive_processes;

PROCESS STATUS LOG_SEQUENCE STAT
---------- ---------- ------------ ----
0 ACTIVE 0 IDLE
1 ACTIVE 0 IDLE
2 ACTIVE 0 IDLE
3 STOPPED 0 IDLE
...
...
29 STOPPED 0 IDLE

如果归档进程报错,8i可以使用下面命令尝试解决
archive log stop;
archive log start;

10版本的archive log stop/start及alter system archive log stop/start命令已经不用了,只要在归档模式下就是自动归档模式

设置归档目录
默认的归档目录(Archive destination)是: USE_DB_RECOVERY_FILE_DEST,
如果取消DB_RECOVERY_FILE_DEST参数的设置,就会找standby_archive_dest参数,
默认是'?/dbs/arch'但是没有真实目录存在,所以虽然能开启归档但是不能实现归档。
设置方式:
A: log_archive_dest_n (1-10) 这个参数与B是冲突的,可以设置本地和远程作为归档目标地址。
下面有十个状态参数log_archive_dest_state_n (1-10)与之对应,enable才可用。
例:
log_archive_dest_state_1=DEFER
log_archive_dest_state_2=ENABLE
此参数和log_archive_dest_n参数配对使用,缺省值为ENABLE,如果想停止使用一个归档目录,只需将其对应的log_archive_dest_state_n参数值设置为DEFER。
log_archive_dest_n 其中n为1-5的整数,必需从低到高设置,下面举例说明:
log_archive_dest_1="LOCATION=/jia/arc MANDATORY REOPEN"
log_archive_dest_2="SERVICE=standby_db1 MANDATORY REOPEN=600"
log_archive_dest_3="LOCATION=/jia/arc2 OPTIONAL"
location指的是本地目录。
service是tnsname里指定的名称,可以实现连接到远程。
MANDATORY 关键字说明联机日志文件必须要成功归档以后才能被覆盖。
OPTIONAL 缺省为可选(OPTIONAL),即使归档没有成功也可以覆盖。
在设置时应该至少有一个本地(LOCATION)强制(MANDATORY)归档目录。
REOPEN 关键字说明如果归档不成功时系统要重新尝试归档,缺省每300秒尝试一次直到成功。
reopen可以通过=n来指定尝试的时间间隔,如 log_archive_dest_2中的时间间隔为600秒,
而log_archive_dest_1中的时间间隔为300 秒。
alter system set log_archive_dest_1='location=/xxx/xxx/x/ mandatory reopen=500';

B: log_archive_dest和log_archive_plex_dest 这个参数与A是冲突的,只能设置本地目录,
log_archive_dest可以单独存在,但是log_archive_plex_dest必须依附于log_archive_dest
log_archive_dest这是一个静态参数,设置的时候要带scope=spfile
sys@JSL> alter system set log_archive_dest='';
alter system set log_archive_dest=''
*
ERROR at line 1:
ORA-02097: parameter cannot be modified because specified value is invalid
ORA-16018: cannot use LOG_ARCHIVE_DEST with LOG_ARCHIVE_DEST_n or DB_RECOVERY_FILE_DEST
带上scope=spfile参数就不会有上面的报错信息了
sys@JSL> alter system set log_archive_dest='/jia/arc' scope=spfile;
System altered.
如果使用这种方式,则log_archive_dest是强制(MANDATORY)归档目录,而log_archive_plex_dest为可选(OPTIONAL)目录。

C: db_recovery_file_dest 这个参数还有个辅助参数db_recovery_file_dest_size控制大小。

那么着三种方式是否可以同时设置,以及那个方式设置的生效呢?
我们用下图示加以说明:
A(n) B(y) C(y) -> oracle同时归档日志到log_archive_dest和db_recovery_file_dest指定的目录,C采用omf管理管理方式
A(n) B(y) C(n) -> 1份归档B
A(y) B(y) C(n) -> error A与B是冲突的
A(y) B(n) C(y) -> 1份归档A,如果设置了A,C就失效了。

在10g跟开归档跟flashback_on状态无关,但是反过来开数据库闪回功能必须先开归档。设置log_archive_dest以后重启数据库才生效。

‘陆’ 数据归档的数据仓库存档解决方案

Informatica Data Archive 是一种高度可扩展的高性能数据存档软件。 它可帮助 IT 组织经济有效地管理各种企业业务应用程序中的数据增长,以提高其性能并降低 IT 成本。 借助 Informatica Data Archive,IT 团队可以安全地存档应用程序数据,提供对存档数据的无缝访问,并按需向业务部门提供存档数据 。 存档非活动数据以提高应用程序性能 安全地淘汰遗留应用程序以降低 IT 成本 借助全面实施的保留和处置政策确保合规性和对数据存档的轻松访问 Informatica Data Archive 主要功能之深入分析数据增长 分析应用程序之间的表空间、架构和模块的数据增长率 有助于确定有效的存档策略及更好地管理数据增长 Informatica Data Archive 主要功能之可靠的数据存档支持 将非活动数据移到其他数据库实例,或置于不可修改且高度压缩的安全文件中,以供日后检索 存档完整的业务条目,包括事务数据、主数据、参考数据和元数据。 Informatica Data Archive 主要功能之非结构化数据存档支持 将文档、附件、图像和音频文件存档 将电信交换的详细呼叫记录 (CDR) 存档,并将其转化为可轻松搜索的结构化存档格式 Informatica Data Archive 主要功能之无缝访问数据存档 可从现有应用程序界面访问数据库实例中存档的数据,以及恢复完整的存档、选定业务实体或存档快照 访问存档数据时与原应用程序具有类似的外观和体验,或从标准的报告和商业智能工具,访问存档数据 Informatica Data Archive 主要功能之所有数据存档的内在合规性 保证所有数据存档的事务完整性和参考完整性 控制、跟踪存档过程和对存档数据的所有访问、保留、清除和保留活动 Informatica Data Archive 主要功能之全套应用程序加速器 提供预建的加速器,其中含有针对 Oracle E-Business Suite、PeopleSoft、Siebel、SAP 等业务应用程序的自定义业务规则和数据库存档策略 使用简单的图形用户界面来显示、编辑和扩展存档模板(加速器),也可用来构建新的数据存档模型和业务规则以对自定义应用程序进行存档 Informatica Data Archive 主要功能之广泛的连接性和扩展性 可连接到众多数据库、大型机和业务应用程序,包括Oracle、IBM DB2、MS SQL Server、Teradata、VSAM、Adabas 和 JD Edwards 轻松地与电子邮件和文件存档解决方案或企业内容管理解决方案相集成 使用Informatica Data Archive,可以存档到另一个数据仓库实例,或存档到能极大节省存储空间的高度压缩文件格式。随着数据变旧和访问需求随时间变化,Informatica Data Archive自动将数据从一种存档格式转成另一种格式,并从一个位置迁移到另一个位置,启动多个经济高效的存储层。
Informatica Data Archive只允许存档事务数据和明细数据,这些数据是增长最快的。在维护数据完整性以及指向可能仍然存储在生产系统中的维表和聚合表的链接时执行此操作。最后 ,有些较旧的维记录也可能需要存档。Informatica Data Archive非常清楚应存档哪些类型的表来支持最优的存档策略。
Informatica Data Archive提供一个简单易用的图形用户界面,不需大量的配置、编写脚本或编制程序就可以轻松定义存档工作。利用提供多种存档格式和辅助功能选项的数据仓库存档解决方案,IT组织可以在存档大小、性能、应用程序可存取性以及成本之间确定一个适当的平衡点。 您的公司可能已经有用于电子邮件和文件的存档解决方案。此外,您的 IT 组织可能也有自己的企业内容管理 (ECM) 解决方案标准来管理您的非结构化数据。为了支持合规性需求并确保留存数据的不变和单实例存储,可以使用需要专属连接的存档 平台,如内容寻址存储 (CAS)。
为 了 让 您 的 组 织 快 速 而 精 确 地 响 应 审 计 请 求 以 及 经 济 高 效 地 长 期 留 存数据,Informatica Data Archive 允许您集中管理和发现所有类型(结构数据和非结构数据)的存档数据。这通过与现有存档、内容管理和存储解决方案(包括EMC Documentum、Symantec Enterprise Vault 和 Discovery Accelerator、CommVault Simpana 和 eDiscovery)集成来完成,以促进所有类型存档数据的集中管理和电子搜索。
Informatica Data Archive 使组织能够处理大型跨国企业通常拥有的海量数据。通过提供全面而强大的技术来轻松、安全地存档非活动数据,然后在需要时很容易访问数据,Informatica Data Archive 提供了全面的存档解决方案,可提供最优化、经济高效的数据仓库基础设施。 Informatica Data Archive 使组织能够处理大型跨国企业通常拥有的海量数据。通过提供全面而强大的技术来轻松、安全地存档非活动数据,然后在需要时很容易访问 数据,Informatica Data Archive 提供了全面的存档解决方案,可提供最优化、经济高效的数据仓库基础设施。
当您的 IT 组织实施一个完整、可扩展和灵活的存档解决方案时,可以通过以下方面
来降低数据仓库及其他应用程序的总拥有成本:
· 降低存储、服务器、软件和维护成本
· 改善数据仓库性能
· 提高数据仓库可用性
· 支持遵守内部、行业及政府法令和法规
同时,Informatica 和您的 IT 组织可以结合数据的业务价值与最适合和经济高效的 IT
基础设施来管理它。

‘柒’ oracle数据库归档的必要性以及如何进行归档

对于重要的生产业务建议开启归档模式,通过对在线日志的归档,可以在数据丢失时进行数据恢复、部分操作也只有在归档模式下才能实施、分析日志内容等。
对于非归档数据库开启归档功能操作如下:
1)SQL> conn / as sysdba (以DBA身份连接数据库)

2)SQL> shutdown immediate; (立即关闭数据库)

3)SQL> startup mount (启动实例并加载数据库,但不打开)

4)SQL> alter database archivelog; (更改数据库为归档模式)

5)SQL> alter database open; (打开数据库)

6)SQL> alter system archive log start; (启用自动归档)

7)SQL> exit (退出)

‘捌’ oracle归档模式的配置数据库的归档模式

1.改变非归档模式到归档模式:
1)SQL> conn / as sysdba (以DBA身份连接数据库)
2)SQL> shutdown immediate; (立即关闭数据库)
3)SQL> startup mount (启动实例并加载数据库,但不打开)
4)SQL> alter database archivelog; (更改数据库为归档模式)
5)SQL> alter database open; (打开数据库)
6)SQL> alter system archive log start; (启用自动归档)
7)SQL> exit (退出)
做一次完全备份,因为非归档日志模式下产生的备份日志对于归档模式已经不可用了.这一步非非常重要!
2.改变归档模式到非归档模式:
1)SQL>SHUTDOWN NORMAL/IMMEDIATE;
2)SQL>STARTUP MOUNT;
3)SQL>ALTER DATABASE NOARCHIVELOG;
4)SQL>ALTER DATABASE OPEN;
3.启用自动归档: LOG_ARCHIVE_START=TRUE
归档模式下,日志文件组不允许被覆盖(重写),当日志文件写满之后,如果没有进行手动归档,那么系统将挂起,直到归档完成为止.
这时只能读而不能写.
运行过程中关闭和重启归档日志进程
SQL>ARCHIVE LOG STOP
SQL>ARCHIVE LOG START
4.手动归档: LOG_ARCHIVE_START=FALSE
归档当前日志文件
SQL>ALTER SYSTEM ARCHIVE LOG CURRENT;
归档序号为052的日志文件
SQL>ALTER SYSTEM ARCHIVE LOG SEQUENCE 052;
归档所有日志文件
SQL>ALTER SYSTEM ARCHIVE LOG ALL;
改变归档日志目标
SQL>ALTER SYSTEM ARCHIVE LOG CURRENT TO '&PATH';
5.归档模式和非归档模式的转换
第4步的逆过程.
6.配置多个归档进程
Q:什么时候需要使用多个归档进程?
A:如果归档过程会消耗大量的时间,那么可以启动多个归档进程,这是个动态参数,可以用ALTER SYSTEM动态修改.
SQL>ALTER SYSTEM SET LOG_ARCHIVE_MAX_PROCESSES=10;
Oracle9i中最多可以指定10个归档进程
与归档进程有关的动态性能视图
v$bgprocess,v$archive_processes
7.配置归档目标,多归档目标,远程归档目标,归档日志格式
归档目标 LOG_ARCHIVE_DEST_n
本地归档目标:
SQL>LOG_ARCHIVE_DEST_1 = LOCATION=D:ORACLEARCHIVEDLOG;
远程归档目标:
SQL>LOG_ARCHIVE_DEST_2 = SERVICE=STANDBY_DB1;
强制的归档目标,如果出错,600秒后重试:
SQL>ALTER SYSTEM SET LOG_ARCHIVE_DEST_4 = LOCATION=E:ORACLEARCHIVEDLOG MANDATORY REOPEN=600;
可选的归档目标,如果出错,放弃归档:
SQL>ALTER SYSTEM SET LOG_ARCHIVE_DEST_3 = LOCATION=E:ORACLEARCHIVEDLOG OPTIONAL;
归档目标状态:关闭归档目标和打开归档目标
关闭归档目标1
SQL>ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_1 = DEFER
打开归档目标2
SQL>ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_2 = ENABLE
归档日志格式
LOG_ARCHIVE_FORMAT
8.获取归档日志信息
V$ARCHIVED_LOG
V$ARCHIVE_DEST
V$LOG_HISTORY
V$DATABASE
V$ARCHIVE_PROCESSES
ARCHIVE LOG LIST;

‘玖’ 数据库归档是什么意思

将不再经常使用的数据移到一个单独的存储设备来进行长期保存的过程。数据存档由旧的数据组成,但它是以后参考所必需且很重要的数据,其数据必须遵从规则来保存。数据存档具有索引和搜索功能,这样文件可以很容易地找到。

可以利用数据存档,以物理方式自动将数据仓库中具有较低业务价值的数据迁移到更适合、更经济高效的存储层。有许多标准可用来确定业务价值较低的数据:如数据访问和性能需求、数据的使用年限、数据属于哪个地区或部门,以及分区用途。

当访问率低的数据发展为消耗数据仓库的最大一份,最合理的处理方式是以物理和逻辑方式从核心生产数据仓库中分离此数据。



(9)数据库归档方案扩展阅读

归档的目的是长时间存放有组织的数据集,确保其将来能够被精细地检索。改进的磁带是这种应用最理想的方式。

备份是短时间存储那些频繁更换或更新的数据的副本。这相当于一批廉价的离线介质上的数据副本。通过这种方式,可以把数据与那些基于磁盘的数据中断事件隔离开,以免同时遭到损坏,这样,如果原始数据或存储平台损坏的话,数据就可以恢复到任何磁盘阵列。

在磁盘到磁盘复制解决方案中,复制只能发生在两个完全相同的设备中。此外,复制过程还可以中断,这样你就可以检查在主数据存储和镜像仓库之间的增量或差异。不过,这样它可能会导致在磁盘到磁盘的复制过程中产生很多不易察觉的错误。