设为首页 收藏本站
查看: 441|回复: 0

[经验分享] Oracle传输表空间迁移数据库

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2014-11-11 08:51:03 | 显示全部楼层 |阅读模式
本文是通过exp/imp方式实现,需要将数据库表空间处于只读模式,对于实时应用的生产数据库,可以采用rman方式进行传输表空间,本文源与目标数据库均为oralce 10.2.0.5 for linux版本。
执行表空间传输有以下限制条件:   
(1)源数据库和目标数据库必须处于相同的平台,10g以后可以用RMAN命令修改数据文件实现跨平台移动表空间。   
(2)对于源数据库和目标数据库版本不同时,源数据库的版本必须低于目标数据库。   
(3)两边数据库字符集和国家字符集必须一致。   
(4)目标数据库不能存在同名的表空间。
1. 查询oracle支持的平台转换SQL> col PLATFORM_NAME for a40;   
SQL> select * from v$transportable_platform order by 3;
PLATFORM_ID PLATFORM_NAME                            ENDIAN_FORMAT   
----------- ---------------------------------------- --------------   
          6 AIX-Based Systems (64-bit)               Big   
         18 IBM Power Based Linux                    Big   
          2 Solaris[tm] OE (64-bit)                  Big   
          4 HP-UX IA (64-bit)                        Big   
         16 Apple Mac OS                             Big   
          1 Solaris[tm] OE (32-bit)                  Big   
          9 IBM zSeries Based Linux                  Big   
          3 HP-UX (64-bit)                           Big   
         17 Solaris Operating System (x86)           Little   
         20 Solaris Operating System (x86-64)        Little   
         12 Microsoft Windows x86 64-bit             Little   
         13 Linux x86 64-bit                         Little   
          8 Microsoft Windows IA (64-bit)            Little   
         19 HP IA Open VMS                           Little   
         11 Linux IA (64-bit)                        Little   
          5 HP Tru64 UNIX                            Little   
         10 Linux IA (32-bit)                        Little   
          7 Microsoft Windows IA (32-bit)            Little   
         15 HP Open VMS                              Little

2. 创建测试表空间和测试用户、表SQL> create tablespace tjoa datafile '/u01/app/oracle/oradata/orcl/tjoa.dbf' size 10m autoextend on next 10m;   
SQL> create user abc identified by abc default tablespace TJOA;   
SQL> grant connect,resource to abc;   
SQL> conn abc/abc   
SQL> create table t as select * from all_objects;

3. 检查自包含性SQL> conn / as sysdba   
SQL> execute dbms_tts.transport_set_check(ts_list=>'TJOA',incl_constraints=>TRUE);   
SQL> select * from transport_set_violations;
设置表空间只读SQL> alter tablespace TJOA read only;   
SQL> select tablespace_name, status from dba_tablespaces where tablespace_name = 'TJOA';
TABLESPACE_NAME                STATUS   
------------------------------ ---------   
TJOA                           READ ONLY
SQL>

4. 执行导出exp \'/ as sysdba \' file=tjoa.dmp transport_tablespace=y tablespaces=TJOA buffer=10240000
通过expdp方式:   
expdp \'/ as sysdba \' dumpfile=tjoa.dmp directory=dump_dir transport_tablespaces=TJOA

5. 源库将表空间设置为读写状态SQL> alter tablespace TJOA read write;

6. 模拟平台转换windows/linux平台字节序同为Little都不需要转换,10g及以上版本的数据文件可以直接拷贝。
使用rman的convert命令转换文件示例如下:   
$ rman target /   
RMAN> convert tablespace TJOA to platform 'Linux IA (32-bit)' format '/u01/%U';

7. 复制表空间转换后的数据文件及导出文件到目标平台scp tjoa.dmp 192.168.233.160:/home/oracle   
scp tjoa.dbf 192.168.233.160:/u01/app/oracle/oradata/orcl/

8. 先在目标数据库创建用户abcSQL> create user abc identified by abc;   
SQL> grant connect,resource to abc;

9. 导入表空间imp \'/ as sysdba \' file=tjoa.dmp transport_tablespace=y tablespaces=TJOA datafiles=/u01/app/oracle/oradata/orcl/tjoa.dbf
通过impdp方式:   
impdp \'/ as sysdba \' dumpfile=tjoa.dmp directory=dump_dir transport_datafiles=/u01/app/oracle/oradata/orcl/tjoa.dbf remap_schema=tjoa:tjoa

10. 目标库配置SQL> alter user abc default tablespace TJOA;   
SQL> select tablespace_name, status from dba_tablespaces where tablespace_name = 'TJOA';   
SQL> alter tablespace TJOA read write;
SQL> conn / as sysdba;   
Connected.   
SQL> alter user abc default tablespace TJOA;
User altered.
SQL> select tablespace_name, status from dba_tablespaces where tablespace_name = 'TJOA';
TABLESPACE_NAME                STATUS   
------------------------------ ---------   
TJOA                           READ ONLY
SQL>   
SQL>     
SQL> alter tablespace TJOA read write;
Tablespace altered.
SQL>   
SQL> select tablespace_name, status from dba_tablespaces where tablespace_name = 'TJOA';
TABLESPACE_NAME                STATUS   
------------------------------ ---------   
TJOA                           ONLINE
SQL>


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-27597-1-1.html 上篇帖子: Oracle传输表空间迁移数据库 下篇帖子: Oracle中password file的作用及说明 orapwd命令的使用 Oracle 数据库 空间
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表