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表空间数据文件移动的方法,希望大家喜欢。

(0)

相关推荐

  • Oracle 查看表空间的大小及使用情况sql语句

    SQL1: 复制代码 代码如下: --1.查看表空间的名称及大小 SELECT t.tablespace_name, round(SUM(bytes / (1024 * 1024)), 0) ts_size FROM dba_tablespaces t, dba_data_files d WHERE t.tablespace_name = d.tablespace_name GROUP BY t.tablespace_name; --2.查看表空间物理文件的名称及大小 SELECT tables

  • oracle创建表空间、授权、创建用户、导入dmp文件

    oracle创建表空间,授权,创建用户,导入dmp文件,具体详解如下所示: 1.创建表空间 Create tablespace bpm datafile 'D:\ORACLE11\ORADATA\ORCL\BPM.DBF' size 400M autoextend on Create tablespace lyoa datafile 'D:\ORACLE11\ORADATA\ORCL\LYOA.DBF' size 400M autoextend on Create tablespace kdb

  • oracle表空间表分区详解及oracle表分区查询使用方法

    此文从以下几个方面来整理关于分区表的概念及操作:1.表空间及分区表的概念2.表分区的具体作用3.表分区的优缺点4.表分区的几种类型及操作方法5.对表分区的维护性操作.(1.) 表空间及分区表的概念表空间:是一个或多个数据文件的集合,所有的数据对象都存放在指定的表空间中,但主要存放的是表, 所以称作表空间. 分区表: 当表中的数据量不断增大,查询数据的速度就会变慢,应用程序的性能就会下降,这时就应该考虑对表进行分区.表进行分区后,逻辑上表仍然是一张完整的表,只是将表中的数据在物理上存放到多个表空间

  • Oracle删除表及查看表空间的实例详解

    Oracle常用的基本命令 --1.用户下表中注释模糊查询: 例如查询与优惠券关联的表 SELECT * FROM user_tab_comments t WHERE t.comments LIKE '%优惠券%'; ![这里写图片描述](http://img.blog.csdn.net/20170321112728053?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMDQyNzkzNQ==/font/5a6L5L2T/fontsize/40

  • Linux下Oracle删除用户和表空间的方法

    本文实例讲述了Linux下Oracle删除用户和表空间的方法.分享给大家供大家参考,具体如下: 1.删除某个用户 SQL> conn /as sysdba Connected. SQL> drop user userName cascade; 用户已删除 如果用户无法删除,并报错: ERROR at line 1: ORA-01940: cannot drop a user that is currently connected 通过查看用户的进行,并kill用户进程,然后删除用户. SQL&

  • oracle 的表空间实例详解

    oracle 的表空间实例详解 查询表空间 SELECT UPPER(F.TABLESPACE_NAME) "表空间名", D.TOT_GROOTTE_MB "表空间大小(M)", D.TOT_GROOTTE_MB - F.TOTAL_BYTES "已使用空间(M)", TO_CHAR(ROUND((D.TOT_GROOTTE_MB - F.TOTAL_BYTES) / D.TOT_GROOTTE_MB * 100, 2), '990.99')

  • Oracle 删除用户和表空间详细介绍

    Oracle 删除用户和表空间 Oracle 使用时间长了, 新增了许多user 和tablespace. 需要清理一下 对于单个user和tablespace 来说, 可以使用如下命令来完成.  步骤一:  删除user drop user ×× cascade 说明: 删除了user,只是删除了该user下的schema objects,是不会删除相应的tablespace的. 步骤二: 删除tablespace DROP TABLESPACE tablespace_name INCLUDI

  • Oracle修改表空间大小的方法

    本文讲述了Oracle修改表空间大小的方法.分享给大家供大家参考,具体如下: 1)查看各表空间分配情况 SQL> select tablespace_name, sum(bytes) / 1024 / 1024 from dba_data_files group by tablespace_name; TABLESPACE_NAME SUM(BYTES)/1024/1024 ------------------------------ -------------------- UNDOTBS1

  • 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'; TABL

  • Oracle7.X 回滚表空间数据文件误删除处理方法

    正在看的ORACLE教程是:Oracle7.X 回滚表空间数据文件误删除处理方法. ---- 一. 引言: ---- 回滚段是数据库的一部分,它记录数据库变更的信息.使用这些信息实现数据库的读一致性及其恢复.若回滚段出现故障,则数据库不能正常启动,导致数据库瘫痪,用户无法读写数据.若能将回滚段的故障排除,则不会影响用户的实际数据.笔者最近在实际工作中遇到一个问题:用户将回滚段表空间(rbs)的数据库文件(rbs01.dbf)错误删除,以致使数据库无法正常运行,下面上笔者排除该方法的处理步骤. -

  • Oracle表空间数据库文件收缩案例解析

    我们经常会遇到数据库磁盘空间爆满的问题,或由于归档日志突增.或由于数据文件过多.大导致磁盘使用紧俏.这里主要说的场景是磁盘空间本身很大,但表空间对应的数据文件初始化的时候就直接顶满了磁盘空间,导致经常收到磁盘空间满的报警. 一.错误信息 告警内容如下: [发现异常]地产客储系统数据库Oracle_192.168.xx.xx,192.168.xx.xx,数据库customer,连接错误,0 ORA-00257: archiver error. Connect internal only, unti

  • Oracle删除archivelog文件的正确方法

    Oracle在开启了归档模式后,会在指定的archive目录下产生很多的archivelog文件,而且默认是不会定期清除的,时间长久了,该文件夹会占用很大的空间. 问题:如何定期正确删除archivelog文件呢? 很多人直接在archive目录下删除文件,这样其实不能达到在Oracle CLF文件中删除文件记录的效果. 正确方法: 1.用RMAN连接目标DB:在命令行界面输入以下命令 RMAN target sys/*@orcl** 2.在RMAN命令窗口中,输入如下命令: crosschec

  • Oracle如何设置表空间数据文件大小

    Oracle数据文件默认大小上限是32G,如果要数据文件大于32G,需要在数据库创建之初就设置好. 表空间数据文件容量与DB_BLOCK_SIZE有关,在初始建库时,DB_BLOCK_SIZE要根据实际需要,设置为 4K,8K.16K.32K.64K等几种大小,ORACLE的物理文件最大只允许4194304个数据块(由操作系统决定),表空间数据文件的最大值为 4194304×DB_BLOCK_SIZE/1024M. 即: 4k最大表空间为:16384M=16G 8K最大表空间为:32768M=3

  • oracle表空间不足ORA-01653的问题: unable to extend table

    目录 具体步骤如下: 解决方法一:增大数据文件 解决方法二:增加数据文件 oracle报错:ORA-01653: unable to extend table DATAX.sqlserver_t1_copy by 1024 in tablespace DATAX_TEST 参考:https://www.jb51.net/article/258188.htm 大概的意思是说DATAX_TEST表空间不足了,在网上搜了一下出现这种表空间不足的问题一般有两种情况:一种是表空间的自动扩展功能没有打开:另

  • Oracle表空间设置和管理浅析

    前言 表空间是 Oracle 特有的一种逻辑结构,是管理和组织 Oracle 数据文件一种方式,一个Oracle 数据库能够有一个或多个表空间,而一个表空间则对应一个或多个物理的数据库文件.Oracle 的表空间分为永久空间和临时表空间,同时又分为 smallfile tablespace和 bigfile tablespace.表空间管理是 Oracle dba的一项重要日常工作. 今天小编就从永久表空间管理和临时表空间管理两个维度,详细介绍 Oracle表空间管理的具体操作. 永久表空间管理

  • oracle普通表转化为分区表的方法

    上一篇文章中我们了解了oracle数据与文本导入导出源码示例的相关内容,接下来我们看看,oracle中如何将普通表转化为分区表的方法. oracle官方建议当表的大小大于2GB的时候就使用分区表进行管理,分区表相对于小的表管理和性能上都有很大的优势,本文档暂时不介绍具体的优势,主要介绍几种普通表转换成分区表的方法. [方法概述]oracle官方给了以下四种操作的方法:  A)  Export/import method(导入导出)  B)  Insert with a subquery meth

  • Oracle表中重复数据去重的方法实例详解

    Oracle表中重复数据去重的方法实例详解 我们在项目中肯定会遇到一种情况,就是表中没有主键 有重复数据 或者有主键 但是部分字段有重复数据 而我们需要过滤掉重复数据 下面是一种解决方法 delete from mytest ms where rowid in (select aa.rid from (select rowid as rid, row_number() over(partition by s.name order by s.id) as nu from mytest s) aa

  • oracle表空间的创建及dmp 文件的导入(推荐)

    --用oracle系统权限的账号 登陆 -- 1.创建用户 create user u_name identified by "u_password"; --2.赋予权限 grant dba, resource, connect to u_name; grant create session to u_name; grant create table to u_name; grant create view to u_name; grant create tablespace to u

随机推荐