admin 管理员组

文章数量: 887021


2024年1月16日发(作者:数据库设计辅导小机构)

--表空间(数据文件)的迁移

--【在线的操作方法-移动表空间的数据文件的路径(更改表空间数据文件的路径)】

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/

/oracle/oradata/itpuxdb/;

4.重新命名 该表空间的新路径和名称 (告诉数据库)

SQL> alter tablespace users rename datafile '/oracle/oradata/itpuxdb/' to

'/oracle/oradata/itpuxdb/';

5.修改表空间的状态为 ONLINE 状态

SQL> alter tablespace users online;

-------------------------------------------------------------------------------------

--【离线的操作方法-移动数据文件-到其它目录】

1.关闭数据库 启动到模式下

SQL> shutdown immediate;

SQL> startup mount;

2. 移动数据文件

[oracle@xxx ~]$ host copy /oracle/oradata/itpuxdb/

/oracle/oradata/itpuxdb/

3. 重新命名(这里写更改数据库 因为数据库没有起来就没有表空间)

SQL> alter database rename file '/oracle/oradata/itpuxdb/'

to '/oracle/oradata/itpuxdb/'

4. 打开数据库

SQL> alter database open

5. 检查状态

SQL> select * from dba_data_files where tablespace_name='ITPUX01';

----------------------------------------------------------------------------------

数据文件到其它目录【因为根目录撑爆,在数据库挂掉的情况下】

2.启动startup mount;

3.在mount模式下执行这两条命令

alter database rename file '/oracle/app/oracle/oradata/ywxt1/' to

'/oradata/';

alter database rename file '/oracle/app/oracle/oradata/ywxt1/' to

'/oradata/';

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 01 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 _table01_id rebuild tablespace scdata02

8.查询索引对应的表空间

select index_name,table_name,tablespace_name,status from dba_indexes where

owner='SCUSER'

9.如果表空间里面表有大字段?

alter table move lob(INTRO) store as(tablespace USER);


本文标签: 数据库 空间 数据文件 状态 移动