5

我在将 Oracle 数据库复制到同一台服务器但使用另一个名称时遇到了很大的麻烦,以用作开发数据库。

我习惯了 SQL Server,我是 Oracle (11g) 的新手。

我想使用 SQL Developer 的“数据库副本”,但一直出错。首先是缺少表空间。然后,当我在新的空数据库中手动创建它们时,错误是关于缺少用户的。我想手动创建用户,但我首先需要创建缺少的角色。完成所有操作后,它因缺少索引而失败...

如何使用“数据库副本”复制我需要的所有内容?

任何意见是极大的赞赏!

4

3 回答 3

4

SQL Developer 副本只会在模式之间复制对象。你只想复制一个模式吗?还是一个全新的数据库,包括所有模式

从你的问题来看,我假设是后者。如果是这样,RMAN“数据库复制”可能会对您有所帮助。

请参阅Tim Hall 的优秀网站上的http://www.oracle-base.com/articles/11g/duplicate-database-using-rman-11gr2.php 。

于 2012-11-07T15:46:27.843 回答
2

对您来说最好的方法是创建一个新用户:

启动 MSDOS Shell 使用系统管理员帐户 sqlplus / as sysdba 连接到您的数据库

然后编写这些序列:

CREATE USER user2 IDENTIFIED BY user2password;

使用管理员选项将所有权限授予 user2;

向用户 2 授予连接;

将 DBA 授予 user2;

退出 oracle 提示符

再次在 MSDOS Shell 中,像这样导出当前的 user1:

exp 用户 1/密码

或 exp user1/password@connectString

如果您在 tnsnames.ora 中指定了连接字符串,则默认回答所有问题,为您的导出文件命名,并指定您只想导出用户 user1

然后继续在你的新用户 2 中导入转储,如下所示:

imp user2/password2 fromuser=user1 touser=user2

默认回答所有问题,为您的导出文件命名(如果您不更改 CmdShell 的默认文件夹,则不必指定完整文件夹)

于 2012-11-07T15:33:36.487 回答
0

来自 Oracle 文档的一个有趣的链接:

http://docs.oracle.com/cd/E11882_01/backup.112/e10642/rcmdupdb.htm#BRADV010

于 2014-01-30T11:39:38.423 回答