【发布时间】:2013-08-15 04:14:34
【问题描述】:
我们在 linux 机器上安装了 oracle 11g。我想在本地 64 位 Windows 机器上复制数据库。我们总共有 403 个表,其中一些有外键约束。我不是 dba,所以我没有 sysdba 特权。我也无法关闭远程数据库。有没有一种快速的方法来做到这一点,而不是我一个一个地复制表格?谢谢
【问题讨论】:
-
exp\imp - 在客户端全部执行。
我们在 linux 机器上安装了 oracle 11g。我想在本地 64 位 Windows 机器上复制数据库。我们总共有 403 个表,其中一些有外键约束。我不是 dba,所以我没有 sysdba 特权。我也无法关闭远程数据库。有没有一种快速的方法来做到这一点,而不是我一个一个地复制表格?谢谢
【问题讨论】:
考虑到您没有授予 DBA 角色并且无权访问服务器计算机,您将无法在您的计算机上进行冷备份和安装,因为冷备份需要关闭数据库。
其次,你也不能使用 rman 实用程序。
您可以使用 expdp 实用程序将数据库导出为文件并使用 impdp 实用程序将其导入您的数据库。但是为了导出数据,您至少需要 CONNECT 和 RESOURCE 授予您的用户的角色(假设您已经有 CONNECT 否则您将根本无法连接到 db )并且使用这些角色您只能导入您已经有权访问的对象。包括您拥有的对象。
另一方面,如果您需要完整的数据库导出,则需要授予 EXP_FULL_DATABASE。 DBA、SYS 和其他一些角色包含了这个角色。因此,您最好的机会是联系 dba,询问授予您的用户的角色,看看他们对此有何反应。
【讨论】: