当前位置: 首页 > 编程笔记 >

Oracle表空间数据文件移动的方法

乐正洲
2023-03-14
本文向大家介绍Oracle表空间数据文件移动的方法,包括了Oracle表空间数据文件移动的方法的使用技巧和注意事项,需要的朋友参考一下

实现把用户表空间中的数据文件从某一个路径移动到另一个路径

一、针对可offline的非系统表空间

本例移动oracle的案例表空间(EXAMPLE表空间),将其从

D:\ORADATA\ORCL\ 移动到 D:\ORACLE\ORADATA\

1.查看要改变的表空间的数据文件信息

SQL> select tablespace_name,file_name,online_status
 from dba_data_files
 where tablespace_name='EXAMPLE';

TABLESPACE_NAME FILE_NAME     ONLINE_
--------------- ----------------------------------- -------
EXAMPLE  D:\ORADATA\ORCL\EXAMPLE01.DBF  ONLINE

2.将目标表空间设置为脱机状态

SQL> alter tablespace EXAMPLE offline;

3.再次查看目标表空间的状态,确保其已经是脱机状态

SQL> select tablespace_name,file_name,online_status
 from dba_data_files
 where tablespace_name='EXAMPLE';

TABLESPACE_NAME FILE_NAME     ONLINE_
--------------- ----------------------------------- -------
EXAMPLE  D:\ORACLE\ORADATA\EXAMPLE01.DBF OFFLINE

4.将原来的数据文件移动(或复制)到新的路径

SQL> host move D:\ORADATA\ORCL\EXAMPLE01.DBF D:\ORACLE\ORADATA\

5.修改该表空间的数据文件路径

SQL> alter tablespace EXAMPLE 
 rename datafile 'D:\ORADATA\ORCL\EXAMPLE01.DBF'
 to 'D:\ORACLE\ORADATA\EXAMPLE01.DBF';

6.查看该表空间修改后的信息,确保信息无误

SQL> select tablespace_name,file_name,online_status
 from dba_data_files
 where tablespace_name='EXAMPLE';

TABLESPACE_NAME FILE_NAME     ONLINE_
--------------- ----------------------------------- -------
EXAMPLE  D:\ORACLE\ORADATA\EXAMPLE01.DBF OFFLINE

7.修改该表空间为在线状态

SQL> alter tablespace EXAMPLE online;

8.查看该表空间最后结果

SQL> select tablespace_name,file_name,online_status
 from dba_data_files
 where tablespace_name='EXAMPLE';
TABLESPACE_NAME FILE_NAME     ONLINE_
--------------- ----------------------------------- -------
EXAMPLE  D:\ORACLE\ORADATA\EXAMPLE01.DBF ONLINE

备注:本方法对SYSAUX、USERS表空间也适用

二、系统表空间移动

该方法需要数据库处于mount状态

1.关闭运行中的数据库

SQL> shutdown immediate

2.启动数据库到mount状态

SQL> startup mount

3.移动系统表空间(SYSTEM表空间)的数据文件

SQL> host move D:\ORADATA\ORCL\SYSTEM01.DBF D:\ORACLE\ORADATA\

4.修改该表空间的数据文件路径

SQL> alter database rename file 'D:\ORADATA\ORCL\SYSTEM01.DBF' to 'D:\ORACLE\ORA
DATA\SYSTEM01.DBF';

5.启动数据库,打开实例

SQL> alter database open;

6.查看表空间修改结果

SQL> select tablespace_name,file_name,online_status from dba_data_files where ta
blespace_name='SYSTEM';

TABLESPACE_NAME FILE_NAME     ONLINE_
--------------- ----------------------------------- -------
SYSTEM  D:\ORACLE\ORADATA\SYSTEM01.DBF SYSTEM

备注:本方法对UNDOTBS1、TEMP表空间也适用。

以上内容是小编给大家分享的Oracle表空间数据文件移动的方法,希望大家喜欢。

 类似资料:
  • 本文向大家介绍Oracle dbf文件移动的方法,包括了Oracle dbf文件移动的方法的使用技巧和注意事项,需要的朋友参考一下 背景 oracle空间不足,发现dbf文件未按设计的路径存放,linux磁盘挂载空间未利用,需要移动一下位置错误的dbf文件。 检查文件系统 home挂载点下空间已达到100%。 检查大文件 发现是dbf文件过大后,准备移动一下。应该存放数据库文件的oradata挂载

  • 本文向大家介绍Oracle表空间数据库文件收缩案例解析,包括了Oracle表空间数据库文件收缩案例解析的使用技巧和注意事项,需要的朋友参考一下 我们经常会遇到数据库磁盘空间爆满的问题,或由于归档日志突增、或由于数据文件过多、大导致磁盘使用紧俏。这里主要说的场景是磁盘空间本身很大,但表空间对应的数据文件初始化的时候就直接顶满了磁盘空间,导致经常收到磁盘空间满的报警。 一、错误信息 告警内容如下: 【

  • oracle 11g关于数据库表空间文件最佳配置是什么样的? 企业的数据库是oracle11g的 数据库data空间文件里创建了很多个 有时候满了会用alter新增一个新的文件 有一些疑惑 1.初始大小是设置100m好还是直接一步到位设置 32G? (DB_BLOCK_SIZE是8K 最大就是32G) 2.如何初始大小比如设置10G,开启文件自动扩展 每次扩展大小是设置多大为好? 因为看到别人远程

  • 我需要将GPS坐标保存在一个没有安装spatial extension的Oracle数据库中。有一个软件pl/sql模拟Oracle Spatial的主要功能(显然没有使用它的数据类型),以同样的方式对Oracle 11的JSON功能进行“包装”。github:https://github.com/pljson/pljson上有这个项目

  • 问题内容: 我有一个属于表空间 报告 的分区表。我想将其移至表空间 记录 。 一种可能性是删除表并在新表空间中重新创建它,但这对我来说不是一个选择,因为表中有数据需要在移动后幸存。 我首先使用以下命令检查分区是否真正属于表空间报告: 然后我只是尝试: 但这给了我错误ORA-145111``无法对已分区的对象执行操作’‘。 然后我发现我可以使用以下方法移动单个分区: 但是由于该表有60个分区(基于日