我使用this tuotrial导出/导入架构。本教程中的步骤一直有效,直到expdp命令,请参见屏幕截图:
我正在使用oracle12c。有什么想法吗?
答案 0 :(得分:2)
目录对象只是指向物理目录的指针,创建它实际上并不在数据库服务器的文件系统上创建物理目录。
您必须在数据库外单独创建物理操作系统目录。该物理目录必须由运行Oracle数据库的操作系统用户可读写;因为你似乎在Windows上将是运行服务的帐户。
您可以在创建目录对象之前或之后创建物理目录,因为它们完全独立,除非Oracle尝试通过UTL_FILE或相关活动访问它 - 数据泵使用UTL_FILE,正如您从错误消息中看到的叠加。
CREATE DIRECTORY
不检查它指向的物理目录是否存在;并且您可以在没有Oracle注意的情况下删除或创建物理目录;只要它在您尝试使用它时就可以访问。
目录对象指定服务器文件系统上目录的别名...
和
对于文件存储,还必须创建相应的操作系统目录,Oracle自动存储管理(Oracle ASM)磁盘组或Oracle ASM磁盘组中的目录。您的系统或数据库管理员必须确保操作系统目录具有对Oracle数据库进程的正确读写权限。
为目录授予的权限是独立于为操作系统目录定义的权限而创建的,两者可能完全对应,也可能不完全对应。例如,如果示例用户hr被授予对目录对象的READ权限但相应的操作系统目录没有为Oracle数据库进程定义的READ权限,则会发生错误。