Oracle学习笔记:创建physical standby之另类方法
oracle的dg方案中的physica standby虽然配置已经比较简单了,但还是稍嫌复杂。
说到底db中phyiscal standby 的本质上不断应用redo日志以和primary保持同步。其所谓的优点就是可以 无损 switchover;正所谓“成也萧何败也萧何”,正是这一点使得dg配置、管理复杂化了,而且又有谁没事在主、备之间切着玩呢?
那我们完全可以自行配置出类似的效果,而且能够控制所有的步骤,关键还很简单,何乐而不为呢。
模型如下:
其中:
- primary database 无需任何特殊设置
- 备机必须在初始化参数文件里指定一个archive log dest——rman里用到该默认路径。
- 备机data、undo文件必须有效且联机,其他文件不是必须的,后面会指出注意之处。
- 备机可以任何时候进行还原操作,且不依赖网络、primary什么的。只要有有效archived redo就行。
- 主机的archived redo文件可以通过你能想到的任何方法传递
- 备机可以随时随地进入open read only状态
注意的问题,其实这些问题在db的phyiscal standby中同样存在
- 备机的数据库数据库文件路径设置最好和primary相同,可以免去很多的麻烦!
- 如果做不到主、备数据库文件路径相同,必须在还原database时使用set newname for datafile n to newfilepathname修改还原的目地
- 如果做不到主、备数据库文件路径相同,必须在还原database后通过alter database rename 修改数据库文件的位置
- 如果做不到主、备数据库文件路径相同 且备机打算open,必须在还原database后通过alter database rename 修改redo文件的位置
- 如果做不到主、备数据库文件路径相同 且备机打算open,必须在还原database后通过alter database create temporary temptbs tempfile filespec建立临时文件,并设置为default
操作步骤(备机操作)
- 事先把primary的相关database、controlfile备份copy的备机的特定目录:最好是和主机的相同,否则需要备机上rman catalog注册下
- 创建oracle服务: oradim -new -sid test -syspwd test
- 创建该sid的初始化参数文件:%oracle_home%\database(dbs)
- 设置oracle_sid=test操作系统环境变量:cmd下、系统属性、export
- os下使用rman连接到服务:rman target / as sysdba
- rman下启动实例到nomount:startup nomount;
- rman下restore controlfile:restore controlfile from 'controlfile的备份集路径';
- 重要:如果备机的相关文件路径和主机不同,需要rman下catalog命令注册备份集文件:catalog start with '目标文件夹';
- rman下restroe database,如果备机相关数据文件路径和主机不同,需要set newname:restore database; 或 run {set newname for datafile 1 to 'newfilepathname';...;restore database;}
- 如果备机相关数据文件路径和主机不同,需要alter database 修改相关数据库文件的路径:alter database rename filename to newfilename;...
- ok了。copy主机的archived redo文件到备机的相应位置,recove吧!!
重点:当备机上备用数据库restore到不同的目录时的解决方法
- 在run {set newname for datafile n to newfilefullname;... ;restore database;的后面使用switch datafile all;switch tempfile all;}
- noresetlogs的重建控制文件
- alter database rename file 'filespec' to 'newfilespec'
以上三种方法以“3”为其本质;而“2”修改最为简单、彻底;“1”最为简单方便!
后续操作,主要是解决自动化问题
- primary archived redo到备机的自动同步
- 备机的自动还原
- 备机的自动打开
- 监控
分类:
Oracle学习笔记
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)