1、查看磁盘使用情况

使用root账号,输入df -lh查看磁盘状况,如下:

Filesystem            容量  已用 可用 已用% 挂载点
/dev/mapper/VolGroup00-LogVol00
23G   20G  2.0G  91% /
/dev/sda1              99M   13M   82M  14% /boot
none                  506M     0  506M   0% /dev/shm

2、查看到/dev/mapper/VolGroup00-LogVo100的磁盘空间不够使用

3、使用du -sh * >txt.txt方式将看下是什么目录或文件造成空间爆满,这种方式是将结果写到更目录下的txt.txt文件下

4、打开txt.txt文件查看到,跟目录下的oracle文件夹占用大量资源

15G/oracle

5、插入一块磁盘,通过虚拟机vm--setting--Hard disk--Add--Next--creart    new disk --next--SCSI--设置要加载的大小--next--finish

6、重启虚拟机reboot

7、查看刚加入的磁盘大小并设置

使用root账号 fdisk -l

查看到会多出/dev/sdb 磁盘块

8、给/dev/sdb磁盘块分区

fdisk /dev/sdb

n(添加分区)

p(开始添加)

1(只分一个区)

srart设置开始大小,直接回车

end设置结束大小,直接回车

设置逻辑卷大小,直接回车

w(保存)

9、使用fdisk -l查看下/dev/sdb是否分区成功,结果如下

/dev/sdb1   10G  Linux

10、将/dev/sdb1 分区给定格式类型,另一种说法是格式化

mkfs -t ext3 -c /dev/sdb1 回车

11、创建一个空目录进行挂起/dev/sdb1这个盘(现有目录不能直接挂起,会把相应文件进行格式化)

mkdir /oracletemp

mount /dev/sdb1  /oracletemp(挂起)

12、挂起后查看是否挂载成功

df -l(如果有看到 /dev/sdb1   /oracletemp的相关信息即可)

13、为防止每次重启服务器都要进行手工挂载,需修改/etc/fstab进行自动    挂载,代码为#vi /etc/fstab,加入如下

/dev/sdb1     /oracletemp   ext3  defaults   1  2

修改完成后wq进行保存,然后重启服务

14、从txt.txt文件中中可得知,oracle的资源过满造成,则下一步是做数据库转移操作

15、su -oracle切换至oracle账号,启动oracle服务

sqlplus /nolog;
>conn sys/system as sysdba;
>ERROR at line 1:
ORA-01119: error in creating database file '/oracletemp/drsys02.dbf'
ORA-27040: skgfrcre: create error, unable to create file
Linux Error: 13: Permission denied

启动时报错

16、删除/目录下一些没用的文件夹或者是日志信息(如jboss日志,安装文件等)

17、启动oracle服务 sqlplus /nolog

[oracle@linux4 ~]$ sqlplus /nolog;
SQL*Plus: Release 10.2.0.1.0 - Production on Tue May 15         14:00:26 2012
Copyright (c) 1982, 2005, Oracle.  All rights reserved.
SQL> conn sys/system as sysdba;
Connected.

18、关闭oracle服务

直接输入shutdown immediate

19、转移oracle的数据文件信息至/oracletemp文件下(创建相同的目录)

在oracle启动时查下目前文件路径在什么地方,查看sql如下

select name from v$controlfile;

看到的信息如下:

NAME

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

/oracle/product/10.2.0/db_1/oradata/tputf8/control01.ctl
/oracle/product/10.2.0/db_1/oradata/tputf8/control02.ctl
/oracle/product/10.2.0/db_1/oradata/tputf8/control03.ctl

查看数据文件路径

select name from v$datafile;
NAME
--------------------------------------------------------------------------------
/oracle/product/10.2.0/db_1/oradata/tputf8/system01.dbf
/oracle/product/10.2.0/db_1/oradata/tputf8/undotbs01.dbf
/oracle/product/10.2.0/db_1/oradata/tputf8/sysaux01.dbf
/oracle/product/10.2.0/db_1/oradata/tputf8/users01.dbf
/oracle/product/10.2.0/db_1/oradata/tputf8/example01.dbf
/oracle/tablespace/rlv_tp_dat001
/oracle/tablespace/rlv_tp_dat002
/oracle/tablespace/rlv_tp_idx001
/oracle/tablespace/rlv_tp_idx002
/oracle/tablespace/rlv_tp_datback001
/oracle/tablespace/rlv_tp_idxback001

查看日志文件路径

select member from v$logfile;
MEMBER
--------------------------------------------------------------------------------
/oracle/product/10.2.0/db_1/oradata/tputf8/redo03.log
/oracle/product/10.2.0/db_1/oradata/tputf8/redo02.log
/oracle/product/10.2.0/db_1/oradata/tputf8/redo01.log

查看临时文件路径

select name from v$tempfile;
/oracle/product/10.2.0/db_1/oradata/tputf8/temp01.dbf
/oracletemp/TEMP2.dbf

20、数据库文件关闭后将以上这些文件进行转移

copy /oracle/product/10.2.0/db_1/oradata/tputf8/control01.ctl  /oracletemp/oracle/product/10.2.0/db_1/oradata/tputf8/control01.ctl(成功)
copy /oracle/product/10.2.0/db_1/oradata/tputf8/control02.ctl  /oracletemp/oracle/product/10.2.0/db_1/oradata/tputf8/control02.ctl(成功)
copy /oracle/product/10.2.0/db_1/oradata/tputf8/control03.ctl  /oracletemp/oracle/product/10.2.0/db_1/oradata/tputf8/control03.ctl(成功)
--转移文件服务器
copy /oracle/product/10.2.0/db_1/oradata/tputf8/system01.dbf   /oracletemp/oracle/product/10.2.0/db_1/oradata/tputf8/system01.dbf(成功)
copy /oracle/product/10.2.0/db_1/oradata/tputf8/undotbs01.dbf   /oracletemp/oracle/product/10.2.0/db_1/oradata/tputf8/undotbs01.dbf(成功)
copy /oracle/product/10.2.0/db_1/oradata/tputf8/sysaux01.dbf   /oracletemp/oracle/product/10.2.0/db_1/oradata/tputf8/sysaux01.dbf(成功)
copy /oracle/product/10.2.0/db_1/oradata/tputf8/users01.dbf   /oracletemp/oracle/product/10.2.0/db_1/oradata/tputf8/users01.dbf(成功)
copy /oracle/product/10.2.0/db_1/oradata/tputf8/example01.dbf   /oracletemp/oracle/product/10.2.0/db_1/oradata/tputf8/example01.dbf(成功)
--转移临时文件等

21、将oracle启动并指向新的目录

sqlplus /nolog;
conn sys/system  as sysdba;(成功)
start mount(启动数据库以mount方式)
alter database rename file '/oracle/product/10.2.0/db_1/oradata/tputf8/system01.dbf'  to  '/oracletemp/oracle/product/10.2.0/db_1/oradata/tputf8/system01.dbf';(成功)
alter database rename file '/oracle/product/10.2.0/db_1/oradata/tputf8/undotbs01.dbf' to  '/oracletemp/oracle/product/10.2.0/db_1/oradata/tputf8/undotbs01.dbf';(成功)
alter database rename file '/oracle/product/10.2.0/db_1/oradata/tputf8/sysaux01.dbf'  to  '/oracletemp/oracle/product/10.2.0/db_1/oradata/tputf8/sysaux01.dbf';(成功)
alter database rename file '/oracle/product/10.2.0/db_1/oradata/tputf8/users01.dbf'   to  '/oracletemp/oracle/product/10.2.0/db_1/oradata/tputf8/users01.dbf';(成功)
alter database rename file '/oracle/product/10.2.0/db_1/oradata/tputf8/example01.dbf'   to  '/oracle/product/10.2.0/db_1/oradata/tputf8/example01.dbf';(错误)
22、开启数据库
alter database open;
23、关闭sql函数exit
24、验证是否迁移成功
df -lh查看/oracletemp文件是否有被占用