Oracle10g 备份和恢复已具有其他架构的另一个数据库中正在运行的架构

Oracle10g 备份和恢复已具有其他架构的另一个数据库中正在运行的架构,oracle10g,backup,Oracle10g,Backup,我有一个运行中的数据库,只有一个dba(即除sys之外的系统)“abc”。在这个oracle用户下,我有表、视图、序列、过程、函数等。现在,我必须将数据和模式复制到另一台机器上的另一个数据库,该机器已经运行了十几个模式(每个单独的dba下一个)。我有以下关注: (1) 在移动到新机器之前,我必须在旧机器上重命名模式,从“abc”重命名为“pqr” (2) 在我的过程和函数中,我使用的是AUTHID CURRENT_USER,因此必须在表、视图、序列、过程和函数的名称之前使用“abc.”限定符。在

我有一个运行中的数据库,只有一个dba(即除sys之外的系统)“abc”。在这个oracle用户下,我有表、视图、序列、过程、函数等。现在,我必须将数据和模式复制到另一台机器上的另一个数据库,该机器已经运行了十几个模式(每个单独的dba下一个)。我有以下关注:

(1) 在移动到新机器之前,我必须在旧机器上重命名模式,从“abc”重命名为“pqr”

(2) 在我的过程和函数中,我使用的是AUTHID CURRENT_USER,因此必须在表、视图、序列、过程和函数的名称之前使用“abc.”限定符。在更改架构名称时,是否也有一些自动方式来更改限定符

(3) 为了复制数据,我只知道一种方法,即只备份一个用户“abc”的数据库(即不备份sys、system)。然后将其恢复到新数据库。这会破坏其他模式或它们的数据吗

(4) 在我的模式中,我使用一个过程创建具有有限权限的oracle用户。新用户名存储在用户表中。我还创建数据库角色并将用户与角色关联。角色名称存储在角色表中。当迁移到新机器时,我必须确保在我的用户和角色前面加上一些独特的前缀,这样我就不会干扰其他模式创建的oracle用户

(5) 我知道在新的数据库中,必须有一个名为“pqr”的新dba用户。我是否还必须具有sysdba权限。我不负责新机器上的整个数据库,我只负责我的模式。作为一名系统数据库管理员,我是否可以伤害其他数据库管理员(比如删除他们,或者更改他们的模式)。如果我没有sysdba特权,我会受到什么限制。我正在使用OracleText,因此必须使用一些内置软件包。我还必须在windows的文件系统上创建物理目录。当使用“pqr”连接到数据库时,我还必须通过存储过程创建、更改(更改密码)、删除角色和用户


新旧数据库都在单独的专用机器上运行。它的windows server 2003带有oracle 10gr1。

最简单的选择是使用(经典或数据泵)对第一个数据库中的
abc
架构进行逻辑备份,并使用导入到新数据库中。如果您使用的是经典版本,那么可以使用
FROMUSER
TOUSER
参数指定要将数据导入到不同的模式中。如果您使用的是数据泵版本,那么您将使用
REMAP\u SCHEMA
参数。如果数据量相对较大,则数据泵版本将更高效


但不幸的是,无法更改显式模式限定符。导入代码或从源代码管理系统中提取代码后,您需要编辑代码,编辑代码并将其部署到新数据库。

谢谢Justin。逻辑备份是否包含数据?pqr必须是sysdba吗?@Atif-是,默认情况下导出包含数据(您可以指定不需要数据)。两个架构都不需要具有
DBA
角色。在哪里运行expdb命令?它不是在命令提示符或sqlplus中运行。@Atif-它是一个命令行实用程序(也可以从企业管理器之类的工具中调用)。您是否正在查看我链接到的文档中的示例?您正在执行什么命令以及出现什么错误?对不起,输入错误,必须是expdp,而不是expdb。