ITPub博客

首页 > 数据库 > Oracle > Oracle 11g Dataguard环境下数据文件、日志文件管理(上)

Oracle 11g Dataguard环境下数据文件、日志文件管理(上)

Oracle 作者:lwitpub 时间:2014-05-07 18:22:28 0 删除 编辑

 

在Dataguard环境下,Primary和Standby之间是紧密关联的对象。很多单实例环境下常见的数据库管理动作,如表空间创建、数据文件添加、日志管理等都有很大的不同和差异。

 

本篇主要介绍在DG环境下,数据文件Data File和在线日志online redo log的管理操作。

 

1、环境介绍

 

笔者使用版本为Oracle 11.2.0.4,DG已经搭建完成。

 

SQL> select * from v$version;

 

BANNER

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

Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - Production

PL/SQL Release 11.2.0.4.0 - Production

CORE  11.2.0.4.0 Production

 

TNS for Linux: Version 11.2.0.4.0 - Production

NLSRTL Version 11.2.0.4.0 - Production

 

Primary端实例名称为ora11g,命名转换参数设置完成。数据文件如下:

 

 

ora11g

SQL> select file_name from dba_data_files;

 

FILE_NAME

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

/u01/app/oradata/ORA11G/datafile/o1_mf_users_9mnjs074_.dbf

/u01/app/oradata/ORA11G/datafile/o1_mf_undotbs1_9mnjs068_.dbf

/u01/app/oradata/ORA11G/datafile/o1_mf_sysaux_9mnjs04h_.dbf

/u01/app/oradata/ORA11G/datafile/o1_mf_system_9mnjrzty_.dbf

 

SQL> show parameter convert;

 

NAME                                 TYPE        VALUE

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

db_file_name_convert                 string      ORA11G, ORA11GSY

log_file_name_convert                string      ORA11G, ORA11GSY

 

参数standby_file_management设置为AUTO,Oracle官方要求在DG环境下,取值为AUTO。

 

SQL> show parameter standby_file

 

NAME                                 TYPE        VALUE

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

standby_file_management              string      AUTO

 

Primary端日志情况如下:

 

 

SQL> select group#, type, member from v$logfile;

 

    GROUP# TYPE    MEMBER

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

         3 ONLINE  /u01/app/oradata/ORA11G/onlinelog/o1_mf_3_9mnjx4n0_.log

         3 ONLINE  /u01/app/fast_recovery_area/ORA11G/onlinelog/o1_mf_3_9mnjx54c_.log

         2 ONLINE  /u01/app/oradata/ORA11G/onlinelog/o1_mf_2_9mnjwzpq_.log

         2 ONLINE  /u01/app/fast_recovery_area/ORA11G/onlinelog/o1_mf_2_9mnjx15f_.log

         1 ONLINE  /u01/app/oradata/ORA11G/onlinelog/o1_mf_1_9mnjwtj9_.log

         1 ONLINE  /u01/app/fast_recovery_area/ORA11G/onlinelog/o1_mf_1_9mnjwvdm_.log

         4 STANDBY /u01/app/oradata/ORA11G/onlinelog/o1_mf_4_9nd01b56_.log

         4 STANDBY /u01/app/fast_recovery_area/ORA11G/onlinelog/o1_mf_4_9nd01cpl_.log

         5 STANDBY /u01/app/oradata/ORA11G/onlinelog/o1_mf_5_9nd04pps_.log

         5 STANDBY /u01/app/fast_recovery_area/ORA11G/onlinelog/o1_mf_5_9nd04rpd_.log

         6 STANDBY /u01/app/oradata/ORA11G/onlinelog/o1_mf_6_9nd04xjo_.log

         6 STANDBY /u01/app/fast_recovery_area/ORA11G/onlinelog/o1_mf_6_9nd04yv7_.log

 

12 rows selected

 

Standby端名称为ora11gsy,对应参数配置和Primary端相同。数据文件和日志情况如下:

 

 

SQL> col file_name for a65

SQL> select file_name from dba_data_files;

 

FILE_NAME

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

/u01/app/oradata/ORA11GSY/datafile/o1_mf_users_9mnjs074_.dbf

/u01/app/oradata/ORA11GSY/datafile/o1_mf_undotbs1_9mnjs068_.dbf

/u01/app/oradata/ORA11GSY/datafile/o1_mf_sysaux_9mnjs04h_.dbf

/u01/app/oradata/ORA11GSY/datafile/o1_mf_system_9mnjrzty_.dbf

 

SQL> select group#, type, member from v$logfile;

 

    GROUP# TYPE    MEMBER

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

         3 ONLINE  /u01/app/oradata/ORA11GSY/onlinelog/o1_mf_3_9ndhov9r_.log

         3 ONLINE  /u01/app/fast_recovery_area/ORA11GSY/onlinelog/o1_mf_3_9ndhovov_.log

         2 ONLINE  /u01/app/oradata/ORA11GSY/onlinelog/o1_mf_2_9ndhoqbh_.log

         (篇幅原因,有省略……)

         6 STANDBY /u01/app/fast_recovery_area/ORA11GSY/onlinelog/o1_mf_6_9ndhpfvo_.log

 

12 rows selected

 

 

SQL> show parameter convert

 

NAME                                 TYPE        VALUE

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

db_file_name_convert                 string      ORA11G, ORA11GSY

log_file_name_convert                string      ORA11G, ORA11GSY

 

我们首先进行数据文件创建过程实验。

 

2、数据文件管理实验

 

创建表空间,添加文件是我们经常进行的日常维护操作。搭建DG之后,是可以在Primary端直接创建文件,Oracle会在Standby端进行新文件创建动作。

 

注意:这个操作要满足两个前提。首先需要确认primary和standby端对应位置(convert过的目录)存在足够的存储空间。一旦由于空间问题引起standby端文件创建失败,额外处理比较麻烦。另一个确保standby_file_management参数取值auto,该参数的作用是将Primary和Standby文件创建动作绑定起来,进行自动同步操作。

 

--空间确认

[root@SimpleLinux ~]# df -h

Filesystem      Size  Used Avail Use% Mounted on

/dev/sda2        48G   15G   31G  33% /

tmpfs           2.0G  278M  1.8G  14% /dev/shm

 

在primary端创建表空间,使用OMF特性,由Oracle负责文件命名。

 

 

SQL> create tablespace dgtest datafile size 500m autoextend off

  2  extent management local uniform size 1m

  3  segment space management auto;

 

Tablespace created

 

文件确认。

 

SQL> select file_name from dba_data_files;

 

FILE_NAME

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

/u01/app/oradata/ORA11G/datafile/o1_mf_users_9mnjs074_.dbf

/u01/app/oradata/ORA11G/datafile/o1_mf_undotbs1_9mnjs068_.dbf

/u01/app/oradata/ORA11G/datafile/o1_mf_sysaux_9mnjs04h_.dbf

/u01/app/oradata/ORA11G/datafile/o1_mf_system_9mnjrzty_.dbf

/u01/app/oradata/ORA11G/datafile/o1_mf_dgtest_9pck1kvs_.dbf

 

standby端文件创建:

 

 

SQL> select file_name from dba_data_files;

 

FILE_NAME

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

(篇幅原因,有省略……)

/u01/app/oradata/ORA11GSY/datafile/o1_mf_system_9mnjrzty_.dbf

/u01/app/oradata/ORA11GSY/datafile/o1_mf_dgtest_9pck215t_.dbf

 

注意一个细节:standby端创建了表空间dgtest的文件,但是和创建DG过程生成文件不同的是,文件名并不相同。说明:Oracle在这个过程,是自我应用OMF的。

 

standby端日志情况如下:

 

 

Sun May 04 12:37:55 2014

create tablespace dgtest datafile size 500m autoextend off

extent management local uniform size 1m

segment space management auto

 

ORA-604 signalled during: create tablespace dgtest datafile size 500m autoextend off

extent management local uniform size 1m

segment space management auto

 

...

Sun May 04 12:38:39 2014

Successfully added datafile 5 to media recovery

Datafile #5: '/u01/app/oradata/ORA11GSY/datafile/o1_mf_dgtest_9pck215t_.dbf'

 

上面实验的是Primary端应用OMF。如果是指定文件名称目录,效果如何呢?

 

 

SQL> create tablespace dgtest2 datafile '/u01/app/oradata/ORA11G/datafile/dgtest201.dbf' size 10m autoextend off

  2  extent management local uniform size 1m

  3  segment space management auto;

 

Tablespace created

 

 

SQL> select file_name from dba_data_files;

 

FILE_NAME

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

(篇幅原因,有省略……)

/u01/app/oradata/ORA11G/datafile/o1_mf_dgtest_9pck1kvs_.dbf

/u01/app/oradata/ORA11G/datafile/dgtest201.dbf

 

6 rows selected

 

注意,在Standby端,Oracle并没有进行文件转义,而是采用standby端的OMF策略创建文件。

 

 

SQL> select file_name, tablespace_name from dba_data_files;

 

FILE_NAME                                                         TABLESPACE_NAME

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

(篇幅原因,有省略……)

/u01/app/oradata/ORA11GSY/datafile/o1_mf_dgtest_9pck215t_.dbf     DGTEST

/u01/app/oradata/ORA11GSY/datafile/o1_mf_dgtest2_9pckjo3w_.dbf    DGTEST2 (不同之处)

 

6 rows selected

 

日志信息:

 

Sun May 04 12:46:13 2014

Successfully added datafile 6 to media recovery

Datafile #6: '/u01/app/oradata/ORA11GSY/datafile/o1_mf_dgtest2_9pckjo3w_.dbf'

 

说明:我们虽然在Primary端创建文件采用直接文件指定的方法,但是对应到Standby端,还是会有OMF策略。

 

下面实验删除表空间:

 

--Primary端

SQL> drop tablespace dgtest2 including contents and datafiles;

Tablespace dropped

 

standby端对应的日志如下:

 

Sun May 04 12:53:20 2014

Recovery deleting file #6:'/u01/app/oradata/ORA11GSY/datafile/o1_mf_dgtest2_9pckjo3w_.dbf' from controlfile.

Deleted Oracle managed file /u01/app/oradata/ORA11GSY/datafile/o1_mf_dgtest2_9pckjo3w_.dbf

Recovery dropped tablespace 'DGTEST2'

 

删除文件会自动连带删除。注意:数据文件自动创建对于参数standby_file_management的依赖是强制性的。如果这个参数保持默认值manual,那么在创建过程中会出现错误。

 

下面我们讨论redo log的情况。


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

请登录后发表评论 登录
全部评论

注册时间:2009-05-08

  • 博文量
    107
  • 访问量
    418849