Chinaunix首页 | 论坛 | 博客
  • 博客访问: 9262094
  • 博文数量: 1669
  • 博客积分: 16831
  • 博客等级: 上将
  • 技术积分: 12594
  • 用 户 组: 普通用户
  • 注册时间: 2011-02-25 07:23
个人简介

柔中带刚,刚中带柔,淫荡中富含柔和,刚猛中荡漾风骚,无坚不摧,无孔不入!

文章分类

全部博文(1669)

文章存档

2023年(4)

2022年(1)

2021年(10)

2020年(24)

2019年(4)

2018年(19)

2017年(66)

2016年(60)

2015年(49)

2014年(201)

2013年(221)

2012年(638)

2011年(372)

分类: Oracle

2012-11-27 16:12:15

ORACLE 10G修改归档目录方法
分类: ORACLE 195人阅读 评论(0) 举报
从ORACLE10G开始,改变日志模式已经变得很简单,很容易管理。在10G中,默认情况下,归档日志会存放到快速恢复区所对应的目录(对应初始化参数db_recovery_file_dest),并且会按照特定的格式生成归档日志文件名。当想要将归档日志放在默认的路径下是,只需要参MOUNT状态执行Alter database archivelog即可。在10G中不需要对归档设置自动启动,因为这个参数已经10G摒弃掉,只要执行Alter database archivelog 就会自动置为自动归档。如果不想将归档日志放到默认路径,请执行下列步骤

1.备份初始化参数文件
sql> create pfile from spfile;
2.配置归档日志的名称格式
sql>alter system set log_archive_format='%S_%T_%R.log' scope=spfile
在10G中设置日志格式时,一定要加%R参数,否则一定会出错

3.配置归档位置
sql>alter system set log_archive_dest_1='location=e:\oracle\oradata\archive' scope=spfile
在ORACLE 10G企业版里还可以配置多个归档路径,log_archvile_dest_n(其中n可以为1-10)

4. 置归档模式
将数据库正常关闭
sql>shutdown immediate
启动到MOUNT模式
SQL>startup mount
置为归档模式
SQL>alter database archivelog
打开数据库
SQL>alter database open
查看数据库是否归档
SQL> archive log list;
如果显示为ENABLE则表示已成功归档
或 SQL>select log_mode from v$database;
如果为ARCHIVELOG则表示已成功归档



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


SQL> archive log list
数据库日志模式            存档模式
自动存档             启用
存档终点            D:\Oracle\Public_DataFile\TestDev\Archive
最早的联机日志序列     40
下一个存档日志序列   42
当前日志序列           42
SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup mount
ORACLE 例程已经启动。

Total System Global Area  535662592 bytes
Fixed Size                  1334380 bytes
Variable Size             180355988 bytes
Database Buffers          348127232 bytes
Redo Buffers                5844992 bytes
数据库装载完毕。
SQL> alter database noarchivelog
  2  ;

数据库已更改。

SQL> alter database open
  2  ;

数据库已更改。

SQL> archive log list;
数据库日志模式             非存档模式
自动存档             禁用
存档终点            D:\Oracle\Public_DataFile\TestDev\Archive
最早的联机日志序列     40
当前日志序列           42
SQL> select log_mode from v$database;

LOG_MODE
------------
NOARCHIVELOG

SQL>

 

1.更改归档路径


在ORACLE10G中,默认的归档路径为$ORACLE_BASE/flash_recovery_area。对于这个路径,
ORACLE有一个限制,就是默认只能有2G的空间给归档日志使用,可以使用下面两个SQL语句去查看它的限制
1. select * from v$recovery_file_dest;

sql >show parameter db_recovery_file_dest(这个更友好直观一些)
当归档日志数量大于2G时,那么就会由于没有更多的空间去容纳更多的归档日志会报无法继续归档的错误。
如:
RA-19809: limit exceeded for recovery files
ORA-19804: cannot reclaim 10017792 bytes disk space from 2147483648 limit
ARC0: Error 19809 Creating archive log file to '/u01/app/oracle/flash_recovery_area/ORCL/archivelog/2007_04_30/o1_mf_1_220_0_.arc'

这时我们可以修改它的默认限制,比如说将它增加到5G或更多,也可以将归档路径重新置到别的路径,就不会有这个限制了。
更改限制语句如下:

alter system set db_recovery_file_dest_size=5368709102  (这里为5G 5x1024x1024x1024=5G)

或者直接修改归档的路径即可

SQL> alter system set log_archive_dest_1='location=/u01/archivelog' scope =both;


2.更改归档模式

sql> archive log list;
sql> shutdown immediate;
sql> startup mount;
sql> alter database archivelog;
sql> alter database open;
sql> archive log list;

-----end----

网友问如下两个问题,因CSDN破网站不能回复,所以就在文章里回复了,呵呵

oracle 10g rac下如何打开归档模式?


答:在确定好每个实例的归档路径后,关闭所有实例,然后把某个时候mount后,把数据库和数据库集群软件都设置为归档模式,例如
alter database archivelog;
alter system set cluster_database=true scope=spfile sid='*';
最后重启数据库,确认归档是否生效,在每个实例上,执行alter system switch logfile;看对应的归档位置时候有archivelog产生

oracle rac用的是裸设备?


答:
首先你的共享存储用的裸设备,而你的数据库软件用的应该是文件系统吧? archivelog是在media recovery的时候才会用到,而且所有的实例要都能访问到,根据这个特点,可以把archivelog放在共享的裸设备上或者放在本地(其他实例可以把archivelog同步到本地或者用NFS归档,在或者用tns归档),放在共享存储裸设备上,可能会产生争用,管理也不方便

oracle中修改数据文件名称或者路径

在oracle中修改数据文件常用的方法有两种:在mount状态修改 和 在open状态修改

方法一、在mount修改

      此方法适用于归档模式和非归档模式,具体操作如下:

SQL> select file#,ts#,status,name from v$datafile;

     FILE#        TS# STATUS  NAME
---------- ---------- ------- ---------------------------------------------
         1          0 SYSTEM  /u01/oracle10g/oradata/guoshun/system01.dbf
         2          1 ONLINE  /u01/oracle10g/oradata/guoshun/undotbs01.dbf
         3          2 ONLINE  /u01/oracle10g/oradata/guoshun/sysaux01.dbf
         4          4 ONLINE  /u01/oracle10g/oradata/guoshun/users01.dbf
         5          6 ONLINE  /u01/oracle10g/oradata/guoshun/ogg01.dbf
         6          7 ONLINE  /u01/oracle10g/oradata/guoshun/boke01.dbf
        7          7 ONLINE  /u01/oracle10g/oradata/guoshun/boke03.dbf ---要修改的数据文件

SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup mount    ---------启动到mount状态
ORACLE instance started.

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

在操作系统层面修改数据文件的路径及名称:

[oracle@node guoshun]$ mv boke03.dbf ../boke02.dbf       

在数据库层面修改数据文件的路径及名称,其实是修改controlfile的内容:

SQL> alter database rename file '/u01/oracle10g/oradata/guoshun/boke03.dbf' to '/u01/oracle10g/oradata/boke02.dbf';

SQL> alter database open;

Database altered.

SQL> select file#,ts#,status,name from v$datafile;

     FILE#        TS# STATUS  NAME
---------- ---------- ------- ---------------------------------------------
         1          0 SYSTEM  /u01/oracle10g/oradata/guoshun/system01.dbf
         2          1 ONLINE  /u01/oracle10g/oradata/guoshun/undotbs01.dbf
         3          2 ONLINE  /u01/oracle10g/oradata/guoshun/sysaux01.dbf
         4          4 ONLINE  /u01/oracle10g/oradata/guoshun/users01.dbf
         5          6 ONLINE  /u01/oracle10g/oradata/guoshun/ogg01.dbf
         6          7 ONLINE  /u01/oracle10g/oradata/guoshun/boke01.dbf
         7          7 ONLINE  /u01/oracle10g/oradata/boke02.dbf    ---已经修改成功了

7 rows selected.

 

方法二、在open状态修改此方法只适用于归档模式的数据库,具体操作如下(此次操作是将上面实验中更改的数据文件的路径及名称改回来):

查看数据库归档模式:

SQL> archive log list;
Database log mode              Archive Mode
Automatic archival             Enabled
Archive destination            USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence     28
Next log sequence to archive   30
Current log sequence           30

SQL> select file#,ts#,status,name from v$datafile;

     FILE#        TS# STATUS  NAME
---------- ---------- ------- ---------------------------------------------
         1          0 SYSTEM  /u01/oracle10g/oradata/guoshun/system01.dbf
         2          1 ONLINE  /u01/oracle10g/oradata/guoshun/undotbs01.dbf
         3          2 ONLINE  /u01/oracle10g/oradata/guoshun/sysaux01.dbf
         4          4 ONLINE  /u01/oracle10g/oradata/guoshun/users01.dbf
         5          6 ONLINE  /u01/oracle10g/oradata/guoshun/ogg01.dbf
         6          7 ONLINE  /u01/oracle10g/oradata/guoshun/boke01.dbf
         7          7 ONLINE  /u01/oracle10g/oradata/boke02.dbf   -----要修改的数据文件

将要修改的数据文件offline:

SQL> alter database datafile 7 offline drop;

Database altered.

操作系统层面修改路径和名称:

SQL> !mv /u01/oracle10g/oradata/boke02.dbf /u01/oracle10g/oradata/guoshun/boke03.dbf

数据库层面修改路径和名称,其实是修改controlfile:

SQL> alter database rename file '/u01/oracle10g/oradata/boke02.dbf' to '/u01/oracle10g/oradata/guoshun/boke03.dbf';

Database altered.

由于此时数据库是open状态,offline状态数据文件的scn号与当前的scn号不一致,所以要进行恢复操作:

SQL> recover datafile 7;
Media recovery complete.

将数据文件online:

SQL> alter database datafile 7 online;

Database altered.

SQL> select file#,ts#,status,name from v$datafile;

     FILE#        TS# STATUS  NAME
---------- ---------- ------- ---------------------------------------------
         1          0 SYSTEM  /u01/oracle10g/oradata/guoshun/system01.dbf
         2          1 ONLINE  /u01/oracle10g/oradata/guoshun/undotbs01.dbf
         3          2 ONLINE  /u01/oracle10g/oradata/guoshun/sysaux01.dbf
         4          4 ONLINE  /u01/oracle10g/oradata/guoshun/users01.dbf
         5          6 ONLINE  /u01/oracle10g/oradata/guoshun/ogg01.dbf
         6          7 ONLINE  /u01/oracle10g/oradata/guoshun/boke01.dbf
         7          7 ONLINE  /u01/oracle10g/oradata/guoshun/boke03.dbf ---又改回来了吧

7 rows selected.

 

阅读(2097) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~