#每日一记#第四天+将数据从单实例数据库迁移到RAC数据库
  

一道闪电 779

{{ttag.title}}
前言
业务需要,将原先单实例Oracle数据库的数据全部迁移到全新的RAC环境数据库下

实施步骤

源库
OS版本:Windows server 2016
Oracle 11.2.0.1.0
字符集 AL32UTF8  ##源库和目的库的字符集必须要一致
数据库查询字符集语句:
select* from nls_database_parameters where parameter='NLS_CHARACTERSET';


目的rac库
Os版本:Centos 7.4
Oracle 11.2.0.4.0
字符集 AL32UTF8
实例名 orcl1 orcl2
关掉前先create pfile=/recover/orclpfile.orafrom spfile,搞出一个pfile做模板参数文件

1、 源库mount
Shutdown immediate
Startup mount

2、 对源库做全备
Rmantarget /
crosscheckarchivelog all;
crosscheckbackup;
deleteexpired archivelog all;
deleteexpired backup;
CONFIGURECONTROLFILE AUTOBACKUP ON;   
##开启控制文件和参数文件自动备份

run
{
allocatechannel d1 type disk;
sql'alter system archive log current';
backupformat '/backup/orcl/lacgsfull_%U' database include current controlfile plusarchivelog ;   
releasechannel d1;
}
注:全库备份可能包含多个文件,其中最大的是数据文件,我们可以在rman中输入list backup,分别查看各个文件备份的都是什么

3、 将全库备份文件拷贝到目标库目录/backup/orcl
4、 修改参数文件
vi /recover/orclpfile.ora
*.audit_file_dest='/u01/app/oracle/admin/orcl/adump'
*.audit_trail='db'
*.compatible='11.2.0.4.0'
*.control_files='+DATA/orcl/controlfile/current.278.1090241967'
*.db_block_size=8192
*.db_create_file_dest='+DATA'
*.db_domain=''
*.db_name='orcl'
*.diagnostic_dest='/u01/app/oracle'
*.open_cursors=300
*.pga_aggregate_target=21474836480
*.processes=1000
*.remote_login_passwordfile='exclusive'
*.sessions=1105
*.sga_max_size=85899345920
*.sga_target=85899345920

5、 启动单节点数据库到nomount状态
startup pfile=/recover/ orclpfile.ora nomount;

6、 恢复控制文件
rman target /
restore controlfile from '/backup/orcl/ORCLFULL_0B0FNADC_1_1';
此时会输出新生成的控制文件的路径和文件名

7、 接上一步,修改参数文件里,将控制文件设置为新生成的路径和文件名

8、 生成spfile
     create spfile='+DATA/ORCL/spfileorcl.ora'from pfile='/recover/orclpfile.ora';
     vi $ORACLE_HOME/dbs/initorcl1.ora  #两个节点都做一遍
注:等全部设置完了,如果rac无法做到开机自启的话,可以看下alert文件,是否是该文件被修改了,指向了错误的spfile

9、 启动数据库到mount状态
Shutdowm immediate
Startup mount;

10   恢复数据文件
Rman target /
catalog start with '/backup/orcl';  #注册放置全库备份的目录

run {
setnewname for datafile 1 to '+DATA/ORCL/DATAFILE/SYSTEM01.DBF';
setnewname for datafile 2 to '+DATA/ORCL/DATAFILE/SYSAUX01.DBF';
setnewname for datafile 3 to '+DATA/ORCL/DATAFILE/UNDOTBS01.DBF';
setnewname for datafile 4 to '+DATA/ORCL/DATAFILE/USERS01.DBF';
setnewname for datafile 5 to '+DATA/ORCL/DATAFILE/EXAMPLE01.DBF';
restoredatabase;
switchdatafile all;
}


11   打开数据库,提示报错ORA-39700
startup upgrade;
@$ORACLE_HOME/rdbms/admin/catupgrd.sql;  #重新编译数据字典,我就做了这一步
@$ORACLE_HOME/rdbms/admin/utlrp.sql       #重新编译失效的object

12   打开数据库
Alter database open

13   两个节点添加日志文件
alterdatabase add logfile thread 1 group 4 ('+DATA') size 1024m;
alterdatabase add logfile thread 1 group 5 ('+DATA') size 1024m;
alterdatabase add logfile thread 1 group 6 ('+DATA') size 1024m;

14   删除旧的日志文件
Alter system switch logfile
Alter system checkpoint
这两步的目的是将redo的状态修改为inactive

此时可以删除
alter database drop logfile group 1
alter database drop logfile group 2
alter database drop logfile group 3

15   分配线程
alter system set instance_number=1 scope=spfile sid='orcl1';
alter system set instance_number=2 scope=spfilesid='orcl2';

16   开启集群模式
show parameter cluster;
alter system set cluster_database_instances=2 scope=spfile;
alter system set cluster_database=true scope=spfile;
注:重启生效,否则二节点无法启动

17   添加undo表空间
create undo tablespace undotbs2 datafile '+DATA' size 20G;
alter system set undo_tablespace='undotbs2' scope=spfilesid='orcl2';

18   重建temp表空间
select name from V$tempfile;
注:文件路径还是windows下的目录,删不掉
create temporarytablespace temp2 tempfile '+DATA' size 512m reuse autoexxtend on next 640k maxsizeunlimited;
       alter database default temporarytablespace temp2;
       drop tablespace temp includingcontents and datafiles;
create temporarytablespace temp tempfile '+DATA' size 512m reuse autoextend on next  640k maxsize unlimited;   
      alter database default temporarytablespace temp;
      drop tablespace temp2 includingcontents and datafiles;  #这一步我删不掉就放着了

19   启动二节点的实例
Startup

20   添加实例资源
crsctl stat res -t  #查看实例是否注册到集群中

添加实例到集群资源中
srvctl add database -d orcl -o/u01/app/oracle/product/11.2/db_1 -p +DATA/ orcl/spfileorcl.ora

添加数据库实例
srvctl add instance -d orcl -i orcl1 -n db01
srvctl add instance -d orcl -i orcl2 -n db02


21   设置开机启动
srvctl enable database -d orcl
srvctl enable instance -d orcl -i orcl1
srvctl enable instance -d orcl -i orcl2

22   更改监听参数
alter system set remote_listener='rac-scan:1521' scope=both;

23   集群验证
cluvfy comp crs -n all -verbose
重启主机,再次查看数据库实例有无开机自启,集群状态是否正常

24 业务验证

打赏鼓励作者,期待更多好文!

打赏
11人已打赏

飞翔的苹果 发表于 2022-7-6 08:09
  
多谢楼主分享,每天学习一下。
韩_鹏 发表于 2022-7-6 08:51
  
感谢分享                                                                           
guafeng00 发表于 2022-7-6 08:53
  

多谢楼主分享,每天学习一下。
白鹭先生 发表于 2022-7-6 09:23
  
多谢楼主分享,每天学习一下。
她丶ta 发表于 2022-7-6 09:23
  

多谢楼主分享,每天学习一下。
怪兽君 发表于 2022-7-6 09:30
  
多谢楼主分享,每天学习一下。
新手780102 发表于 2022-7-6 10:58
  
多谢楼主分享,每天学习一下。
思贤 发表于 2022-7-6 10:59
  
多谢楼主分享,每天学习一下。
新手612152 发表于 2022-7-6 11:01
  

多谢楼主分享,每天学习一下。
发表新帖
热门标签
全部标签>
每日一问
技术盲盒
技术笔记
干货满满
技术咨询
功能体验
新版本体验
产品连连看
GIF动图学习
标准化排查
自助服务平台操作指引
运维工具
2023技术争霸赛专题
通用技术
秒懂零信任
技术晨报
信服课堂视频
用户认证
安装部署配置
深信服技术支持平台
安全攻防
SDP百科
设备维护
社区帮助指南
答题自测
每日一记
玩转零信任
畅聊IT
专家问答
技术圆桌
在线直播
MVP
网络基础知识
升级
上网策略
测试报告
日志审计
问题分析处理
流量管理
云计算知识
原创分享
解决方案
sangfor周刊
VPN 对接
项目案例
SANGFOR资讯
专家分享
技术顾问
信服故事
功能咨询
终端接入
授权
资源访问
地址转换
虚拟机
存储
迁移
加速技术
排障笔记本
产品预警公告
信服圈儿
S豆商城资讯
技术争霸赛
「智能机器人」
追光者计划
答题榜单公布
纪元平台
卧龙计划
华北区拉练
天逸直播
以战代练
山东区技术晨报
文档捉虫活动
齐鲁TV
华北区交付直播
每周精选

本版版主

217
274
151

发帖

粉丝

关注

本版达人

皮皮虾·真

本周建议达人

郑州网络

本周分享达人

二进制网络

本周提问达人