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);
版权声明:本文标题:Oracle_表空间(数据文件)迁移 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1705349089h482089.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论