zoukankan      html  css  js  c++  java
  • Tablespace 迁移

    1 目标库的准备
     1.1 安装目标库的OS及Oracle(要和原库一样版本,并上和原库一样的Patch)
     1.2 修改目标库的初始化参数DB_FILES=2048
     1.3 在目标库 nomount状态create control file(修改maxdatafiles为2048)
     1.4 Shutdown 目标库,再重新Startup
     1.5 给目标库的TEMP表空间增加数据文件
     1.6 在目标库上创建User,名称,权限要和原库相同(对于未迁移过来的tablespace的权限不要设)
     1.7 Copy原库的tnsnames.ora到目标库,覆盖目标库的tnsnames.ora
     1.8 在目标库创建和原库相同的DB_LINK
    2 准备原库
     2.1 利用工具生成将要移动的user所拥有的object的 生成语句,比如某用户Create FUNCTION,VIEW,PROCEDURE,PACKAGE,package body,job的SQL object.sql
     2.2 用方法生成要迁移的table及列COMMENT生成语句COMMENT.sql,如COMMENT ON COLUMN its.ACTION_INPUT.SERIES_NO is'测试';
     2.3 以sys身份进入原库,检查要迁移的tablespace是否通过自包含检查,举例如下:
         例1:
         要迁移的tablespace 名称为tabs1,tabs2,tabs3
         SQL>exec dbms_tts.TRANSPORT_SET_CHECK('tabs1,tabs2,tabs3',true);
         SQL>select * from transport_set_violations;
         如果返回来的结果为空,则表示附和要求,如果找到不符合要求的物件,处理掉它。可以将这些物件移动到合适的tablespace.然后再次验证,直到全部解决。
    3 执行tablespace迁移动作
     3.1 以 SysDBA权限连接原库,将要搬移的tablespace状态改为read only.
     3.2 在原库执行EXP,举例如下
         exp 'sys/oracle@orcl as sysdba' tablespaces=(tabs1,tabs2,tabs3) transport_tablespace=y file=mydump.dmp log=exp.log statistics=none constraints=y grants=y triggers=y
     3.3 将tabs1,tabs2,tabs3 tablespace所属的数据文件复制到目标库相应的位置
     3.4 将导出的DMP文件复制到目标库
     3.5 在目标库执行IMP,举例如下
         imp 'sys/oracle@orcl as sysdba' tablespaces=(tabs1,tabs2,tabs3) transport_tablespace=y file=mydump.dmp log=imp.log statistics=none constraints=y grants=y parfile=par.txt
         par.txt如下:
         datafiles=(d:\orcl\tabs1\tabs101.dbf,d:\orcl\tabs1\tabs102.dbf,d:\orcl\tabs2\tabs201.dbf,d:\orcl\tabs3\tabs301.dbf)
     3.6 查看日志是否有异常
     3.7 在目表库,将迁移过来的tablespace改为 read write.
     3.8 在目标库运行2.1生成的object.sql创建FUNCTION,VIEW,PROCEDURE,PACKAGE,package body,job等(一些object未导过来,只有trigger成功导过来了,或许我的方法有纰漏)
     3.9 在目标库运行2.2COMMENT.sql(主要是tablespace transport过来之后,COMMENT是乱码,所以要重建,也可能是我的方法有纰漏)
     3.10 对比两个库的对象是否相同,补充差异部分
     3.11请人员做一次全程测试
     3.12更改IP,正式上线
     

  • 相关阅读:
    Java实现 LeetCode 735 行星碰撞(栈)
    Java实现 LeetCode 735 行星碰撞(栈)
    Java实现 LeetCode 887 鸡蛋掉落(动态规划,谷歌面试题,蓝桥杯真题)
    Java实现 LeetCode 887 鸡蛋掉落(动态规划,谷歌面试题,蓝桥杯真题)
    Java实现 LeetCode 887 鸡蛋掉落(动态规划,谷歌面试题,蓝桥杯真题)
    Java实现 蓝桥杯算法提高 求最大值
    Java实现 蓝桥杯算法提高 求最大值
    Java实现 蓝桥杯算法提高 求最大值
    Python eval() 函数
    Python repr() 函数
  • 原文地址:https://www.cnblogs.com/kevinsun/p/1025525.html
Copyright © 2011-2022 走看看