免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 889 | 回复: 0
打印 上一主题 下一主题

[归档与迁移] 自动归档的深入理解 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-07-18 23:18 |只看该作者 |倒序浏览

自动归档的深入理解
一. oracle日志简介
  Oralce两种日志文件类型:
  
  联机日志文件
  
  这是
Oracle
用来循环记录
数据库
改变的
操作系统
文件
  
  归档日志文件
  
  这是指为避免联机日志文件重写时丢失重复数据而对联机日志文件所做的
备份
  
  Oracle有两种归档日志模式,Oracle数据库可以采用其中任何一种模式:
  
  NOARCHIVELOG
  
  不对日志文件进行归档。这种模式可以大大减少数据库备份的开销,但可能回导致数据的不可恢复
  
  ARCHIVELOG
  
  在这种模式下,当Oracle转向一个新的日志文件时,将以前的日志文件进行归档。为了防止出现历史“缺口”的情况,一个给定的日志文件在它成功归档之前是不能重新使用的。归档的日志文件,加上联机日志文件,为数据库的所有改变提供了完整的历史信息。
  
  在Oracle利用日志文件和归档日志文件来恢复数据库时,内部序列号可以起一个向导的作用。
  二.如何查看变更数据库的现行日志模式
    可用
archive
log list命令来查看。
  
  例如:
  
  运行在日志自动归档模式下的数据库系统查看结果如下(一般是生产环境)
  
  SVRMGR> 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
  
  没有启动数据库日志模式和自动归档的数据库系统查看结果如下(一般是测试环境)
  
  SVRMGR> archive log list
  
  Database log mode       No Archive Mode
  
  Automatic archival       Disabled
  
  Archive destination      /u01/app/oracle/
product
/8.0.5/dbs/arch
  
  Oldest online log sequence   194
  
  Current log sequence      196
注意在创建数据库时,可以在CREATE DATABASE 语句中指定数据库的日志模式。假如没有指明,则缺省为NOARCHIVELOG模式。
由于如果在创建数据库时指明是Archive Mode的话,会增加约20%的创建时间,而在以后启动INSTANCE时再设置的话,
一般只用去几秒的时间,所以一般在创建数据库时是不设置为 ARCHIVE MODE的。
   日志切换
   1.shutdown normal或shutdown immediate关闭数据库
[oracle@
jumper
oracle]$ sqlplus "/ as sysdba"
SQL*Plus: Release 9.2.0.4.0 - Production on Sat Oct 15 15:48:36 2005
Copyright (c) 1982, 2002, Oracle Corporation.  All
rights
reserved.
Connected to:
Oracle9i Enterprise Edition Release 9.2.0.4.0 - Production
With the Partitioning option
JServer Release 9.2.0.4.0 - Production
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE
instance
shut down.
在进行日志模式切换之前,必须将运行的数据库正常关闭。
 2. 备份数据库(可以跳过)
  
  该备份跟以后产生的日志一起用于将来的灾难恢复
(很重要,如要改为归档日志模式,没有这个数据库备份,仅有日志文件是无法从该时间点恢复的)。
3. 启动数据库实例到mount状态,但不要打开。
SQL> startup mount;
ORACLE instance started.
Total System Global Area  101782828 bytes
Fixed Size                   451884 bytes
Variable Size              37748736 bytes
Database Buffers           62914560 bytes
Redo Buffers                 667648 bytes
Database mounted.
注意:如果是使用OPS的话,请只打开一个数据库实例进行模式切换操作。
4. 切换数据库日志模式。
如果要启用归档模式,此处使用
alter
database
archivelog 命令。
SQL> alter database archivelog;
Database altered.
SQL> alter database open;
Database altered.
SQL> archive log list;
Database log mode              Archive Mode
Automatic archival             Enabled
Archive destination            /opt/oracle/oradata/conner/archive
Oldest online log sequence     148
Next log sequence to archive   151
Current log sequence           151
如果需要停止归档模式,此处使用:
alter database noarchivelog 命令。
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup mount;
ORACLE instance started.
Total System Global Area  101782828 bytes
Fixed Size                   451884 bytes
Variable Size              37748736 bytes
Database Buffers           62914560 bytes
Redo Buffers                 667648 bytes
Database mounted.
SQL> alter database noarchivelog;
Database altered.
SQL> alter database open;
Database altered.
SQL> archive log list;
Database log mode              No Archive Mode
Automatic archival             Enabled
Archive destination            /opt/oracle/oradata/conner/archive
Oldest online log sequence     149
Current log sequence           152
  7. 将这个时间点的redo logs归档
  
  SVRMGRL> 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:
  
  如要求自动归档的话,则设为TRUE,如要求为非自动归档的话,则设为FALSE
  
  LOG_ARCHIVE_DEST:
  
  该参数设定了archive logs 归档存放的路径.
  
  LOG_ARCHIVE_FORMAT:
  
  该参数设定了archive logs的命名格式. 例如,如将格式设为: arch%s.arc
  
  log 文件将为: arch1.arc, arch2.arc, arch3.arc
  
  这几个参数设置只有在数据库实例启动前设置才能生效,如果在数据库运行中进行设置,要使其生效,必须重起数据库。
  
  如果数据库正在运行中,不能即刻重起,要设置其为自动归档模式,则做如下操作:
  
  SVRMGRL> ALTER SYSTEM ARCHIVE LOG START;
  
  如要设置其为非自动归档模式(取消自动归档),则:
  
  SVRMGRL> ALTER SYSTEM ARCHIVE LOG STOP;
  
  但如果数据库重起后,给语句修改的结果就失效了,自动归档的设置还是按照系统参数文件中的LOG_ARCHIVE_START的值来设置。
  另从oracle9i开始可以在数据库启动的情况下更改自动归档然后重起自动修改,这样避免了对oracle初始化参数的误操作
  (Oracle10g已经废弃log_archive_star这个参数默认为自动归档)
   sql>show
parameter
spfile
如果有Value
alter
system
set LOG_ARCHIVE_START=TRUE scope = spfile
或者
  sql>show parameter pfile
如果有Value
alter system
set
LOG_ARCHIVE_START=TRUE scope = pfile
四 以上操作均为管理员用户sys

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u2/73648/showart_1085911.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP