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

网友投稿 444 2023-11-25

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>

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

关闭数据库。

SQL>

SQL> shu immediate

Database closed.

Database dismounted.

ORACLE instance shut down.

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

5号文件:

6号文件

56号文件在系统层面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>

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

[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-/31403259/viewspace-2136820/,如需转载,请注明出处,否则将追究法律责任。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:oracle序列的概念是什么
下一篇:mysql设计概念、多表查询和事务操作实例分析
相关文章

 发表评论

暂时没有评论,来抢沙发吧~