我有一个这样的需求,我这边的数据库实例下有两个用户,在这两个用户下都有表,序列号,存储过程和触发器等等,现在我需要对这个数据库备份,以便更换更环境时,我可以将这个数据库导入。我现在对这丙个的命令有所了解,我想问的是,如果要作全库备份,是用超级管理员作一次导出呢,还是分别用这个两个用户作两次导出呢?
第二在用impdp的时候,是用超级管理员导入呢,还是用具有超级管理员权限的普通用户
impdp sys/sys directory=DATA_PUMP_DIR DUMPFILE=SDE_DBBACKUP_LOGIC.DMP  FULL=ysys/sys为超级管理员用户名和密码。我想问的这里没有指定数据库实例,它是导在哪个实便下面。因为我机器上存在多个实例,且有些用户名和密码是相同的。还是根本就不需要实例,如果这个文件导入成功,它就会创建实例。
??????????
请帮忙解答下。我对oracle 这方面很菜

解决方案 »

  1.   

    1、可以一次导出多个用户的数据,指定schemas参数就行了,如有A,B两个用户,则可以使用命令
    expdp sys/sys directory=DATA_PUMP_DIR DUMPFILE=SDE_DBBACKUP_LOGIC.DMP SCHEMAS=(A,B)2、只要有EXP_FULL_DATABASE,IMP_FULL_DATABASE权限的任何用户就行。3、如果没有设置环境变量ORACLE_SID,则当前实例则由注册表中HOME0下的实例为默认实例
    如果要指定实例,需要在启动数据库前指定。如要启动实例ora_1:
    SET ORACLE_SID=ora_1
    sqlplus / as sysdba
    startup然后就可以导入数据到此实例,注意:导入之前需要建立好对应的表空间和用户
      

  2.   


    1.如果指定指定schemas参数人话,就不能使用full=y选项了,就不能进行全库导出了,我想再问下,如果指定schemas参数,他会不会把该用户下的所有表,序列号,存储过程和触发器等导出吗?
    2.我下面的两个用户都具有DBA权限,应该就具有EXP_FULL_DATABASE,IMP_FULL_DATABASE权限
    3.今下午我用普通用户但具有DBA权限,我用impdp sde/sde@turbo directory=DATA_PUMP_DIR DUMPFILE=SDE_DBBACKUP_LOGIC.DMP FULL=y 执行了就次,是可以将数据导入,并且两个用户都有所有的数据,但在导入一些系统表时,报一些对象已存在,还有很多一些乱七八遭的错误,我在执行之前,我把数据库所引用的表空间,用户都建好了。