Oracle 更改数据文件位置的几种常用方式
Oracle 更改数据文件位置的几种常用方式
A.归档模式下
1、offline 表空间:alter tablespace tablespace_name offline;
2、复制数据文件到新的目录;
3、rename 修改表空间,并修改控制文件;
4、online 表空间;
注意:系统表空间只有 SYSAUX 可以采用该方式修改存储位置。
1、offline 表空间 TBS_NAME
SQL> select name from vdatafile;
SQL> alter tablespace TBS_NAME offline;
2、复制数据文件到新的目录
3、rename修改表空间数据文件为新的位置,并修改控制文件
SQL> alter tablespace TBS_NAME rename datafile '/XXX.dbf' to '/XXX.dbf';
4、online表空间
SQL> alter tablespace TBS_NAME online;
SQL> select name from vdatafile;
SQL> select file_name,tablespace_name from dba_data_files where tablespace_name='TBS_NAME';
修改系统表空间 SYSTEM 与 UNDO 表空间位置:
shutdown immediate
startup mount
移动系统表空间(SYSTEM表空间)的数据文件到新的位置,然后修改表空间 SYSTEM、UNDO 数据文件路径
alter database rename file 'C:\APP\DB_DATA\ORCL\SYSTEM01.DBF' to 'C:\APP\DB_DATA\UTBS\SYSTEM01.DBF';
alter database rename file 'C:\APP\DB_DATA\ORCL\UNDOTBS01.DBF' to 'C:\APP\DB_DATA\UTBS\UNDOTBS01.DBF';
alter database open;
B.非归档模式
1、关闭数据库;
2、复制数据文件到新的位置;
3、启动数据库到mount状态;
4、通过SQL修改数据文件位置;
5、打开数据库;
1、关闭数据库
SQL> select name from vdatafile;
SQL> shutdown immediate;
2、复制数据文件到新的位置;
3、启动数据库到mount状态;
SQL> startup mount
4、通过SQL修改数据文件位置;
SQL> alter database rename file '/XXX.dbf' to '/XXX.dbf';
5、打开数据库;
SQL> alter database open;
SQL> select name from vdatafile;
SQL> select file_name,tablespace_name from dba_data_files where tablespace_name='TBS_NAME';
C.归档模式下通过RMAN的backup as copy来更改,首选方式
1.offline datafile
2.backup as copy数据文件到指定路径
3.switch datafile to copy切换控制文件中数据文件路径
4.由于offline datafile不会做检查点,所以在online之前需要recover datafile
5.online datafile
C1、利用rman copy改变数据文件的路径
SQL> col file_name for a70
SQL> select file_name,tablespace_name,autoextensible,bytes/1024/1024 mb from dba_data_files;
本实验目的是将 /u01/test01.dbf文件的修改为 /u01/app/oracle/oradata/orcl/test01.dbf
关闭数据库,再启动到mount状态
SQL> shutdown immediate
SQL> startup mount;
$ rman target /
RMAN> copy datafile '/u01/test.dbf' to '/u01/app/oracle/oradata/orcl/test01.dbf';
RMAN> switch datafile '/u01/test.dbf' to copy;
再打开数据库,查看路径,已经该变
SQL> alter database open;
SQL> col file_name for a70
SQL> select file_name,tablespace_name,autoextensible,bytes/1024/1024 mb from dba_data_files;
C2、使用rman copy进行数据文件copy(不需要停机)
建议此步骤在业务空闲期间做,这样在copy期间产生的归档日志较少,最后切换数据文件的时候需要应用的日志较少,停机时间较短
使用rman进行copy,可以根据实际情况开多个通道加快copy速度.
run{
allocate channel ch1 device type disk;
allocate channel ch2 device type disk;
allocate channel ch3 device type disk;
allocate channel ch4 device type disk;
backup as copy database format '/u01/app/oradata/%b';
}
停止数据库,修改参数文件,拷贝控制文件,恢复数据库(需要停机)
1.修改参数文件
SQL> alter system set control_files='/u01/app/oradata/control01.ctl','/u01/app/oradata/control02.ctl' scope=spfile;
2.停止数据库,拷贝控制文件
注意这里拷贝的文件名需要和上面参数文件中指定的一致
SQL> shutdown immediate
$ cp /u01/app/oracle/oradata/ORCL/control01.ctl /u01/app/oradata/control01.ctl
$ cp /u01/app/oracle/oradata/ORCL/control02.ctl /u01/app/oradata/control02.ctl
3.使用rman恢复数据库
$ rman target /
RMAN>startup mount;
RMAN>switch database to copy;
RMAN>recover database;
RMAN>alter database open;
到此,数据库迁移完成,检查所有的文件目录
SQL> select file_name from dba_data_files;
SQL> select file_name from dba_temp_files;
SQL> select member from v$logfile;
SQL> show parameter control
到这一步会发现临时文件和redo日志文件还存放在之前的目录里面:
首先需要切换临时表空间数据文件目录,步骤如下:
先给临时表空间添加临时文件,再删除原来的临时文件:
alter tablespace TEMP add tempfile '/u01/app/oradata/temp01.dbf' size 100m autoextend on;
alter database tempfile '/u01/app/oracle/oradata/ORCL/temp01.dbf' drop;
检查临时文件是否到了新的目录中:
SQL> select file_name from dba_temp_files;
修改redo日志文件路径位置:
创建过渡 redo 组并存放至新的位置
select group#,bytes/1024/1024,status from v$log;
alter database add logfile group 4 '/u01/app/oradata/redo04.log' size 200M;
alter database add logfile group 5 '/u01/app/oradata/redo05.log' size 200M;
alter database add logfile group 6 '/u01/app/oradata/redo06.log' size 200M;
切换到过渡redo
alter system switch logfile;
alter system archive log current;
alter system checkpoint;
查看是否切换到过渡的redo
select group#,bytes/1024/1024,status from v$log;
删除之前位置的日志组
alter database drop logfile group 1;
alter database drop logfile group 2;
alter database drop logfile group 3;
通过操作系统删除老的redo01.log、redo02.log、redo03.log
rm -rf redo01.log、redo02.log、redo03.log
到此所有数据文件、临时文件、日志组文件全部更换至新位置,更新位置完成后验证数据库是否正常即可。
附上截取数据文件目录、数据文件名称的SQL语句,如下:
select substr(file_name, 1, instr(file_name, '\', -1)) from dba_data_files;
SELECT SUBSTR(file_name, INSTR(file_name, '\', -1) + 1) FROM dba_data_files;
相关文章:
Oracle 更改数据文件位置的几种常用方式
Oracle 更改数据文件位置的几种常用方式 A.归档模式下 1、offline 表空间:alter tablespace tablespace_name offline; 2、复制数据文件到新的目录; 3、rename 修改表空间,并修改控制文件; 4、online 表空间…...
【opencv】图像畸变校正
接上篇文章:【鱼眼+普通相机】相机标定 附代码: 方法一: 使用cv2.undistort """Create May 11, 2024author Wang Jiajun """import cv2 import numpy as npdef correct(img,camera_fileE:/cali…...
Charger之二输入电压动态电源原理(VIN-DPM)
主要内容 Charger的VIN-DPM 前篇内容:电池管理IC(Charger)了解一下? 领资料:点下方↓名片关注回复:粉丝群 正文 一、 VIN-DPM概念 VIN-DPM是指输入电压动态电源管理(Input voltage dynamic…...
【半夜学习MySQL】表结构的操作(含表的创建、修改、删除操作,及如何查看表结构)
🏠关于专栏:半夜学习MySQL专栏用于记录MySQL数据相关内容。 🎯每天努力一点点,技术变化看得见 文章目录 创建表查看表结构修改表删除表 创建表 语法: create table table_name(field1 datatype,field2 datatype,fiel…...
曲线救国:window 安装 docker
你好,我是 shengjk1,多年大厂经验,努力构建 通俗易懂的、好玩的编程语言教程。 欢迎关注!你会有如下收益: 了解大厂经验拥有和大厂相匹配的技术等 希望看什么,评论或者私信告诉我! 文章目录 一…...
番外篇 | 利用PyQt5+YOLOv5来搭建目标检测系统(附可视化界面+功能介绍+源代码)
前言:Hello大家好,我是小哥谈。PyQt5是一个Python绑定的Qt库,是用于创建图形用户界面(GUI)和其他应用程序组件的工具包。PyQt5提供了许多GUI元素,如按钮、文本框、标签等,也提供了许多Qt的功能,如网络、数据库、XML等。通过PyQt5可以在Python中使用Qt的丰富功能和强大的工…...
Pascal Content数据集
如果您想使用Pascal Context数据集,请安装Detail,然后运行以下命令将注释转换为正确的格式。 1.安装Detail 进入项目终端 #即 这是在我自己的项目下直接进行克隆操作: git clone https://github.com/zhanghang1989/detail-api.git $PASCAL…...
【Unity】使用Resources.LoadAll读取文件的顺序问题
最近在做客户的一个项目,其中的一个模块使用到了照片,但是发现了一个很严重的问题。当你在使用Unity的时候,它竟然不按照顺序读取?这个机器人是不是逻辑有问题?如下图: 名字脱敏了哈。。。 照片比较多&…...
pdf怎么标注红色方框?五种PDF标注红色方框方法
pdf怎么标注红色方框?在当今数字化时代,PDF文档已成为我们日常工作和学习中不可或缺的一部分。然而,如何在海量的PDF文件中快速、准确地标注出重要信息,让内容更加醒目呢?今天,我将向大家介绍五种PDF标注红…...
C++字符串细节,面试题06
文章目录 22. 字符串22.1. 字符数组 vs 字符指针 vs 常量字符指针 vs string22.2. strcpy vs sprintf vs memcpy22.3. strlen vs length vs size vs sizeof22.4. 字符串之间的转换22.5 其他数据类型与字符串之间的转换22.6 字符串分割 22. 字符串 22.1. 字符数组 vs 字符指针 …...
AutoModelForCausalLM.from_pretrained 函数调用本地权重报错
文章目录 1、代码报错的位置(前情提要)finetune_lora.shfintune_clm_lora.py 2、报错截图2.1、huggingfaces上的 meta-llama/Llama-2-7b-chat-hf2.2、服务器上模型文件路径 3、特别注意事项 1、代码报错的位置(前情提要) 在终端直…...
【qt】动态属性
这里写目录标题 一.属性1.属性的好处2.添加属性3.使用属性 二.只读属性 一.属性 1.属性的好处 说到属性(property),你们会想到什么?我会联想到特点,就是一类对象所特有的,在C中,成员数据就是这…...
Git知识点总结
目录 1、版本控制 1.1什么是版本控制 1.2常见的版本控制工具 1.3版本控制分类 2、集中版本控制 SVN 3、分布式版本控制 Git 2、Git与SVN的主要区别 3、软件下载 安装:无脑下一步即可!安装完毕就可以使用了! 4、启动Git 4.1常用的Li…...
【数据库】数据库指令
一。数据库打开 1.命令行 2.进入mysql mysql -uroot -p密码 3.退出 exit; 二。针对数据库的操作 1.创建数据库(有分号) create database student; 2.使用数据库 use student 3.删除数据库(有分号) drop database…...
设计模式——状态模式(State)
状态模式(State Pattern)是一种行为设计模式,它允许一个对象在其内部状态改变时改变它的行为。对象看起来似乎修改了它的类。状态模式通过把对象的每一个状态都封装到一个单独的类中,并将请求委托给当前状态对象来让状态的变化与行…...
理解打包好的vue项目结构dist包
目录 linux查询dist目录整体解释子目录文件解释CSSFONTSJS linux查询dist目录 roothcss-ecs-7881:/www/java_project/dist# ls -l total 3004 drwxr-xr-x 2 root root 4096 Dec 31 10:15 css -rw-r--r-- 1 root root 4286 Dec 31 10:15 favicon.ico drwxr-xr-x 2 root r…...
24深圳杯C题18页高质量论文+可执行代码+图表
比赛题目的完整版思路可执行代码数据参考论文都会在第一时间更新上传的,大家可以参考我往期的资料,所有的资料数据以及到最后更新的参考论文都是一次付费后续免费的。注意:(建议先下单占坑,因为随着后续我们更新资料数…...
Midjourney Imagine API 申请及使用
Midjourney Imagine API 申请及使用 申请流程 要使用 Midjourney Imagine API,首先可以到 Midjourney Imagine API 页面点击「Acquire」按钮,获取请求所需要的凭证: 如果你尚未登录或注册,会自动跳转到登录页面邀请您来注册和登…...
电子邮箱是什么?怎么申请一个电子邮箱?
电子邮箱是我们沟通的工具,细分为免费版电子邮箱和付费版电子邮箱。怎么申请一个属于自己的电子邮箱?今天小编就分享一下电子邮箱注册教程,手把手教您注册一个电子邮箱。 一、电子邮箱的定义 电子邮箱,简称邮箱,是一…...
C++ 并发编程指南(11)原子操作 | 11.4、通过内存序实现顺序模型
文章目录 一、通过内存序实现顺序模型1、Relaxed Ordering2、Sequencial Consistent Ordering3、Acquire Release Ordering 前言 前文介绍了六种内存顺序,以及三种内存模型,本文通过代码示例讲解六种内存顺序使用方法,并实现相应的内存模型。…...
前端导出带有合并单元格的列表
// 导出async function exportExcel(fileName "共识调整.xlsx") {// 所有数据const exportData await getAllMainData();// 表头内容let fitstTitleList [];const secondTitleList [];allColumns.value.forEach(column > {if (!column.children) {fitstTitleL…...
Leetcode 3577. Count the Number of Computer Unlocking Permutations
Leetcode 3577. Count the Number of Computer Unlocking Permutations 1. 解题思路2. 代码实现 题目链接:3577. Count the Number of Computer Unlocking Permutations 1. 解题思路 这一题其实就是一个脑筋急转弯,要想要能够将所有的电脑解锁&#x…...
【SQL学习笔记1】增删改查+多表连接全解析(内附SQL免费在线练习工具)
可以使用Sqliteviz这个网站免费编写sql语句,它能够让用户直接在浏览器内练习SQL的语法,不需要安装任何软件。 链接如下: sqliteviz 注意: 在转写SQL语法时,关键字之间有一个特定的顺序,这个顺序会影响到…...
MODBUS TCP转CANopen 技术赋能高效协同作业
在现代工业自动化领域,MODBUS TCP和CANopen两种通讯协议因其稳定性和高效性被广泛应用于各种设备和系统中。而随着科技的不断进步,这两种通讯协议也正在被逐步融合,形成了一种新型的通讯方式——开疆智能MODBUS TCP转CANopen网关KJ-TCPC-CANP…...
[10-3]软件I2C读写MPU6050 江协科技学习笔记(16个知识点)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16...
python爬虫:Newspaper3k 的详细使用(好用的新闻网站文章抓取和解析的Python库)
更多内容请见: 爬虫和逆向教程-专栏介绍和目录 文章目录 一、Newspaper3k 概述1.1 Newspaper3k 介绍1.2 主要功能1.3 典型应用场景1.4 安装二、基本用法2.2 提取单篇文章的内容2.2 处理多篇文档三、高级选项3.1 自定义配置3.2 分析文章情感四、实战案例4.1 构建新闻摘要聚合器…...
Spring AI 入门:Java 开发者的生成式 AI 实践之路
一、Spring AI 简介 在人工智能技术快速迭代的今天,Spring AI 作为 Spring 生态系统的新生力量,正在成为 Java 开发者拥抱生成式 AI 的最佳选择。该框架通过模块化设计实现了与主流 AI 服务(如 OpenAI、Anthropic)的无缝对接&…...
HTML前端开发:JavaScript 常用事件详解
作为前端开发的核心,JavaScript 事件是用户与网页交互的基础。以下是常见事件的详细说明和用法示例: 1. onclick - 点击事件 当元素被单击时触发(左键点击) button.onclick function() {alert("按钮被点击了!&…...
JDK 17 新特性
#JDK 17 新特性 /**************** 文本块 *****************/ python/scala中早就支持,不稀奇 String json “”" { “name”: “Java”, “version”: 17 } “”"; /**************** Switch 语句 -> 表达式 *****************/ 挺好的ÿ…...
Android 之 kotlin 语言学习笔记三(Kotlin-Java 互操作)
参考官方文档:https://developer.android.google.cn/kotlin/interop?hlzh-cn 一、Java(供 Kotlin 使用) 1、不得使用硬关键字 不要使用 Kotlin 的任何硬关键字作为方法的名称 或字段。允许使用 Kotlin 的软关键字、修饰符关键字和特殊标识…...
