zoukankan      html  css  js  c++  java
  • Oracle学习笔记:创建physical standby之另类方法

    oracle的dg方案中的physica standby虽然配置已经比较简单了,但还是稍嫌复杂。

    说到底db中phyiscal standby 的本质上不断应用redo日志以和primary保持同步。其所谓的优点就是可以 无损 switchover;正所谓“成也萧何败也萧何”,正是这一点使得dg配置、管理复杂化了,而且又有谁没事在主、备之间切着玩呢?

    那我们完全可以自行配置出类似的效果,而且能够控制所有的步骤,关键还很简单,何乐而不为呢。

    模型如下

    其中:

    1. primary database 无需任何特殊设置
    2. 备机必须在初始化参数文件里指定一个archive log dest——rman里用到该默认路径。
    3. 备机data、undo文件必须有效且联机,其他文件不是必须的,后面会指出注意之处。
    4. 备机可以任何时候进行还原操作,且不依赖网络、primary什么的。只要有有效archived redo就行。
    5. 主机的archived redo文件可以通过你能想到的任何方法传递
    6. 备机可以随时随地进入open read only状态

    注意的问题其实这些问题在db的phyiscal standby中同样存在

    1. 备机的数据库数据库文件路径设置最好和primary相同,可以免去很多的麻烦!
    2. 如果做不到主、备数据库文件路径相同,必须在还原database时使用set newname for datafile n to newfilepathname修改还原的目地
    3. 如果做不到主、备数据库文件路径相同,必须在还原database后通过alter database rename 修改数据库文件的位置
    4. 如果做不到主、备数据库文件路径相同 且备机打算open,必须在还原database后通过alter database rename 修改redo文件的位置
    5. 如果做不到主、备数据库文件路径相同 且备机打算open,必须在还原database后通过alter database create temporary temptbs tempfile filespec建立临时文件,并设置为default

    操作步骤(备机操作)

    1. 事先把primary的相关database、controlfile备份copy的备机的特定目录:最好是和主机的相同,否则需要备机上rman catalog注册下
    2. 创建oracle服务: oradim -new -sid test -syspwd test
    3. 创建该sid的初始化参数文件:%oracle_home%\database(dbs)
    4. 设置oracle_sid=test操作系统环境变量:cmd下、系统属性、export
    5. os下使用rman连接到服务:rman target / as sysdba
    6. rman下启动实例到nomount:startup nomount;
    7. rman下restore controlfile:restore controlfile from 'controlfile的备份集路径';
    8. 重要:如果备机的相关文件路径和主机不同,需要rman下catalog命令注册备份集文件:catalog start with '目标文件夹';
    9. rman下restroe database,如果备机相关数据文件路径和主机不同,需要set newname:restore database; 或 run {set newname for datafile 1 to 'newfilepathname';...;restore database;}
    10. 如果备机相关数据文件路径和主机不同,需要alter database 修改相关数据库文件的路径:alter database rename filename to newfilename;...
    11. ok了。copy主机的archived redo文件到备机的相应位置,recove吧!!

    重点:当备机上备用数据库restore到不同的目录时的解决方法

    1. 在run {set newname for datafile n to newfilefullname;... ;restore database;的后面使用switch datafile all;switch tempfile all;}
    2. noresetlogs的重建控制文件
    3. alter database rename file 'filespec' to 'newfilespec'

     以上三种方法以“3”为其本质;而“2”修改最为简单、彻底;“1”最为简单方便!

    后续操作,主要是解决自动化问题

    1. primary archived redo到备机的自动同步
    2. 备机的自动还原
    3. 备机的自动打开
    4. 监控
  • 相关阅读:
    React Native基础&入门教程:以一个To Do List小例子,看props和state
    Xamarin 学习笔记
    网站HTTP升级HTTPS完全配置手册
    Xamarin 学习笔记
    Xamarin 学习笔记
    React Native基础&入门教程:初步使用Flexbox布局
    SpreadJS使用进阶指南
    用WijmoJS搭建您的前端Web应用 —— React
    【图解】FlexGrid Explorer 全功能问世
    只用最适合的!全面对比主流 .NET 报表控件
  • 原文地址:https://www.cnblogs.com/jinzhenshui/p/1414409.html
Copyright © 2011-2022 走看看