表空间迁移.docx

上传人:b****5 文档编号:30178709 上传时间:2023-08-05 格式:DOCX 页数:12 大小:18.98KB
下载 相关 举报
表空间迁移.docx_第1页
第1页 / 共12页
表空间迁移.docx_第2页
第2页 / 共12页
表空间迁移.docx_第3页
第3页 / 共12页
表空间迁移.docx_第4页
第4页 / 共12页
表空间迁移.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

表空间迁移.docx

《表空间迁移.docx》由会员分享,可在线阅读,更多相关《表空间迁移.docx(12页珍藏版)》请在冰豆网上搜索。

表空间迁移.docx

表空间迁移

表空间迁移

5.检测测试表空间是否是自包含

executedbms_tts.transport_set_check('ZHJS_LIST_CTJS_200801',true);

若报过程dbms_tts.transport_set_check不存在,则用sys的数据库用户执行脚本"$ORACLE_HOME/rdbms/admin/dbmsplts.sql"建立之。

SELECT*FROMTRANSPORT_SET_VIOLATIONS;

若查询结果为空,说明表空间是自包含的;否者查询结果说明哪些地方违反了自包含。

关于自包含的相关定义,参见ORACLE相关文档。

 

6.将要测试的表空间改为只读

altertablespaceZHJS_LIST_CTJS_200801readonly;

 

7.导出元数据

expPARFILE='exppar.f'

exppar.f内容:

  TRANSPORT_TABLESPACE=y

  TABLESPACES=ZHJS_LIST_CTJS_200801

  TRIGGERS=y

  CONSTRAINTS=n

  GRANTS=n

  FILE=test200801.dmp

  LOG=testexp200801.log

exp需要有SYSDBA权限的用户进行连接(username/passwordassysdba)。

 

8.使用dd命令拷贝出裸设备的数据

ddif=/dev/vgnewzhjsdb2/rlvnewzhjs_zlist300of=300ibs=102400obs=102400

ddif=/dev/vgnewzhjsdb2/rlvnewzhjs_zlist301of=301ibs=102400obs=102400

 

9.删除测试的表空间

droptablespaceZHJS_LIST_CTJS_200801includingcontents;

 

10.使用dd命令将8中拷贝出的文件重新拷到其他裸设备中

ddif=300of=/dev/vgnewzhjsdb2/rlvnewzhjs_zlist302ibs=102400obs=102400

ddif=301of=/dev/vgnewzhjsdb2/rlvnewzhjs_zlist303ibs=102400obs=102400

 

11.使用imp导入测试表空间

impPARFILE='imppar.f'

imppar.f内容:

TRANSPORT_TABLESPACE=y

FILE=test200801.dmp

DATAFILES=('/dev/vgnewzhjsdb/rlvnewzhjs_zlist302','/dev/vgnewzhjsdb/rlvnewzhjs_zlist303')

TABLESPACES=ZHJS_LIST_CTJS_200801

TTS_OWNERS=test

FROMUSER=test

TOUSER=test

LOG=testimp200801.log

imp需要有SYSDBA权限的用户进行连接(username/passwordassysdba)。

12.将测试表空间改为可读写

ALTERTABLESPACEZHJS_LIST_CTJS_200801READWRITE;

跨平台的迁移

我在这次迁移用的是传输表空间技术。

1、检查需要传输的用户对应的表空间

SQL>SELECTDISTINCTTABLESPACE_NAMEFROMDBA_SEGMENTSWHEREOWNER='NDMAIN';

TABLESPACE_NAME

------------------------------

NDMAIN

SQL>SELECTDISTINCTTABLESPACE_NAMEFROMDBA_SEGMENTSWHEREOWNER='ZHEJIANG';

TABLESPACE_NAME

------------------------------

ZHEJIANG

2、查询是否满足传输表空间的条件

1)查询是否支持平台转换

--查询源库的平台信息

SQL>SELECTd.PLATFORM_NAME,ENDIAN_FORMATFROMV$TRANSPORTABLE_PLATFORMtp,V$DATABASEdWHEREtp.PLATFORM_NAME=d.PLATFORM_NAME;

PLATFORM_NAMEENDIAN_FORMAT

------------------------------------------------------

Solaris[tm]OE(64-bit)Big

--查询目标库的平台信息

SQL>SELECTd.PLATFORM_NAME,ENDIAN_FORMATFROMV$TRANSPORTABLE_PLATFORMtp,V$DATABASEdWHEREtp.PLATFORM_NAME=d.PLATFORM_NAME;

PLATFORM_NAMEENDIAN_FORMAT

------------------------------------------------------

LinuxIA(32-bit)Little

--从v$transportable_platform视图查询以上两个平台的备份集是否可以转换

SQL>select*fromv$transportable_platformwherePLATFORM_NAMEin('Solaris[tm]OE(64-bit)','LinuxIA(32-bit)');

PLATFORM_IDPLATFORM_NAMEENDIAN_FORMAT

-----------------------------------------------------------------

2Solaris[tm]OE(64-bit)Big

10LinuxIA(32-bit)Little

有两个记录,表示这两种平台下的备份集可以互相转换称对应的平台备份集。

2)查看表空间集是否是子包含

如果某个表空间集引用了其他表空间的对象(如外键引用的表在其他表空间、表空间包含物化视图等),则这个表空间不是自包含的;否则就是自包含。

只有自包含的表空间集才可以用表空间传输技术。

oracle提供dbms_tts.transport_set_check过程来帮助我们判断某个表空间集是否是自包含的:

SQL>executedbms_tts.transport_set_check('NDMAIN,ZHEJIANG',TRUE);

PL/SQLproceduresuccessfullycompleted.

SQL>SELECT*FROMTRANSPORT_SET_VIOLATIONS;

norowsselected

如果查询TRANSPORT_SET_VIOLATIONS有记录返回,则表示表空间集不是自包含的,无法对这些表空间使用表空间传输技术;反之,则表示表空间集是自包含的,可以对这些表空间使用表空间传输技术。

注意:

1)使用dbms_tts.transport_set_check时,要把需要表空间传输的表空间列表都写上,用都好分割,不要每一个表空间执行一次dbms_tts.transport_set_check,这样可能会引起误解:

例如:

A表在表空间T1上,

B表在表空间T2上,并且B表上有一个外键引用A表。

如果要迁移A、B两个表空间,如果分别执行:

executedbms_tts.transport_set_check('T1',TRUE);

executedbms_tts.transport_set_check('T2',TRUE);

则在检查T2时TRANSPORT_SET_VIOLATIONS肯定会有记录,因为B表引用了A表,两个表不在一个表空间上。

但实际上,A、B两个表的表空间都在我们要迁移的范围内,所以迁移后数据的完整性也是有保证的,这个问题就在于我们把T1、T2分别检验造成了误解。

正确的方法应该是:

executedbms_tts.transport_set_check('T1,T2',TRUE);

2)TRANSPORT_SET_VIOLATIONS是一个临时表,必须在执行dbms_tts.transport_set_check同一个会话中查询这个表。

3、在源库导出数据

1)创建directory

SQL>createdirectorytranas'/backup/dmp';

Directorycreated.

2)把对应表空间置于只读模式

SQL>altertablespacendmainreadonly;

Tablespacealtered.

SQL>altertablespacezhejiangreadonly;

Tablespacealtered.

3)用数据泵导出

指定了transport_tablespaces后,数据泵导出的只是一些结构方面的信息,所以导出文件会比较小。

bash-3.00$expdpsystem/testdirectory=trantransport_tablespaces=ndmain,zhejiang

Export:

Release10.2.0.3.0-64bitProductionon星期二,2310月,20071:

21:

36

Copyright(c)2003,2005,Oracle.Allrightsreserved.

Connectedto:

OracleDatabase10gEnterpriseEditionRelease10.2.0.3.0-64bitProduction

WiththePartitioning,RealApplicationClusters,OLAPandDataMiningoptions

Starting"SYSTEM"."SYS_EXPORT_TRANSPORTABLE_01":

system/********directory=trantransport_tablespaces=ndmain,zhejiang

ProcessingobjecttypeTRANSPORTABLE_EXPORT/PLUGTS_BLK

ProcessingobjecttypeTRANSPORTABLE_EXPORT/TABLE

ProcessingobjecttypeTRANSPORTABLE_EXPORT/GRANT/OWNER_GRANT/OBJECT_GRANT

ProcessingobjecttypeTRANSPORTABLE_EXPORT/INDEX

ProcessingobjecttypeTRANSPORTABLE_EXPORT/CONSTRAINT/CONSTRAINT

ProcessingobjecttypeTRANSPORTABLE_EXPORT/INDEX_STATISTICS

ProcessingobjecttypeTRANSPORTABLE_EXPORT/COMMENT

ProcessingobjecttypeTRANSPORTABLE_EXPORT/CONSTRAINT/REF_CONSTRAINT

ProcessingobjecttypeTRANSPORTABLE_EXPORT/TRIGGER

ProcessingobjecttypeTRANSPORTABLE_EXPORT/INDEX/FUNCTIONAL_AND_BITMAP/INDEX

ProcessingobjecttypeTRANSPORTABLE_EXPORT/INDEX/STATISTICS/FUNCTIONAL_AND_BITMAP/INDEX_STATISTICS

ProcessingobjecttypeTRANSPORTABLE_EXPORT/TABLE_STATISTICS

ProcessingobjecttypeTRANSPORTABLE_EXPORT/MATERIALIZED_VIEW

ProcessingobjecttypeTRANSPORTABLE_EXPORT/POST_INSTANCE/PLUGTS_BLK

Mastertable"SYSTEM"."SYS_EXPORT_TRANSPORTABLE_01"successfullyloaded/unloaded

******************************************************************************

DumpfilesetforSYSTEM.SYS_EXPORT_TRANSPORTABLE_01is:

/backup/dmp/expdat.dmp

Job"SYSTEM"."SYS_EXPORT_TRANSPORTABLE_01"successfullycompletedat01:

24:

55

4、转换数据文件格式

由于源数据库和目标数据库所在平台不同,所以要把要传输的表空间对应的数据文件转换为目标平台的格式。

10g下rman提供这一功能,你可以选择在源数据库或者目标数据库进行转换:

1)在源数据库转换:

convertablespace...toplatform....

2)在目标数据库转换:

converdatafile...fromfplatform....

在这里选择第一种方式:

bash-3.00$exportORACLE_SID=prerac1

bash-3.00$rmantarget/

RecoveryManager:

Release10.2.0.3.0-Productionon星期二10月2301:

26:

012007

Copyright(c)1982,2005,Oracle.Allrightsreserved.

connectedtotargetdatabase:

PRETRADE(DBID=3201410814)

RMAN>run{

2>allocatechannelc1devicetypediskconnect'sys/testrac@pre1';

3>converttablespacendmain,zhejiangtoplatform'LinuxIA(32-bit)'Format'/backup/dmp/%U';

4>releasechannelc1;

5>}

--这段脚本的意思是把ndmain、zhejiang这两个表空间对应的数据文件转换成LinuxIA(32-bit),并把转换后的数据文件放在/backup/dmp下

allocatedchannel:

c1

channelc1:

sid=316instance=prerac1devtype=DISK

Startingbackupat23-10月-07

channelc1:

startingdatafileconversion

inputdatafilefno=00014name=+DATA/datafile/ndmain1.ora

converteddatafile=/backup/dmp/data_D-PRETRADE_I-3201410814_TS-NDMAIN_FNO-14_64iv64lb

channelc1:

datafileconversioncomplete,elapsedtime:

00:

05:

06

......

channelc1:

startingdatafileconversion

inputdatafilefno=00038name=+DATA/datafile/zhejiang18.ora

converteddatafile=/backup/dmp/data_D-PRETRADE_I-3201410814_TS-ZHEJIANG_FNO-38_6oiv6bac

channelc1:

datafileconversioncomplete,elapsedtime:

00:

05:

45

Finishedbackupat23-10月-07

releasedchannel:

c1

5、传送文件到目标数据库

[oracle@tdatadmp]$sftp172.0.2.1

Password:

sftp>cd/backup

sftp>ls

dmplost+foundsoft

sftp>cddmp

sftp>mget*

6、在目标数据库创建对应的用户及授权

在导入数据时,对应的用户必须已经存在,并有合适的权限,否则会报错。

[oracle@tdatadmp]$sqlplus"/assysdba"

SQL*Plus:

Release10.2.0.3.0-Productionon星期二10月2309:

32:

002007

Copyright(c)1982,2006,Oracle.AllRightsReserved.

Connectedto:

OracleDatabase10gEnterpriseEditionRelease10.2.0.3.0-Production

WiththePartitioningandDataMiningoptions

SQL>createuserndmainidentifiedbytestndmain202;

Usercreated.

SQL>createuserzhejiangidentifiedbytestzj202;

Usercreated.

SQL>createuserZHEJIANG_OPERATORidentifiedbytestzjop202;

Usercreated.

SQL>createuserZHEJIANG_KHDidentifiedbytestzjkhd202;

Usercreated.

SQL>grantconnect,resourcetondmain;

Grantsucceeded.

SQL>grantconnect,resourcetozhejiang;

Grantsucceeded.

SQL>grantconnect,resourcetoZHEJIANG_OPERATOR;

Grantsucceeded.

SQL>grantconnect,resourcetoZHEJIANG_KHD;

Grantsucceeded.

SQL>grantcreatematerializedviewtozhejiang;

Grantsucceeded.

SQL>grantcreatematerializedviewtondmain;

Grantsucceeded.

SQL>grantcreatesynonymtozhejiang;

Grantsucceeded.

SQL>grantcreatesynonymtondmain;

Grantsucceeded.

SQL>grantcreatematerializedviewtoZHEJIANG_KHD;

Grantsucceeded.

SQL>grantcreatematerializedviewtoZHEJIANG_OPERATOR;

Grantsucceeded.

SQL>grantcreatesynonymtoZHEJIANG_KHD;

Grantsucceeded.

SQL>grantcreatesynonymtoZHEJIANG_OPERATOR;

Grantsucceeded.

--创建directory

SQL>createdirectorytranas'/oradata/dmp';

Directorycreated.

7、在目标库转换文件路径和名称

在目标数据库以rman执行:

run{

convertdatafile'/oradata/dmp/data_D-PRETRADE_I-3201410814_TS-NDMAIN_FNO-14_64iv64lb'db_file_name_convert'/oradata/dmp/data_D-PRETRADE_I-3201410814_TS-NDMAIN_FNO-14_64iv64lb','/oradata/oradata/testzj/ndmain1.dbf';

convertdatafile'/oradata/dmp/data_D-PRETRADE_I-3201410814_TS-NDMAIN_FNO-15_65iv64ut'db_file_name_convert'/oradata/dmp/data_D-PRETRADE_I-3201410814_TS-NDMAIN_FNO-15_65iv64ut','/oradata/oradata/testzj/ndmain2.dbf';

convertdatafile'/oradata/dmp/data_D-PRETRADE_I-3201410814_TS-NDMAIN_FNO-16_66iv658p'db_file_name_convert'/oradata/dmp/data_D-PRETRADE_I-3201410814_TS-NDMAIN_FNO-16_66iv658p','/oradata/oradata/testzj/ndmain3.dbf';

......

convertdatafile'/oradata/dmp/data_D-PRETRADE_I-3201410814_TS-ZHEJIANG_FNO-36_6miv6ald'db_file_name_convert'/oradata/dmp/data_D-PRETRADE_I-3201410814_TS-ZHEJIANG_FNO-36_6miv6ald','/oradata/oradata/testzj/zhejiang16.dbf';

convertdatafile'/oradata/dmp/data_D-PRETRADE_I-3201410814_TS-ZHEJIANG_FNO-37_6niv6b06'db_file_name_convert'/oradata/dmp/data_D-PRETRADE_I-32014108

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 外语学习 > 韩语学习

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1