搜索

Oracle迁移数据文件再也不用求人了

发表于 2025-11-05 12:16:14 来源:益强智未来

N 多年前安装的迁移求人 oracle 数据库,巡检的数据时候发现磁盘满了,检查发现是文件数据文件占用了很大的空间,当前存放数据文件的再也磁盘不能再进行扩容,于是不用准备把业务数据文件迁移到其他磁盘分区。

迁移数据文件主要有两种方法:

alter database  rename file ··· to ···alter tablespace ··· rename datafile ··· to ···

这两种方法都可以迁移数据文件,迁移求人但是数据操作上有些不同,主要体现在以下方面:

方法1:数据库必须处于mount状态,文件该方法适用于所有的再也数据文件,包括 system 数据文件;方法2:与方法1不同,不用此时数据库必须处于open状态,迁移求人且该方法只适用于非 system 表空间的免费源码下载数据数据文件。

接下来以迁移TS01表空间的文件数据为例,分别使用两种不同的再也方法进行操作:

一、使用alter database  rename file ··· to ···

首先,不用查看当前数据文件路径:

复制SQL> select FILE_NAME,TABLESPACE_NAME from dba_data_files; FILE_NAME TABLESPACE -------------------------------------------------- ---------- /u01/app/oracle/oradata/orcl/system01.dbf SYSTEM /u01/app/oracle/oradata/orcl/sysaux01.dbf SYSAUX /u01/app/oracle/oradata/orcl/undotbs01.dbf UNDOTBS1 /u01/app/oracle/oradata/orcl/users01.dbf USERS /u01/app/oracle/oradata/orcl/ts01.dbf TS01 SQL> 1.2.3.4.5.6.7.8.9.10.11.

在新的磁盘分区上创建新的数据文件存放路径,并授予相应的用户权限:

复制[root@orcldb ~]# /u02/app/oracle/oradata/orcl [root@orcldb ~]# chown -R oracle:oinstall /u021.2.

关闭数据库,并拷贝文件:

复制SQL> shutdown immediate Database closed. Database dismounted. ORACLE instance shut down. SQL> SQL> host cp /u01/app/oracle/oradata/orcl/ts01.dbf /u02/app/oracle/oradata/orcl/1.2.3.4.5.6.

将数据库启动到mount状态,并对数据文件进行重命名操作:

复制SQL> startup mount ORACLE instance started. Total System Global Area 2147483648 bytes Fixed Size 8622776 bytes Variable Size 1325403464 bytes Database Buffers 805306368 bytes Redo Buffers 8151040 bytes Database mounted. SQL> SQL> alter database rename file /u01/app/oracle/oradata/orcl/ts01.dbf to /u02/app/oracle/oradata/orcl/ts01.dbf; Database altered.1.2.3.4.5.6.7.8.9.10.11.12.13.

打开数据库,并查看数据文件的状态,结果显示,表空间TS01的数据文件已经在新的路径下了:

复制SQL> alter database open; Database altered. SQL> SQL> select file_name,tablespace_name,status from dba_data_files; FILE_NAME TABLESPACE STATUS -------------------------------------------- ---------- --------- /u01/app/oracle/oradata/orcl/system01.dbf SYSTEM AVAILABLE /u01/app/oracle/oradata/orcl/sysaux01.dbf SYSAUX AVAILABLE /u01/app/oracle/oradata/orcl/undotbs01.dbf UNDOTBS1 AVAILABLE /u01/app/oracle/oradata/orcl/users01.dbf USERS AVAILABLE /u02/app/oracle/oradata/orcl/ts01.dbf TS01 AVAILABLE1.2.3.4.5.6.7.8.9.10.11.12.13.14.

查询表空间中表的服务器租用数据,用于验证数据的完整性:

复制SQL> select owner,table_name,tablespace_name from dba_tables where tablespace_name=TS01; OWNER TABLE_NAME TABLESPACE ------ ---------- ---------- HARRY EMP TS01 SQL> SQL> SELECT * FROM HARRY.EMP; ID USERNAME AGE ---------- ------------------ ---------- 1 张三 221.2.3.4.5.6.7.8.9.10.11.12.

结果显示数据完好没有丢失,接下来可以在系统中删掉原来的文件从而释放存储空间:

复制[root@orcldb ~]# rm -rf /u01/app/oracle/oradata/orcl/ts01.dbf1. 二、使用alter tablespace ··· rename datafile ··· to ···

还是以TS01表空的数据为例,再把数据迁移回原来的路径。

首先在EMP表中插入一条新的数据:

复制SQL> insert into EMP values (2,李四,20); 1 row created. SQL> select * from EMP; ID USERNAME AGE ---------- -------------------------------- ---------- 1 张三 22 2 李四 201.2.3.4.5.6.7.8.9.10.

将TS01表空间offline:

复制SQL> alter tablespace TS01 offline normal; Tablespace altered. SQL> 1.2.3.

将表空间的数据文件拷贝回原来的位置(这里省略了目标位置的用户权限设置):

复制SQL> host cp /u02/app/oracle/oradata/orcl/ts01.dbf /u01/app/oracle/oradata/orcl/;1.

使用alter tablespace命令rename datafile到目标位置:

复制SQL> alter tablespace TS01 rename datafile /u02/app/oracle/oradata/orcl/ts01.dbf to /u01/app/oracle/oradata/orcl/ts01.dbf; Tablespace altered.1.2.3.

将目标表空间进行online操作,并检查数据文件路径:

复制SQL> alter tablespace TS01 online; Tablespace altered. SQL> select FILE_NAME,TABLESPACE_NAME from dba_data_files; FILE_NAME TABLESPACE --------------------------------------------- ---------- /u01/app/oracle/oradata/orcl/system01.dbf SYSTEM /u01/app/oracle/oradata/orcl/sysaux01.dbf SYSAUX /u01/app/oracle/oradata/orcl/undotbs01.dbf UNDOTBS1 /u01/app/oracle/oradata/orcl/users01.dbf USERS /u01/app/oracle/oradata/orcl/ts01.dbf TS011.2.3.4.5.6.7.8.9.10.11.12.13.

验证表空间的数据,查询表数据没有异常:

复制SQL> select * from EMP; ID USERNAME AGE ---------- -------------------------------- ---------- 1 张三 22 2 李四 201.2.3.4.5.6.

最后在系统中删掉原来的文件从而释放存储空间:

复制[root@orcldb ~]# rm -rf /u02/app/oracle/oradata/orcl/ts01.dbf1.香港云服务器
随机为您推荐
版权声明:本站资源均来自互联网,如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

Copyright © 2016 Powered by Oracle迁移数据文件再也不用求人了,益强智未来  滇ICP备2023006006号-17sitemap

回顶部