问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

oracle 怎么生成归档日志文件

发布网友 发布时间:2022-04-23 17:39

我来回答

1个回答

热心网友 时间:2022-04-08 00:06

  oracle 归档日志
  归档日志(Archive Log)是非活动的重做日志备份.通过使用归档日志,可以保留所有重做历史记录,当数据库处于ARCHIVELOG模式并进行日志切换式,后台进程ARCH会将重做日志的内容保存到归档日志中.当数据库出现介质失败时,使用数据文件备份,归档日志和重做日志可以完全恢复数据库.
  日志操作模式:ARCHIVELOG NOARCHIVELOG
  1,改变日志操作模式:
  检查当前日志操作模式
  SELECT log_mode from v$database;
  关闭数据库,然后装载数据库
  SHUTDOWN IMMEDIATE
  STARTUP MOUNT
  改变日志操作模式,然后打开数据库
  ALTER DATABASE ARCHIVELOG;
  ALTER DATABASE OPEN;
  2,执行手工归档
  从oracle database 10g开始,当将日志操作模式转变未ARCHIVELOG模式时,oracle会自动启动ARCH进程.如果要使用手工归档.那么在改变日志操作模式时必须使用命令ALTER DATABASE ARCHIVELOG MANUAL.
  需要注意,使用手工归档方式,数据库管理员必须手工执行归档命令.如果没有执行手工归档命令,日志组的原有内容将不能被覆盖.ALTER DATABASE ARCHIVELOG MANUAL 命令是为了与先前的版本兼容而保留的,.将来的oracle版本会淘汰该命令,使用手工归档方式是,数据库管理员可以执行以下命令归档重做日志:
  ALTER SYSTEM ARCHIVELOG ALL;
  3,配置归档进程
  初始化参数LOG_ARCHIVE_MAX_PROCESSES用于指定例程初始启动的最大归档进程个数,当将数据库转变为ARCHIVELOG模式时,默认情况下oracle会自动启动两个归档进程.通过改变初始化参数LOG_ARCHIVE_MAX_PROCESS的值,可以动态地增加或降低归档进程的个数:
  ALTER SYSTEM SET LOG_ARCHIVE_MAX_PROCESSES=3;配置归档位置和文件格式
  当数据库处于ARCHIVELOG模式时,如果进行日志切换,后台进程将自动生成归档日志,归档日志的默认位置为%oracle_home%rdbms,在oracle database 10g中,归档日志的默认文件格式为ARC%S_%R.%T.为了改变归档日志的位置和名称格式,必须改变相应的初始化参数,1,初始化参数LOG_ARCHIVE_FORMAT用于指定归档日志的文件名格式,设置该初始化参数时,可以指定以下匹配符:
  %s: 日志序列号:
  %S: 日志序列号(带有前导0)
  %t: 重做线程编号.
  %T: 重做线程编号(带有前导0)
  %a: 活动ID号
  %d: 数据库ID号
  %r RESETLOGS的ID值.
  从10g开始,配置归档日志文件格式时,必须带有%s,%t和%r匹配符,配置了归档文件格式后,必须重启数据库.
  2,使用LOG_ARCHIVE_DEST配置归档位置
  如果不使用备用数据库,只需要将归档日志存放到本地目录.配置本地归档位置可以使用初始化参数LOG_ARCHIVE_DEST和LOG_ARCHIVE_DUPLEX_DEST,其中,第一个参数用于设置第一个归档位置,第二个参数用于指定第二个归档位置.
  ALTER SYSTEM SET log_archive_dest='d:demoarchive1';ALTER SYSTEM SET log_archive_plex_dest='d:demoarchive2';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_ARCHIVE_DEST和LOG_ARCHIVE_DUPLEX_DEST同时使用.
  因为初始化参数LOG_ARCHIVE_DEST_n不能与初始化参数LOG_ARCHIVE_DEST和LOG_ARCHIVE_DUPLEX_DEST同时使用,所以必须禁用初始化参数LOG_ARCHVE_DEST和LOG_ARCHIVE_DUPLEX_DEST.当使用初始化参数LOG_ARCHIVE_DEST_n配置本地归档位置时,需要指定LOCALTION选项.当配置远程归档位置时,需要指定SERVICE选项.
  示例如下:
  ALTER SYSTEM SET log_archive_plex_dest='';ALTER SYSTEM SET log_archive_dest='';
  ALTER SYSTEM SET log_archive_dest_1='location=d:demoarchive1';ALTER SYSTEM SET log_archive_dest_2='location=d:demoarchive2';ALTER SYSTEM SET log_archive_dest_3='location=d:demoarchive3';ALTER SYSTEM SET log_archive_dest_4='service=standby';配置远程归档位置时,SERVICE选项需要指定远程数据库的网络服务名(在tnsnames.ora文件中配置)4,使用LOG_ARCHIVE_DEST_n选项
  使用初始化参数LOG_ARCHIVE_DEST_n配置归档位置时,可以在归档位置上指定OPTIONAL或MANDATORY选项.指定MANDATORY选项时,可以设置REOPEN属性.
  OPTIONAL:该选项是默认选项.使用该选项时,无论归档是否成功,都可以覆盖重做日志.
  MANDATORY:强制归档.使用该选项时,只有在归档成功之后,重做日志才能被覆盖.
  REOPEN:该属性用于指定重新归档的时间间隔,默认值为300秒,必须跟在MANDATORY后.
  例:
  Alter system set log_archive_dest_1=’location=d:demoarchive1 mandatory’;Alter system set log_archive_dest_2=’location=d:demoarchive2 mandatory reopen=500’;Alter system set log_archive_dest_3=’location=d:demoarchive3 optional’;5,控制本地归档成功的最小个数.
  使用初始化参数LOG_ARCHIVE_MIN_SUCCEED_DEST控制本地归档的最小成功个数Alter system set log_archive_min_succeed_dest=2;6,使用初始化参数LOG_ARCHIVE_DEST_STATE_n控制归档位置的可用性.设置该参数为ENABLE(默认值),表示会激活相应的归档位置;设置该参数为DEFER,表示禁用相应归档位置.当归档日志所在磁盘损坏或填满时,DBA需要暂时禁用该归档位置.
  Alter system set log_archive_dest_state_3=defer;(禁用)Alter system set log_archive_dest_state_3=enable;(启用)显示归档日志信息
  1,使用ARCHIVE LOG LIST命令可以显示日志操作模式,归档位置,自动归档机器要归档的日志序列号等信息.
  2显示日志操作模式
  SELECT name,log_mode FROM v$database;
  3,显示归档日志信息.
  Col name format a46
  Select name, swquence#, first_change# FROM v$archived_log;Name用于表示归档日志文件名,sequence#用于表示归档日志对应的日志序列号,firs_change#用于标识归档日志的起始SCN值.
  4、执行介质恢复时,需要使用归档日志文件,此四必须准确定位归档日志的存放位置.通过查询动态性能视图v$archive_dest可以取得归档日志所在目录.
  SELECT destination FROM v$archive dest;
  5,显示日志历史信息
  SELECT * FROM v$loghist;
  THREAD#用于标识重做线程号,SEQUNCE#用于标识日志序列号,FIRST_CHANGE#用于标识日志序列号对应的起始SCN值,FIRST_TIME用于标识起始SCN的发生时间.SWICTH_CHANGE#用于标识日志切换的SCN值.
  6.显示归档进程信息.
  进行日志切换时,ARCH进程会自动将重做日志内容复制到归档日志中,为了加快归档速度,应该启用多个ARCH进程.通过查询动态性能视图V$ARCHIVE_PROCESSES可以显示所有归档进程的信息!
  SELECT * FROM v$archive_processes;
  Porcess用于标识ARCH进程的编号,status用于标识ARCH进程的状态(ACTIVE:活动,STOPPED:未启动),log_sequence用于标识正在进行归档的日志序列号,state用于标识ARCH进程的工作状态==========================================用Oracle归档日志进行恢复的方法
  用Oracle归档日志进行恢复的方法
  联机重演日志没有丢失应使用完成恢复,如联机重演日志损坏,而又没有备份,就只能进行不完全恢复。
  一、完全恢复:
  1.使用命令“svrmgrl”调用行方式服务器管理;2.输入命令“connect internal”,然后输入命令“startup mount’;3.输入命令“recover database;”
  4.按下ENTER,接受默认值。
  5.然后输入命令“alter database open;”完成数据库恢复。
  二、不完全恢复
  警告:
  应用不完成恢复前,必须将数据库做一次完全冷备份,因为应用不完全恢复后,联机重演日志将重置,以前的所有日志不可用。
  如果恢复不成功,数据库就不能使用了。再次强调,做完全冷备份后再应用不完全恢复。
  1).基于变化的恢复(change-based recovery)要执行基于变化的恢复,需要知道丢失日志之前的系统写入归档重演日志的最大的变化号(SCN),然后可以启动恢复语句恢复数据库直到改变scn_number,其中比scn_number是写到已归档重演日志文件顺序号386的SCN(即,小于丢失日志顺序号387的SCN)。可以从V$log_history视图中得到SCN信息。
  select first_change# from v$log_history where sequence#=387;其中387为最后一个有效的日志文件号加1,该例是查找386.
  知道了SCN后,使用下述步骤完成恢复
  1.使用命令“svrmgrl”调用行方式服务器管理;2.输入命令“connect internal”,然后输入命令“startup mount’;3.输入命令“recover database until change 9999;”
  4.在回答Oracle第一个归档重演日志建议信息时,输入“auto”,Oracle在找到第387号重演日志之前停止恢复。
  5.用命令“alter database open resetlogs;”打开数据库。(应用该命令前请确认数据库已备份,如打开失败,日志将不可用)2).基于停止的恢复(cancel-based recovery)
  1.使用命令“svrmgrl”调用行方式服务器管理;2.输入命令“connect internal”,然后输入命令“startup mount’;3.输入命令“recover database until cancel;”,Oracle提示需要的第一个归档重演日志文件名.按下ENTER键接受缺省文件名,并且—路ENTER直到询问顺序号387的日志。输入“cancel”,停止恢复操作。
  4.用命令“alter database open resetlogs;”打开数据库。(应用该命令前请确认数据库已备份,如打开失败,日志将不可用)3).基于时间的恢复(time-based recovery)
  为使用基于时间的恢复,必须知道记录在V$log_history归档重演日志序号387(丢失重演日志)的时间,通过执行查询语句“select time from v$log_history where sequence#=387;”得到。本例得到的时间是:2002-06-23 14:42:04现在开始实施恢复。
  1.使用命令“svrmgrl”调用行方式服务器管理;2.输入命令“connect internal”,然后输入命令“startup mount’;3.输入命令“recover database until time '2002/06/23 14:42:04';”,Oracle提示需要的第一个归档重演日志文件名,输入“auto”,Oracle恢复归档重演日志直到序号为387的日志,停止恢复操作。
  4.用命令“alter database open resetlogs;”打开数据库。(应用该命令前请确认已数据库已备份,如打开失败,日志将不可用)提示: 使用基于时间的恢复,时间的格式是YYYY/MM/DD HH24:MI:SS,并且用单引号括起。
  附:如何启用Oracle的归档方式
  1.参照以下内容编辑init.ora文件:
  log_archive_start = true
  log_archive_dest_1 = " LOCATION=D:\Oracle\oradata\ORCL\archive "og_archive_format = %%ORACLE_SID%%T%TS%S.ARC2.关闭数据库
  svrmgrl> connect internal
  svrmgrl> shutdown normal
  3.然后启动实例并安装该数据库,但不打开数据库。
  svrmgrl> startup mount
  4.接着,发布下列更改数据库的命令。
  Svrmgrl> alter database archivelog;
  5.现在,数据库已经更改为归档方式,您可以打开数据库。
  svrmgrl> alter database open;
  提示:也可以使用DBA studio工具启用数据库的归档方式,操作很简单=============================================================ORACLE归档模式的设置
  在ORACLE 数据库的开发环境和测试环境中,数据库的日志模式和自动归档模式一般都是不设置的,这样有利于系统应用的调整,也免的生成大量的归档日志文件将磁盘空间大量的消耗。但在系统上线,成为生产环境时,将其设置为日志模式并自动归档就相当重要了,因为,这是保证系统的安全性,有效预防灾难的重要措施。这样,通过定时备份数据库和在两次备份间隔之间的日志文件,可以有效的恢复这段时间的任何时间点的数据,可以在很多时候挽回或最大可能的减少数据丢失。
  一、 要使OARCLE 数据库进行日志的自动归档,需要做两方面的事情;1.是数据库日志模式的设置(可为Archive Mode 和No Archive Mode);2.就是自动归档模式设置(Automatic archival,可为Enabled 和Disabled)。
  二、 如何查看数据库的现行日志和自动归档模式的设置可用archive log list 命令来查看。
  运行在日志自动归档模式下的数据库系统查看结果如下(一般是生产环境):
  SQL> archive log list
  Database log mode Archive Mode
  Automatic archival Enabled
  Archive destination /backup/archivelog
  Oldest online log sequence 2131
  Next log sequence to archive 2133
  Current log sequence 2133
  没有启动数据库日志模式和自动归档的数据库系统查看结果如下(一般是测试环境):
  SQL> archive log list
  Database log mode No Archive Mode
  Automatic archival Disabled
  Archive destination /u01/app/oracle/proct/8.1.7/dbs/archOldest online log sequence 194
  Current log sequence 196
  三. 数据库日志模式的设置
  在创建数据库时,可以在CREATE DATABASE 语句中指定数据库的日志模式。假如没有指明,则缺省为NOARCHIVELOG 模式。由于如果在创建数据库时指明是Archive Mode的话,会增加约20%的创建时间,而在以后启动INSTANCE 时再设置的话,一般只用去几秒的时间,所以一般在创建数据库时是不设置为ARCHIVE MODE 的。
  将数据库的日志模式设置切换(Archive Mode 和No Archive Mode 之间的切换)的步骤和操作如下:
  1. 关闭运行的数据库实例
  SQL> shutdown
  在进行日志模式切换之前,必须将运行的数据库正常关闭。
  2. 备份数据库
  该备份跟以后产生的日志一起用于将来的灾难恢复(很重要,如要改为归档日志模式,没有这个数据库备份,仅有日志文件是无法从该时间点恢复的)。
  3. 启动数据库实例到mount 状态,但不要打开。
  SQL> startup mount
  4. 切换数据库日志模式。
  SQL> alter database archivelog;(设置数据库为归档日志模式)或SQL> alter database noarchivelog;(设置数据库为非归档日志模式)5. 打开数据库
  SQL> alter database open;
  6. 确认数据库现在处于归档日志模式。
  SQL> archive log list;
  Database log mode Archive Mode
  Automatic archival Enabled
  Archive destination for example: $ORACLE_HOME/dbs/archOldest on-line log sequence 275
  Next log sequence 277
  Current log sequence 278
  7. 将这个时间点的redo logs 归档
  SQL> archive log all;
  8. 确认新产生的日志文件已在相应的归档目录下面。
  四. 自动归档模式设置(Automatic archival,可为Enabled 和Disabled)。
  在该模式下,数据库启动一个arch 进程,专门负责将redo logs 写到系统归档设备的相应目录下。在数据库的参数文件中设置参数(一般是在$ORACLE_HOME/dbs/init*.ora 文件中):
  LOG_ARCHIVE_START=
  LOG_ARCHIVE_DEST=
  LOG_ARCHIVE_FORMAT=
  LOG_ARCHIVE_START:
  
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
电脑上制作相册时转换源文件用电脑如何制作相册视频 二十四节气立秋的特点 立秋的来历和风俗-今日头条 立秋这个节气的特点 立秋节气的特点和由来-今日头条 怎么设置电脑键盘灯光笔记本怎么开键盘背光 苹果电脑win10键盘灯怎么开 苹果电脑win10键盘灯打开方法 为什么我电脑CPU 什么都不运行温度还100以上? 麻烦大家看看我的cpu温度不稳定 电脑cpu热怎么解决电脑cpu过热要怎么解决 电脑cpu温度高怎么解决办法 船用螺旋桨厂家 今天在速贷网申请了贷款怎么还不下来 oracle启动命令 怎么在UU速贷申请贷款成功? 如何将oracle数据库 设置为归档模式 苏宁任性贷怎么快速的提升额度 Oracle中归档模式的定义 速贷金融就是坑,这个被骗了该怎么办? 谁能告诉我oracle数据库常用命令啊? oracle如何将表的历史数据归档 任性贷申请太火爆排队中是怎么回事? oracle基本命令 Oracle常见的命令 速贷怎么样,在速贷上借款容易审批吗 oracle数据库的常见命令 怎么用儿歌形式播报红烧肉,家长豆腐,广式花菜,开心米饭 粤菜都有什么 广东十大名菜是什么 广州脆皮五花肉烧的做法 港式红烧肉怎么做 粤式)红烧鱼怎做? 支付宝上有个前海速贷通我怎么还款- 问一问 oracle 参数 有什么地方可以贷款的? oracle 中用什么命令执行一个带参数的存储过程 我是贷款担保人,法院冻结我微信零钱,怎么办? oracle的shutdown命令有几种参数,各有什么不同? 微粒速贷上面我已经上转了个人信息,他说要打手续费才能提现,这是个*,个人信息已经上转了怎么办? 【求解】Oracle中imp命令 参数含义 家速贷,这款贷款怎么样 oracle中exp命令怎样使用 易借速贷平台怎么样? 如何查看oracle数据库配置参数 单身人士怎么理财,能不能在网上投资? Oracle数据导入导出imp/exp命令 10g以上expdp/impdp命令 详细的 详细... 苏宁金融是什么? oracle 存储导入项目名的系统表 关于oracle命令 oracle存储过程的输入参数和输出参数 跳高的基本动作都有那些? 人类原地跳高极限是多少??