Oracle Linux环境RAC迁移到异机RAC

本文详细介绍了从OracleLinux环境下的RAC数据库手动迁移到另一台RAC环境的步骤,包括RMAN全备与还原、参数文件编辑、数据库启动与还原、控制文件与数据文件的恢复等关键环节。

Oracle Linux环境RAC迁移到异机RAC

一、RMAN 手动还原备份集方式

1.1 迁移环境
源数据库

操作系统:CentsOS 7.2
Oracle数据库版本:11.2.0.4 RAC
ORACLE_SID:ORCLDB
DB_NAME:ORCLDB

目标数据库

操作系统:CentOS 7.5
Oracle数据库版本:11.2.0.4 RAC
即将创建ORACLE_SID:ORCLDB
即将创建DB_NAME:ORCLDB

1.2 迁移准备
1、在迁移前需要在rac源数据库做好RMAN全备,以及归档日志备份。在新RAC环境还原时需要考虑pfile中控制文件的路径。
2、还原之后需要在srvctl注册spfile路径
3、手动还原方式产生的dbid与源库相同

1.3 迁移步骤
1.3.1 源服务器做RMAN全备

rman target /

run{
allocate channel c1 device type disk;
allocate channel c2 device type disk;
allocate channel c3 device type disk;
backup as compressed backupset database format '/u01/rman/full_%d_%U.bak';
backup as compressed backupset archivelog all format '/u01/rman/arch_%d_%U.bak';
backup current controlfile format '/u01/rman/ctl_%d_%U.bak';
release channel c1;
release channel c2;
release channel c3;
}

1.3.2 拷贝备份到新环境RAC数据库服务器
在rac新环境中建立rman的备份目录“/u01/rman"

scp /u01/rman/* oracle@172.16.4.41:/u01/rman

1.3.3 编辑新rac环境参数文件

*.audit_trail='none'
*.cluster_database=false
*.compatible='11.2.0.4.0'
*.control_files='+DATA/orcldb/controlfile/current.274.980502673'
*.db_block_size=8192
*.db_create_file_dest='+DATA'
*.db_domain=''
*.db_name='orcldb'
*.diagnostic_dest='/u01/app/oracle'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=orcldbXDB)'
orcldb2.instance_number=2
orcldb1.instance_number=1
orcldb1.local_listener='(address=(protocol=tcp)(host=rac1-vip)(port=1521))'
orcldb2.local_listener='(address=(protocol=tcp)(host=rac2-vip)(port=1521))'
*.log_archive_dest_1='LOCATION=+arch VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=orcldb'
*.log_archive_format='%t_%s_%r.arc'
*.open_cursors=300
*.parallel_execution_message_size=8192
*.pga_aggregate_target=268435456
*.processes=1000
*.remote_listener='rac-scan:1521'
*.remote_login_passwordfile='EXCLUSIVE'
*.sessions=1105
*.sga_target=838860800
orcldb2.thread=2
orcldb1.thread=1
orcldb2.undo_tablespace='UNDOTBS2'
orcldb1.undo_tablespace='UNDOTBS1'


备注:
1、pfile中控制文件需要与rman还原之后的控制文件名字相同
2、cluster_database需要设置为false

1.3.4 新环境rac数据库启动到nomount

sqlplus / as sysdba
startup nomount;

1.3.5 还原控制文件

[oracle@rac1:/home/oracle]$rman target /   

RMAN> restore controlfile from '/u01/rman/ctl_ORCLDB_32tvuvos_1_1.bak'

还原控制文件之后需要修改pfile的控制文件参数

*.control_files='+DATA/orcldb/controlfile/current.还原之后控制文件名称'

shutdown immediate;

startup mount;



1.3.6 添加归档目录、还原数据文件、以及recover
如有部分新产生或者远程目录的归档日志,可手动加到控制文件

RMAN> catalog start with '/bak/arch/'
run{
allocate channel c1 device type disk;
allocate channel c2 device type disk;
allocate channel c3 device type disk;
allocate channel c4 device type disk;
allocate channel c5 device type disk;
allocate channel c6 device type disk;
allocate channel c7 device type disk;
allocate channel c8 device type disk;
restore database;
recover database;
release channel c1;
release channel c2;
release channel c3;
release channel c4;
release channel c5;
release channel c6;
release channel c7;
release channel c8;
}

1.3.7 在asm中生成spfile
rman还原之后在本地以及asm中不会有spfile,需要手动操作

create spfile='+ORADATA/orcldb/spfileorcldb.ora' from memory;

1.3.8 修改pfile指向asm spfile
pfile中内容指向共享存储的spfile

[oracle@rac1:/u01/app/oracle/product/11.2.0/db_1/dbs]$vi initorcldb1.ora

SPFILE='+DATA/orcldb/spfileorcldb.ora'

1.3.9 重启数据库

shutdown immediate;
startup;

1.3.10 在节点一查看undo参数

show parameter undo_tablespace

在节点一执行命令使节点2使用undotbs2表空间

alter system set undo_tablespace='UNDOTBS2' scope=spfile sid='orcldb2';

1.3.11 恢复两个节点为集群环境

alter system set cluster_database=true scope=spfile sid='*';
alter system set cluster_database_instances=2 scope=spfile sid='*';
alter system set instance_number=1 scope=spfile sid='orcldb1';
alter system set instance_number=2 scope=spfile sid='orcldb2';
alter system set thread=1 scope=spfile sid='orcldb1';
alter system set thread=2 scope=spfile sid='orcldb2';

alter system reset background_dump_dest;
alter system reset user_dump_dest;

1.3.12 重启数据库

shutdown immediate;
startup;

1.3.13 调整rac环境资源管理

在集群资源管理中增加新数据库orcldb

[oracle@rac1:/home/oracle]$srvctl add database -d orcldb -o $ORACLE_HOME

在节点1增加实例名orcldb1

[oracle@rac1:/home/oracle]$srvctl add instance -d orcldb -i orcldb1 -n rac1

在节点2增加实例名orcldb2

[oracle@rac1:/home/oracle]$srvctl add instance -d orcldb -i orcldb2 -n rac2

1.3.14 关闭数据库

shutdown immediate;

1.3.15 集群中加入spfile参数启动

srvctl  modify database -d orcldb -p +DATA/orcldb/spfileorcldb.ora

1.3.16 测试srvctl组件启动数据库

[oracle@rac1:/home/oracle]$srvctl start database -d orcldb

1.3.17 查看rac两个节点参数

SQL> show parameter cluster_database

NAME                                 TYPE       VALUE
------------------------------------ ---------- -----
cluster_database                     boolean    FALSE
cluster_database_instances           integer    2



SQL> show parameter instance_number

NAME                                 TYPE       VALUE
------------------------------------ ---------- -----
instance_number                      integer    1


SQL> show parameter thread
NAME                                 TYPE       VALUE
------------------------------------ ---------- -------
thread                               integer    0
内容概要:本文提出了一种融合模型预测控制(MPC)与人工势场法(APF)的船舶运动规划方法,旨在解决复杂海上交通场景下符合国际海上避碰规则(COLREG)的智能避碰路径规划问题。该方法充分利用MPC的滚动优化与前瞻预测能力,结合APF对动态障碍物的实时响应优势,构建包含目标引力场与多船斥力场的综合势场模型,并显式嵌入COLREG规则以确保避让行为的合法性与可解释性。通过在多船会遇、交叉、追越等多种复杂场景下的Matlab仿真实验,验证了该方法在生成安全、平滑、合规轨迹方面的有效性与鲁棒性,为智能船舶自主航行提供了可靠的决策支持。; 适合人群:从事航海自动化、智能船舶系统、海洋器人、路径规划与智能控制研究的科研人员,以及具备Matlab编程与控制系统基础的研究生和工程技术人员。; 使用场景及目标:① 实现多船复杂交互环境下的智能避碰决策;② 开发符合国际法规的无人船自主航行系统;③ 深入学习MPC与APF融合算法的设计原理与仿真实现;④ 为智能航运、海上交通管理系统提供核心算法技术支持。; 阅读建议:建议结合提供的Matlab代码进行仿真实验,重点理解势场函数构建、COLREG规则的形式化表达、约束处理制及MPC滚动优化的实现细节,同时对照国际避碰规则条款验证算法行为的合规性与合理性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值