ITPub博客

首页 > Linux操作系统 > Linux操作系统 > oracle实验记录 (oracle 10G dataguard(3)文件管理)

oracle实验记录 (oracle 10G dataguard(3)文件管理)

原创 Linux操作系统 作者:fufuh2o 时间:2009-11-16 13:32:21 0 删除 编辑

关于db_file_name_convert,log_file_name_convert,standby_file_management 参数,理解dg文件管理


SQL> show parameter standby_file(standby)

NAME                                 TYPE        VALUE
------------------------------------ ----------- -----------------------------
standby_file_management              string      auto

SQL> show parameter name_convert(standby)

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_file_name_convert                 string      g:\oracle\product\10.2.0\orada
                                                 ta\xh, e:\standby\datafile
log_file_name_convert                string      g:\oracle\product\10.2.0\orada
                                                 ta\xh, e:\standby\datafile
SQL> show parameter recov_(standby)

NAME                                 TYPE        VALUE
------------------------------------ ----------- ---------------------------
db_recovery_file_dest                string      e:\standby\archive

1.primary上create tablespace

SQL> create tablespace xhtr datafile 'G:\ORACLE\PRODUCT\10.2.0\ORADATA\XH\xhtr.d
bf' size 10m;

表空间已创建。

SQL> col file_name format a35
SQL> col tablespace_name format a10
SQL> select tablespace_name,file_name from dba_data_files;

TABLESPACE FILE_NAME
---------- -----------------------------------
USERS      G:\ORACLE\PRODUCT\10.2.0\ORADATA\XH
           \USERS01.DBF

SYSAUX     G:\ORACLE\PRODUCT\10.2.0\ORADATA\XH
           \SYSAUX01.DBF

UNDOTBS1   G:\ORACLE\PRODUCT\10.2.0\ORADATA\XH
           \UNDOTBS01.DBF

SYSTEM     G:\ORACLE\PRODUCT\10.2.0\ORADATA\XH
           \SYSTEM01.DBF

TABLESPACE FILE_NAME
---------- -----------------------------------

EXAMPLE    G:\ORACLE\PRODUCT\10.2.0\ORADATA\XH
           \EXAMPLE01.DBF

XHTR       G:\ORACLE\PRODUCT\10.2.0\ORADATA\XH
           \XHTR.DBF


已选择6行。
SQL> alter system switch logfile;

系统已更改。

SQL>


2.standby1 上应用
SQL> alter database recover managed standby database disconnect from session;

数据库已更改。

SQL> alter database recover managed standby database cancel;

数据库已更改。


SQL> alter database open read only;

数据库已更改。
SQL> col file_name format a35
SQL> col tablespace_name format a10
SQL> select tablespace_name,file_name from dba_data_files;

TABLESPACE FILE_NAME
---------- -----------------------------------
USERS      E:\STANDBY\DATAFILE\USERS01.DBF
SYSAUX     E:\STANDBY\DATAFILE\SYSAUX01.DBF
UNDOTBS1   E:\STANDBY\DATAFILE\UNDOTBS01.DBF
SYSTEM     E:\STANDBY\DATAFILE\SYSTEM01.DBF
EXAMPLE    E:\STANDBY\DATAFILE\EXAMPLE01.DBF
XHTR       E:\STANDBY\DATAFILE\XHTR.DBF~~~~~~~~看到primary db上 新create 的datafile

已选择6行。

如果要是primary 上 drop tablespace的话 ,standby 也会应用完archivelog后 自动drop tablespace


3.primary 上create tablespace  (standby  standby_file_management改为manual)

SQL> alter system set standby_file_management=MANUAL;(standby)

系统已更改。
SQL> create tablespace xhtr2 datafile 'G:\ORACLE\PRODUCT\10.2.0\ORADATA\XH\xhtr2(primary)
.dbf' size 10m;

表空间已创建。

SQL> alter system switch logfile;(primary)

系统已更改。
SQL> alter database recover managed standby database disconnect from session;(standby)

数据库已更改。


SQL> select applied from v$archived_log;(standby)

APP
---
.................
YES
NO~~~~~~~~~~~~~~~~~~~~~~可以看到 这个archivelog 没有应用完

已选择16行。

查看standby 的alert.log
ORA-01111: name for data file 7 is unknown - rename to correct file
ORA-01110: data file 7: 'G:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\UNNAMED00007'
ORA-01157: cannot identify/lock data file 7 - see DBWR trace file
ORA-01111: name for data file 7 is unknown - rename to correct file
ORA-01110: data file 7: 'G:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\UNNAMED00007

从alert信息可以看到standby应用archived log时没有对应的目录,standby file 管理为手动


SQL> select name from v$datafile;(standby)

NAME
------------------------------
E:\STANDBY\DATAFILE\SYSTEM01.D
BF

E:\STANDBY\DATAFILE\UNDOTBS01.
DBF

E:\STANDBY\DATAFILE\SYSAUX01.D
BF

E:\STANDBY\DATAFILE\USERS01.DB
F

NAME
------------------------------

E:\STANDBY\DATAFILE\EXAMPLE01.
DBF

E:\STANDBY\DATAFILE\XHTR.DBF
G:\ORACLE\PRODUCT\10.2.0\DB_1\~~~~~可以看到standby有一个错误的文件名字
DATABASE\UNNAMED00007


已选择7行。
SQL> select name from v$tablespace;(standby)

NAME
------------------------------
SYSTEM
UNDOTBS1
SYSAUX
USERS
TEMP
EXAMPLE
XHTR
XHTR2~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~standby 中加入了primary 的新tablespace信息

已选择8行。

SQL> alter database create datafile 'G:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\UNNA
MED00007' as 'e:\standby\datafile\xhtr2.dbf';**********

数据库已更改。

SQL> select name from v$datafile;(standby)

NAME
------------------------------
E:\STANDBY\DATAFILE\SYSTEM01.D
BF

E:\STANDBY\DATAFILE\UNDOTBS01.
DBF

E:\STANDBY\DATAFILE\SYSAUX01.D
BF

E:\STANDBY\DATAFILE\USERS01.DB
F

NAME
------------------------------

E:\STANDBY\DATAFILE\EXAMPLE01.
DBF

E:\STANDBY\DATAFILE\XHTR.DBF
E:\STANDBY\DATAFILE\XHTR2.DBF

已选择7行。

SQL> alter database recover managed standby database disconnect from session;(standby)

数据库已更改。

SQL> select applied from v$archived_log;(standby)

......
YES
YES~~~~应用了

已选择16行。

SQL> drop tablespace xhtr2 including contents and datafiles;(primary)

表空间已删除。

SQL> alter system switch logfile;(primary)

系统已更改。
SQL> select name from v$tablespace;(standby)

NAME
------------------------------
SYSTEM
UNDOTBS1
SYSAUX
USERS
TEMP
EXAMPLE
XHTR

已选择7行。

SQL> select name from v$datafile;(standby)

NAME
------------------------------
E:\STANDBY\DATAFILE\SYSTEM01.D
BF

E:\STANDBY\DATAFILE\UNDOTBS01.
DBF

E:\STANDBY\DATAFILE\SYSAUX01.D
BF

E:\STANDBY\DATAFILE\USERS01.DB
F

NAME
------------------------------

E:\STANDBY\DATAFILE\EXAMPLE01.
DBF

E:\STANDBY\DATAFILE\XHTR.DBF

已选择6行。
 
可以看到manual情况 中standby 的tablespace信息删除了 ,但实际的数据文件 没删除
C:\>dir e:\standby\datafile
 驱动器 E 中的卷没有标签。
 卷的序列号是 AC5C-2ED7

 e:\standby\datafile 的目录
.................................
2009-11-03  17:18        10,493,952 XHTR2.DBF***********************物理上还存在
              16 个文件  1,132,747,162 字节

 


4.primary create tablespace 但 datafile 不含在 standby 参数db_file_name_convert中(standby_file_management auto)

SQL> alter system set standby_file_management=AUTO;(standby)

系统已更改。
SQL> show parameter db_file_name

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_file_name_convert                 string      g:\oracle\product\10.2.0\orada
                                                 ta\xh, e:\standby\datafile


下面是primary 和standby的 状态

SQL> col tablespace_name format a10
SQL> col  file_name format a50
SQL> select tablespace_name,file_name from dba_data_files;(primary)

TABLESPACE FILE_NAME
---------- --------------------------------------------------
USERS      G:\ORACLE\PRODUCT\10.2.0\ORADATA\XH\USERS01.DBF
SYSAUX     G:\ORACLE\PRODUCT\10.2.0\ORADATA\XH\SYSAUX01.DBF
UNDOTBS1   G:\ORACLE\PRODUCT\10.2.0\ORADATA\XH\UNDOTBS01.DBF
SYSTEM     G:\ORACLE\PRODUCT\10.2.0\ORADATA\XH\SYSTEM01.DBF
EXAMPLE    G:\ORACLE\PRODUCT\10.2.0\ORADATA\XH\EXAMPLE01.DBF
XHTR       G:\ORACLE\PRODUCT\10.2.0\ORADATA\XH\XHTR.DBF


已选择7行。

 

SQL> select name from v$tablespace;(standby)

NAME
------------------------------
SYSTEM
UNDOTBS1
SYSAUX
USERS
TEMP
EXAMPLE
XHTR


已选择8行。

SQL> select name from v$datafile;(standby)

NAME
--------------------------------------------------------------------------------

E:\STANDBY\DATAFILE\SYSTEM01.DBF
E:\STANDBY\DATAFILE\UNDOTBS01.DBF
E:\STANDBY\DATAFILE\SYSAUX01.DBF
E:\STANDBY\DATAFILE\USERS01.DBF
E:\STANDBY\DATAFILE\EXAMPLE01.DBF
E:\STANDBY\DATAFILE\XHTR.DBF

SQL> create tablespace xhtr2 datafile 'g:\xhtr2.dbf' size 10m; (primary)

表空间已创建。

SQL> alter system switch logfile; (primary)

系统已更改。
SQL> select  CREATOR,applied  from v$archived_log;(standby)

 

ARCH    YES

CREATOR APP
------- ---
ARCH    NO~~~~~~看到 这个由arch进程传递过来的最新归档没有应用

已选择23行。

查看standby alert.log
Some recovered datafiles maybe left media fuzzy
Media recovery may continue but open resetlogs may fail
Wed Nov 04 09:39:47 2009
Errors in file e:\standby\bdump\standby1_mrp0_2616.trc:
ORA-01274: cannot add datafile 'G:\XHTR2.DBF' - file could not be created
ORA-01119: error in creating database file 'G:\XHTR2.DBF'
ORA-27038: created file already exists
OSD-04010: 指定了 选项, 但文件已经存在********可以看到standby 应用归档 要在与primary相同的位置建立一个数据文件(如果是2台机器 目录一样 那么没问题 )
但这个文件 已由primary建立


SQL> select name from v$datafile;(standby)


NAME
--------------------------------------------------------------------------------

E:\STANDBY\DATAFILE\SYSTEM01.DBF
E:\STANDBY\DATAFILE\UNDOTBS01.DBF
E:\STANDBY\DATAFILE\SYSAUX01.DBF
E:\STANDBY\DATAFILE\USERS01.DBF
E:\STANDBY\DATAFILE\EXAMPLE01.DBF
E:\STANDBY\DATAFILE\XHTR.DBF
G:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\UNNAMED00007(一个不知名的文件)

已选择7行。

SQL> select name from v$tablespace;(standby)


NAME
------------------------------
SYSTEM
UNDOTBS1
SYSAUX
USERS
TEMP
EXAMPLE
XHTR
XHTR2~~~~~~~~~~~~~~~~~信息已经应用

已选择8行。

 

SQL> alter database create datafile 'G:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\UNNA    (standby)

MED00007' as 'e:\standby\datafile\xhtr2.dbf';
alter database create datafile 'G:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\UNNAMED00
007' as 'e:\standby\datafile\xhtr2.dbf'
*
第 1 行出现错误:
ORA-01275: 自动进行备用文件管理时, 不允许进行 CREATE DATAFILE 操作。


SQL> alter system set standby_file_management=MANUAL; (standby)~~~必须改会manual才行


系统已更改。

SQL> alter database create datafile 'G:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\UNNA  (standby)

MED00007' as 'e:\standby\datafile\xhtr2.dbf';

数据库已更改。

SQL> alter database recover managed standby database disconnect from session;(standby)

数据库已更改。

SQL> select applied  from v$archived_log;(standby)
APP
---
YES~~~~~~~~~~~~~~~已经应用成功

已选择23行。

这样就明白了db_file_name_convert的 意义主要就是应用redo时 转换目录映射目录.(log_file_name_convert意思是一样的)

 

不含在db_file_name_conver中可以用 OMF解决
但前提是standby_file_management=auto


SQL> show parameter standby_file

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
standby_file_management              string      MANUAL
SQL>

SQL> alter system set db_create_file_dest='e:\standby\datafile';(standby)

系统已更改。

SQL> show parameter db_create_file_dest (standby)

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_create_file_dest                  string      e:\standby\datafile

 

SQL> create tablespace xhtr3 datafile 'g:\xhtr3.dbf' size 10m;(primary)

表空间已创建。

SQL> alter system switch logfile;(primary)

系统已更改。

SQL> select applied  from v$archived_log;(standby)

APP
---
YES
NO~~~~在standby 这个 收到的archivelog 还是没有 应用

已选择24行。

查看standby alert.log
Wed Nov 04 10:05:54 2009
Errors in file e:\standby\bdump\standby1_mrp0_3624.trc:
ORA-01111: name for data file 8 is unknown - rename to correct file
ORA-01110: data file 8: 'G:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\UNNAMED00008'
ORA-01157: cannot identify/lock data file 8 - see DBWR trace file
ORA-01111: name for data file 8 is unknown - rename to correct file
ORA-01110: data file 8: 'G:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\UNNAMED00008'

这个错误是standby_file_management manual时错误
SQL> alter system set standby_file_management=AUTO;

系统已更改。

SQL> alter database recover managed standby database disconnect from session;(standby)

数据库已更改。
SQL> select applied  from v$archived_log;(standby)

YES
YES
YES
YES

APP
---
YES
NO~~~~~~~~~~~~~~~~~~~~~~~还是应用不行

已选择24行。
SQL> show parameter db_create_file_dest(standby)

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_create_file_dest                  string      e:\standby\datafile
SQL> show parameter standby_file_management

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
standby_file_management              string      AUTO


SQL> select name from v$tablespace;(standby)

NAME
------------------------------
SYSTEM
UNDOTBS1
SYSAUX
USERS
TEMP
EXAMPLE
XHTR
XHTR2
XHTR3

已选择9行。

SQL> select name from v$datafile;(standby)

NAME
--------------------------------------------------------------------------------

E:\STANDBY\DATAFILE\SYSTEM01.DBF
E:\STANDBY\DATAFILE\UNDOTBS01.DBF
E:\STANDBY\DATAFILE\SYSAUX01.DBF
E:\STANDBY\DATAFILE\USERS01.DBF
E:\STANDBY\DATAFILE\EXAMPLE01.DBF
E:\STANDBY\DATAFILE\XHTR.DBF
E:\STANDBY\DATAFILE\XHTR2.DBF
G:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\UNNAMED00008

已选择8行。

SQL> alter system set standby_file_management=MANUAL;(standby)

系统已更改。

SQL> alter database create datafile 'G:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\UNNA (standby)
MED00008' as 'e:\standby\datafile\xhtr3'
  2  ;

数据库已更改。

SQL> alter database recover managed standby database disconnect from session;
(standby)
数据库已更改。

SQL>  select applied  from v$archived_log;(standby)

APP
---
APP
---
YES
YES~~~~~~~~~~~成功应用

已选择24行。

SQL> select name from v$tablespace;

NAME
------------------------------
SYSTEM
UNDOTBS1
SYSAUX
USERS
TEMP
EXAMPLE
XHTR
XHTR2
XHTR3

已选择9行。

SQL> select name from v$datafile;

NAME
--------------------------------------------------------------------------------

E:\STANDBY\DATAFILE\SYSTEM01.DBF
E:\STANDBY\DATAFILE\UNDOTBS01.DBF
E:\STANDBY\DATAFILE\SYSAUX01.DBF
E:\STANDBY\DATAFILE\USERS01.DBF
E:\STANDBY\DATAFILE\EXAMPLE01.DBF
E:\STANDBY\DATAFILE\XHTR.DBF
E:\STANDBY\DATAFILE\XHTR2.DBF
E:\STANDBY\DATAFILE\XHTR3

已选择8行。
SQL> alter system set standby_file_management=AUTO;(standby)

系统已更改。


SQL> create tablespace xhtr4 datafile 'g:\xhtr4.dbf' size 10m;(primary)

表空间已创建。

SQL> alter system switch logfile;(primary)

系统已更改。

SQL> select applied from v$archived_log;(standby)


YES~~~~~~~~~~~~~~应用成功

已选择27行。
SQL> select name from v$tablespace;(standby)

NAME
------------------------------
SYSTEM
UNDOTBS1
SYSAUX
USERS
TEMP
EXAMPLE
XHTR
XHTR2
XHTR3
XHTR4

已选择10行。

SQL> select name from v$datafile;(standby)

NAME
--------------------------------------------------------------------------------

E:\STANDBY\DATAFILE\SYSTEM01.DBF
E:\STANDBY\DATAFILE\UNDOTBS01.DBF
E:\STANDBY\DATAFILE\SYSAUX01.DBF
E:\STANDBY\DATAFILE\USERS01.DBF
E:\STANDBY\DATAFILE\EXAMPLE01.DBF
E:\STANDBY\DATAFILE\XHTR.DBF
E:\STANDBY\DATAFILE\XHTR2.DBF
E:\STANDBY\DATAFILE\XHTR3
E:\STANDBY\DATAFILE\STANDBY1\DATAFILE\O1_MF_XHTR4_5H2778OZ_.DBF  应用成功文件名按OMF 管理名字命名

已选择9行。

上面可以看 出  如果standby file managment 为auto ,而primary 添加的datafile 不再 db_file_name_convert中可以 用omf解决,不过要提前设置omf 和 standby file management 为auto,standby要是开着恢复模式(recover managed standby) 那么日志信息会应用~~controlfile中会记录下错误的信息,这之后再开omf或设为auto已经晚了 ,因为control file中已经有了该文件的错误信息

 


SQL> create tablespace xhtr5 datafile 'G:\ORACLE\PRODUCT\10.2.0\ORADATA\XH\xhtr5(primary)
.dbf' size 10m;

表空间已创建。

SQL> alter system switch logfile;(primary)

系统已更改。

 

SQL> select name from v$datafile;

NAME
--------------------------------------------------------------------------------

E:\STANDBY\DATAFILE\SYSTEM01.DBF
E:\STANDBY\DATAFILE\UNDOTBS01.DBF
E:\STANDBY\DATAFILE\SYSAUX01.DBF
E:\STANDBY\DATAFILE\USERS01.DBF
E:\STANDBY\DATAFILE\EXAMPLE01.DBF
E:\STANDBY\DATAFILE\XHTR.DBF
E:\STANDBY\DATAFILE\XHTR2.DBF
E:\STANDBY\DATAFILE\XHTR3
E:\STANDBY\DATAFILE\STANDBY1\DATAFILE\O1_MF_XHTR4_5H2778OZ_.DBF
E:\STANDBY\DATAFILE\STANDBY1\DATAFILE\O1_MF_XHTR5_5H28JPVT_.DBF~~~~即便primary建立时,在db_file_name_convert中 ,且standby file管理为auto,但日志应用时候还是                                                                   建立在omf指定的上面
已选择10行。

 

 

 

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

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

注册时间:2009-06-26

  • 博文量
    182
  • 访问量
    471645