我在一台计算机上安装了 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/