最近需要把整个系统平台迁移的新服务器上,包括数据库,数据库软件要从Oracle10G升级到11G,因为新服务器没有到位,且数据库备份迁移需要几天的时间,所以打算提前把数据库备份出来,原服务器(HP小型机,HP-UNIX操作系统)磁盘空间远远不够本地备份使用了,信息中心提供了一台pc机供数据备份使用,为了快速备份出数据库采用的是数据泵的本分方式:
创建本分目录:
CREATE DIRECTORY back_dir AS 'E:\backup';
检查备份目录是不是创建成功:
SELECT * FROM DBA_DIRECTORIES WHERE DIRECTORY_NAME='BACK_DIR';
注意:DIRECTORY_NAME要大写才能查到。
给备份用户授权读写备份目录:
GRANT read,write ON DIRECTORY back_dir TO SYSTEM;
按照数据泵的备份操作了几次都是出现一下错误提示:
ORA-39002: invalid operation
ORA-39070: Unable to open the log file.
ORA-29283: invalid file operation
ORA-06512: at "SYS.UTL_FILE", line 488
ORA-29283: invalid file operation

但是使用传统的exp命令备份是正常可以备份,只是备份就需要7、8天时间,还原又得7、8天,没那么多时间,所以只能继续研究数据泵本分。重点是:ORA-39070: Unable to open the log file.说明备份目录权限的问题,不能访问,写入不了数据。网上找了很多资料都是数据泵在本机上备份的,那可能是数据库不能访问异地的备份目录,于是就想尝试在服务器上临时扩容,但是去机房看了下小机,结果是连USB接口都没有,移动硬盘都插不上去。现在只有一条解决方法了:远程挂载备份服务器上E盘的backup目录,尝试了下成功了。详细做法如下:
一、在Windows2019服务器上设置nfs共享E:\backup目录:
1、创建nfs服务器



然后下一步知道安装完毕。
2、设置共享目录

3、验证备份用的pc机的backup在数据库服务器能不能挂载或者看见:
showmount -e 备份机的IP
本例中的显示操作结果如下:
这种能显示出来备份机(Windows PC)上的备份目录,说明Windows上的共享目设置成功了。
4、原服务器(HP小机)上远程挂载备份机(Windows PC)上的backup目录
a、在HP小机上创建挂载点,并修改组和用户及权限
mkdir /dev/backup
chown -R newowner:newgrp /dev/backup
chom 777 /dev/backup
最后检查下创建修改的结果: ll /dev
b、远程挂载Windows PC上的共享备份文件夹backup
mount -F nfs Windows PC IP:/backup /dev/backup
检查是否挂载成功:ls /dev/backup

如上图所示能够显示Windows PC backup目录中的文件,就说明挂载成功了。
到此远程挂载备份目录设置完成,然后就可以重新创建数据泵的备份目录和设置权限备份数据了。
CREATE DIRECTORY back_dir AS '/dev/backup';
GRANT read,write ON DIRECTORY back_dir TO SYSTEM;
备份数据:expdp username/password@server directory=back_dir full=y dumpfile=***.dmp logfile=***.log


被折叠的 条评论
为什么被折叠?



