linux磁盘空间不够,数据库文件迁移

上一篇 / 下一篇  2012-05-15 13:51:07 / 个人分类:oracle

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

TAG:

 

评分:0

我来说两句

Open Toolbar