oracle 从一个oracle导数据到另外一个oracle(二)

场景:原有数据库A突然宕掉了,新搭建了数据库B应急,A启动后要把A上的数据迁移到B上,

限制:1、A数据库是Oracle10g,B数据库是Oracle11g

           2、A的字符集是AMERICAN_AMERICA.ZHS16GBK,B的字符集是AMERICAN_AMERICA.UTF8

                 查看字符集:select userenv('language') from dual;

           3、A的用户名为OSMP和OSMPPORTAL,B上对应的用户名为OMSP和OMSPPORTAL

           4、A的表空间是CCPBS,B的表空间是USERS

方法:expdp/impdp

           1、登陆到数据库A的服务器,用expdp导出

                 expdp osmp/osmp@ccpbszq dumpfile=UCD_DEVICE_DN_201708_24.dmp tables=UCD_DEVICE_DN_201708 query=UCD_DEVICE_DN_201708:\"WHERE LOGGER_DATE \< TO_DATE\(\'08/25/2017 00:00:00\', \'MM/DD/YYYY HH24:MI:SS\'\)\"

(注意:此括号是中文的,不要直接粘贴)

注:expdp 用户名/密码@实例 dumpfile=文件名 tables=要备份的表 query=查询条件

       导出结束后会打印出文件路径

          

            2、把步骤一中的文件移动到数据库B上

                  scp /datafile/app/oracle/product/10gR2/rdbms/log/UCD_DEVICE_DN_201708_24.dmp 10.130.24.133:/home/oracle/

                  输入密码移动成功

            3、登录到数据库B的服务器,用impdp导入

                  impdp dumpfile=UCD_DEVICE_DN_201708_24.dmp remap_schema=osmp:omsp table_exists_action=append

                  提示路径不对

                  

                  把备份文件移动到正确目录下(Oracle定义的directory目录),查看管理员目录:select * from dba_directories;

                  mv /home/oracle/UCD_DEVICE_DN_201708_24.dmp /app/oracle/admin/omsp/dpdump/

                  再次执行impdp dumpfile=UCD_DEVICE_DN_201708_24.dmp remap_schema=osmp:omsp table_exists_action=append

                  输入用户名和密码,OK

注:1、impdp dumpfile=文件名 remap_schema=原用户名:目标用户名 table_exists_action=append(追加)

       默认值是skip,但若设置了CONTENT=DATA_ONLY,则默认值是APPEND,不是SKIP。

       TABLE_EXISTS_ACTION=[SKIP | APPEND | TRUNCATE | REPLACE]
       SKIP:跳过这张表,继续下一个对象。如果CONTENT设置了DATA_ONLY参数,则不能使用SKIP。
       APPEND:会加载数据至对象,但不会影响已存在的行。
       TRUNCATE:删除已存在的行,然后加载所有的数据。
       REPLACE:drop已存在的表,然后create并加载数据。如果CONTENT设置了DATA_ONLY,则不能使用REPLACE。
        2、源数据库和目的数据库版本不同,可在导出和导入时同时加参数version(都选低版本)
        查看版本语句:select * from v$version

操作过程中的错误及解决方法
1、导入时:ORA-39039: Schema expression " IN ('OSMP')" contains no valid schemas
      加参数:remap_schema=原schema:新schema
2 、导入时:使用impdp向导入数据时 报错ORA-12154: TNS:could not resolve the connect identifier specified
      在impdp中不输入用户名和密码,等提示在输入
3、导入时:UDI-00010: multiple job modes requested, schema and tables
      参数schema和tables不能同时存在
4、导入时:表空间不存在
      创建表空间:create tablespace CCPBS datafile '/app/oracle/product/11.2.4/db/new_data.dbf' size 500M

猜你喜欢

转载自blog.csdn.net/caide3/article/details/78093536