精华内容
下载资源
问答
  • Oracle分为非归档模式(NOARCHIVELOG) 和归档模式(ARCHIVELOG)。非归档模式不产生归档日志,虽然节省了硬盘空间,但是备份方案选择很有限,通常只能选择冷备份。还原也只能还原到备份那一时刻的数据,通常也仅在开发...

    Oracle分为非归档模式(NOARCHIVELOG) 和归档模式(ARCHIVELOG)。非归档模式不产生归档日志,虽然节省了硬盘空间,但是备份方案选择很有限,通常只能选择冷备份。还原也只能还原到备份那一时刻的数据,通常也仅在开发时使用(据说在数据仓库中也使用),Oracle安装默认就是非归档模式。在生产环境中我们因该使用归档模式,它会产生归档日志,可以使用多种备份和还原方案,对与Oracle管理员来说应该更改模式是必然的选择。

    首先查看数据库现有模式可使用以下语句

    select name,log_mode from v$database;

    也可以用下面的语句
    archive log list;(该方法需要as sysdba)


    对于非归档模式的数据库该为归档模式(主要以Oracle 10g为参考)使用以下步骤:

    1. SQL> alter system set log_archive_dest_1='location=/oracle/oracle10g/log/archive_log';

    该语句含义是确定归档日志的路径,实际上Oracle 10g可以生成多份一样的日志,保存多个位置,以防不测
    例如再添加一个日志位置可使用以下语句

    SQL>alter system set log_archive_dest_2='location=/oracle/oracle10g/log2/archive_log';

    2.关闭数据库
    SQL> shutdown immediate

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

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

    5、打开数据库,查询:
    SQL> alter database open;

    修改日志文件命名格式:
    SQL> alter system set log_archive_max_processes = 5;
    SQL> alter system set log_archive_format = "archive_%t_%s_%r.log" scope=spfile;

    修改完成后可以查看日志模式是否修改成功!
    特别指出的是在Oracle 9i中还要修改参数alter system set log_archive_start = true才能生效,oracle 10g中已经废除了该参数,所以不需要设置该参数。


     

    自动归档默认是禁用,需要修改parameter log_archive_start=TRUE才能启用自动归档。 
      SQL> show parameter log_archive_start

      NAME                                 TYPE        value

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

      log_archive_start                     boolean    FALSE

      SQL> archive log list

      数据库日志模式            存档模式

      自动存档                      禁用

      存档终点                      /oracle/oracle9i/u01/product/9201/dbs/arch

      最早的概要日志序列     18

      下一个存档日志序列     19

      当前日志序列               20

      SQL> alter system set log_archive_start=TRUE scope=spfile;

      系统已更改。

      SQL> startup force

      ORACLE 例程已经启动。

      Total System Global Area  320308312 bytes

      Fixed Size                730200 bytes

      Variable Size            285212672 bytes

      Database Buffers      33554432 bytes

      Redo Buffers            811008 bytes

      数据库装载完毕。

      数据库已经打开。

      SQL> archive log list

      数据库日志模式                     存档模式

      自动存档                              启用

      存档终点                         /oracle/oracle9i/u01/product/9201/dbs/arch

      最早的概要日志序列             19

      下一个存档日志序列          21

      当前日志序列                       21

      SQL> show parameter log_archive_start

      NAME                        TYPE     value

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

      log_archive_start            boolean   TRUE

      SQL> 

      自动归档模式下强制归档

      SQL> alter system switch logfile;

      SQL> select * from v$log;

    展开全文
  • Oracle分为非归档模式(NOARCHIVELOG) 和归档模式(ARCHIVELOG)。非归档模式不产生归档日志,虽然...  首先查看数据库现有模式可使用以下语句  select name,log_mode from v$database;  也可以用下面的语句  arch
  • 查看ORACLE数据库是否归档可以用以下方法: 方法一: archive log list(该方法需要 as sysdba) 方法二: select name,log_mode from v$database

    查看ORACLE数据库是否归档可以用以下方法:

    方法一: archive log list(该方法需要 as sysdba)

    方法二: select name,log_mode from v$database

    展开全文
  • 首先查看数据库现有模式可使用以下语句select name,log_mode fromv$database;也可以用下面的语句archive log list;(该方法需要assysdba)对于非归档模式的数据库该为归档模式(主要以Oracle 10g为参考)使用以下步骤:...

    首先查看数据库现有模式可使用以下语句

    select name,log_mode from

    v$database;

    也可以用下面的语句

    archive log list;(该方法需要as

    sysdba)

    对于非归档模式的数据库该为归档模式(主要以Oracle 10g为参考)使用以下步骤:

    1. SQL> alter

    system set

    log_archive_dest_1='location=/oracle/oracle10g/log/archive_log';

    该语句含义是确定归档日志的路径,实际上Oracle

    10g可以生成多份一样的日志,保存多个位置,以防不测

    例如再添加一个日志位置可使用以下语句

    SQL>alter system set

    log_archive_dest_2='location=/oracle/oracle10g/log2/archive_log';

    2.关闭数据库

    SQL>

    shutdown immediate

    3.启动数据mount状态:

    SQL> startup

    mount;

    4、修改数据库为归档模式:

    SQL> alter database archivelog;

    5、打开数据库,查询:

    SQL> alter database

    open;

    修改日志文件命名格式:

    SQL> alter system set log_archive_max_processes =

    5;

    SQL> alter system set log_archive_format = "archive_%t_%s_%r.log"

    scope=spfile;

    修改完成后可以查看日志模式是否修改成功!

    特别指出的是在Oracle

    9i中还要修改参数log_archive_start = true才能生效,oracle 10g中已经废除了该参数,所以不需要设置该参数。

    转自 http://hi.baidu.com/nothing211/blog/item/4ae67c4c4b78effdd72afcfe.html

    来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/22396916/viewspace-714207/,如需转载,请注明出处,否则将追究法律责任。

    展开全文
  • 在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/product/8.1.7/dbs/arch

    Oldest 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/arch

    Oldest 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:

    如要求自动归档的话,则设为TRUE,如要求为非自动归档的话,则设为FALSE

    LOG_ARCHIVE_DEST:

    该参数设定了archive logs 归档存放的路径。

    LOG_ARCHIVE_FORMAT:

    该参数设定了archive logs 的命名格式。例如,如将格式设为: arch%s.arc

    log 文件将为: arch1.arc, arch2.arc, arch3.arc

    这几个参数设置只有在数据库实例启动前设置才能生效,如果在数据库运行中进行设置,要使其生效,必须重起数据库。

    如果数据库正在运行中,不能即刻重起,要设置其为自动归档模式,则做如下操作:

    SQL> ALTER SYSTEM ARCHIVE LOG START;

    如要设置其为非自动归档模式(取消自动归档),则:

    SQL> ALTER SYSTEM ARCHIVE LOG STOP;

    但如果数据库重起后,给语句修改的结果就失效了,自动归档的设置还是按照系统参数文件中的LOG_ARCHIVE_START 的值来设置。

    五. 几种设置情况:

    1. Database log mode Archive Mode,Automatic archival Enabled

    这是在大部分生产环境中的ORACLE 数据库日志及归档模式设置,这种情况下,做好数据库的定期备份(有热备和冷备)和归档日志备份,可有效的将数据库恢复到有归档日志的全部时间点。

    2. Database log mode Archive Mode,Automatic archival Disabled

    这种情况下,数据库不能自动归档,需要进行手工归档。如果所有在线日志都写满了,又没有的及时进行手工归档的话,由于LGWR 没有可用的在线日志可写,数据库将会挂在这儿,只有进行手工归档后,有可用的在线日志后才能继续。在生产环境中应该避免这种情况。

    手工归档操作如下:

    SQL> ALTER SYSTEM ARCHIVE LOG ALL;

    数据库将会把在线日志进行归档处理

    3. Database log mode NO Archive Mode,Automatic archival Enabled

    有些情况下,数据库管理员只在数据库参数文件中设置了LOG_ARCHIVE_START=TRUE,然后在数据库起来后查看到ARCH 归档进程已经起来了,可是尽管ORACLE 已经作了几次日志切换,但还是没有归档日志,这时的设置就是这种情况,如果数据库不是处在ARVHIVELOG 模式,redolog 还是不会被归档。

    4. Database log mode NO Archive Mode,Automatic archival Disabled

    这种设置是刚安装的oracle 数据库的缺省设置,开发环境也大部分如此。即没有进行归档。

    如何手工删除归档日志文件?(如果采用RMNA备份后则不用手工删除)

    一、先手工删除归档日志文件

    二、用RMAN删除数据库记录的归档列表信息

    1) 进入本数据库的rman,在命令行模式输入"rman target /",进入rman,查看提示,确认连接的是否是本库?

    2) 查看归档日志文件的状态:

    RMAN> list archivelog all;

    3) 删除操作系统中的日志文件(到操作系统级进行手工删除,也可以是第一步;

    4) 将归档日志信息进行更新;

    RMAN> crosscheck archivelog all;

    RMAN> delete expired archivelog all; (确认时键入"yes")

    RMAN> exit

    展开全文
  • 查看oracle数据库是否归档和修改归档模式   oracle分为非归档模式(NOARCHIVELOG) 和归档模式(ARCHIVELOG)。非归档模式不产生归档日志,虽然节省了硬盘空间,但是备份方案选择很有限,通常只能选择冷备份。还原...
  • 查看oracle数据库是否归档模式[1]1.select name,log_mode from v$database;NAME LOG_MODE------------------ ------------------------QUERY NOARCHIVELOG2.使用ARCHIVE LOG LIST 命令Database log mode No ...
  • 查看oracle数据库是否归档和修改归档模式(转) 在ORACLE 数据库的开发环境和测试环境中,数据库的日志模式和自动归档模式一般都是不设置的,这样有利于系统应用的调整,也免的生成大量的归档日志文件将磁盘空间...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 593
精华内容 237
关键字:

查看数据库是否归档