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文件是否有被占用