我在将 Oracle 数据库复制到同一台服务器但使用另一个名称时遇到了很大的麻烦,以用作开发数据库。
我习惯了 SQL Server,我是 Oracle (11g) 的新手。
我想使用 SQL Developer 的“数据库副本”,但一直出错。首先是缺少表空间。然后,当我在新的空数据库中手动创建它们时,错误是关于缺少用户的。我想手动创建用户,但我首先需要创建缺少的角色。完成所有操作后,它因缺少索引而失败...
如何使用“数据库副本”复制我需要的所有内容?
任何意见是极大的赞赏!
我在将 Oracle 数据库复制到同一台服务器但使用另一个名称时遇到了很大的麻烦,以用作开发数据库。
我习惯了 SQL Server,我是 Oracle (11g) 的新手。
我想使用 SQL Developer 的“数据库副本”,但一直出错。首先是缺少表空间。然后,当我在新的空数据库中手动创建它们时,错误是关于缺少用户的。我想手动创建用户,但我首先需要创建缺少的角色。完成所有操作后,它因缺少索引而失败...
如何使用“数据库副本”复制我需要的所有内容?
任何意见是极大的赞赏!
SQL Developer 副本只会在模式之间复制对象。你只想复制一个模式吗?还是一个全新的数据库,包括所有模式?
从你的问题来看,我假设是后者。如果是这样,RMAN“数据库复制”可能会对您有所帮助。
请参阅Tim Hall 的优秀网站上的http://www.oracle-base.com/articles/11g/duplicate-database-using-rman-11gr2.php 。
对您来说最好的方法是创建一个新用户:
启动 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 的默认文件夹,则不必指定完整文件夹)
来自 Oracle 文档的一个有趣的链接:
http://docs.oracle.com/cd/E11882_01/backup.112/e10642/rcmdupdb.htm#BRADV010