Oracle-RAC中误建本地数据文件问题处理
概述
- 对数据库服务器管理操作不规范,容易被非专业技术人员,特别是对RAC不熟悉人员,在添加数据文件或创建表空间时,往往容易创建数据文件到本节点主机上,此时仅能被当前节点访问
- 认为不小心添加的数据文件漏写
+
号,导致自动创建到dbs目录上
处理过程
非系统表空间本地数据文件(归档模式)
可以不停库处理
确定本地数据文件编号
col file_name for a80
col tablespace_name for a32
select file_name,file_id,ONLINE_STATUS,tablespace_name from dba_data_files;
将本地数据文件offline处理
将本地数据文件OFFLINE,或可以将整个表空间OFFLINE。这里假设本地数据文件号为11
alter database datafile 11 offline;
拷贝本地磁盘文件到ASM
asmcmd方式
asmcmd
cd +DATA/orcl/datafile
cp /oradata/orcl/datafile/test01.dbf .
rman方式
rman target /
copy datafile 11 to '+DATA'
rename数据文件
-- sqlplus "/ as sysdba"
alter database rename file '/oradata/orcl/datafile/test01.dbf' to '+data/orcl/datafile/test01.dbf';
-- 查看文件状态为RECOVER
select file_name,file_id,ONLINE_STATUS,tablespace_name from dba_data_files;
recover数据文件并online
sqlplus "/ as sysdba"
alter database recover datafile 11;
alter database datafile 11 online;
select file_name,file_id,ONLINE_STATUS,tablespace_name from dba_data_files;
非系统表空间本地数据文件(非归档模式)
将对应的表空间offline
非归档模式下单个数据文件在数据库OPEN状态下无法OFFLINE
alter tablespace test offline;
拷贝本地数据文件到ASM
rman target /
copy datafile 11 to '+data';
rename数据文件
-- sqlplus "/ as sysdba"
alter database rename file '/oradata/orcl/datafile/test01.dbf' to '+data/orcl/datafile/test01.dbf';
-- 查看文件状态为RECOVER
select file_name,file_id,ONLINE_STATUS,tablespace_name from dba_data_files;
将offline表空间修改为online
alter tablespace test online;
系统表空间(SYSTEM)本地数据文件
停数据库
shutdown immediate;
移动数据文件到ASM
asmcmd方式
asmcmd
cp
rman方式
report schema;
backup as copy datafile 11 format '+data';
switch datafile 11 to copy;
数据库启动到mount状态
startup mount;
rename数据文件
-- sqlplus "/ as sysdba"
alter database rename file '/oradata/orcl/datafile/system02.dbf' to '+data/orcl/datafile/system02.dbf';
打开数据库
alter database open;
重启数据库
可能出现errors ORA-01516 or original error ORA-01157: cannot identify/lock data file错误,需要重启其它DB实例
shutdown immediate;
startup;
12C 环境可以在线移动数据文件
alter database move datafile 12 to '+data/O12C/datafile/test02.dbf';
不需区分系统表空间还是非系统表空间数据文件
附录
使用rman backup as copy方式
不需要执行rename数据文件
# sqlplus offline数据文件
alter database datafile 8 offline;
# rman
report schema;
backup as copy datafile 8 format '+data';
switch datafile 8 to copy;
# sqlplus
recover datafile 8;
alter database datafile 8 online;
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)
2020-08-12 GO-操作etcd简单示例