我们有台数据库在aix平台上,现在新到个服务器,想把原来那个服务器上的数据库中某个用户的表导出新数据库中,我导出的很顺利,exp user/pass@database   file='ssss.dmp'   log='aaa.log' user='user'  还有些参数,然后又用imp  ,也导进去了,但是导进去的数据比原来数据库的记录少了好多,表的数量到是一致,但是记录少了.导了几次都那样的,所以我想直接原来数据库上的文件给拷过来,拷到新的服务器上,通过一些操作,就可以把数据库给启动,我不知道要怎么弄,我把ORADATA文件下的文件都拷了,现在要怎么操作 ,做哪些设置,请大虾们帮帮忙,给我一个详细的步骤.谢谢

解决方案 »

  1.   

    ---转载
    在ORACLE中移动数据库文件 大全
    在ORACLE中移动数据库文件 --ORACLE数据库由数据文件,控制文件和联机日志文件三种文件组成。
    --由于磁盘空间的变化,或者基于数据库磁盘I/O性能的调整等,
    --我們可能会考虑移动数据库文件。
    --下面以LUNIX平台为例,分别讨论三种数据库文件的移动方法。 一.移动数据文件: 
    -- 可以用ALTER DATABASE,ALTER TABLESPACE两种方法移动数据文件。 1. ALTER DATABASE方法;
    -- 用此方法,可以移动任何表空间的数据文件。 STEP 1. 下数据库: 
    $ sqlplus /nolog
    SQL> CONNECT INTERNAL;
    SQL> SHUTDOWN;
    SQL> EXIT; STEP 2.用操作系统命令移动数据文件: 
    -- 将数据文件 'test.ora' 从/ora/oracle/data1目录移动到/ora/oracle/data2目录下: 
    $ mv /ora/oracle/data1/test.ora /ora/oracle/data2 STEP 3. Mount数据库,用ALTER DATABASE命令将数据文件改名: 
    $ sqlplus /nolog 
    SQL> CONNECT INTERNAL;
    SQL> STARTUP MOUNT;
    SQL> ALTER DATABASE RENAME FILE '/ora/oracle/data1/test.ora' TO '/ora/oracle/data2/test.ora'; STEP 4. 打开数据库:. 
    SQL> ALTER DATABASE OPEN; 
    SQL>SELECT NAME,STATUS FROM V$DATAFILE;2. ALTER TABLESPACE方法: 
    -- 用此方法,要求此数据文件既不属于SYSTEM表空间,也不属于含有ACTIVE回滚段或临时段的表空间。 STEP1. 将此数据文件所在的表空间OFFLINE: 
    $ sqlplus /nolog
    SQL> CONNECT INTERNAL;
    SQL> ALTER TABLESPACE test OFFLINE;
    SQL> EXIT; STEP2. 用操作系统命令移动数据文件: 
    将数据文件 'test.ora' 从/ora/oracle/
    data1目录移动到/ora/oracle/data2目录下:
    $ mv /ora/oracle/data1/test.ora /ora/oracle/data2 STEP3. 用ALTER TABLESPACE命令改数据文件名:
    $ sqlplus /nolog
    SQL> CONNECT INTERNAL;
    SQL> ALTER TABLESPACE test RENAME DATAFILE '/ora/oracle/data1/test.ora' TO '/ora/oracle/data2/test.ora'; STEP4. 将此数据文件所在的表空间ONLINE:
    SQL> ALTER TABLESPACE test ONLINE; 
    SQL> SELECT NAME,STATUS FROM V$DATAFILE;二. 移动控制文件: -- 控制文件 在 INIT.ORA文件中指定。移动控制文件相对比较简单,下数据库,
    -- 编辑INIT.ORA,移动控制文件,重启动数据库。 STEP 1. 下数据库:
    $ sqlplus /nolog
    SQL> CONNECT INTERNAL;
    SQL> SHUTDOWN;
    SQL> EXIT; STEP 2.用操作系统命令 移动控制文件:
    --将控制文件'ctl3orcl.ora' 从/ora/oracle/data1目录移动到/ora/oracle/data2目录下:
    $ mv /ora/oracle/data1/ctrlorcl3.ora /ora/oracle/data2 STEP 3. 编辑INIT.ORA文件:
    INIT.ORA文件的在$ORACLE_HOME/dbs目录下,
    修改参数 "control_files",其中指定移动后的控制文件: 
    control_files = (/ora/oracle/data1/ctrlorcl1.ora,/ora/oracle/data1/ctrlorcl2.ora,/ora/oracle/data2/ctrlorcl3.ora)STEP 4. 重启动数据库: 
    $ sqlplus /nolog
    SQL> CONNECT INTERNAL;
    SQL> STARTUP;
    SQL>SELECT name FROM V$CONTROLFILE;
    SQL> EXIT; 
    三. 移动联机日志文件: 
    STEP 1. 停数据库:
    $ sqlplus /nolog
    SQL> CONNECT INTERNAL;
    SQL> SHUTDOWN;
    SQL> EXIT; STEP 2. 用操作系统命令移动联机日志文件:
    --将联机日志文件'redolog1.ora' 从/ora/oracle/data1目录移动到/ora/oracle/data2目录下:
    $ mv /ora/oracle/data1/redolog1.ora /ora/oracle/data2 STEP 3. Mount数据库,用ALTER DATABASE 命令改联机日志文件名:. 
    $ sqlplus /nolog
    SQL> CONNECT INTERNAL;
    SQL> STARTUP MOUNT ;
    SQL> ALTER DATABASE RENAME FILE '/ora/oracle/data1/redolog1.ora' TO '/ora/oracle/data2/redolog1.ora'; STEP 4.重启动数据库: . 
    SQL> ALTER DATABASE OPEN; 
    SQL>SELECT MEMBER FROM V$LOGFILE;
      

  2.   

    参考:
    使用 Oracle Data Pump 卸载和加载数据库内容
    http://www.oracle.com/technology/global/cn/obe/obe10gdb_vmware/storage/datapump/datapump.htm