尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

Windows 11g在线库迁移及搭建双机

Windows 11g在线库迁移及搭建双机
📅 发布时间:2026/7/2 1:12:13

现有用户数据库运行在超融合单机系统情况下,前端时间由于异常重启导致数据库system01.dbf文件损坏,核心数据库业务无法运行,本次考虑在超融合环境下搭建双机,为现有的数据库提供冗余环境,由于现有的核心业务运行在数据库上,停机时间控制在30分钟内(数据量2T),否则影响到业务系统的正常运行。

方案步骤安排如下:

1、新建双机集群环境,包括数据库,测试双机环境的可用性和可靠性;

2、停用集群,卸载新集群数据库实例,新老数据库搭建oracle adg,同步老库数据到新库;

3、搭建双机集群;

4、确认割接时间点,主备库切换;

5、带入双机集群,切换生产ip地址,测试双机切换;

6、取消新库adg参数,割接完成;

7、检查新集群运行状态。

备注:前3步搭建过程不影响业务正常运行,从第4步开始需要沟通具体割接时间。

一、情况说明

1、操作系统windows 2019标准版(本次需要升级操作系统从win2012到win2019)

2、数据库版本:11.2.0.4 for windows

3、地址信息

(1)源库(主):192.168.10.100

(2)备库(集群):192.168.10.200、192.168.10.201(ha集群另外一台)

4、源库windows系统oracle数据磁盘分多个存储空间

C:120g D:1.3t E:2.5t F:2t

目标库:C:120g D:3T E:2T

二、主库文件配置

1、启用强制日志模式

SQL> select force_logging from v$database;

2、配置重做认证(将密码文件复制到备机)

3、配置主数据库接收重做数据

4、参数初始化

alter system set LOG_ARCHIVE_CONFIG='DG_CONFIG=(orcl,orcldg)' sid='*' scope=both;

alter system set LOG_ARCHIVE_DEST_1='LOCATION=USE_DB_RECOVERY_FILE_DEST VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=orcl' sid='*' scope=both;

alter system set LOG_ARCHIVE_DEST_2='SERVICE=orcldg ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=orcldg' sid='*' scope=both;

alter system set FAL_SERVER=orcldg sid='*' scope=both;

alter system set DB_FILE_NAME_CONVERT='d:\oradata\orcldg','d:\oradata\orcl' sid='*' scope=spfile;

alter system set LOG_FILE_NAME_CONVERT='d:\oradata\orcldg','d:\oradata\orcl' sid='*' scope=spfile;

alter system set STANDBY_FILE_MANAGEMENT=AUTO sid='*' scope=both;

5、配置tnsnames.ora文件

tnsnames.ora文件添加如下:

orcl =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.10.100)(PORT = 1521))

(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME = orcl)

)

)

orcldg =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.10.200)(PORT = 1521))

(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME = orcl)

)

)

备注:现有生产环境listener.ora不动,防止影响业务使用。

三、配置备库

1、备库安装数据库软件(过程略)

2、修改参数文件(从主库修改得来)

orcl.__db_cache_size=2063597568

orcl.__java_pool_size=16777216

orcl.__large_pool_size=33554432

orcl.__oracle_base='C:\app\Administrator'#ORACLE_BASE set from environment

orcl.__pga_aggregate_target=872415232

orcl.__sga_target=2583691264

orcl.__shared_io_pool_size=0

orcl.__shared_pool_size=436207616

orcl.__streams_pool_size=0

*.audit_file_dest='C:\app\Administrator\admin\orcl\adump'

*.audit_trail='db'

*.compatible='11.2.0.4.0'

*.control_files='D:\oradata\orcldg\control01.ctl','D:\oradata\orcldg\control02.ctl'

*.db_block_size=8192

*.db_domain=''

*.db_file_name_convert='d:\oradata\orcl','d:\oradata\orcldg'

*.db_name='orcl'

*.db_unique_name='orcldg'

*.db_recovery_file_dest='E:\flash_recovery_area'

*.db_recovery_file_dest_size=43851448320

*.diagnostic_dest='C:\app\Administrator'

*.dispatchers='(PROTOCOL=TCP) (SERVICE=orclXDB)'

*.fal_server='ORCL'

*.log_archive_config='DG_CONFIG=(orcl,orcldg)'

*.log_archive_dest_1='LOCATION=USE_DB_RECOVERY_FILE_DEST VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=orcldg'

*.log_archive_dest_2='SERVICE=orcl ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=orcl'

*.log_archive_format='ARC%S_%R.%T'

*.log_file_name_convert='d:\oradata\orcl','d:\oradata\orcldg'

*.nls_language='SIMPLIFIED CHINESE'

*.nls_territory='CHINA'

*.open_cursors=300

*.pga_aggregate_target=858783744

*.processes=1500

*.remote_login_passwordfile='EXCLUSIVE'

*.sessions=1655

*.sga_target=2576351232

*.standby_file_management='AUTO'

*.undo_tablespace='UNDOTBS1'

3、创建备库实例

C:\Users\Administrator>oradim -new -sid orcl -startmode m

4、监听listener.ora、tnsnames.ora文件

listener.ora

LISTENER =

(DESCRIPTION_LIST =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.10.200)(PORT = 1521))

)

)

SID_LIST_LISTENER =

(SID_LIST =

(SID_DESC =

(SID_NAME = CLRExtProc)

(ORACLE_HOME = C:\app\Administrator\product\11.2.0\dbhome_1)

(PROGRAM = extproc)

(ENVS = "EXTPROC_DLLS=ONLY:C:\app\Administrator\product\11.2.0\dbhome_1\bin\oraclr11.dll")

)

(SID_DESC =

(GLOBAL_DBNAME = orcl)

(SID_NAME = orcl)

)

)

ADR_BASE_LISTENER = C:\app\Administrator

tnsnames.ora

ORACLR_CONNECTION_DATA =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))

)

(CONNECT_DATA =

(SID = CLRExtProc)

(PRESENTATION = RO)

)

)

orcl =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.10.100)(PORT = 1521))

(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME = orcl)

)

)

orcldg =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.10.200)(PORT = 1521))

(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME = orcl)

)

)

4、密码文件(复制主库密码文件)

windows密码文件位置:%ORACLE_HOME%/database/

linux密码文件位置:$ORACLE_HOME/dbs/

5、创建参数文件并启动到mount状态

6、备份主库及备库控制文件到备库

(1)为备库创建控制文件standby.ctl

SQL> alter database create standby controlfile as 'd:\standby.ctl';

(2)备份现有主库

backup.bat

@echo off

set timestamp=%date:~0,4%%date:~5,2%%date:~8,2%

mkdir d:\backup\%timestamp%

rman target / nocatalog CMDFILE 'd:\scripts\full_backup.sql' log 'd:\scripts\log\rman_backup_%timestamp%.log' append

full_backup.sql

run{

CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default

CONFIGURE CONTROLFILE AUTOBACKUP ON;#

allocate channel ch00 device type disk;

allocate channel ch01 device type disk;

allocate channel ch02 device type disk;

allocate channel ch03 device type disk;

crosscheck backup;

crosscheck archivelog all;

delete noprompt expired archivelog all;

delete noprompt expired backup;

report obsolete;

delete noprompt obsolete;

backup as compressed backupset database format 'D:\backup\%T\full_%T_%u_%p.%d' tag='FULLDB-%T'

plus archivelog format 'D:\backup\%T\arch_%T_%u_%p.%d' delete all input;

sql 'alter system archive log current';

backup current controlfile format 'D:\backup\%T\control_%T_%u_%p.%d.bak';

backup spfile format 'D:\backup\%T\spfile_%T_%u_%p.%d.bak';

crosscheck backup;

crosscheck archivelog all;

delete noprompt expired archivelog all;

delete noprompt expired backup;

report obsolete;

delete noprompt obsolete;

release channel ch00;

release channel ch01;

release channel ch02;

release channel ch03;

}

(3)拷贝备库控制文件及备份文件到备库

7、恢复备库

(1)恢复控制文件

(2)恢复数据文件

RMAN> catalog start with 'E:\20260701\';

RMAN> restore database;

(3)备库应用日志同步

alter database recover managed standby database using current logfile disconnect from session; (同步主库日志)备库mount状态第一次同步主备数据;

alter database recover managed standby database cancel;(取消同步)

Alter database open;(启动备数据库到open read only模式)

alter database recover managed standby database using current logfile disconnect from session;(再次应用日志同步)

(4)检查主备数据状态

主库:SQL> select error,status from v$archive_dest where dest_id=2;

备注:主库日志传输到备库通道2有效;

备库:SQL> select process,sequence#,status from v$managed_standby;

备注:检查备库应用日志状态,显示应用日志正常。

(5)主库录入测试数据,检查备库情况

主库:

备库:

以上步骤不影响主库业务正常运行,接下来的步骤影响业务运行,需要申请停机时间。(30分钟)

四、主备切换

1、检查主库状态(原历史库)

备注:session active表示有终端还在连接主库,此时需要断开连接,到to standby状态才能切换。

2、检查备库状态

3、切换主库到备库(主库业务中断)

SQL> alter database commit to switchover to standby with session shutdown ;

4、备库切换到主库

SQL> alter database commit to switchover to primary;

新备库应用日志:

SQL> alter database recover managed standby database using current logfile disconnect;

5、检查新的主备状态

(1)主库录入数据,测试备库数据同步情况

主库:

备库:

五、带入双机集群

1、停用现有主库,手动脱盘d盘和E盘

2、通过集群软件带入双机

3、检查双机状态

4、检查双机tnsnames.ora和监听文件(确保客户端可以正常连接)

5、来回切换检查数据库是否正常

六、新双机集群搭建完成,去除adg参数

1、参数(停机删除)

修改后参数文件:

orcl.__db_cache_size=1493172224

orcl.__java_pool_size=16777216

orcl.__large_pool_size=603979776

orcl.__oracle_base='c:\app\Administrator'#ORACLE_BASE set from environment

orcl.__pga_aggregate_target=872415232

orcl.__sga_target=2583691264

orcl.__shared_io_pool_size=0

orcl.__shared_pool_size=436207616

orcl.__streams_pool_size=0

*.audit_file_dest='C:\app\Administrator\admin\orcl\adump'

*.audit_trail='db'

*.compatible='11.2.0.4.0'

*.control_files='D:\ORADATA\ORCLDG\CONTROL01.CTL','D:\ORADATA\ORCLDG\CONTROL02.CTL'#Restore Controlfile

*.db_block_size=8192

*.db_domain=''

*.db_file_name_convert='d:\oradata\orcl','d:\oradata\orcldg'

*.db_name='orcl'

*.db_recovery_file_dest='E:\flash_recovery_area'

*.db_recovery_file_dest_size=43851448320

*.db_unique_name='orcldg'

*.diagnostic_dest='C:\app\Administrator'

*.dispatchers='(PROTOCOL=TCP) (SERVICE=orclXDB)'

*.log_archive_format='ARC%S_%R.%T'

*.nls_language='SIMPLIFIED CHINESE'

*.nls_territory='CHINA'

*.open_cursors=300

*.pga_aggregate_target=858783744

*.processes=1500

*.remote_login_passwordfile='EXCLUSIVE'

*.sessions=1655

*.sga_target=2576351232

*.undo_tablespace='UNDOTBS1'

2、启动主库

备注:切换无日志告警,双机切换完成,adg切换到集群主库完成。

总结:实验中遇到有3个问题如下;

1、winows数据库安装软件完成后,手动创建实例,否则无法登录sqlplus / as sysdba;

2、备库密码文件名称问题导致主备应用日志无法同步,要求和实例名称相同即可;

3、adg同步库切换到单主库模式需要停机,对参数文件中有adg参数的一一删除,其他standbylog等信息可以不删,不影响业务使用。

2026-07-01

于合肥

相关新闻

  • STM32寄存器开发练习(二):GPIO的工作模式
  • LLM上下文工程:从Prompt设计到记忆系统的架构演进
  • 基于STM32与Si4732的高性能数字收音机设计

最新新闻

  • step1. 调用摄像头
  • NestJS框架教程
  • 量子计算中的基态制备与经典储层方法解析
  • 如何提取 Word 文档中的表格并导出为 Excel(Python 教程)
  • JSON数据格式解析与应用
  • 6DoF运动跟踪技术:从IMU到姿态解算的实践指南

日新闻

  • Python Playwright录制功能:从零到一构建自动化测试脚本
  • 如何用开源工具永久保存你心爱的小说:novel-downloader全攻略
  • In-Context Learning不是教知识,而是模式对齐:从5个示例到100个工业级样本的真相

周新闻

  • Windows字体自定义终极方案:No!! MeiryoUI完全指南
  • Deepin Boot Maker:告别命令行,3分钟制作Linux启动盘的智能解决方案
  • Plain Craft Launcher 2:重新定义你的Minecraft游戏体验

月新闻

  • 2026年6月公司网站搭建最新热门渠道测评:四大低成本/零代码平台对比+避坑
  • 【Linux】Linux arm 编译QT程序,出现expected “}“报错
  • 【MATLAB例程】四基站二维AOA定位与距离辅助增强对比仿真。基于角度观测和测距修正的固定目标平面定位精度分析

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号