师傅让我导入一个数据库,备份文件的格式是dmp。对Oracle不熟悉,更没这样“复制”一个数据库。所以查了一些资料。经历了一下步骤

  1. 删除原有oracle,电脑上原来的oracle数据库被我整的乱七八糟。所以删除了原有数据库。

    1. NT

      Administrator

      登陆

      以“高级用户”的身份登录电脑。

    2. 停用所有oracle服务。

    3. 删除注册表中的HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE

    4. 删除注册表中的HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services中的所有以Oracle开头的所有服务。

    5. 删除注册表中的HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\EventLog\Application中以oracle开头的所有服务。

    6. 打开控制面板—>系统—>环境变量。

    7. 如果ORACLE安装了JRE,就删除%ORACLE_HOME%\BIN和JRE路径。比如  \ORACLE\ORA81\BIN;G: \Program Files\Oracle\jre\1.1.7\bin

    8. 删除\Winnt\Profiles\All Users\Start Menu\Programs\Oracle 和 \Winnt\Profiles\All Users\Start Menu\Programs\Oracle

    9. 删除\Program Files\Oracle

    10. 重启机器

    11. 删除所有ORACLE目录(在注册表 HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\ORACLE_HOMES下)

  2. 安装oracle。

  3. 创建用户HLJGS。(这个用户是dmp文件中要求的,似乎不能变)

  4. 在HLJGS用户下,创建新的表空间RTABLES。(这个似乎也是dmp文件中要求的,但不确定)

  5. 导入sql文件,创建相应的表。(不知道这一步骤是否多余)

  6. 导入dmp文件,语句如下

    $imp HLJGS./yandong inctype=rectore full=y ignore=y file=C:\oracle\product\10.2.0\db_1\BIN\hljgs.dmp

    其中:ignore=y需要有,表示如果表已存在,忽略之继续运行。(但是我不知道这里的忽略是跳过dmp中create table语句,还是删除原表,创建新表)

  7. 导入成功。

但是我这里还有一些遗留问题。

  • 导入dmp中,对于用户真的有要求吗?

  • 导入dmp中,表空间是否必须新创建,新创建的表空间名字是否必须是某个名?

  • 导入dmp之前是否必须导入sql文件?

  • ignore=y需要有,表示如果表已存在,忽略之继续运行。但是我不知道这里的忽略是跳过dmp中create table语句,还是删除原表,创建新表?