查看数据库使用情况

 1.查看磁盘使用情况

可以使用df命令查看磁盘使用情况再来决定需要迁移多少数据。

 上面例子中可以看到/opt下可用空间已经是0,需要释放很多空间出来。

 

2.查看数据库表空间情况

 下面就是查看数据库表空间的大小了,找到适合的表空间去迁移


用ls- hl 来查看所有表空间文件(后接的管道到grep G是为了显示过G的空间,对M级别的不太感兴趣,可以不加)

上图中tgwl1201201和tgwl1202两个表空间容量很大,并且是相对旧的数据,可以做迁移,对应的文件是dgwl20120101.dbf、dgwl20120102.dbf和dgwl20120201.dbf、dgwl20120202.dbf

 

3.查看数据库表空间

 1.dba_tablespaces这个视图可以查看表空间的基本信息.

select * from dba_tablespaces;

 

2.dba_data_files这个视图可以查看表空间对应的文件大小.

select * from dba_data_files;

 

3.显示各个表空间数据文件占据的磁盘空间大小.

 select t1.FILE_NAME, t1.BYTES/1024/1024 MB, t2.tablespace_name from dba_data_files t1, dba_tablespaces t2 where t1.TABLESPACE_NAME = t2.tablespace_name order by MB desc

 

4.复制数据文件

 (1)首先要将表空间离线,比如复制tgwl201201这个表空间,那么将它离线

 alter tablespace TGWL201201 offline;

 

(2)复制数据文件

 复制TGWL201201表空间对应的文件到新的目录,如/home/oradata下,这里由于要复制的文件比较大,最好在后台运行

nohup cp /opt/oracle9i/oradata/dgwl20120101.dbf /home/oradata &nohup cp /opt/oracle9i/oradata/dgwl20120102.dbf /home/oradata &

 

(3)删除原文件

rm /opt/oracle9i/oradata/dgwl20120101.dbf

rm /opt/oracle9i/oradata/dgwl20120102.dbf

 

(4)修改表空间的数据文件位置

alter tablespace TGWL201201 rename datafile '/opt/oracle9i/oradata/NBDB/dgwl20120101.dbf' to '/home/oradata/dgwl20120101.dbf';

 

alter tablespace TGWL201201 rename datafile 

'/opt/oracle9i/oradata/NBDB/dgwl20120102.dbf' to '/home/oradata/dgwl20120102.dbf';

 (5)将表空间置为在线

alter tablespace TGWL201201 online;

如果要移动其他的表空间也是重复上面的动作,最后要重启oracle实例让修改生效,不然不会释放磁盘空间。

猜你喜欢

转载自gnote.iteye.com/blog/1832427