ORACLE单机_数据文件更改路径
1.变更目的由于存储切换需要更换数据库文件路径。适用范围本变更适用于小机平台和X86平台Oracle数据库单机由于存储切换需要更换数据库文件路径的情况适用于Oracle数据库版本为11g以及11g以上。包含两类场景1.无归档需要更换数据库文件路径2.有归档需要更换数据库文件路径2.变更准备查看当前文件路径情况set lin 200 pages 999 col name for a90 select controlfile type,0 file#,name from v$controlfile union all select datafile,file#,name from v$datafile union all select tempfile,file#,name from v$tempfile union all select logfile,group#,member from v$logfile; TYPE FILE# NAME ----------- ---------------------------------------------------------- controlfile 0 /oradata/cesdb/control01.ctl controlfile 0 /oradata/cesdb/control02.ctl datafile 1 /oradata/cesdb/system01.dbf datafile 2 /oradata/cesdb/sysaux01.dbf datafile 3 /oradata/cesdb/undotbs01.dbf datafile 4 /oradata/cesdb/users01.dbf datafile 5 /oradata/copy/tbs01_01.dbf datafile 6 /oradata/scott_mv.dbf tempfile 1 /oradata/cesdb/temp01.dbf logfile 3 /oradata/cesdb/redo03.log logfile 2 /oradata/cesdb/redo02.log logfile 1 /oradata/cesdb/redo01.log备份当前控制文件和spfile有条件的提前做全库备份SQL ALTER DATABASE BACKUP CONTROLFILE TO /home/oracle/controlfile_20260508.bkp; --二进制 create pfile/home/oracle/pfile_20260508.ora from spfile; --pfile检查scnSQL -- 数据库scn select current_scn from v$database; -- 查看控制文件记录的数据库检查点 SCN SELECT checkpoint_change# FROM v$database; -- 查看数据文件头中记录的检查点 SCN SELECT file#, name, checkpoint_change#, fuzzy FROM v$datafile_header; -- 数据库scn select current_scn from v$database; CURRENT_SCN -------------------- 2310959 Elapsed: 00:00:00.00 18:08:57 SYSprimary -- 查看控制文件记录的数据库检查点 SCN SELECT checkpoint_change# FROM v$database; CHECKPOINT_CHANGE# -------------------- 2310445 Elapsed: 00:00:00.00 18:08:57 SYSprimary -- 查看数据文件头中记录的检查点 SCN 18:08:57 SYSprimary SELECT file#, name, checkpoint_change#, fuzzy FROM v$datafile_header; FILE# NAME CHECKPOINT_CHANGE# FUZ ------- -------------------------------------------------- --- 1 /oradata/cesdb/system01.dbf 2310445 YES 2 /oradata/cesdb/sysaux01.dbf 2310445 YES 3 /oradata/cesdb/undotbs01.dbf 2310445 YES 4 /oradata/cesdb/users01.dbf 2310445 YES 5 /oradata/copy/tbs01_01.dbf 2310445 YES 6 /oradata/scott_mv.dbf 2310445 YES 6 rows selected.生成替换命令SQL -- datafile select alter database rename file ||name|| to ||replace(name,/oradata/cesdb/,/oradata/cesdb_mv/)||; gen_sql from v$datafile; -- tempfile select alter database rename file ||name|| to ||replace(name,/oradata/cesdb/,/oradata/cesdb_mv/)||; gen_sql from v$tempfile; -- logfile select alter database rename file ||member|| to ||replace(member,/oradata/cesdb/,/oradata/cesdb_mv/)||; gen_sql from v$logfile; GEN_SQL --------------------------------------- alter database rename file /oradata/cesdb/system01.dbf to /oradata/cesdb_mv/system01.dbf; alter database rename file /oradata/cesdb/sysaux01.dbf to /oradata/cesdb_mv/sysaux01.dbf; alter database rename file /oradata/cesdb/undotbs01.dbf to /oradata/cesdb_mv/undotbs01.dbf; alter database rename file /oradata/cesdb/users01.dbf to /oradata/cesdb_mv/users01.dbf; alter database rename file /oradata/copy/tbs01_01.dbf to /oradata/copy/tbs01_01.dbf; alter database rename file /oradata/scott_mv.dbf to /oradata/scott_mv.dbf; GEN_SQL alter database rename file /oradata/cesdb/temp01.dbf to /oradata/cesdb_mv/temp01.dbf; GEN_SQL ------------------------------------------ alter database rename file /oradata/cesdb/redo03.log to /oradata/cesdb_mv/redo03.log; alter database rename file /oradata/cesdb/redo02.log to /oradata/cesdb_mv/redo02.log; alter database rename file /oradata/cesdb/redo01.log to /oradata/cesdb_mv/redo01.log;3.变更实施3.1无归档需要更换数据库文件路径关闭数据库拷贝对应文件到对应目录SQL Shut immediate; 18:27:39 SYSprimary Shut immediate; Database closed. Database dismounted. ORACLE instance shut down. $(ORACLE) cp /oradata/cesdb/* /oradata/cesdb_mv/.修改pfile替换控制文件路径$(ORACLE) vi /home/oracle/pfile_20260508.ora *.control_files/oradata/cesdb/control01.ctl,/oradata/cesdb/control02.ctl 修改为 *.control_files/oradata/cesdb_mv/control01.ctl,/oradata/cesdb_mv/control02.ctl SQL create spfile from pfile/home/oracle/pfile_20260508.ora; Startup mount; 18:46:12 SYSprimary create spfile from pfile/home/oracle/pfile_20260508.ora; File created. Elapsed: 00:00:00.04 18:46:14 SYSprimary Startup mount; ORACLE instance started. Total System Global Area 1252663296 bytes Fixed Size 2252824 bytes Variable Size 402657256 bytes Database Buffers 838860800 bytes Redo Buffers 8892416 bytes Database mounted.修改其他文件路径SQL 使用提前生成的SQL替换文件路径参考变更准备章节 alter database rename file /oradata/copy/tbs01_01.dbf to /oradata/copy/tbs01_01.dbf * ERROR at line 1: ORA-01511: error in renaming log/data files ORA-01523: cannot rename data file to /oradata/copy/tbs01_01.dbf - file already part of database 如果没有替换路径会报错 Elapsed: 00:00:00.00 18:53:11 SYSprimary alter database rename file /oradata/scott_mv.dbf to /oradata/scott_mv.dbf; alter database rename file /oradata/scott_mv.dbf to /oradata/scott_mv.dbf * ERROR at line 1: ORA-01511: error in renaming log/data files ORA-01523: cannot rename data file to /oradata/scott_mv.dbf - file already part of database Elapsed: 00:00:00.00 18:53:11 SYSprimary alter database rename file /oradata/cesdb/temp01.dbf to /oradata/cesdb_mv/temp01.dbf; Database altered. Elapsed: 00:00:00.00 alter database rename file /oradata/cesdb/redo03.log to /oradata/cesdb_mv/redo03.log; Database altered.检查文件路径和scn不一致不要开库SQL 参考变更准备章节 TYPE FILE# NAME ----------- -------------------- controlfile 0 /oradata/cesdb_mv/control01.ctl controlfile 0 /oradata/cesdb_mv/control02.ctl datafile 1 /oradata/cesdb_mv/system01.dbf datafile 2 /oradata/cesdb_mv/sysaux01.dbf datafile 3 /oradata/cesdb_mv/undotbs01.dbf datafile 4 /oradata/cesdb_mv/users01.dbf datafile 5 /oradata/copy/tbs01_01.dbf datafile 6 /oradata/scott_mv.dbf tempfile 1 /oradata/cesdb_mv/temp01.dbf logfile 3 /oradata/cesdb_mv/redo03.log logfile 2 /oradata/cesdb_mv/redo02.log logfile 1 /oradata/cesdb_mv/redo01.log -- 数据库scn select current_scn from v$database; CURRENT_SCN -------------------- 0 Elapsed: 00:00:00.00 19:01:03 SYSprimary -- 查看控制文件记录的数据库检查点 SCN SELECT checkpoint_change# FROM v$database; CHECKPOINT_CHANGE# -------------------- 2312837 Elapsed: 00:00:00.00 19:01:03 SYSprimary -- 查看数据文件头中记录的检查点 SCN 19:01:04 SYSprimary SELECT file#, name, checkpoint_change#, fuzzy FROM v$datafile_header; FILE# NAME CHECKPOINT_CHANGE# FUZ ------ ---------------------------------- -------------------- --- 1 /oradata/cesdb_mv/system01.dbf 2312837 NO 2 /oradata/cesdb_mv/sysaux01.dbf 2312837 NO 3 /oradata/cesdb_mv/undotbs01.dbf 2312837 NO 4 /oradata/cesdb_mv/users01.dbf 2312837 NO 5 /oradata/copy/tbs01_01.dbf 2312837 NO 6 /oradata/scott_mv.dbf 2312837 NO打开数据库SQL 先尝试read only然后重启数据库到open alter database open read only; select open_mode from v$database; Database altered. Elapsed: 00:00:00.22 20:48:44 SYSprimary OPEN_MODE -------------------- READ ONLY3.2有归档需要更换数据库文件路径需offline数据文件mv路径后online数据文件依次进行需要执行recover命令。Offline数据文件SQL alter database datafile /oradata/copy/tbs01_01.dbf offline; Database altered. $(ORACLE) mv /oradata/copy/tbs01_01.dbf /oradata/cesdb_mv/. SQL alter database rename file /oradata/copy/tbs01_01.dbf to /oradata/cesdb_mv/tbs01_01.dbf; Database altered.检查路径和scnSQL -- 数据库scn select current_scn from v$database; -- 查看控制文件记录的数据库检查点 SCN SELECT checkpoint_change# FROM v$database; -- 查看数据文件头中记录的检查点 SCN SELECT file#, name, checkpoint_change#, fuzzy FROM v$datafile_header; -- 数据库scn select current_scn from v$database; CURRENT_SCN -------------------- 2316469 Elapsed: 00:00:00.00 22:48:37 SYSprimary -- 查看控制文件记录的数据库检查点 SCN SELECT checkpoint_change# FROM v$database; CHECKPOINT_CHANGE# -------------------- 2313198 Elapsed: 00:00:00.00 22:48:37 SYSprimary -- 查看数据文件头中记录的检查点 SCN 22:48:37 SYSprimary SELECT file#, name, checkpoint_change#, fuzzy FROM v$datafile_header; FILE# NAME CHECKPOINT_CHANGE# FUZ ----- ---------------------------------- -------------------- --- 1 /oradata/cesdb_mv/system01.dbf 2313198 YES 2 /oradata/cesdb_mv/sysaux01.dbf 2313198 YES 3 /oradata/cesdb_mv/undotbs01.dbf 2313198 YES 4 /oradata/cesdb_mv/users01.dbf 2313198 YES 5 /oradata/cesdb_mv/tbs01_01.dbf 2312841 YES 6 /oradata/scott_mv.dbf 2313198 YES 6 rows selected.Online数据文件SQL alter database datafile /oradata/cesdb_mv/tbs01_01.dbf online; ERROR at line 1: ORA-01113: file 5 needs media recovery ORA-01110: data file 5: /oradata/cesdb_mv/tbs01_01.dbf SQL recover datafile /oradata/cesdb_mv/tbs01_01.dbf; Media recovery complete. SQL alter database datafile /oradata/cesdb_mv/tbs01_01.dbf online; Database altered.执行checkpointSQL alter system checkpoint; Database altered.4.变更验证4.1检查路径和scn查看当前文件路径情况SQL set lin 200 pages 999 col name for a90 select controlfile type,0 file#,name from v$controlfile union all select datafile,file#,name from v$datafile union all select tempfile,file#,name from v$tempfile union all select logfile,group#,member from v$logfile; TYPE FILE# NAME ----------- -------------------- --------------------------------- controlfile 0 /oradata/cesdb_mv/control01.ctl controlfile 0 /oradata/cesdb_mv/control02.ctl datafile 1 /oradata/cesdb_mv/system01.dbf datafile 2 /oradata/cesdb_mv/sysaux01.dbf datafile 3 /oradata/cesdb_mv/undotbs01.dbf datafile 4 /oradata/cesdb_mv/users01.dbf datafile 5 /oradata/cesdb_mv/tbs01_01.dbf datafile 6 /oradata/scott_mv.dbf tempfile 1 /oradata/cesdb_mv/temp01.dbf logfile 3 /oradata/cesdb_mv/redo03.log logfile 2 /oradata/cesdb_mv/redo02.log logfile 1 /oradata/cesdb_mv/redo01.log检查scnSQL -- 数据库scn select current_scn from v$database; -- 查看控制文件记录的数据库检查点 SCN SELECT checkpoint_change# FROM v$database; -- 查看数据文件头中记录的检查点 SCN SELECT file#, name, checkpoint_change#, fuzzy FROM v$datafile_header; -- 数据库scn select current_scn from v$database; CURRENT_SCN -------------------- 2318654 Elapsed: 00:00:00.00 23:14:45 SYSprimary -- 查看控制文件记录的数据库检查点 SCN SELECT checkpoint_change# FROM v$database; CHECKPOINT_CHANGE# -------------------- 2318448 Elapsed: 00:00:00.01 23:14:45 SYSprimary -- 查看数据文件头中记录的检查点 SCN 23:14:45 SYSprimary SELECT file#, name, checkpoint_change#, fuzzy FROM v$datafile_header; FILE# NAME CHECKPOINT_CHANGE# FUZ ------ ------------------------------------------------------ --- 1 /oradata/cesdb_mv/system01.dbf 2318448 YES 2 /oradata/cesdb_mv/sysaux01.dbf 2318448 YES 3 /oradata/cesdb_mv/undotbs01.dbf 2318448 YES 4 /oradata/cesdb_mv/users01.dbf 2318448 YES 5 /oradata/cesdb_mv/tbs01_01.dbf 2318448 YES 6 /oradata/scott_mv.dbf 2318448 YES 6 rows selected.4.2检查文件时间检查新路径文件时间是否比老路径文件时间新$(ORACLE) ls -l /oradata/cesdb_mv/ total 3734868 -rw-r----- 1 oracle oinstall 9748480 May 19 23:17 control01.ctl -rw-r----- 1 oracle oinstall 9748480 May 19 23:17 control02.ctl -rw-r----- 1 oracle oinstall 104858112 May 19 23:17 redo01.log -rw-r----- 1 oracle oinstall 104858112 May 19 22:41 redo02.log -rw-r----- 1 oracle oinstall 104858112 May 19 22:41 redo03.log -rw-r----- 1 oracle oinstall 576724992 May 19 23:11 sysaux01.dbf -rw-r----- 1 oracle oinstall 828383232 May 19 23:11 system01.dbf -rw-r----- 1 oracle oinstall 943726592 May 19 23:11 tbs01_01.dbf -rw-r----- 1 oracle oinstall 56631296 May 19 22:41 temp01.dbf -rw-r----- 1 oracle oinstall 503324672 May 19 23:11 undotbs01.dbf -rw-r----- 1 oracle oinstall 5251072 May 19 23:11 users01.dbf ls -l /oradata/cesdb/ total 3703972 -rw-r----- 1 oracle oinstall 104858112 May 18 18:00 redo01.log -rw-r----- 1 oracle oinstall 104858112 May 18 18:29 redo02.log -rw-r----- 1 oracle oinstall 104858112 May 18 18:00 redo03.log -rw-r----- 1 oracle oinstall 566239232 May 18 18:29 sysaux01.dbf -rw-r----- 1 oracle oinstall 828383232 May 18 18:29 system01.dbf -rw-r----- 1 oracle oinstall 943726592 May 8 16:47 tbs01_01.dbf -rw-r----- 1 oracle oinstall 56631296 May 18 18:00 temp01.dbf -rw-r----- 1 oracle oinstall 503324672 May 18 18:29 undotbs01.dbf -rw-r----- 1 oracle oinstall 5251072 May 18 18:29 users01.dbf5.变更回退如果发现迁移后的数据文件路径有误需要重新迁移或回退可再次按照对应步骤进行如果是虚拟机可以停库后打快照以便变更回退快照如果有全量备份可以恢复全量备份6.变更应急若数据库文件迁移过程中磁盘空间不足则需紧急扩容保证数据库文件迁移正常。检查Oracle单机文件所在磁盘空间是否充足$(ORACLE)df -h

相关新闻

科研 Agent 已经不缺“会回答”,缺的是“可引用证据层”:为什么 scientific RAG 不能只靠 OpenAlex

科研 Agent 已经不缺“会回答”,缺的是“可引用证据层”:为什么 scientific RAG 不能只靠 OpenAlex

导语 过去一周,AI Agent 的热点明显从“能不能自主完成任务”转向“证据是否可追溯、上下文是否可核查、输出能否复现”。对科研场景尤其如此。真正能落地的科研 Agent,不只需要论文标题和摘要,更需要可引用 chunk、原文上下文、结构化元数据…

2026/7/5 13:47:30阅读更多 →
Pwncat深度解析:从反向Shell管理到内网穿透的攻防实战

Pwncat深度解析:从反向Shell管理到内网穿透的攻防实战

1. 项目概述:从“瑞士军刀”到攻防博弈的缩影在渗透测试和红队评估的实战中,获取一个反向Shell往往只是万里长征的第一步。一个简陋的、功能单一的Shell连接,就像只拿到了一把螺丝刀,面对复杂的目标环境,你可能会发现自…

2026/7/5 13:47:30阅读更多 →
MatAnyone终极指南:告别绿幕,三步实现专业级AI视频抠像

MatAnyone终极指南:告别绿幕,三步实现专业级AI视频抠像

MatAnyone终极指南:告别绿幕,三步实现专业级AI视频抠像 【免费下载链接】MatAnyone [CVPR 2025] MatAnyone: Stable Video Matting with Consistent Memory Propagation 项目地址: https://gitcode.com/gh_mirrors/ma/MatAnyone 还在为复杂的视频…

2026/7/5 13:47:30阅读更多 →
[操作系统]操作系统核心笔记(面试)

[操作系统]操作系统核心笔记(面试)

一、OS核心框架模块[0x0001][0x0001]核心考查形式进程管理[0x0001][0x0001]计算题(调度、死锁)、综合题内存管理[0x0001][0x0001]计算题(地址变换、缺页)、概念题文件管理[0x0001][0x0001]选择题、基础应用题设备管理[0x0001][0x0…

2026/7/5 14:47:34阅读更多 →
VLC for Android:打造跨平台全能媒体播放器的终极指南

VLC for Android:打造跨平台全能媒体播放器的终极指南

VLC for Android:打造跨平台全能媒体播放器的终极指南 【免费下载链接】vlc-android VLC for Android, Android TV and ChromeOS 项目地址: https://gitcode.com/gh_mirrors/vl/vlc-android VLC for Android是VideoLAN组织开发的官方Android平台多媒体播放器…

2026/7/5 14:47:34阅读更多 →
第三视觉理解徐玉生与他的商业活动(29)

第三视觉理解徐玉生与他的商业活动(29)

你的这个提问,其实触及了马克思主义政治经济学在当代中国最核心的实践命题。答案是:国家不仅“会”调整,而且正在通过“进一步全面深化改革”进行一场宏大、系统且深刻的主动调整。但需要明确的是,这种调整绝不是简单地发一纸行政…

2026/7/5 14:47:34阅读更多 →
第三视觉理解徐玉生与他的商业活动(28)

第三视觉理解徐玉生与他的商业活动(28)

这次围绕“发展新质生产力”和“构建新型生产关系”的进一步全面深化改革,与过去的改革相比,确实有着本质的不同。过去的改革更多是为了解决“有没有”、“快不快”的问题,而这次改革的核心是解决“好不好”、“强不强”的问题。结合历史脉络…

2026/7/5 14:47:34阅读更多 →
【QT】qt里的c++项目为啥不能用NULL

【QT】qt里的c++项目为啥不能用NULL

在 Qt 的 C 项目中,并不是完全不能使用NULL,但通常更推荐使用nullptr,主要原因与 C 标准的演进和类型安全有关:NULL的本质:在 C 中,NULL通常被定义为整数0(或者(void*)0,但在 C 中会…

2026/7/5 14:47:34阅读更多 →
自驾游大西北

自驾游大西北

文章目录一、行程整体节奏说明二、10天9晚精确时间线(标准版)D1 榆次→太原南→兰州西取车入陇,黄河初遇D2 兰州→乌鞘岭→天梯山石窟→百塔寺→武威踏入河西,佛风初度D3 武威→【可选:金昌矿山公园】→皇城草原→焉支…

2026/7/5 14:42:34阅读更多 →
从GitHub安全案例解析常见漏洞与防护实践

从GitHub安全案例解析常见漏洞与防护实践

1. 项目概述:从GitHub Trending看安全实战 最近在GitHub Trending上看到一个项目,叫 skills4/skills ,它因为一些安全漏洞案例被大家讨论。这其实是一个挺典型的场景:一个旨在展示或教授某种技能的仓库,本身却成了安…

2026/7/5 0:01:08阅读更多 →
MLT 2026启示:因果推理与概率建模驱动下一代LLM应用

MLT 2026启示:因果推理与概率建模驱动下一代LLM应用

# MLT 2026启示:因果推理与概率建模驱动下一代LLM应用## 一、背景与挑战:从“黑箱预测”到“可信推理”2026年6月,第7届机器学习与趋势国际会议(MLT 2026)将在悉尼召开。会议议程中,“因果与可解释机器学习…

2026/7/5 0:01:08阅读更多 →
通达OA SQL注入漏洞深度剖析:从手工注入到自动化利用与防御

通达OA SQL注入漏洞深度剖析:从手工注入到自动化利用与防御

1. 项目概述与漏洞背景最近在梳理一些历史OA系统的安全风险时,通达OA v11.6版本中的一个老漏洞又进入了我的视线。这个漏洞位于/general/bi_design/appcenter/report_bi.func.php文件中,是一个典型的SQL注入点。虽然这个漏洞的利用方式看起来并不复杂&am…

2026/7/5 0:01:08阅读更多 →
从GitHub安全案例解析常见漏洞与防护实践

从GitHub安全案例解析常见漏洞与防护实践

1. 项目概述:从GitHub Trending看安全实战 最近在GitHub Trending上看到一个项目,叫 skills4/skills ,它因为一些安全漏洞案例被大家讨论。这其实是一个挺典型的场景:一个旨在展示或教授某种技能的仓库,本身却成了安…

2026/7/5 0:01:08阅读更多 →
MLT 2026启示:因果推理与概率建模驱动下一代LLM应用

MLT 2026启示:因果推理与概率建模驱动下一代LLM应用

# MLT 2026启示:因果推理与概率建模驱动下一代LLM应用## 一、背景与挑战:从“黑箱预测”到“可信推理”2026年6月,第7届机器学习与趋势国际会议(MLT 2026)将在悉尼召开。会议议程中,“因果与可解释机器学习…

2026/7/5 0:01:08阅读更多 →
通达OA SQL注入漏洞深度剖析:从手工注入到自动化利用与防御

通达OA SQL注入漏洞深度剖析:从手工注入到自动化利用与防御

1. 项目概述与漏洞背景最近在梳理一些历史OA系统的安全风险时,通达OA v11.6版本中的一个老漏洞又进入了我的视线。这个漏洞位于/general/bi_design/appcenter/report_bi.func.php文件中,是一个典型的SQL注入点。虽然这个漏洞的利用方式看起来并不复杂&am…

2026/7/5 0:01:08阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/5 1:30:27阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/5 3:48:10阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/5 3:48:09阅读更多 →