我在将Oracle数据库复制到同一服务器但使用其他名称时遇到了大麻烦,无法用作开发数据库。
我已经习惯了SQL Server,我是Oracle(11g)的新手。
我想使用SQL Developer的“数据库副本”,但我一直都会遇到错误。首先是关于缺少表空间。 然后,当我在新的空数据库中手动创建它们时,错误是关于缺少用户。 我想手动创建用户,但之后我首先需要创建缺少的角色。 当所有这一切完成后,失败的索引就失败了......
如何使用“数据库副本”复制我需要的所有内容?
非常感谢任何建议!
答案 0 :(得分:4)
SQL Developer副本只会在模式之间复制对象。你想只制作一个模式的副本吗?或者是一个全新的数据库,包括所有模式?
根据你的问题判断,我假设后者。如果是这样,RMAN“数据库重复”可能对您有所帮助。
请参阅Tim Hall优秀网站的http://www.oracle-base.com/articles/11g/duplicate-database-using-rman-11gr2.php。
答案 1 :(得分:2)
最好的方法是创建一个新用户:
启动MSDOS Shell使用系统管理器连接到您的数据库 帐户 sqlplus / as sysdba
然后写下这些序列:
CREATE USER user2 IDENTIFIED BY user2password;
使用ADMIN OPTION向user2授予所有特权;
GRANT CONNECT TO user2;
向DB2授予DBA;
退出oracle提示
再次在MSDOS Shell中,导出当前用户1,如下所示:
exp user1 / password
或 exp user1 / password @ connectString
如果您在tnsnames.ora中指定了连接字符串 默认情况下回答所有问题,为导出文件指定名称,并指定只导出用户user1
然后继续在新用户2中导入转储,如下所示:
imp user2 / password2 fromuser = user1 touser = user2
默认回答所有问题,将名称命名为导出文件(如果不更改CmdShell的默认文件夹,则不必指定完整文件夹)
答案 2 :(得分:0)