java - 如何从 Oracle 10 导出整个数据库并将其导入到 Oracle 11.2.0 以及所有用户?

标签 java database oracle

我在一台计算机上安装了 Oracle 10,并且在那里我安装了一个数据库 centt。 B机上安装了Oracle 11.2.0,没有数据库。 A 计算机上的数据库名称是 centt,我也有一些用户,如 stt、wnn、tnn 等。 现在我想将所有用户的计算机中的整个数据库导出到文件(例如 allDBdump.dat)。 然后我想把这个数据库(文件allDBdump.dat)导入到B电脑。 我在一台计算机上使用了如下导出命令:

exp userid=sys/sys file='c:\allDBdump.dat' log='c:\allDBdump.log' FULL=Y

现在我想在所有用户的计算机上导入整个数据库。 我知道在导入之前我需要通过“数据库配置助手”在一台计算机上创建一个数据库。 然后我需要通过命令在sql工具中创建所有用户:

CREATE USER st IDENTIFIED BY st;
GRANT ALL PRIVILEGES TO st WITH ADMIN OPTION;
GRANT IMP_FULL_DATABASE TO st WITH ADMIN OPTION;

然后我使用命令导入数据库:

imp 'sys/sys@192.168.61.62:1521/centt as sysdba' FULL=Y file=allDBdump.dat fromuser=st touser=st

这个解决方案很好,但我需要在导入前了解所有用户。 问题是如何去做,如何导入allDBdump.dat而不在A台计算机上创建所有用户。 像这样的东西:

imp 'sys/sys@192.168.61.62:1521/centt as sysdba' FULL=Y file=allDBdump.dat IMPORT_ENTIRE_DATABASE_WITH_ALL_USERS_ON_A_COMPUTER

非常感谢。

最佳答案

你试过了吗Datapump ?。好多了。唯一的缺点是你需要在两台服务器上都有一个目录(或者用 db_link 链接它们)

expdp system/password@db10g full=Y directory=TEST_DIR dumpfile=DB10G.dmp logfile=expdpDB10G.log

impdp system/password@db11g full=Y directory=TEST_DIR dumpfile=DB10G.dmp logfile=impdpDB11G.log

关于java - 如何从 Oracle 10 导出整个数据库并将其导入到 Oracle 11.2.0 以及所有用户?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38323857/

相关文章:

oracle - 从 MSDAORA 提供程序更改为 OraOLEDB 提供程序后,颠倒的问号而不是真实字符

java - 上下文初始化期间遇到异常 - 取消刷新尝试 org.springframework.beans.factory.BeanCreationException :

java - 从哪里获取 javax.servlet.http.annotation 包?

java - 用于与 null 进行比较的局部变量

mongodb - 如何将 mongodb 字符集设置为 utf8?

mysql - 从 MySQL 获取唯一数据

java - 方法中缺少 return 语句时出错

Java变量表示的对象类型

sql - 简单的查询需要很长时间

mysql - 在插入时在 MySQL 和 Oracle 中创建 Base36 键