将Oracle数据库设置为归档模式及非归档模式

合集下载

oracle数据库中查看、修改归档模式

oracle数据库中查看、修改归档模式

Oracle数据库中查看、修改归档模式一、查看数据库是否为归档模式以下提供两种方式查看数据库是否为归档模式:1、select name,log_mode from v$database;在com中执行如下:C:\Users\xiezhanglin>sqlplus system/saSQL*Plus: Release 10.2.0.1.0 - Production on 星期五12月17 17:11:25 2010Copyright (c) 1982, 2005, Oracle. All rights reserved.连接到:Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - ProductionWith the Partitioning, OLAP and Data Mining optionsSQL>select name,log_mode from v$database;NAME LOG_MODE--------- ------------ORCL NOARCHIVELOG可以看到实例为orcl的数据库归档模式为NOARCHIVELOG2、archive log list;(该方法需要as sysdba)在com中执行如下:C:\Users\xiezhanglin>sqlplus system/sa as sysdba;SQL*Plus: Release 10.2.0.1.0 - Production on 星期五12月17 17:14:17 2010Copyright (c) 1982, 2005, Oracle. All rights reserved.连接到:Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - ProductionWith the Partitioning, OLAP and Data Mining optionsSQL>archive log list;数据库日志模式非存档模式自动存档禁用存档终点USE_DB_RECOVERY_FILE_DEST最早的联机日志序列23当前日志序列25二、非归档模式修改为归档模式的步骤1、用system登录。

Oracle归档模式和非归档模式的区别

Oracle归档模式和非归档模式的区别

Oracle归档模式和⾮归档模式的区别⼀。

查看oracle数据库是否为归档模式:Sql代码1.select name,log_mode from v$database;NAME LOG_MODE------------------ ------------------------QUERY NOARCHIVELOG2.使⽤ARCHIVE LOG LIST 命令Database log mode No Archive ModeAutomatic archival DisabledArchive destination /data/oracle/product/10.2.0/db_1//dbs/archOldest online log sequence 739Current log sequence 741[sql] view plaincopyprint?1.select name,log_mode from v$database;NAME LOG_MODE------------------ ------------------------QUERY NOARCHIVELOG2.使⽤ARCHIVE LOG LIST 命令Database log mode No Archive ModeAutomatic archival DisabledArchive destination /data/oracle/product/10.2.0/db_1//dbs/archOldest online log sequence 739Current log sequence 7411.select name,log_mode from v$database;NAME LOG_MODE------------------ ------------------------QUERY NOARCHIVELOG2.使⽤ARCHIVE LOG LIST 命令Database log mode No Archive ModeAutomatic archival DisabledArchive destination /data/oracle/product/10.2.0/db_1//dbs/archOldest online log sequence 739Current log sequence 741⼆。

oracle数据库归档与非归档

oracle数据库归档与非归档

oracle数据库归档与⾮归档oracle运⾏的时候⾄少需要两组联机⽇志,每当⼀组⽇志写满后会发⽣⽇志切换,继续向下⼀组联机⽇志写⼊。

如果是归档模式,则会触发ARCn进程,把切换后的重做⽇志⽂件复制到归档⽇志⽂件。

如果是⾮归档模式,重做⽇志就会被覆盖。

将联机⽇志转换为归档⽇志的过程称之为归档。

相应的⽇志被称为归档⽇志。

归档模式的优点:1、可以进⾏完全、不完全恢复:对于数据库所作的全部改动都记录在⽇志⽂件中,如果发⽣磁盘故障等导致数据⽂件丢失的话,则可以利⽤物理备份和归档⽇志完全恢复数据库,不会丢失任何数据。

2、可以进⾏联机热备,所谓的联机热备,就是在数据库运⾏的状态下对数据库进⾏备份,其他⽤户不受影响。

3、可以实施Data Guard:可以部署⼀个或者多个备⽤数据库,从⽽最⼤限制的提供灾难保护。

4、可以实施stream:利⽤stream技术,可以实现最简单的单向复制、双向复制和多向复制,提供更加灵活的数据冗余⽅案。

5、表空间可以脱机:可以备份部分数据库和重要的表空间。

6、能够增量备份,只需做⼀次完整的备份,以后之备份改变的数据,提⾼备份速度。

7、更多的优化选择。

使⽤归档模式的缺点:1、需要更多的磁盘空间来保存归档⽇志2、需要定期维护归档表空间和备份归档⽇志⾮归档模式的优点:不⽣成归档⽇志,从数据安全的⾓度上看,缺点⾜以弥盖所有优点.使⽤⾮归档模式的缺点:1、只能进⾏脱机备份,也叫冷备份,就是必须数据库关闭之后才能备份,备份过程中数据库不能使⽤。

2、必须备份整个数据库,不能备份部分数据库3、不能增量备份,对于TB级别的数据库(VLDB),将是个很⼤的缺点。

4、只能部分恢复,如果数据⽂件丢失,只能恢复最后⼀次的完全备份,⽽之后的所有数据库改变将全部丢失。

查看当前数据库是否处于归档模式可使⽤如下两种⽅式查看1、select name, log_mode from v$database;log_mode的值为 NOARCHIVELOG 表⽰数据库处于⾮归档模式log_mode的值为 ARCHIVELOG 表⽰数据库处于归档模式2、archive log list;此⽅法需要 as sysdbaDatabase log mode 的值为 No Archive ModeAutomatic archival 的值为 Disabled表⽰当前数据库处于⾮归档模式Database log mode 的值为 Archive ModeAutomatic archival 的值为 Enabled表⽰数据库已开启归档模式归档模式和⾮归档模式下的相互切换:1、⾮归档模式转归档模式(1)、关闭数据库shutdown immediate;(2)、启动数据库到mount状态(连接控制⽂件)startup mount;(3)、修改数据库为归档模式alter database archivelog;(4)、打开数据库alter database open;(5)、查询数据库是否已处于归档模式archive log list;(6)、设置本地归档⽇志的路径alter system set log_archive_dest_1="location=路径" scope=both;该语句含义是确定归档⽇志的路径,实际上Oracle 10g以后可以⽣成多份⼀样的⽇志,保存多个位置,以防不测例如再添加⼀个⽇志位置可使⽤以下语句alter system set log_archive_dest_2="location=路径" scope=both;设置为远程归档⽇志的路径alter system set log_archive_dest-1="server=路径" scope=both;(7)、修改归档⽇志⽂件命名格式alter system set log_archive_max_processes = 5;alter system set log_archive_format = "archive_%t_%s_%r.log" scope=spfile;需重启后⽣效,归档的⽇志⽂件格式会更改为 archive_%t_%s_%r.log 格式(8)、查看当前被归档的重做⽇志select name from v$archived_log;由于没有重启数据库,所以归档⽇志的⽂件格式仍然是默认的格式。

linux中oracle如何打开归档模式并设置归档路径

linux中oracle如何打开归档模式并设置归档路径
Current log sequence218
SQL>
SQL>
为进一步确保归档模式设置的有效性,执行下述命令后,在该归档路径中查看是否有生成归档日志,如果产生了归档log文件就说明归档模式成功设置了。S NhomakorabeaL>
SQL>alter system switch logfile;
System altered.
SQL>
SQL>exit
Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
linux中oracle如何打开归档模式
大家都知道,默认安装oracle数据中后,数据库的归档日志是非开启状态。对于生产库来说,一定要开启归档模式,这样才能确保在发生误操作行为后,通过归档日志来快速恢复数据,对数据安全有十分重要的意义。
在windows环境中启动数据库的归档模式一般来说很简单,只需要简单的几个命令即可实现。但是对于linux操作系统,很多用户都是陌生状态,完全不知道如何操作。只因为对linux系统操作不熟练而导致的。废话不多说。下面就介绍干货,真实操作实验记录,需要对大家有所帮助。
ORACLE instance shut down.
此时,Oracle例程已经关闭。关闭后启动oracle例程。
SQL>startup mount;
ORACLE instance started.

归档模式和非归档模式_大话Oracle RAC:集群 高可用性 备份与恢复_[共2页]

归档模式和非归档模式_大话Oracle RAC:集群 高可用性 备份与恢复_[共2页]

8第8章备份任何系统都有崩溃的可能,Oracle也不例外。

对于DBA而言,数据库备份工作的重要性无须赘述,有计划的备份应该是日常最重要、最紧急的工作内容,不仅要保证备份成功、还要确保备份可恢复。

对于Oracle DBA而言,Oracle自带的RMAN工具是成本最低、学习曲线最低的备份工具,并且很多情况下也是唯一选择,因此每一个DBA都应该熟练掌握它。

8.1 概述所谓备份和恢复是指为了保护数据、避免数据丢失,以及在某些灾难情况下能够重建数据库所要进行的一系列策略和过程。

数据库的备份和恢复是一个很大的主题,这本书不能面面俱到,如果读者对书中的某些内容不熟悉,可以参考Oracle官方手册。

8.1.1 归档模式和非归档模式在DBA部署数据库之初,必须要做出的最重要决定之一就是选择归档模式(ARCHIVELOG)或者非归档模式(NOARCHIVELOG)下运行数据库。

我们知道,Oracle数据库需要至少两组联机日志,每当一组联机日志写满后会发生日志切换,继续向下一组联机日志写入。

如果是归档模式,日志切换会触发归档进程(ARCn)进行归档,生成归档日志。

Oracle保证归档完成前,联机日志不会被覆盖,如果是非归档模式,则不会触发归档动作。

1.归档模式的优缺点归档日志文件中保留了数据库的改动信息,在这种模式下可以获得如下好处。

可以进行完全、不完全恢复:由于对数据库所做的全部改动都记录在日志文件中,如Array果发生硬盘故障等导致数据文件丢失的话,则可以利用物理备份和归档日志完全恢复数据库,不会丢失任何数据。

可以进行联机热备:所谓联机热备,就是在数据库运行状态下,对数据库进行备份。

备份时用户对数据库的使用不受任何影响。

可以实施Data Guard:可以部署1个或多个备用数据库,从而最大限度的提供灾难保Array护手段。

可以实施Stream:利用Stream技术,可以实现最简单的单向复制到复杂的双向复制、Array多向复制,提供更加灵活的数据冗余方案。

关于Oracle归档介绍

关于Oracle归档介绍

数据库归档模式介绍简介:归档日志(Archive Log)是非活动的重做日志备份.通过使用归档日志,可以保留所有重做历史记录,当数据库处于ARCHIVELOG模式并进行日志切换时,后台进程ARCH会将重做日志的内容保存到归档日志中,当数据库出现介质失败时,使用数据文件备份,归档日志和重做日志可以完全恢复数据库。

在Oracle10g中,只要启动数据库的归档模式,Oracle就会启用自动归档,从而避免了10g以前由于用户疏忽所带来的一系列问题。

日志操作模式:ARCHIVELOG(归档),NOARCHIVELOG(非归档)启动Oracle10g数据库的归档模式详细步骤对于非归档模式的数据库改为归档模式(主要以Oracle 10g为参考)使用以下步骤:步骤1(查看数据库的归档状态)首先查看数据库现有模式可使用以下语句,显示数据库处于非归档模式下SQL> select name,log_mode from v$database;NAME LOG_MODE--------- ------------ZHQHDB NOARCHIVELOG也可以用下面的语句[oracle@wangdm ~ 10:28 #9]$ sqlplus / as sysdbaSQL> archive log listDatabase log mode No Archive ModeAutomatic archival DisabledArchive destination ?/dbs/archOldest online log sequence 534Current log sequence 536步骤2(设置归档日志文件路径)SQL>alter system set log_archive_dest_1='location=/u01/arch';该语句含义是设置归档日志文件的存放路径,实际上Oracle 10g以后可以生成多份一样的日志,保存多个位置以防不测例如再添加一个归档日志文件存放位置可使用以下语句SQL>alter system set log_archive_dest_2='location=/u02/arch ';“location=/u01/arch”此目录是要从根目录开始的一个完整的目录详细介绍归档日志文件的存放的两种方法:步骤3(修改数据库为归档模式)关闭数据库SQL> shutdown immediate启动数据mount状态:SQL> startup mount修改数据库为归档模式:SQL> alter database archivelog;打开数据库,查询:SQL> alter database open步骤4(配置归档进程个数)可选初始化参数LOG_ARCHIVE_MAX_PROCESSES用于指定例程初始启动的最大归档进程个数,当将数据库转变为ARCHIVELOG模式时,默认情况下oracle会自动启动两个归档进程.通过改变初始化参数LOG_ARCHIVE_MAX_PROCESS的值,可以动态地增加或降低归档进程的个数,每个实例归档进程数量最多只能为30个取值范围为[0-9 a-t]: ALTER SYSTEM SET LOG_ARCHIVE_MAX_PROCESSES=3 scope=both; 如果设置的归档进程个数超过30如下图会有错误提示其实对于oracle 10g以前的版本还有log_archive_start参数与LOG_ARCHIVE_MAX_PROCESSES结合使用,但是对于10g及后期的版本这个参数完全做废了,如下图数据库已启用归档同时在日志发生切换时日志也会自动归档只是log_archive_start参数值还是false,所以到10G后这个参数就不用理它了步骤5(显示归档日志信息)1.使用ARCHIVE LOG LIST命令可以显示日志操作模式,归档位置,自动归档机器要归档的日志序列号等信息.2.显示归档日志信息.Select name, sequence#, first_change# FROM v$archived_log;Name用于表示归档日志文件名,sequence#用于表示归档日志对应的日志序列号,firs_change#用于标识归档日志的起始SCN值.3.执行介质恢复时,需要使用归档日志文件,此时必须准确定位归档日志的存放位置.通过查询动态性能视图v$archive_dest可以取得归档日志所在目录.SELECT * FROM v$archive_dest;4.显示日志历史信息SELECT * FROM v$loghist;THREAD#用于标识重做线程号,SEQUNCE#用于标识日志序列号,FIRST_CHANGE#用于标识日志序列号对应的起始SCN值,FIRST_TIME用于标识起始SCN的发生时间.SWICTH_CHANGE#用于标识日志切换的SCN值.5.显示归档进程信息.进行日志切换时,ARCH进程会自动将重做日志内容复制到归档目录中,为了加快归档速度,应该启用多个ARCH进程.通过查询动态性能视图V$ARCHIVE_PROCESSES可以显示所有归档进程的信息!SELECT * FROM v$archive_processes;Porcess用于标识ARCH进程的编号,status用于标识ARCH进程的状态(ACTIVE:活动, STOPPED:未启动),log_sequence用于标识正在进行归档的日志序列号,state用于标识ARCH进程的工作状态步骤6(执行手工归档)从oracle database 10g开始,当将日志操作模式转变未ARCHIVELOG模式时,oracle会自动启动ARCH进程.如果要使用手工归档.那么在改变日志操作模式时必须使用命令ALTER DATABASE ARCHIVELOG MANUAL;需要注意,使用手工归档方式,数据库管理员必须手工执行归档命令.如果没有执行手工归档命令,日志组的原有内容将不能被覆盖.ALTER DATABASE ARCHIVELOG MANUAL 命令是为了与先前的版本兼容而保留的,将来的oracle版本会淘汰该命令,使用手工归档方式时,数据库管理员可以执行以下命令归档重做日志:alter system archive log all; --手动归档所有switch的日志alter system archive log sequence 545; --545为日志序列号alter system archive log current; --归档当前联机日志文件arter database archivelog; --用此命令再次将数据库改为自动归档,手动归档一般情况下在10g及后期版本其实已经没什么了注意点1 特别指出的是在Oracle 9i中还要修改参数log_archive_start = true才能生效,oracle 10g中已经废除了该参数,所以不需要设置该参数。

oracle归档和非归档模式

oracle归档和非归档模式
非归档模式优点缺点1dba工作减少2性能提升1只能进行脱机备份冷备份数据库必须关闭2必须备份完整的数据库不能备份部分3不能增量备份4只能部分恢复如果数据文件丢失dba只能恢复最后一次的完全备份如何选择非归档模式只适用于例程失败时恢复数据不能够用来保护介质损坏
归档与非归档模式
小组成员:张苹、弋春叶、赵雪莲
8.日志文件修复 8.日志文件修复
—— 谢 谢——
操 作
(日志文件的移动重命名 1、 关闭数据库 2、 使用操作系统命令拷贝,移动或重命名重做日志文件 3、启动 4、 使用alter database rename file ‘original name’ to ‘new name’ 命令更新 控制 5、文件 打开数据库) Sql>Shutdown immediate 手动移走redo01.log文件 Sql>startup mount 报错说找不到redo01.log文件 Sql>alter database rename file ‘原路径’ to ‘新路径’ Alter database open;
与归档信息相关的视图:
1. 将数据库日志模式由非归档改为归档模式 Startup mount Alter database archivelog;
操 作
2. 查看v$log和v$logfile 查看v$log和 Desc v$log,desc v$logfile 查看数据字典中包含了哪些内容
3. 增加一个日志文件组4,组中放入一个成员(redo04.log) 增加一个日志文件组4,组中放入一个成员(redo04.log) Alter database add logfile group 4 (‘D:\oracle\product\10.2.0\oradata\orcl\ (‘D:\oracle\product\10.2.0\oradata\orcl\redo04.log’) size 10M; 4.向日志文件组4再增加一个成员(redo04a.log) 4.向日志文件组4再增加一个成员(redo04a.log) Alter database add logfile member ‘D:\oracle\product\10.2.0\oradata\orcl\ ‘D:\oracle\product\10.2.0\oradata\orcl\redo04a.log’ to group 4;

查询oracle归档日志是否开启,Oracle开启归档日志以及关闭归档日志

查询oracle归档日志是否开启,Oracle开启归档日志以及关闭归档日志

查询oracle归档⽇志是否开启,Oracle开启归档⽇志以及关闭归档⽇志racle数据库可以运⾏在2种模式下:归档模式(archivelog)和⾮归档模式(noarchivelog)归档模式可以提⾼Oracle数据库的可恢复性,⽣产数据库都应该运⾏在此模式下,归档模式应该和相应的备份策略相结合,只有归档模式没有相应的备份策略只会带来⿇烦。

本⽂简单介绍如何启⽤和关闭数据库的归档模式。

1.归档⽇志开启准备⼯作:1.进⼊dos窗⼝—>>> 菜单键+R,进⼊ 运⾏ 界⾯,输⼊cmd2.登录 sqlplus,—>> ⽅法: sqlplus/nolog,切忌:不要输⼊sqlplus/noarchivelog; 加上 分隔符 ;,这样进⼊的sqlplus的命令参数帮助3.登⼊管理员—>> ⽅法: conn/as sysdba;4.开启归档⽇志4.1 shutdown immediate; –关闭数据库4.2 startup mount; – 打开数据库4.3 alter database archivelog;—开启归档⽇志4.4 alter database open;–开启数据库4.5 archive log list; – 查看归档⽇志是否开启开启状态:数据库⽇志模式 存档模式⾃动存档 启⽤存档终点 USE_DB_RECOVERY_FILE_DEST最早的联机⽇志序列 49下⼀个存档⽇志序列 51当前⽇志序列 515.关闭归档⽇志5.1 shutdown immediate;5.2 startup mount;5.3 alter database noarchivelog;5.4 alter database open;5.5 archive log list ;–查看归档⽇志是否关闭数据库⽇志模式 ⾮存档模式⾃动存档 禁⽤存档终点 USE_DB_RECOVERY_FILE_DEST最早的联机⽇志序列 49当前⽇志序列 51归档⽇志开启语句:Microsoft Windows [版本 6.1.7601]版权所有 (c) 2009 Microsoft Corporation。

oracle11g开启归档模式及修改归档目录日志满

oracle11g开启归档模式及修改归档目录日志满

oracle11g开启归档模式及修改归档⽬录⽇志满oracle 11g开启归档模式及修改归档⽬录⽇志满/s/blog_95b5eb8c01018ylb.htmloracle 11g开启归档模式及修改归档⽬录2011-06-28 22:29在Oracle 11g,开启archive log模式时,默认归档⽬录为db_recovery_file_dest指定。

此参数在pfile/spfile中可以指定:db_recovery_file_dest='/u01/app/oracle/flash_recovery_area'更改归档模式需要在mount状态下,更改归档模式。

SQL> shutdown immediate;Database closed.Database dismounted.ORACLE instance shut down.SQL> startup mountORACLE instance started.--如果安装多个库,会报错,找不到句柄exit 再⽤管理员进⼊Total System Global Area 1258291200 bytesFixed Size 1219160 bytesVariable Size 318768552 bytesDatabase Buffers 922746880 bytesRedo Buffers 15556608 bytesDatabase mounted.SQL> alter database archivelog;Database altered.SQL> alter database open;Database altered.SQL> archive log list;Database log mode Archive ModeAutomatic archival EnabledArchive destination USE_DB_RECOVERY_FILE_DESTOldest online log sequence 15Next log sequence to archive 17Current log sequence 17更改log_archive_dest_1参数可更改归档⽇志⽬录(pfile/spfile中参数db_recovery_file_dest指定的⽬录将⽆效)SQL> alter system set log_archive_dest_1='location=/data/oracle/log1/archive_log'; 最后的⽬录名称需要为archive_log! Linux:alter system set log_archive_dest_1='location=/u01/oracle/log/archive_log';System altered.SQL> archive log list;Database log mode Archive ModeAutomatic archival EnabledArchive destination /data/oracle/log1/archive_logOldest online log sequence 26Next log sequence to archive 28Current log sequence 28实际上从Oracle 10g开始,可以⽣成多份⼀样的⽇志,保存多个位置,以防不测,⽅法如下:SQL>alter system set log_archive_dest_2='location=/data/oracle/log2/archive_log';SQL> archive log list;Database log mode Archive ModeAutomatic archival EnabledArchive destination /data/oracle/log2/archive_log 只能看到最新设置的归档⽬录。

oracle归档操作步骤

oracle归档操作步骤

oracle归档操作步骤
Oracle的归档操作主要包括开启归档模式、修改归档日志路径以及删除归档日志等步骤。

1.查看归档模式是否开启以及重做日志存放路径。

可以通过执行SQL
命令archive log list来查看归档日志的状态,以及SELECT * FROM v$logfile ORDER BY group#;来查看重做日志的存放路径。

2.开启归档模式。

首先关闭数据库实例,然后启动到mount状态,接着
修改数据库为归档模式,最后打开数据库。

3.修改归档日志路径。

如果需要修改归档日志的路径,可以通过修改初
始化参数log_archive_dest_1的值来实现。

注意新路径必须已经存在,且每个目录都必须存在。

4.实验是否成功将路径做了修改。

可以通过切换重做日志的活跃状态来
触发日志备份,生成新的归档日志,并检查新的归档日志是否保存在设置的目录下。

5.删除归档日志。

首先通过执行crosscheck archivelog all;命令
来检查归档日志文件,然后通过执行delete expired archivelog all;命令来删除校验失败的记录。

查看oracle数据库是否归档和修改归档模式

查看oracle数据库是否归档和修改归档模式

在ORACLE数据库的开发环境和测试环境中,数据库的日志模式和自动归档模式一般都是不设置的,这样有利于系统应用的调整,也免的生成大量的归档日志文件将磁盘空间大量的消耗。

但在系统上线,成为生产环境时,将其设置为日志模式并自动归档就相当重要了,因为,这是保证系统的安全性,有效预防灾难的重要措施。

这样,通过定时备份数据库和在两次备份间隔之间的日志文件,可以有效的恢复这段时间的任何时间点的数据,可以在很多时候挽回或最大可能的减少数据丢失。

一、要使OARCLE 数据库进行日志的自动归档,需要做两方面的事情;1.是数据库日志模式的设置(可为Archive Mode 和No Archive Mode);2.就是自动归档模式设置(Automatic archival,可为Enabled 和Disabled)。

二、如何查看数据库的现行日志和自动归档模式的设置可用archive log list 命令来查看。

运行在日志自动归档模式下的数据库系统查看结果如下(一般是生产环境):SQL> archive log listDatabase log mode Archive ModeAutomatic archival EnabledArchive destination /backup/archivelogOldest online log sequence 2131Next log sequence to archive 2133Current log sequence 2133没有启动数据库日志模式和自动归档的数据库系统查看结果如下(一般是测试环境):SQL> archive log listDatabase log mode No Archive ModeAutomatic archival DisabledArchive destination /u01/app/oracle/product/8.1.7/dbs/archOldest online log sequence 194Current log sequence 196三. 数据库日志模式的设置在创建数据库时,可以在CREATE DATABASE 语句中指定数据库的日志模式。

ORACLE归档模式和非归档模式的利与弊

ORACLE归档模式和非归档模式的利与弊

ORACLE归档模式和⾮归档模式的利与弊转:在Oracle数据库中,主要有两种⽇志操作模式,分别为⾮归档模式与归档模式。

默认情况下,数据库采⽤的是⾮归档模式。

作为⼀个合格的数据库管理员,应当深⼊了解这两种⽇志操作模式的特点,并且在数据库建⽴时,选择合适的操作模式笔者今天就谈谈⾃⼰对这两种操作模式的理解,并且给出⼀些可⾏的建议,跟⼤家⼀起来提⾼Oracle数据库的安全性。

⼀、⾮归档模式的利与弊。

⾮归档模式是指不保留重做历史的⽇志操作模式,只能够⽤于保护例程失败,⽽不能够保护介质损坏。

如果数据库采⽤的是⽇志操作模式的话,则进⾏⽇志切换时,新的⽇志会直接覆盖原有⽇志⽂件的内容,不会保留原有⽇志⽂件中的数据。

这么说听起来可能⽐较难理解。

笔者举⼀个简单的例⼦,就会清楚许多。

如现在Oracle数据库中有四个⽇志组,⽇志序列号分别为11、12、13、14。

当数据库事务变化写满第⼀个⽇志组⽂件(序列号为11)时,Oracle数据库就会⾃动切换到第⼆个⽇志组⽂件(序列号为12)中。

依次类推。

当第三个⽇志组⽂件(序列号为13)写满时,就会切换到第四个⽇志组(序列号为14)。

当第四个⽇志组(序列号为14)满时,其就会切换到第⼀个⽇志组(序列号为15)。

这⾥,序列号虽然与刚才第⼀个⽇志⽂件组不同,但是⽇志组仍然是同⼀个。

此时,由于数据库的操作模式选择为⾮归档模式,所以第⼀组⽇志⽂件(序列号为11)中的内容并没有归档。

新的⽇志⽂件的内容将直接覆盖第⼀个⽇志组⽂件中的内容。

若第⼀个⽇志组⽂件(序列号为15)满时,切换到第⼆个⽇志⽂件组时,新的内容⼜会在第⼆个⽇志⽂件组没有归档的情况下,直接覆盖⽇志⽂件12中的原有数据。

通过以上的分析,我们可以归纳出⾮归档操作⽇志模式的⼀些特点。

⼀是当检查点完成之后,后台进程可以覆盖原有重做⽇志的内容。

也就是说,在⽇志切换时,后来的⽇志⽂件内容可以在以前的⽇志⽂件内容没有归档的情况下,覆盖原有⽇志⽂件的内容。

查询oracle归档空间利用率 -回复

查询oracle归档空间利用率 -回复

查询oracle归档空间利用率-回复题目:查询Oracle归档空间利用率导语:Oracle数据库的归档空间是用于存储已完成的日志文件(也称为归档日志)的地方。

归档日志是在正常事务提交后自动生成的,以确保数据的完整性和恢复性。

在长时间运行的数据库中,归档空间可能会占用大量的磁盘空间,因此了解归档空间的利用率对数据库管理员来说至关重要。

本文将介绍如何查询Oracle归档空间的利用率。

第一步:查询数据库的归档模式在Oracle数据库中,归档模式有两种:归档模式(ARCHIVELOG)和非归档模式(NOARCHIVELOG)。

归档模式将数据库的日志文件保存到归档目录中,而非归档模式则不执行该操作。

要查询数据库的归档模式,可以使用以下SQL查询:SELECT log_mode FROM vdatabase;当结果为`ARCHIVELOG`时,表示数据库处于归档模式。

当结果为`NOARCHIVELOG`时,表示数据库处于非归档模式。

第二步:查询数据库的归档日志目录如果数据库处于归档模式,归档日志文件将存储在归档日志目录中。

要查询数据库的归档日志目录,可以使用以下SQL查询:SELECT value FROM vparameter WHERE name ='log_archive_dest_1';查询结果将显示归档日志目录的路径。

这个路径可以是文件系统路径或ASM路径,具体取决于数据库的配置。

第三步:查询归档日志文件的利用率要查询归档日志文件的利用率,可以使用以下SQL查询:SELECT (SUM(blocks) * (SELECT block_size FROM vdatabase)) / (1024 * 1024) AS total_size_mb,(SUM(blocks) - SUM(blocks_remaining)) * (SELECTblock_size FROM vdatabase) / (1024 * 1024) AS used_size_mb, SUM(blocks_remaining) * (SELECT block_size FROMvdatabase) / (1024 * 1024) AS remaining_size_mb,(SUM(blocks) - SUM(blocks_remaining)) / SUM(blocks) * 100 AS used_percentageFROM varchived_log;该查询将返回归档日志文件的总大小、已使用大小、剩余大小和利用率百分比。

oracle数据库处理归档日志的步骤

oracle数据库处理归档日志的步骤

一、了解归档日志归档日志是Oracle数据库中一种重要的日志记录方式,它记录了数据库中所有发生的修改操作,包括插入、更新、删除等。

归档日志的作用是用于数据库的恢复和回滚操作,确保数据库的完整性和可靠性。

二、启用归档模式1. 确认数据库当前日志模式在连接数据库后,可以使用以下SQL语句确认当前的数据库日志模式:```SELECT log_modeFROM v$database;```如果返回结果为ARCHIVELOG,则表示数据库已经处于归档模式;如果返回结果为NOARCHIVELOG,则表示数据库尚未启用归档模式。

2. 修改数据库为归档模式如果数据库尚未启用归档模式,可以使用以下步骤将数据库修改为归档模式:```SHUTDOWN IMMEDIATE;STARTUP MOUNT;ALTER DATABASE ARCHIVELOG;ALTER DATABASE OPEN;```通过以上步骤,数据库将被修改为归档模式,并可以开始处理归档日志。

三、配置归档参数1. 确认归档目标归档目标是指归档日志文件的存储位置。

可以使用以下SQL语句确认当前的归档目标:```SHOW PARAMETER LOG_ARCHIVE_DEST;```如果没有设置归档目标,需要通过以下SQL语句进行设置:```ALTER SYSTEM SETLOG_ARCHIVE_DEST_1='LOCATION=/archivelog';```其中,/archivelog为归档日志存储的路径,可以根据实际情况进行调整。

2. 确认归档模式归档模式是指数据库在何种情况下触发归档日志的记录。

可以使用以下SQL语句确认当前的归档模式:```SHOW PARAMETER LOG_ARCHIVE_START;```如果归档模式未启用,需要通过以下SQL语句进行设置:```ALTER SYSTEM SET LOG_ARCHIVE_START=TRUE;```通过以上步骤,归档参数将被正确配置,数据库可以开始处理归档日志。

oracle归档文件解析 -回复

oracle归档文件解析 -回复

oracle归档文件解析-回复Oracle归档文件解析[oracle归档文件解析]的问题涉及到Oracle数据库中的归档文件。

归档文件对于数据库的运行和管理非常重要,它们记录了数据库的所有事务操作,确保数据的持久性和一致性。

在本文中,我们将逐步解析Oracle 归档文件的概念、作用、管理和恢复。

一、什么是归档文件?归档文件是Oracle数据库中的重要组成部分,它们记录了数据库的变化操作,包括插入、更新和删除等事务。

这些归档文件通常被保存在归档目录中,以便在需要时进行回滚或恢复操作。

二、归档文件的作用1. 数据备份和恢复:归档文件可以用于数据库的备份和恢复。

在每次数据库事务提交后,归档文件会被生成并保存,以便在需要时将数据库恢复到特定的时间点。

2. 系统故障恢复:当数据库发生故障时,如服务器断电或磁盘损坏,归档文件可以用于还原数据库到最后一次完整备份之后的任意时间点。

3. 数据库复制:通过归档文件,可以将数据库的变更操作应用于其他数据库副本,实现数据的复制和同步。

4. 事务日志分析:归档文件中记录的事务操作可以用于分析和优化数据库的性能,识别潜在的性能问题和系统瓶颈。

三、归档文件管理1. 归档模式设置:Oracle数据库支持两种归档模式,即归档模式和非归档模式。

在归档模式下,归档文件会被自动创建并保存在指定的归档目录中;在非归档模式下,数据库不会生成归档文件,而是自动覆盖事务日志。

2. 归档文件清理:由于归档文件会占用一定的存储空间,为避免过度占用磁盘空间,我们需要定期清理旧的归档文件。

可以通过设置归档保留策略来自动删除过期的归档文件。

3. 归档文件备份:为了保证归档文件的安全性,我们还需要定期备份归档文件。

这样,在数据库故障时,可以通过备份的归档文件及时恢复数据。

四、归档文件恢复1. 归档文件检查:在进行数据库恢复之前,需要首先检查归档文件的完整性。

可以使用RMAN工具或者手动检查归档文件的序列号和时间戳。

Oracle归档模式及归档日志的操作

Oracle归档模式及归档日志的操作

ORACLE归档模式及归档日志的操 作
归档模式及归档日志基本概念
为什么要给Oracle做归档操作? Oracle数据库有联机重做日志,这个日志是记录对数据库所做的修改,比如插 入,删除,更新数据等,对这些操作都会记录在联机重做日志里。 当ORACLE数据库运行在ARCHIVELOG(归档模式)模式时,所有的事务重做日志 都将保存.这意味着对数据库进行的所有事务都留有一个备份,尽管重做日志以 循环方式工作,但在一个重做日志被覆盖前均将为其建立一个副本.在重做日志 文件复制完成之前,ORACLE数据库将停止一切新的操作,在旧的事务记录完成之 前ORACLE不对其进行覆盖.有了所有事务的副本,数据库就可以从所有类型的失 败中恢复,包括用户错误或磁盘崩溃.这是一种最安全的数据库工作方式。在实 际开发中,归档模式是符合开发的,归档模式可以提高Oracle数据库的可恢复 性,生产数据库都应该运行在此模式下,数据库使用归档方式运行时才可以进 行灾难性恢复。
LINUX系统开启归档模式
修改数据库为归档模式(需在关闭数据库后操作,操作完成后启动数据库) alter database 改为非归档,则执行: alter database noarchivelog;)
WINDOWS开启归档模式
删除归档日志释放磁盘空间
先查看归档日志状态: RMAN>list archivelog all; 手工删除归档日志文件(删除7天前的所有归档日志) RMAN>DELETE ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE-7'; 说明: SYSDATA-7,表明当前的系统时间7天前,before关键字表示在7天前的归档日志, 如果使用了闪回功能,也会删除闪回的数据。 同样道理,也可以删除从7天前到现在的全部日志,不过这个命令要考虑清楚, 做完这个删除,最好马上进行全备份数据库。

Oracle归档日志与非归档日志的切换及路径设置

Oracle归档日志与非归档日志的切换及路径设置

Oracle归档⽇志与⾮归档⽇志的切换及路径设置--====================-- Oracle 归档⽇志--====================Oracle可以将联机⽇志⽂件保存到多个不同的位置,将联机⽇志转换为归档⽇志的过程称之为归档。

相应的⽇志被称为归档⽇志。

⼀、归档⽇志是联机重做⽇志组⽂件的⼀个副本包含redo记录以及⼀个唯⼀的log sequence number对⽇志组中的⼀个⽇志⽂件进⾏归档,如果该组其中⼀个损坏,则另⼀个可⽤的⽇志将会被归档对于归档模式的⽇志切换,当⽇志归档完成后,下⼀个⽇志才能被覆盖或重新使⽤⾃动归档功能如开启,则后台进程arcn在⽇志切换时⾃动完成归档,否则需要⼿动归档归档⽇志⽤途恢复数据库更新standby数据库使⽤LogMiner 提取历史⽇志的相关信息⼆、⽇志的两种模式1.⾮归档模式不适⽤与⽣产数据库创建数据库时,缺省的⽇志管理模式为⾮归档模式当⽇志切换,检查点产⽣后,联机重做⽇志⽂件即可被重新使⽤联机⽇志被覆盖后,介质恢复仅仅⽀持到最近的完整备份不⽀持联机备份表空间,⼀个表空间损坏将导致整个数据库不可⽤,需要删除掉损坏的表空间或从备份恢复对于操作系统级别的数据库备份需要将数据库⼀致性关闭应当备份所有的数据⽂件、控制⽂件(单个)、参数⽂件、密码⽂件、联机⽇志⽂件(可选)2.归档模式能够对联机⽇志⽂件进⾏归档,⽣产数据库强烈建议归档在⽇志切换时,下⼀个即将被写⼊⽇志组必须归档完成之后,⽇志组才可以使⽤归档⽇志的Log sequence number信息会记录到控制⽂件之中必须有⾜够的磁盘空间⽤于存放归档⽇志Oracle 9i 需要设置参数log_archive_start=true 才能够进⾏⾃动归档备份与恢复⽀持热备份,且当某个⾮系统表空间损坏,数据库仍然处于可⽤状态,且⽀持在线恢复使⽤归档⽇志能够实现联机或脱机时点恢复(即可以恢复到指定的时间点、指定的归档⽇志或指定的SCN)三、两种模式的切换设置及⼿动归档1.⾮归档到归档模式a.⼀致性关闭数据库(shutdown [immediate | transactional |normal])b.启动到mount阶段(startup mount)c.切换到归档模式(alter database archivelog [manual])d.切换到open阶段(alter database open)e.对数据做⼀个完整备份(full backup)--演⽰⾮归档到归档模式SQL> ARCHIVE LOG LIST --查看数据库是否处于归档模式Database log mode No Archive ModeAutomatic archival DisabledArchive destination USE_DB_RECOVERY_FILE_DESTOldest online log sequence 14Current log sequence 16SQL> SELECT log_mode FROM v$database; --查看数据库是否处于归档模式LOG_MODE------------NOARCHIVELOGSQL> SHUTDOWN IMMEDIATE; --⼀致性关闭数据库Database closed.Database dismounted.ORACLE instance shut down.SQL> STARTUP MOUNT; --启动到mount状态ORACLE instance started.Total System Global Area 251658240 bytesFixed Size 1218796 bytesVariable Size 75499284 bytesDatabase Buffers 171966464 bytesRedo Buffers 2973696 bytesDatabase mounted.SQL> ALTER DATABASE ARCHIVELOG; --切换到⾃动归档模式Database altered.SQL> ALTER DATABASE OPEN; --切换到open状态Database altered.SQL> ARCHIVE LOG LIST; --查看数据库的归档状态Database log mode Archive Mode --已置为归档模式Automatic archival Enabled --对⽇志进⾏⾃动归档Oldest online log sequence 14Next log sequence to archive 16Current log sequence 16--备份数据库步骤省略2.归档模式切换到⾮归档模式(步骤同⾮归档到归档模式仅仅是c步骤使⽤alter database noarchivelog,演⽰省略)a.⼀致性关闭数据库(shutdown [immediate | transactional |normal])b.启动到mount阶段(startup mount)c.切换到归档模式(alter database noarchivelog )d.切换到open阶段(alter database open)e.对数据做⼀个完整备份(full backup)3.⼿动归档⼿动归档时需要将⽇志模式切换为alter database archivelog manual再使⽤alter system archive log current | all 实现归档更多⼿动归档命令:ALTER SYSTEM archive_log_clause注意:⼿动归档模式下不⽀持stanby数据库在alter database archivelog模式下也可以实现对⽇志的归档SQL> ALTER DATABASE ARCHIVELOG MANUAL; --将⽇志模式切换为⼿⼯归档模式Database altered.SQL> ALTER DATABASE OPEN; --打开数据库Database altered.SQL> ALTER SYSTEM ARCHIVE LOG CURRENT; --对当前的⽇志进⾏归档(建议在mount阶段完成)System altered.SQL> ALTER SYSTEM ARCHIVE LOG ALL; --对所有的⽇志进⾏归档alter system archive log all*ERROR at line 1:ORA-00271: there are no logs that need archiving --没有需要归档的⽇志通过设置LOG_ARCHIVE_MAX_PROCESSES 参数,可以指定数据库规定所需初始化的进程数,缺省的归档进程数为2⼀般情况下不需要修改该参数,Oracle会根据归档情况⾃动启动额外的归档进程也可以动态的增加或减少归档进程数,⽐如有些业务在⽉底需要进⾏⼤量归档,平时则归档较少,对此可以动态修改修改⽅法ALTER SYSTEM SET LOG_ARCHIVE_MAX_PROCESSES=3;5.配置归档(两种归档位置配置⽅法)a.归档到本机且少于等于两个归档位置设置LOG_ARCHIVE_DEST和LOG_ARCHIVE_DUPLEX_DEST参数alter system set log_archive_dest = '/u01/app/oracle/archivelog1' scope = spfile;alter system set log_archive_duplex_dest = '/u01/app/oracle/archivelog2' scope = spfile;b.归档到本机或远程主机设置LOG_ARCHIVE_DEST_n 参数,n最⼤值为10alter system set log_archive_dest_1 = 'LOCATION=/u01/app/oracle/archivelog3';alter system set log_archive_dest_2 = 'SERVICE=standby1';对于远程归档位置,SERVICE选项需要指定远程数据库的⽹络服务名(在tnsnames.ora⽂件中配置)LOG_ARCHIVE_DEST_n的两个常⽤选项MANADATORY | OPTIONAL:MANADATORY表⽰归档必须成功复制到⽬的路径之后,联机重做⽇志才能被复⽤,OPTIONAL正好相反REOPEN:指定归档失败后指定间隔多少时间重试归案,缺省的为300秒⽰例:log_archive_dest_1 = 'LOCATION=/u01/app/oracle/archivelog3 manadatory reopen = 600'log_archive_dest_2 = 'SERVICE=standby1 manadatory reopen'c.两种归档⽅法异同(前者log_archive_dest、log_archive_duplex_dest ,后者log_archive_dest_n)两者都可以归档到本机,后者可以归档到远程主机,前者不⽀持该功能前者最多配置两个归档位置,后者可以配置10个归档位置两者互不兼容,要么使⽤前者,要么使⽤后者使⽤后者归档到本地时需要增加LOCATION选项,备份到远程主机需要使⽤SERVICE选项但上述两种⽅式未指定路径时,归档⽇志位于db_recovery_file_dest 缺省为$ORACLE_BASE/flash_recovey_aread.归档⽇志命名格式设置LOG_ARCHIVE_FORMAT参数,Unix下的缺省设置为LOG_ARCHIVE_FORMAT=%t_%s_%r.dbf%s: ⽇志序列号:%S: ⽇志序列号(带有前导)%t: 重做线程编号.%a: 活动ID号%d: 数据库ID号%r RESETLOGS的ID值.alter system set log_archive_format = 'arch_%t_%s_%r.arc';e.归档位置状态Valid/Invalid --磁盘位置及服务名等是否有效Enabled/Disabled --磁盘位置的可⽤状态及数据库能否使⽤该归档位置Active/Inactive --访问归档⽬的地是否有异常f.归档成功的最⼩个数(使⽤参数log_archive_min_succeed_dest = n)alter system set log_archive_min_succeed_dest = 2; --缺省为1联机重做⽇志组能够被覆盖的前提所有强制路径归档位置成功实现归档归档⽬的地的成功归档的个数⼤于或等于上述参数设定的值当强制个数⼤于该参数设定的个数,则以强制个数为准当强制个数⼩于该参数设定的个数,则可选的成功归档路径加上强制的归档路径个数⾄少等于该参数设定值g.控制归档的可⽤性(使⽤参数log_archive_dest_state_n)alter system set log_archive_dest_state_1 = enable | deferenable -->缺省状态,可以在该归档位置进⾏归档defer -->禁⽤该归档位置h.演⽰归档路径配置及查看归档进程,归档位置状态SQL> ARCHIVE LOG LIST; --查看⽇志是否处于归档状态Database log mode Archive ModeAutomatic archival EnabledArchive destination USE_DB_RECOVERY_FILE_DESTOldest online log sequence 24Next log sequence to archive 26Current log sequence 26SQL> ho ps -ef | grep ora_arc --查看归档进程是否已启动oracle 4062 1 0 11:43 ? 00:00:00 ora_arc0_orcloracle 4064 1 0 11:43 ? 00:00:00 ora_arc1_orclSQL> SHOW PARAMETER ARCHIVE --查看归档路径是否已设置,为空值表⽰未设置------------------------------------ ----------- ------------------------------archive_lag_target integer 0log_archive_config stringlog_archive_dest stringlog_archive_dest_1 stringlog_archive_dest_10 stringlog_archive_dest_2 stringlog_archive_dest_3 stringlog_archive_dest_4 stringlog_archive_dest_5 stringlog_archive_dest_6 stringlog_archive_dest_7 stringNAME TYPE VALUE------------------------------------ ----------- ------------------------------log_archive_dest_8 stringlog_archive_dest_9 stringlog_archive_dest_state_1 string enablelog_archive_dest_state_10 string enablelog_archive_dest_state_2 string enablelog_archive_dest_state_3 string enablelog_archive_dest_state_4 string enablelog_archive_dest_state_5 string enablelog_archive_dest_state_6 string enablelog_archive_dest_state_7 string enablelog_archive_dest_state_8 string enableNAME TYPE VALUE------------------------------------ ----------- ------------------------------log_archive_dest_state_9 string enablelog_archive_duplex_dest stringlog_archive_format string %t_%s_%r.dbflog_archive_local_first boolean TRUElog_archive_max_processes integer 2log_archive_min_succeed_dest integer 1log_archive_start boolean FALSE --该参数在9i中使⽤log_archive_trace integer 0remote_archive_enable string trueSQL> alter system set log_archive_dest = '/u01/app/oracle/archivelog1' scope = spfile; System altered.SQL> alter system set log_archive_duplex_dest= '/u01/app/oracle/archivelog2' scope=spfile; System altered.SQL> alter system set log_archive_format = 'arch_%t_%s_%r.arc' scope = spfile;--设定完毕后需要重新启动实例,在此省略关闭启动信息SQL> ho ls /u01/app/oracle/archivelog1 --查看归档路径下是否存在⽂件或⽂件夹SQL> ho ls /u01/app/oracle/archivelog2 --查看归档路径下是否存在⽂件或⽂件夹SQL> alter system archive log current; --⼿动进⾏归档System altered.SQL> ho ls -l /u01/app/oracle/archivelog1 --在指定的⽂件夹archivelog1已产⽣归档⽇志total 18224-rw------- 1 oracle oinstall 18636800 Jul 28 20:39 arch_1_26_724852763.arcSQL> ho ls -l /u01/app/oracle/archivelog2 --在指定的⽂件夹archivelog2已产⽣归档⽇志total 18224-rw------- 1 oracle oinstall 18636800 Jul 28 20:39 arch_1_26_724852763.arcSQL> ho mkdir /u01/app/oracle/archivelog3 --创建新的归档路径SQL> ho mkdir /u01/app/oracle/archivelog4 --创建新的归档路径SQL> alter system set log_archive_dest_1 = 'location=/u01/app/oracle/archivelog3'2 scope = spfile;System altered.SQL> alter system set log_archive_dest_2 = 'location=/u01/app/oracle/archivelog4'2 scope = spfile;System altered.SQL> shutdown immediate; --关闭实例Database closed.Database dismounted.ORACLE instance shut down.SQL> startup --启动实例后,收到错误提⽰表明两种归档⽅式不兼容ORA-16019: cannot use LOG_ARCHIVE_DEST_1 with LOG_ARCHIVE_DEST or LOG_ARCHIVE_DUPLEX_DEST--关于上述设置导致的错误处理请参照:⼜⼀例SPFILE设置错误导致数据库⽆法启动SPFILE错误导致数据库⽆法启动--下⾯是正确的处理办法,应当先将⼀种归档⽅式路径置空,此处是将log_archive_dest置空SQL> alter system set log_archive_dest = '' scope = spfile;System altered.--此处是将log_archive_duplex_dest置空SQL> alter system set log_archive_duplex_dest = '' scope = spfile;System altered.--接下来再设定log_archive_dest_1,log_archive_dest_2SQL> alter system set log_archive_dest_1 = 'location=/u01/app/oracle/archivelog3'2 scope = spfile;System altered.SQL> alter system set log_archive_dest_2 = 'location=/u01/app/oracle/archivelog4'2 scope = spfile;System altered.--由于没有配置standby服务器,所以省略配置到远程主机--设定完毕后需要重新启动实例,此时系统能正常启动,在此省略关闭启动信息SQL> alter system archive log current; --进⾏⼿动归档System altered.SQL> ho ls -l /u01/app/oracle/archivelog3/ --查看归档⽇志total 27752-rw------- 1 oracle oinstall 28382208 Aug 2 13:46 arc_1_38_724852763.arcSQL> ho ls -l /u01/app/oracle/archivelog4/ --查看归档⽇志total 27752-rw------- 1 oracle oinstall 28382208 Aug 2 13:45 arc_1_38_724852763.arcSQL> col dest_name format a20;SQL> col destination format a30;SQL> select dest_name,status,archiver,destination,2 log_sequence,reopen_secs,transmit_mode,process3 from v$archive_dest; --查看归档⽬的地的相关状态信息DEST_NAME STATUS ARCHIVER DESTINATION LOG_SEQUENCE REOPEN_SECS TRANSMIT_MOD PROCESS -------------------- --------- ---------- ------------------------------ ------------ ----------- ------------ -------LOG_ARCHIVE_DEST_1 VALID ARCH /u01/app/oracle/archivelog3/ 38 300 SYNCHRONOUS ARCHLOG_ARCHIVE_DEST_2 VALID ARCH /u01/app/oracle/archivelog4/ 38 300 SYNCHRONOUS ARCHLOG_ARCHIVE_DEST_3 INACTIVE ARCH 0 0 SYNCHRONOUS ARCH-----------------------------------------------------------------------------------------------------------------------SQL> alter system set log_archive_dest_state_2 = defer; --停⽤log_archive_dest_state_2System altered.SQL> show parameter log_archive_dest_stateNAME TYPE VALUE------------------------------------ ----------- ---------------log_archive_dest_state_1 string enablelog_archive_dest_state_10 string enablelog_archive_dest_state_2 string DEFER --该路径显⽰为deferlog_archive_dest_state_3 string enablelog_archive_dest_state_4 string enablelog_archive_dest_state_6 string enablelog_archive_dest_state_7 string enablelog_archive_dest_state_8 string enablelog_archive_dest_state_9 string enableSQL> alter system archive log current; --⼿动归档System altered.SQL> ho ls -l /u01/app/oracle/archivelog3; --可以看出archivelog3⽐archivelog4多出⼏个归档⽂件total 124772 --建议将多出⽂件件的使⽤系统命令复制到archivelog4-rw------- 1 oracle oinstall 28382208 Aug 2 13:46 arc_1_38_724852763.arc-rw------- 1 oracle oinstall 1788416 Aug 2 20:41 arc_1_39_724852763.arc-rw------- 1 oracle oinstall 30257664 Aug 2 22:21 arc_1_40_724852763.arc-rw------- 1 oracle oinstall 30257664 Aug 2 22:22 arc_1_41_724852763.arc-rw------- 1 oracle oinstall 30257664 Aug 2 22:22 arc_1_42_724852763.arc-rw------- 1 oracle oinstall 6647296 Aug 2 22:23 arc_1_43_724852763.arcSQL> ho ls -l /u01/app/oracle/archivelog4;total 29504-rw------- 1 oracle oinstall 28382208 Aug 2 13:45 arc_1_38_724852763.arc-rw------- 1 oracle oinstall 1788416 Aug 2 20:41 arc_1_39_724852763.arcSQL> alter system set log_archive_dest_state_2 = enable; --启⽤log_archive_dest_state_2 System altered.SQL> alter system archive log current; --⼿动归档System altered.SQL> ho ls -l /u01/app/oracle/archivelog3; --启⽤后出现了相同的arc_1_44_724852763.arc⽂件total 124856-rw------- 1 oracle oinstall 28382208 Aug 2 13:46 arc_1_38_724852763.arc-rw------- 1 oracle oinstall 1788416 Aug 2 20:41 arc_1_39_724852763.arc-rw------- 1 oracle oinstall 30257664 Aug 2 22:21 arc_1_40_724852763.arc-rw------- 1 oracle oinstall 30257664 Aug 2 22:22 arc_1_41_724852763.arc-rw------- 1 oracle oinstall 30257664 Aug 2 22:22 arc_1_42_724852763.arc-rw------- 1 oracle oinstall 81408 Aug 2 22:25 arc_1_44_724852763.arcSQL> ho ls -l /u01/app/oracle/archivelog4;total 29588-rw------- 1 oracle oinstall 28382208 Aug 2 13:45 arc_1_38_724852763.arc-rw------- 1 oracle oinstall 1788416 Aug 2 20:41 arc_1_39_724852763.arc-rw------- 1 oracle oinstall 81408 Aug 2 22:25 arc_1_44_724852763.arc四、归档⽇志相关视图v$archived_log -->从控制⽂件中获得归档的相关信息v$archive_dest -->归档路径及状态v$log_history -->控制⽂件中⽇志的历史信息v$database -->查看数据库是否处于归档状态v$archive_processes -->归档相关的后台进程信息命令:archive log listSQL> select name,sequence#,registrar,standby_dest,archived,status2 from v$archived_log;NAME SEQUENCE# REGISTR STA ARC S------------------------------------------------------- ---------- ------- --- --- -/u01/app/oracle/archivelog4/arc_1_38_724852763.arc 38 FGRD NO YES A/u01/app/oracle/archivelog3/arc_1_39_724852763.arc 39 ARCH NO YES A/u01/app/oracle/archivelog4/arc_1_39_724852763.arc 39 ARCH NO YES A/u01/app/oracle/archivelog3/arc_1_40_724852763.arc 40 ARCH NO YES A/u01/app/oracle/archivelog3/arc_1_41_724852763.arc 41 ARCH NO YES A/u01/app/oracle/archivelog3/arc_1_42_724852763.arc 42 ARCH NO YES A/u01/app/oracle/archivelog3/arc_1_43_724852763.arc 43 ARCH NO YES A/u01/app/oracle/archivelog3/arc_1_44_724852763.arc 44 FGRD NO YES A/u01/app/oracle/archivelog4/arc_1_44_724852763.arc 44 FGRD NO YES A转:/leshami/article/details/5784713ORA-16032,ORA-09291,ORA-04018的解决⽅法:#原因描述:数据库服务器挂载的⼀块硬盘坏掉了,重新启动操作系统后发现数据库启动不了了,启动报错:ORA-16032: parameter LOG_ARCHIVE_DEST_1 destination string cannot be translated说明:之前Oracle开启过归档⽇志且⽇志就是存储在该块硬盘,后来因为⽇志导致数据库变慢就把归档关掉了。

Oracle开启归档模式总结

Oracle开启归档模式总结

Oracle数据库开启归档模式总结在对Oracle进行RMAN备份前需要数据库处在自动归档模式。

Oracle数据库开启归档模式的操作过程,建议由DBA来完成或在DBA协助下完成。

开启数据库归档模式的过程分四个大的步骤:●用Sqlplus登录Oracle命令行控制台,查看当数据库的归档状态;●如果不是归档模式,就需要把数据库设置成归档模式;●调整归档日志目录,确保归档日志目录和数据目录不在同一卷下;●检验数据库归档模式设置是否成功。

本章以Oracle 9i、Oracle 10g和Oracle 10g RAC三种环境为例,简单描述Oracle如何开启存档模式。

Oracle 9i版本如果用户的数据库是Oracle 9i系列版本,可采用下列步骤来开启数据库归档模式:1.登录Sqlplus,查看数据库归档状态a)运行cmd 命令窗口,设置操作系统环境变量ORACLE SID命令格式:set ORACLE_SID=<instance name>b)使用SQLPLUS登录数据库命令格式:sqlplus /nologConn / as sysdbac)查看当前数据库的归档状态命令格式:SQL>archive log list;如果数据库为“非存档模式”,下一步就需要把数据库设置成归档模式,如果是归档模式,就要检查归档日志目录是否和数据目录在同一卷下,如果在同一卷下,就需要调整归档目录的存放位置。

2.把数据库设置成归档模式a)关闭数据库,并以装载方式启动命令格式:SQL>shutdown immediate;命令格式:SQL>startup mount;b)更改数据库日志模式为存档模式命令格式:SQL>alter database archivelog;c)启动数据库,确认日志模式已更改为存档模式。

命令格式:SQL>alter database open;命令格式:SQL>archive log list;3.调整归档日志目录存放位置在调整之前,我们必须了解Oracle 9i设置归档目录的基本知识,在Oracle9i 下,有两个参数文件:⏹一个是文本格式文件pfile,名称为:init<实例名>.ora⏹另一个是二进制格式文件spfile,名称为:spfile<实例名>.ora数据默认启动是采用spfile,但spfile不能直接编辑,需要先把spfile转换成pfile,再对pfile编辑后,转成成新的spfile。

Oracle归档的开启和关闭

Oracle归档的开启和关闭

Oracle归档的开启和关闭⼀、开启归档1.设置归档⽬录alter system set log_archive_dest_1='location=/arch' scope=spfile;2.设置归档⽇志格式alter system set log_archive_format='arch_%t_%s_%r.arc' scope=spfile;3.⼀致性关闭数据库shutdown [immediate | normal]4.启动到mount阶段(startup mount)5.切换到归档模式(alter database archivelog[manual])6.切换到open阶段(alter database open)7.查看是否归档模式(archive log list;)Database log mode Archive ModeAutomatic archival EnabledArchive destination /arch/orclOldest online log sequence 32855Next log sequence to archive 32859Current log sequence 32859select log_mode from v$database;LOG_MODE-------------------ARCHIVELOGselect archiver from v$instance;ARCHIVE-----------------STARTED8.⼿⼯切换⽇志alter system switch logfile;select name from v$archived_log;⼆、关闭归档1.⼀致性关闭数据库shutdown [immediate | normal]2.启动到mount阶段(startup mount)3.切换到归档模式(alter database noarchivelog)4.切换到open阶段(alter database open)5.查看是否归档模式(archive log list;)Database log mode No Archive ModeAutomatic archival DisabledArchive destination USE_DB_RECOVERY_FILE_DEST Oldest online log sequence 35837Current log sequence 35841select log_mode from v$database;LOG_MODE-------------------NOARCHIVELOGselect archiver from v$instance;ARCHIVE-----------------STOPPED。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

将Oracle数据库设置为归档模式及非归档模式
一、将Oracle数据库设置为归档模式
1)sql>shutdown normal/immediate;
2)sql>startup mount;
3)sql>alter database archivelog;
4)sql>alter database open;
5)archive log list;
注意:show parameter log_archive_dest查看归档日志的存放位置。

二、将Oracle数据库设置为非归档模式
1)、关闭数据库
shutdown immediate
2)、再后面把数据库启动到mount的模式
startup mount
3)、关闭flash闪回数据库模式,如果不关闭的话,在后面关闭归档日志的时候就会出现讨厌的ora-38774错误。

alter database flashback off
4)、接着把数据库改为非归档模式
alter database noarchivelog;
5)、都修改好了以后,然后打开数据库
alter database open;
6)、察看一下归档日志的空间大小
select * from v$recovery_file_dest;
接着看一下log日志的状态
select * from v$log;
再看一下闪回日志使用状况
select * from v$flash_recovery_area_usage;。

相关文档
最新文档