Oracle_表空间(数据文件)迁移

合集下载

数据库oracle知识点(自己整理的,可能部分有点小问题)11

数据库oracle知识点(自己整理的,可能部分有点小问题)11

1 oracle服务器由( oracle实例)和oracle数据库组成;2 下面哪个不是必需的后台进程(D)A SMONB LGWRC CKPTD ARCO3 用户进行增、删、改commit后,该记录存储的位置(备注:没有switch logfile)(A)A 联机日志文档B 归档日志文件C 数据文件D 联机日志文件和归档日志文件4 当oracle创建一个服务器进程的同时要为该服务器进程分配一个内存区,该内存区称为(程序全局区)5 简单阐述以下三种文件里面包含的内容?(控制文件、重做日志文件、数据文件)。

控制文件:包含维护和校验数据库一致性所需的信息重做日志文件:包含当系统崩溃后进行恢复所需记录的变化信息数据文件:包含数据库中真正的数据(以上答案仅供参考)6 以下说法错误的是(C)A PGA是一个私有的内存区,不能共享,且只属于一个进程B oracle实例是一种访问数据库的机制,它由内存结构和一些后台进程组成C oracle数据库物理存储结构是由控制文件,归档日志文件,数据文件三部分组成D 数据未被写到数据文件中,这些数据缓冲区被标为脏缓冲区7 获取参数SGA_MAX_SIZE需要利用的数据字典是( v$parameter )8 如果没有正常退出Oracle得情况下重新启动了所用的PC,由(B)负责它的清理工作A SMONB PMONC DBWRD LGWR9以下什么文件能确保Oracle系统在遇到数据文件丢失或损坏后可以完全恢复数据库中的数据?(C)A 联机日志文件B 数据文件C 归档日志文件D 控制文件10以下show parameter ( db_block_size)可以查看数据库块大小.11以下哪条命令可以显示emp表的表结构(D)A show empB select * from emp 查询表内容C show parameter v$empD desc emp显示表结构12使用任何方法创建一个数据库,Oracle都会自动创建两个超级用户system和(sys),它们也被称为数据库管理员用户13 SQL*Plus作为sysdba连接数据库的命令是:(conn / as sysdba)14请简单描述OEM(Oracle企业管理器)是什么OEM是一个功能强大而且操作简单的图形化数据库管理员工具。

Oracle数据库迁移方法

Oracle数据库迁移方法

Oracle数据库迁移1.背景:据项目实施人员反映,部署系统的过程中,有一个最大的问题,那就是平台数据库的迁移。

经常会遇到表空间导出导入失败,或是导入过程中数据表丢失或是数据表虽然能导入,但表字段丢失等现象。

针对这种情况,我仔细分析了一下:主要原因出在目前的exp/imp 这种数据导入导出工具存在比较大的缺陷,这种缺陷将在后面提到。

相比目前这种方式,我这里提供一种比较方便稳定的数据库迁移方案。

以下提到的方案,我也多次尝试验证了,并且还很实在。

2.数据库迁移方案:实用环境:Oracle10g 或是以上版本。

原理:利用Oracle10g提供的数据泵,快速加载以及卸载数据。

优点:导入导出数据库快速比较快,且完整,性能稳定。

缺点:这种方式只能在装有Oracle服务器端的软件的机器上应用。

完整方案:这里模拟二个场景:场景1:实现不同库下不同用户之间表空间的迁移。

假设通过Oracle数据泵,A用户UserA 将表空间TA 提取到A.dmp,而后B用户UserB将A.dmp 装载到表空间TB。

第一步:首先在源库(A)上建一个目录,这个目录用于转储导入导出过程中的数据文件及日志文件。

create directory dumpdir as 'E:\dump';注:dumpdir为目录名,它是数据库中的目录对象名,“c:\dump”:为对应的磁盘物理路径。

第二步:给用户授予目录的读写权限。

(因为要写日志,这一步是必须的)grant read, write on directory dumpdir to UserA;第三步:导出用户UserA下的所有对象:expdp UserA/Password@orcl schemas=UserA dumpfile=expa.dmp DIRECTORY= dumpdir 注:1、orcl为配置的用于从客户端连接Oracle的连接名。

2、dumpfile中不能再包含路径以上三步为数据导出过程,下面几步为数据导入过程。

循序渐进讲解Oracle9i数据库的迁移过程

循序渐进讲解Oracle9i数据库的迁移过程

循序渐进讲解Oracle9i数据库的迁移过程需求:把原系统Oracle 9205数据库迁移到一台新的服务器和阵列上,原系统有250GB的数据量,需要停止原来系统的业务,做冷备份和恢复。

解决方法如下:◆1.在新的服务器和阵列上装好一个oracle 9206数据库;◆2.停止原系统oracle 9205;◆3.把原系统的数据冷拷贝到新的服务器上,然后按照以下步骤来进行恢复:(1)、获取数据库相关信息首先要查看一下数据库的文件内容:select * from v$datafile;select * from v$controlfileselect * from v$logfile;数据文件:G:\ORADATA\WEBOA\SYSTEM01.DBFG:\ORADATA\WEBOA\UNDOTBS01.DBFG:\ORADATA\WEBOA\CWMLITE01.DBFG:\ORADATA\WEBOA\DRSYS01.DBFG:\ORADATA\WEBOA\EXAMPLE01.DBFG:\ORADATA\WEBOA\INDX01.DBFG:\ORADATA\WEBOA\ODM01.DBFG:\ORADATA\WEBOA\TOOLS01.DBFG:\ORADATA\WEBOA\USERS01.DBFG:\ORADATA\WEBOA\XDB01.DBF控制文件:G:\ORADATA\WEBOA\CONTROL01.CTLG:\ORADATA\WEBOA\CONTROL02.CTLG:\ORADATA\WEBOA\CONTROL03.CTL重做日志文件:G:\ORADATA\WEBOA\REDO03.LOGG:\ORADATA\WEBOA\REDO02.LOGG:\ORADATA\WEBOA\REDO01.LOG(2)、移动应用数据文件shutdown immediate关闭数据库,拷贝数据文件到另外一个目录下。

Oracle用分区表分区交换做历史数据迁移

Oracle用分区表分区交换做历史数据迁移

Oracle⽤分区表分区交换做历史数据迁移⼀。

说明:OLTP库中有些表数据量⼤,且每⽉有持续的⼤量数据添加。

因为历史数据在此库中不再做訪问,⽽是在另1个OLAP库中做分析。

所以会对历史数据迁移⾄OLAP库中。

对这样的历史数据迁移的操作。

较好的办法是该表採⽤分区表。

按时间分区后,能够对分区进⾏迁移。

通过分区交换和表空间传输会⾮常easy完毕。

并且性能上影响⾮常⼩。

关于分区表很多其它内容: /tanqingru/article/category/1397435关于表空间传很多其它内容: /tanqingru/article/category/1138527⼆。

实例:整个过程是在OLTP库做分区交换。

然后通过表空间传输迁移⾄OLAP库。

最后再做⼀次分区交换就可以。

1.创造须要的环境。

OLTP库环境准备:SQL> conn /as sysdbaConnected.SQL> select * from V$version;BANNER--------------------------------------------------------------------------------Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit ProductionPL/SQL Release 11.2.0.3.0 - ProductionCORE 11.2.0.3.0 ProductionTNS for Linux: Version 11.2.0.3.0 - ProductionNLSRTL Version 11.2.0.3.0 - ProductionSQL> show parameter db_create_file_destNAME TYPE VALUE------------------------------------ ----------- ------------------------------db_create_file_dest string /data01/qingcreate tablespace tan_2013_9 datafile size 5m autoextend on;create tablespace tan_2013_10 datafile size 5m autoextend on;create tablespace tan_2013_11 datafile size 5m autoextend on;create tablespace tan_2013_12 datafile size 5m autoextend on;create tablespace tan_2014_1 datafile size 5m autoextend on;create tablespace tan_2014_2 datafile size 5m autoextend on;create tablespace tan_2014_3 datafile size 5m autoextend on;create tablespace tan_2014_4 datafile size 5m autoextend on;create tablespace tan_2014_5 datafile size 5m autoextend on;create tablespace tan_2014_6 datafile size 5m autoextend on;create tablespace tan_2014_7 datafile size 5m autoextend on;create tablespace tan_2014_8 datafile size 5m autoextend on;conn tan/tanSQL> create table tan(t_id number(10),t_name varchar2(100),t_date date )partition by range(t_date)(partition tan_2013_9 values less than(to_date('2013-10-01','yyyy-mm-dd')) tablespace tan_2013_9,partition tan_2013_10 values less than(to_date('2013-11-01','yyyy-mm-dd')) tablespace tan_2013_10,partition tan_2013_11 values less than(to_date('2013-12-01','yyyy-mm-dd')) tablespace tan_2013_11, partition tan_2013_12 values less than(to_date('2014-01-01','yyyy-mm-dd')) tablespace tan_2013_12, partition tan_2014_1 values less than(to_date('2014-02-01','yyyy-mm-dd')) tablespace tan_2014_1, partition tan_2014_2 values less than(to_date('2014-03-01','yyyy-mm-dd')) tablespace tan_2014_2, partition tan_2014_3 values less than(to_date('2014-04-01','yyyy-mm-dd')) tablespace tan_2014_3, partition tan_2014_4 values less than(to_date('2014-05-01','yyyy-mm-dd')) tablespace tan_2014_4, partition tan_2014_5 values less than(to_date('2014-06-01','yyyy-mm-dd')) tablespace tan_2014_5, partition tan_2014_6 values less than(to_date('2014-07-01','yyyy-mm-dd')) tablespace tan_2014_6, partition tan_2014_7 values less than(to_date('2014-08-01','yyyy-mm-dd')) tablespace tan_2014_7, partition tan_2014_8 values less than(to_date('2014-09-01','yyyy-mm-dd')) tablespace tan_2014_8 );create index ind_tan on tan(t_date) local(partition ind_tan_2013_9 tablespace tan_2013_9,partition ind_tan_2013_10 tablespace tan_2013_10,partition ind_tan_2013_11 tablespace tan_2013_11,partition ind_tan_2013_12 tablespace tan_2013_12,partition ind_tan_2014_1 tablespace tan_2014_1,partition ind_tan_2014_2 tablespace tan_2014_2,partition ind_tan_2014_3 tablespace tan_2014_3,partition ind_tan_2014_4 tablespace tan_2014_4,partition ind_tan_2014_5 tablespace tan_2014_5,partition ind_tan_2014_6 tablespace tan_2014_6,partition ind_tan_2014_7 tablespace tan_2014_7,partition ind_tan_2014_8 tablespace tan_2014_8);beginfor i in 1.. 10000 loopif( mod(i,12)+1 <=8) theninsert into tan values(i,'tan'||i,to_date('2014-'||(mod(i,12)+1)||'-01','yyyy-mm-dd'));elseinsert into tan values(i,'tan'||i,to_date('2013-'||(mod(i,12)+1)||'-01','yyyy-mm-dd'));end if;end loop;commit;end;/SQL> select count(*) from tan partition(tan_2013_12) ;COUNT(*)----------833SQL> select count(*) from tan partition(tan_2013_9) ;COUNT(*)----------833SQL> select count(*) from tan partition(tan_2014_8) ;COUNT(*)----------833SQL> select count(*) from tan partition(tan_2014_1) ;COUNT(*)----------833SQL> select partition_name,tablespace_name from dba_segmentswhere segment_name in ('TAN','IND_TAN');PARTITION_NAME TABLESPACE_NAME------------------------------ ------------------------------TAN_2014_8 TAN_2014_8TAN_2014_7 TAN_2014_7TAN_2014_6 TAN_2014_6TAN_2014_5 TAN_2014_5TAN_2014_4 TAN_2014_4TAN_2014_3 TAN_2014_3TAN_2014_2 TAN_2014_2TAN_2014_1 TAN_2014_1TAN_2013_9 TAN_2013_9TAN_2013_12 TAN_2013_12TAN_2013_11 TAN_2013_11TAN_2013_10 TAN_2013_10IND_TAN_2014_8 TAN_2014_8IND_TAN_2014_7 TAN_2014_7IND_TAN_2014_6 TAN_2014_6IND_TAN_2014_5 TAN_2014_5IND_TAN_2014_4 TAN_2014_4IND_TAN_2014_3 TAN_2014_3IND_TAN_2014_2 TAN_2014_2IND_TAN_2014_1 TAN_2014_1IND_TAN_2013_9 TAN_2013_9IND_TAN_2013_12 TAN_2013_12IND_TAN_2013_11 TAN_2013_11IND_TAN_2013_10 TAN_2013_1024 rows selected.OLAP库环境准备<span style="font-family: Arial, Helvetica, sans-serif; font-size: 12px;">create tablespace tan_2013_7 datafile size 5m autoextend on;</span> create tablespace tan_2013_8 datafile size 5m autoextend on;create table tan(t_id number(10),t_name varchar2(100),t_date date )partition by range(t_date)(partition tan_2013_7 values less than(to_date('2013-08-01','yyyy-mm-dd')) tablespace tan_2013_7,partition tan_2013_8 values less than(to_date('2013-09-01','yyyy-mm-dd')) tablespace tan_2013_8);create index ind_tan on tan(t_date) local(partition ind_tan_2013_7 tablespace tan_2013_7,partition ind_tan_2013_8 tablespace tan_2013_8);beginfor i in 1.. 10000 loopinsert into tan values(i,'tan'||i,to_date('2013-'||(mod(i,2)+7)||'-01','yyyy-mm-dd'));end loop;commit;end;/SQL> select count(*) from tan partition(tan_2013_8);COUNT(*)----------5000SQL> select count(*) from tan partition(tan_2013_7);COUNT(*)----------50002.分区交换如今要做的事是迁移2013年9⽉份数据。

Oracle tablespace (表空间)的创建、删除、修改、扩展及检查等

Oracle tablespace (表空间)的创建、删除、修改、扩展及检查等

Oracle tablespace (表空间)的创建、删除、修改、扩展及检查等oracle 数据库表空间的作用1.决定数据库实体的空间分配;2.设置数据库用户的空间份额;3.控制数据库部分数据的可用性;4.分布数据于不同的设备之间以改善性能;5.备份和恢复数据。

--oracle 可以创建的表空间有三种类型:1.temporary: 临时表空间,用于临时数据的存放;create temporary tablespace "sample"......2.undo : 还原表空间. 用于存入重做日志文件.create undo tablespace "sample"......3.用户表空间: 最重要,也是用于存放用户数据表空间create tablespace "sample"......--注:temporary 和undo 表空间是oracle 管理的特殊的表空间.只用于存放系统相关数据.--oracle 创建表空间应该授予的权限1.被授予关于一个或多个表空间中的resource特权;2.被指定缺省表空间;3.被分配指定表空间的存储空间使用份额;4.被指定缺省临时段表空间。

select tablespace_name "表空间名称",status "状态",extent_management "区管理方式",allocation_type "磁盘扩展管理方式",segment_space_management "段管理方式" from dba_tablespaces;--查询各个表空间的区、段管理方式--1、建立表空间--语法格式:create tablespace 表空间名datafile '文件标识符' 存储参数[...]|[minimum extent n] --设置表空间中创建的最小范围大小|[logging|nologging]|[default storage(存储配置参数)]|[online|offline]; --表空间联机\脱机|[permanent|temporary] --指定该表空间是用于保存永久的对象还是只保存临时对象 |[...]--其中:文件标识符=’文件名’[size整数[k\m][reuse]--实例create tablespace data01datafile '/oracle/oradata/db/data01.dbf' size 500muniform size 128k; --指定区尺寸为128k,如不指定,区尺寸默认为64kcreate tablespace "test"loggingdatafile 'd:\oracle\oradata\oracle\sample.ora' size 5m,'d:\oracle\oradata\oracle\dd.ora' size 5mextent management localuniform segment space managementauto;--详解/*第一: create tablespace "sample"创建一个名为"sample" 的表空间.对表空间的命名,遵守oracle 的命名规范就可了. 第二: logging 有nologging 和logging 两个选项,nologging: 创建表空间时,不创建重做日志.logging 和nologging正好相反, 就是在创建表空间时生成重做日志.用nologging时,好处在于创建时不用生成日志,这样表空间的创建较快,但是没能日志,数据丢失后,不能恢复;但是一般我们在创建表空间时,是没有数据的,按通常的做法,是建完表空间,并导入数据后,是要对数据做备份的;所以通常不需要表空间的创建日志,因此,在创建表空间时,选择nologging,以加快表空间的创建速度.第三: datafile 用于指定数据文件的具体位置和大小.datafile 的文件是建立表空间后创建的,不过文件路径必须存在才是合法的datafile设置如: datafile 'd:\oracle\oradata\ora92\luntan.ora' size 5m说明文件的存放位置是'd:\oracle\oradata\ora92\luntan.ora' , 文件的大小为5m.如果有多个文件,可以用逗号隔开:如:datafile 'd:\oracle\oradata\ora92\luntan.ora' size 5m, 'd:\oracle\oradata\ora92\ dd.ora' size 5m但是每个文件都需要指明大小.单位以指定的单位为准如5m 或500k.对具体的文件,可以根据不同的需要,存放大不同的介质上,如磁盘阵列,以减少io竟争. 指定文件名时,必须为绝对地址,不能使用相对地址.第四: extent management local 存储区管理方法在字典中管理(dictionary):将数据文件中的每一个存储单元做为一条记录,所以在做dm操作时,就会产生大量的对这个管理表的delete和update操作.做大量数据管理时,将会产生很多的dm操作,严得的影响性能,同时,长时间对表数据的操作,会产生很多的磁盘碎片.本地管理(local):用二进制的方式管理磁盘,有很高的效率,同进能最大限度的使用磁盘.同时能够自动跟踪记录临近空闲空间的情况,避免进行空闲区的合并操作。

Oracle_表空间的过大处理方法

Oracle_表空间的过大处理方法

--临时表空间满时的处理方法1.增加临时文件: 不建议设置为自增长导致把磁盘给撑满SQL> ALTER TABLESPACE TEMP ADD TEMPFILE'/oracle/oradata/itpuxdb/temp02.dbf'SIZEE 10M AUTOEXTEND OFF;2.修改临时文件: 可以将原来的数据文件改大一点如:SQL> ALTER DATABASE TEMPFILE'/oracle/oradata/itpuxdb/temp02.dbf'RESIZE100M;3.收缩Shrinking临时表空间SQL> ALTER TABLESPACE temp SHRINK SPACE KEEP20M; 收缩表空间SQL> ALTER TABLESPACE temp SHRINK TEMPFILE'/oracle/oradata/itpuxdb/temp02.dbf'; 收缩文件数据库重启后,会自动释放temp表空间默认临时表空间TEMP的过大的重建流程如果删除不了查询哪些sql在使用临时表空间,开启另外一个session查询SQL> selectername,se.sid,se.serial#,su.extents,su.blocks*to_number(rtrim(p.value))as space,tablespace,segtype,sql_text from v$sort_usage su,v$parameter p,v$sessionse,v$sql s where ='db_block_size'and su.session_addr=se.saddr ands.hash_value=su.sqlhash and s.address=su.sqladdr order by ername,se.sid;如果列出存在的,则通过以下语句杀掉这些sid与serial 【注意:1是系统进程不能乱杀】SQL> alter system kill session'187,12619';SYSTEM与SYSAUX表空间满了怎么办?1.添加表空间2.把system或者sysaux表空间的信息迁移到其它表空间。

oracle数据库管理员手册

oracle数据库管理员手册

Oracle数据库管理员(DBA)手册涵盖了广泛的主题,包括数据库安装、配置、性能调优、备份和恢复、安全性等方面。

以下是一个简要的Oracle数据库管理员手册的大纲,其中包含了一些主要的主题:1. 数据库基础知识和架构:- Oracle数据库的体系结构-数据库实例和数据库-表空间和数据文件2. 数据库安装和配置:- Oracle数据库软件的安装-创建数据库-配置监听器-网络配置3. 数据库对象管理:-表和索引的创建、修改和删除-视图、存储过程和触发器的管理-序列的创建和管理-同义词的使用4. 用户和权限管理:-用户账号的创建和管理-角色和权限管理-访问控制和安全性5. 性能调优:- SQL调优技术-索引优化-表分区和分表-优化查询计划6. 备份和恢复:-数据库备份策略-使用RMAN进行备份和恢复-数据库点恢复和时间点恢复7. 监控和诊断:-使用AWR和ADDM进行性能分析-查询V$视图和动态性能视图-警告和错误日志的管理8. 高可用性和容灾:-数据库复制和数据保护- RAC(Real Application Clusters)配置-数据库故障转移和恢复9. 安全性:-用户身份验证和访问控制-安全审计和监视-数据加密和解密10. 数据库升级和迁移:- Oracle版本升级-数据库迁移和导入/导出11. 常规维护任务:-统计信息收集和重建索引-表空间管理-定期任务和计划任务12. 实用工具:- SQL*Plus和SQLcl- Oracle Enterprise Manager(OEM)-数据库配置助手(DBCA)和其他实用工具13. 文档和资源:- Oracle文档和在线资源-社区和论坛这个大纲只是一个简单的概述,实际的Oracle数据库管理员手册可能更为详细,根据组织的需求和数据库的规模可能会有所不同。

要深入了解每个主题,建议参考Oracle官方文档和相应版本的手册。

Oracle的文档通常提供了详细的指导和最佳实践。

oracle释放表空间最佳实践

oracle释放表空间最佳实践

Oracle释放表空间最佳实践简介在Oracle数据库中,表空间是用于存储数据的逻辑结构。

当表空间的使用率过高或者需要释放空间时,我们需要采取一些最佳实践来进行操作。

本文将介绍一些Oracle中释放表空间的最佳实践方法。

1. 监控表空间使用率在释放表空间之前,我们首先需要监控和了解当前表空间的使用情况。

可以通过以下方式进行监控: - 使用DBA_FREE_SPACE视图查看每个表空间中的可用空间情况。

- 使用DBA_SEGMENTS视图查看每个段(包括表、索引等)在各个表空间中所占用的空间。

- 使用DBA_TABLESPACES视图查看每个表空间的总容量、已使用容量等信息。

通过以上监控手段,我们可以了解到哪些表空间使用率较高,从而有针对性地进行释放操作。

2. 清理无效对象Oracle数据库中可能存在一些无效对象(如已被删除但仍占据着存储空间的对象),这些对象会占用宝贵的存储资源。

我们可以通过以下方法清理这些无效对象:- 使用DROP TABLE语句删除不再需要的表。

- 使用DROP INDEX语句删除不再需要的索引。

- 使用PURGE RECYCLEBIN语句清空回收站中的对象。

清理无效对象可以释放表空间的存储空间,并提高数据库性能。

3. 压缩表和分区在Oracle数据库中,我们可以使用表和分区压缩来减少数据占用的存储空间。

压缩可以通过以下方式实现: - 使用ALTER TABLE ... MOVE语句对表进行重建,从而实现压缩。

- 使用ALTER TABLE ... SHRINK SPACE语句对表进行收缩,从而减少存储空间占用。

压缩表和分区可以大幅度减少存储空间的使用,并提高查询性能。

4. 数据归档和分离对于一些历史数据或者不经常访问的数据,我们可以考虑将其归档或者分离到其他存储介质中,以释放表空间。

具体方法包括: - 使用Oracle自带的归档工具将历史数据归档到磁带等介质中。

- 将不经常访问的数据迁移到其他数据库或者文件系统中。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

--表空间(数据文件)的迁移
--【在线的操作方法-移动表空间的数据文件的路径(更改表空间数据文件的路径)】
1.首先确定数据文件的状态要为OFFLINE
SQL> select tablespace_name,status,contents from dba_tablespaces;
2.将该表空间修改为OFFLINE 【以users表空间为例】
SQL> alter tablespace USERS offline;
SQL> select tablespace_name,status,contents from dba_tablespaces; --查看表空间状态确定修改成功
3.移动数据文件到新的路径
[oracle@xxx ~]$ host copy /oracle/oradata/itpuxdb/itpux01.dbf
/oracle/oradata/itpuxdb/itpux02.dbf;
4.重新命名该表空间的新路径和名称(告诉数据库)
SQL> alter tablespace users rename datafile'/oracle/oradata/itpuxdb/itpux01.dbf'to '/oracle/oradata/itpuxdb/itpux001.dbf';
5.修改表空间的状态为ONLINE状态
SQL> alter tablespace users online;
-------------------------------------------------------------------------------------
--【离线的操作方法-移动数据文件-到其它目录】
1.关闭数据库启动到模式下
SQL> shutdown immediate;
SQL> startup mount;
2. 移动数据文件
[oracle@xxx ~]$ host copy /oracle/oradata/itpuxdb/itpux01.dbf
/oracle/oradata/itpuxdb/itpux02.dbf
3. 重新命名(这里写更改数据库因为数据库没有起来就没有表空间)
SQL> alter database rename file'/oracle/oradata/itpuxdb/itpux01.dbf'
to'/oracle/oradata/itpuxdb/itpux001.dbf'
4. 打开数据库
SQL> alter database open
5. 检查状态
SQL> select * from dba_data_files where tablespace_name='ITPUX01';
----------------------------------------------------------------------------------
1.copy数据文件到其它目录【因为根目录撑爆,在数据库挂掉的情况下】
2.启动startup mount;
3.在mount模式下执行这两条命令
alter database rename file'/oracle/app/oracle/oradata/ywxt1/undotbs01.dbf'to
'/oradata/undotbs01.dbf';
alter database rename file'/oracle/app/oracle/oradata/ywxt1/temp01.dbf'to
'/oradata/temp01.dbf';
4.启动数据库
startup
---------------------------------------------------------------------------------------把表和索引迁移其它的表空间
1.查询该对象存放在哪个表空间
select segment_name,tablespace_name,extents,blocks from dba_segments where
owner='SCUSER'
2.查询该对象是索引,还是表
select object_id,object_name,object_type,status,created from dba_objects where
owner='SCUSER'
3.查询索引或者表存放在哪个表空间
select index_name,table_name,tablespace_name,status from dba_indexes where
owner='SCUSER'
4.移动表到另一个表空间
alter table scuser.table01 move tablespace scdata02
5.查询该表是否移动到该表空间
select segment_name,tablespace_name,extents,blocks from dba_segments where
owner='SCUSER'
6.检查表是否有效(状态为 VALID 是有效)
select object_id,object_name,object_type,status,created from dba_objects where
owner='SCUSER'
7.重建索引并且将索引移动到另一个表空间
alter index scuser.idx_table01_id rebuild tablespace scdata02
8.查询索引对应的表空间
select index_name,table_name,tablespace_name,status from dba_indexes where
owner='SCUSER'
9.如果表空间里面表有大字段?
alter table USER.RESUME move lob(INTRO) store as(tablespace USER);。

相关文档
最新文档