Oracle11g数据库生产环境下数据文件迁移

Oracle11g数据库生产环境下数据文件迁移
注:截图部分内容可能无法正常显示,但是不影响整个迁移过程。

监控告警显示,数据库服务器根目录使用率超过90%,登录检查结果如下:

通过linux系统侧查看,导致linux根目录突增是由于开发误将数据文件创建在根目录下导致,查看数据库告警日志看是否有相关记录。

 

Fri Aug 19 11:46:00 2016

create tablespace gssp logging datafile '\u01\app\oracle\gssp.dbf' size 10240M autoextend on next 32m maxsize 10240m extent management local

Fri Aug 19 11:46:32 2016

Completed: create tablespace gssp logging datafile '\u01\app\oracle\gssp.dbf' size 10240M autoextend on next 32m maxsize 10240m extent management local

可以看到,确实有create tablespace 语句将数据文件放在根目录下(我们部署数据库的规则是数据库软件在根目录下,数据文件在单独的磁盘上)。在数据库中查询确认以上推断,如下所示。

 

SQL> select file#,name from v$datafile;

 

     FILE# NAME

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

          1 /oradata/SJTBDB/datafile/o1_mf_system_cnq73jf3_.dbf

          2 /oradata/SJTBDB/datafile/o1_mf_sysaux_cnq73nv2_.dbf

          3 /oradata/SJTBDB/datafile/o1_mf_undotbs1_cnq73r4r_.dbf

          4 /oradata/SJTBDB/datafile/o1_mf_users_cnq741ml_.dbf

          5 /u01/app/oracle/gdrp.dbf

          6 /u01/app/oracle/11.2.0/db/dbs/u01apporaclegssp.dbf

 

6 rows selected.

SQL>

 

可以看到5、6号的数据文件都是在根目录下的数据库软件部署目录中。以下是迁移数据文件的详细过程。

关闭数据库。

SQL>

SQL> shu immediate

Database closed.

Database dismounted.

ORACLE instance shut down.

找到5、6号数据文件在操作系统中的具体文件:

5号文件:

6号文件

将5、6号文件在系统层面cp至目标目录下

[root@localhost dbs]# cp ./u01apporaclegssp.dbf /oradata/SJTBDB/datafile/

[root@localhost oracle]# cp ./gdrp.dbf /oradata/SJTBDB/datafile/

切换到目标文件目录下,确认文件已经cp到位。

将数据库启动到mount状态下。

SQL> startup mount

ORACLE instance started.

 

Total System Global Area 3.1467E+10 bytes

Fixed Size              2268712 bytes

Variable Size              4362076632 bytes

Database Buffers    2.7045E+10 bytes

Redo Buffers                57937920 bytes

Database mounted.

SQL>

通过alter database rename命令重命名命令将原文件目录名更改到迁移后的文件目录名。

SQL>

SQL> alter database rename file '/u01/app/oracle/gdrp.dbf' to '/oradata/SJTBDB/datafile/gdrp.dbf';

alter database rename file '/u01/app/oracle/gdrp.dbf' to '/oradata/SJTBDB/datafile/gdrp.dbf'

*

ERROR at line 1:

ORA-01511: error in renaming log/data files

ORA-01141: error renaming data file 5 - new file '/oradata/SJTBDB/datafile/gdrp.dbf' not found

ORA-01110: data file 5: '/u01/app/oracle/gdrp.dbf'

ORA-27041: unable to open file

Linux-x86_64 Error: 13: Permission denied

Additional information: 9

 

此处报错信息提示,数据库无法打开指定的5号文件,原因是权限拒绝。解决此问题,就是在操作系统层面,通过操作系统命令更改新迁移的文件权限,使数据库有可读写权限,具体如下截图:

继续执行alter database rename命令,如下所示,再未出现上述权限错误。

SQL> alter database rename file '/u01/app/oracle/gdrp.dbf' to '/oradata/SJTBDB/datafile/gdrp.dbf';

 

Database altered.

 

SQL> alter database rename file '/u01/app/oracle/11.2.0/db/dbs/u01apporaclegssp.dbf' to '/oradata/SJTBDB/datafile/u01apporaclegssp.dbf';

 

Database altered.

SQL>

 

打开数据库。

 

SQL>

SQL> alter database open;

 

Database altered.

SQL>

SQL>

确认迁移后的结果,查看数据文件目录是否符合预期。

SQL> col name for a60

SQL> set line 160

SQL> select file#,name from v$datafile;

 

     FILE# NAME

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

          1 /oradata/SJTBDB/datafile/o1_mf_system_cnq73jf3_.dbf

          2 /oradata/SJTBDB/datafile/o1_mf_sysaux_cnq73nv2_.dbf

          3 /oradata/SJTBDB/datafile/o1_mf_undotbs1_cnq73r4r_.dbf

          4 /oradata/SJTBDB/datafile/o1_mf_users_cnq741ml_.dbf

          5 /oradata/SJTBDB/datafile/gdrp.dbf

          6 /oradata/SJTBDB/datafile/u01apporaclegssp.dbf

 

6 rows selected.

 

SQL>

 

可以看到5、6号数据文件已经移至目标位置,此时确定数据文件已经从根目录中移出,告知开发部测试业务,确保业务数据无异常后,即可删除根目录下原来的数据文件。

[root@localhost ~]# cd /u01/app/oracle/

[root@localhost oracle]# ls

11.2.0  admin  cfgtoollogs  checkpoints  diag  fast_recovery_area  gdrp.dbf

[root@localhost oracle]# rm -f ./gdrp.dbf

[root@localhost oracle]# cd ./11.2.0/db/dbs/

[root@localhost dbs]# ls

hc_sjtbdb.dat  init.ora  lkSJTBDB  orapwsjtbdb  spfilesjtbdb.ora  u01apporaclegssp.dbf

[root@localhost dbs]# rm ./u01apporaclegssp.dbf -f

删除文件后,根目录空间使用率超过阈值的问题也随之解决。

总结:在创建表空间的过程中,要明确将数据文件指定在项目规划的目录下,切勿存放在根目录下,以避免数据文件随着业务增长而可能引起根目录满的问题。

 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/31403259/viewspace-2136820/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/31403259/viewspace-2136820/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值