Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2882328
  • 博文数量: 200
  • 博客积分: 2413
  • 博客等级: 大尉
  • 技术积分: 3067
  • 用 户 组: 普通用户
  • 注册时间: 2011-04-01 22:07
文章分类

全部博文(200)

文章存档

2018年(2)

2017年(8)

2016年(35)

2015年(14)

2014年(20)

2013年(24)

2012年(53)

2011年(44)

分类: Oracle

2014-03-11 15:48:51

+++++++++
总结论: |
+++++++++
在DataGuar备库,没有特殊情况一定要将standby_file_management参数设为AUTO,并且设置db_file_name_convert和log_file_name_convert的值。

若standby_file_management=MANUAL,即使主备库数据文件路径一致,主库添加数据文件,备库也不会自动添加,必须手动完成。
若standby_file_management=AUTO,主库添加数据文件,备库会根据db_file_name_convert参数自动将数据文件创建到正确路径。

db_file_name_convert和log_file_name_convert的作用:
主库库路径不相同的情况,备库会根据这两个参数将数据文件和redo文件创建到正确位置。


  1. 实验一:
  2. standby_file_management=AUTO,但是未配置db_file_name_convert参数。
  3. 且dg主备库数据文件路径相同。
  4. @Standby:
  5. SQL> create pfile from spfile;
  6. SQL> shutdown immediate

  7. 去掉参数文件中db_file_name_convert参数
  8. *.db_file_name_convert='/u01/app/oradata/dg/','/u01/app/oradata/dg/'
  9. *.log_file_name_convert='/u01/app/oradata/dg/','/u01/app/oradata/dg/'

  10. 用pfile启动数据库到mount
  11. startup mount pfile='?/dbs/initdg.ora';
  12. SQL> show parameter convert
  13. NAME TYPE VALUE
  14. ------------------------------------ ----------- ------------------------------
  15. db_file_name_convert string
  16. log_file_name_convert string

  17. SQL> show parameter standby_file_management
  18. NAME TYPE VALUE
  19. ------------------------------------ ----------- ------------------------------
  20. standby_file_management string AUTO


  21. 开启实时日志应用
  22. ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT FROM SESSION;

  23. @Primary
  24. 添加datafile
  25. alter tablespace add_dbf add datafile '/u01/app/oradata/dg/add_dbf02.dbf' size 500m;

  26. SQL> select name from v$datafile;
  27. NAME
  28. ------------------------------------------------------------
  29. /u01/app/oradata/dg/system01.dbf
  30. /u01/app/oradata/dg/sysaux01.dbf
  31. /u01/app/oradata/dg/undotbs01.dbf
  32. /u01/app/oradata/dg/users01.dbf
  33. /u01/app/oradata/dg/add_dbf01.dbf
  34. /u01/app/oradata/dg/add_dbf02.dbf     <---正常添加

  35. @Standby
  36. 查看添加数据文件是否同步到备库
  37. SQL> select name from v$datafile;
  38. NAME
  39. --------------------------------------------------------------------------------
  40. /u01/app/oradata/dg/system01.dbf
  41. /u01/app/oradata/dg/sysaux01.dbf
  42. /u01/app/oradata/dg/undotbs01.dbf
  43. /u01/app/oradata/dg/users01.dbf
  44. /u01/app/oradata/dg/add_dbf01.dbf
  45. /u01/app/oradata/dg/add_dbf02.dbf     <----备库同样添加成功

  46. alert日志记录
  47. Mon Jul 22 07:42:48 2013
  48. Recovery created file /u01/app/oradata/dg/add_dbf02.dbf
  49. Successfully added datafile 8 to media recovery
  50. Datafile #8: '/u01/app/oradata/dg/add_dbf02.dbf'


  51. 小结:主备库数据文件保存路径相同,standby_file_management=AUTO,未设置db_file_name_convert参数。主库添加数据文件,备库会自动创建数据文件。



  52. 实验二:standby_file_management=manual,但是未配置db_file_name_convert参数。
  53. 且dg主备库数据文件路径相同。
  54. @Standby:
  55. 修改为MANUAL
  56. SQL> alter system set standby_file_management='MANUAL';

  57. SQL> show parameter standby_file_management
  58. NAME TYPE VALUE
  59. ------------------------------------ ----------- ------------------------------
  60. standby_file_management string MANUAL

  61. @Primay
  62. 创建数据文件
  63. SQL> alter tablespace add_dbf add datafile '/u01/app/oradata/dg/add_dbf03.dbf' size 500m;

  64. SQL> select name from v$datafile;
  65. NAME
  66. ----------------------------------------
  67. /u01/app/oradata/dg/system01.dbf
  68. /u01/app/oradata/dg/sysaux01.dbf
  69. /u01/app/oradata/dg/undotbs01.dbf
  70. /u01/app/oradata/dg/users01.dbf
  71. /u01/app/oradata/dg/add_dbf01.dbf
  72. /u01/app/oradata/dg/add_dbf02.dbf
  73. /u01/app/oradata/dg/add_dbf03.dbf     <-----主库新增数据文件

  74. @Standby
  75. SQL> select name from v$datafile;
  76. NAME
  77. --------------------------------------------------------------------------------
  78. /u01/app/oradata/dg/system01.dbf
  79. /u01/app/oradata/dg/sysaux01.dbf
  80. /u01/app/oradata/dg/undotbs01.dbf
  81. /u01/app/oradata/dg/users01.dbf
  82. /u01/app/oradata/dg/add_dbf01.dbf
  83. /u01/app/oradata/dg/add_dbf02.dbf
  84. /u01/app/product/11.1.0/db_1/dbs/UNNAMED00009     <-------备库会自动创建数据文件,但是和主库添加的数据文件不同。

  85. $ ll /u01/app/product/11.1.0/db_1/dbs/UNNAMED00009
  86. ls: /u01/app/product/11.1.0/db_1/dbs/UNNAMED00009: 没有那个文件或目录

  87. alert日志显示:新增的数据文件只是记录到控制文件,但是该数据文件并没有真实创建。需要手动创建。并且MRP进程宕掉了。
  88. File #9 added to control file as 'UNNAMED00009' because
  89. the parameter STANDBY_FILE_MANAGEMENT is set to MANUAL
  90. The file should be manually created to continue.
  91. MRP0: Background Media Recovery terminated with error 1274
  92. Errors in file /u01/app/diag/rdbms/node2/dg/trace/dg_mrp0_28531.trc:
  93. ORA-01274: cannot add datafile '/u01/app/oradata/dg/add_dbf03.dbf' - file could not be created
  94. Managed Standby Recovery not using Real Time Apply
  95. Recovery
  96. Recovered data files to a consistent state at change 1688193
  97. Errors in file /u01/app/diag/rdbms/node2/dg/trace/dg_mrp0_28531.trc:
  98. ORA-01274: cannot add datafile '/u01/app/oradata/dg/add_dbf03.dbf' - file could not be created
  99. MRP0: Background Media Recovery process shutdown (dg)

  100. 用下面的将错误新增数据文件转换到正确位置,并恢复MRP进程
  101. SQL> alter database create datafile '/u01/app/product/11.1.0/db_1/dbs/UNNAMED00009' as '/u01/app/oradata/dg/add_dbf03.dbf';
  102. Database altered.

  103. SQL> select name from v$datafile;
  104. NAME
  105. --------------------------------------------------------------------------------
  106. /u01/app/oradata/dg/system01.dbf
  107. /u01/app/oradata/dg/sysaux01.dbf
  108. /u01/app/oradata/dg/undotbs01.dbf
  109. /u01/app/oradata/dg/users01.dbf
  110. /u01/app/oradata/dg/add_dbf01.dbf
  111. /u01/app/oradata/dg/add_dbf02.dbf
  112. /u01/app/oradata/dg/add_dbf03.dbf     <--恢复正常

  113. ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT FROM SESSION;    

  114. 小结:主备库数据文件保存路径相同,standby_file_management=MANUAL,未设置db_file_name_convert参数。
  115.  主库添加数据文件,备库不能自动创建数据文件。
  116.  控制件会记录新增数据文件的信息,不过不会真实创建它,v$datafile视图可以看到新增数据文件信息。


  117. 实验三:standby_file_management=AUTO,但是未配置db_file_name_convert参数。
  118. DG主备库数据文件路径不相同。
  119. @Standby
  120. SQL> show parameter standby_file_management
  121. NAME TYPE VALUE
  122. ------------------------------------ ----------- ------------------------------
  123. standby_file_management string AUTO
  124.  
  125. SQL> show parameter convert
  126. NAME TYPE VALUE
  127. ------------------------------------ ----------- ------------------------------
  128. db_file_name_convert string
  129. log_file_name_convert string    

  130. SQL> select name from v$datafile;
  131. NAME
  132. --------------------------------------------------------------------------------
  133. /u01/app/node2/system01.dbf
  134. /u01/app/node2/sysaux01.dbf
  135. /u01/app/node2/undotbs01.dbf
  136. /u01/app/node2/users01.dbf
  137. /u01/app/node2/add_dbf01.dbf
  138. /u01/app/node2/add_dbf02.dbf
  139. /u01/app/node2/add_dbf03.dbf

  140. @Pirmay
  141. SQL> select name from v$datafile;
  142. NAME
  143. ----------------------------------------
  144. /u01/app/oradata/dg/system01.dbf
  145. /u01/app/oradata/dg/sysaux01.dbf
  146. /u01/app/oradata/dg/undotbs01.dbf
  147. /u01/app/oradata/dg/users01.dbf
  148. /u01/app/oradata/dg/add_dbf01.dbf
  149. /u01/app/oradata/dg/add_dbf02.dbf
  150. /u01/app/oradata/dg/add_dbf03.dbf

  151. 添加数据文件
  152. SQL> alter tablespace add_dbf add datafile '/u01/app/oradata/dg/add_dbf04.dbf' size 500m;

  153. SQL> select name from v$datafile;
  154. NAME
  155. ----------------------------------------
  156. /u01/app/oradata/dg/system01.dbf
  157. /u01/app/oradata/dg/sysaux01.dbf
  158. /u01/app/oradata/dg/undotbs01.dbf
  159. /u01/app/oradata/dg/users01.dbf
  160. /u01/app/oradata/dg/add_dbf01.dbf
  161. /u01/app/oradata/dg/add_dbf02.dbf
  162. /u01/app/oradata/dg/add_dbf03.dbf
  163. /u01/app/oradata/dg/add_dbf04.dbf     <---添加成功

  164. @Standby
  165. SQL> select name from v$datafile;
  166. NAME
  167. --------------------------------------------------------------------------------
  168. /u01/app/node2/system01.dbf
  169. /u01/app/node2/sysaux01.dbf
  170. /u01/app/node2/undotbs01.dbf
  171. /u01/app/node2/users01.dbf
  172. /u01/app/node2/add_dbf01.dbf
  173. /u01/app/node2/add_dbf02.dbf
  174. /u01/app/node2/add_dbf03.dbf
  175. /u01/app/oradata/dg/add_dbf04.dbf     <----备库也添加成功,但是创建路径却是和主库一致的路径,而不是备库默认的路径。

  176. 由于备库存在和主库一致的路径,删掉该路径,重做这个实验

  177. @Primary
  178. 主库删掉add_dbf04.dbf
  179. SQL> alter tablespace add_dbf drop datafile 10;

  180. @Standby
  181. 删除路径
  182. $ pwd
  183. /u01/app/oradata
  184. $ rm dg -rf

  185. @Priary
  186. 添加数据文件
  187. SQL> alter tablespace add_dbf add datafile '/u01/app/oradata/dg/add_dbf04.dbf' size 500m;

  188. SQL> select name from v$datafile;
  189. NAME
  190. ------------------------------------------------------------
  191. /u01/app/oradata/dg/system01.dbf
  192. /u01/app/oradata/dg/sysaux01.dbf
  193. /u01/app/oradata/dg/undotbs01.dbf
  194. /u01/app/oradata/dg/users01.dbf
  195. /u01/app/oradata/dg/add_dbf01.dbf
  196. /u01/app/oradata/dg/add_dbf02.dbf
  197. /u01/app/oradata/dg/add_dbf03.dbf
  198. /u01/app/oradata/dg/add_dbf04.dbf    <--成功

  199. @Standby
  200. SQL> select name from v$datafile;
  201. NAME
  202. --------------------------------------------------------------------------------
  203. /u01/app/node2/system01.dbf
  204. /u01/app/node2/sysaux01.dbf
  205. /u01/app/node2/undotbs01.dbf
  206. /u01/app/node2/users01.dbf
  207. /u01/app/node2/add_dbf01.dbf
  208. /u01/app/node2/add_dbf02.dbf
  209. /u01/app/node2/add_dbf03.dbf
  210. /u01/app/product/11.1.0/db_1/dbs/UNNAMED00010     <-----未成功

  211. 小结:主备库数据文件保存路径相同,standby_file_management=AUTO,未设置db_file_name_convert参数。
  212.  主库添加数据文件,如果没有和主库一致的数据文件路径,那么备库不能自动创建数据文件。
  213.  控制件会记录新增数据文件的信息,不过不会真实创建它,v$datafile视图可以看到新增数据文件信息。





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