• ORACLE 从一个实例迁移到另外一个实例实战记录


    ORACLEschema的数据迁移

    測试环境server不够,而同事须要新的oracle环境。把生产环境的数据拉一份过来搭建内部的系统跑;这个实例使用频率不高并且须要的资源不是非常多,所以准备在原有的负载不高的oracleserver上,又一次开一个新的实例,这样能够节省数据库server资源。

    1DBCA建库

             使用DBCA在linux上建立第二个oracle实例,详细搭建过程參考:http://blog.csdn.net/mchdba/article/details/51418063

    2、从线上导出数据库

             由于线上的环境和新的实例不一样,所以假设使用rman备份的话。在恢复的时候就须要设置非常多參数。不是太方便。所以准备使用expdp来进行数据的导出,然后使用impdp进行数据的导入工作。

             线上主要有2个schemas,所以导出2个schema的数据就可以。一个是powerdesk、一个是plas。

    (2.1) 导出数据

             expdppowerdesk/pl_eahys0418 DIRECTORY=dir_dp DUMPFILE=powerdesk_20160829.dmpschemas=powerdesk  LOGFILE=zxg.log;

             expdppowerdesk/pl_ethys0418 DIRECTORY=dir_dp DUMPFILE=plas_20160829.dmp schemas=plas LOGFILE=zxg.log;

            

    (2.2) 数据传输

    [oracle@azure_earth_dbm1_3_111 dir_dp]$ scpplas_20160829.dmp powerdesk_20160829.dmp 192.168.121.61:/home/oracle/

    The authenticity of host '192.168.121.61(192.168.121.61)' can't be established.

    RSA key fingerprint is0a:c7:1c:89:1d:9d:a2:e1:6c:36:68:d9:18:b4:ab:cc.

    Are you sure you want to continueconnecting (yes/no)? yes

    Warning: Permanently added '192.168.121.61'(RSA) to the list of known hosts.

    oracle@192.168.121.61's password:

    plas_20160829.dmp                                                                                                                                                                                                                          100% 1067MB   5.4MB/s   03:16   

    powerdesk_20160829.dmp                                                                                                                                                                                                                     100%   13GB  4.9MB/s   44:24   

    [oracle@azure_earth_dbm1_3_111 dir_dp]$

    3、在新的实例上准备账号

    在使用impdp的时候,能够先创建对应的schema账号。这样导入的时候,能够进行schema到schema之间的数据迁移。

    (3.1) 创建新的表空间

             createtablespace powerdesk  

             logging 

             datafile'/home/oradata/ysdb3/powerdesk01.DBF'

             size50m 

             autoextendon 

             next50m  

             extentmanagement local; 

             createtablespace plas  

             logging 

             datafile'/home/oradata/ysdb3/plas01.DBF'

             size50m 

             autoextendon 

             next50m  

             extentmanagement local;   

            

    (3.2) 创建新的用户

             CREATEUSER powerdesk PROFILE "DEFAULT"    IDENTIFIED BY "powerdes0418" DEFAULT TABLESPACE"POWERDESK"     ACCOUNT UNLOCK;

            

             CREATEUSER plas PROFILE "DEFAULT" IDENTIFIED BY "plas0418"DEFAULT TABLESPACE "PLAS"    ACCOUNT UNLOCK;

    (3.2) 给新的用户赋权

             grantconnect,resource to powerdesk;

             Grantdba to powerdesk;

             grantcreate session to plas;

             grantconnect,resource to plas;

            

    4、在新的实例上导入数据

    (4.1) 准备文件夹

             # 先建立导入文件夹

             createdirectory dir_dp1 as '/home/oracle/';

             # 赋予文件夹权限

             grantcreate,write,read to dir_dp1;

             # 赋予用户对文件夹的操作权限

             Grantread,write on directory dir_dp1 to powerdesk;

             Grantread,write on directory dir_dp1 to plas;

            

    (4.2) 使用IMPDP导入数据  

    time impdp system/yueworldpddirectory=dir_dp1 dumpfile=powerdesk_20160829.dmpREMAP_SCHEMA=powerdesk:powerdesk TABLE_EXISTS_ACTION=REPLACE PARALLEL=8

    time impdp system/yueworldpd directory=dir_dp1dumpfile=plas_20160829.dmp REMAP_SCHEMA=plas:plas TABLE_EXISTS_ACTION=REPLACEPARALLEL=8

    5schema1schema2的迁移

    Oracle 从一个用户expdp导出再impdp导入到还有一个用户,能够使用REMAP_SCHEMA=user1:user2来实现:

            

    假设想导入的用户已经存在:

             1.导出用户 expdp user1/pass1 directory=dumpdir dumpfile=user1.dmp

             2.导入用户 impdp user2/pass2 directory=dumpdir dumpfile=user1.dmpREMAP_SCHEMA=user1:user2 EXCLUDE=USER

    假设想导入的用户不存在:

             1.导出用户 expdp user1/pass1 directory=dumpdir dumpfile=user1.dmp

             2.导入用户 impdp system/passsystem directory=dumpdir dumpfile=user1.dmpREMAP_SCHEMA=user1:user2

             3.user2会自己主动建立,其权限和使用的表空间与user1同样,但此时用user2无法登录,必须改动user2的密码

  • 相关阅读:
    【模仿】一个充满BUG的小程序
    JAVA中的内部类
    oracle删除实例的方法
    牢记每个死循环都要有跳出语句【这个要看】
    删除无效服务的命令
    Oracle触发器和new、old特殊变量
    Python模块之os 系统操作
    Python模块之pyautogui 模拟按下键盘
    Python模块之platform 获取平台信息
    Python官方内置函数V3.10详解
  • 原文地址:https://www.cnblogs.com/brucemengbm/p/7403300.html
Copyright © 2020-2023  润新知