技术开发 频道

可传输表空间特性复制数据:转换字节顺序


一、使用CONVERT TABLESPACE
    前面提到,CONVERT TABLESPACE必须在源平台执行,用于转换表空间的endian format到目标平台,通常的调用形式是:
RMAN> CONVERT TABLESPACE ts_1, ts_2...
TO PLATFORM 'platform_name';

    并且可以在命令中指定FORMAT或DB_FILE_NAME_CONVERT参数来设置转换后数据文件的命名规则,PARALLELISM参数指定转换的并行度(用于提高转换效率的,有点类似rman备份恢复中的通道数概念)。例如:

RMAN> CONVERT TABLESPACE jssweb
TO PLATFORM 'Linux IA (32-bit)'
db_file_name_convert 'E:\ora10g\oradata\jssweb','e:\oratmp\oradata'
PARALLELISM 3;

    注意示例中的PARALLELISM参数,如果该参数值设置的不合理,有可能适得其反,花费的时间反而更长,一般而言,推荐并行度大小不要超过要转换的数据文件的数量。

    另外对于FORMAT和DB_FILE_NAME_CONVERT参数前面介绍中也提到了,两个参数可以同时指定,如果同时指定了两个参数,则rman会以FORMAT参数的设定为准。如果两个参数都未指定的话,rman就会按照它自己的规则生成文件。具体规则呢这里就不描述了,总之就是数字和字母组合,如果你决定按照它的规则命令文件,那么我至少能确认一件事---单看文件名,你已经不能分辩这个文件是干嘛的了。

二、使用CONVERT DATAFILE
    CONVERT DATAFILE则是必须在目标平台执行,用于转换指定数据文件到指定的endian format.通常的调用形式如下:
RMAN> CONVERT DATAFILE datafile_1, datafile_2...
FROM PLATFORM 'platform_name';

    可以通过指定TO PLATFORM参数设定转换到的字节顺序,如果不指定该参数,默认转换到当前平台。不过FROM PLATFORM参数的值必须是与其对应的源平台,不然convert可能会出错。同样CONVERT DATAFILE也可以指定FORMAT,DB_FILE_NAME_CONVERT,PARALLELISM等参数,如例:

RMAN> CONVERT DATAFILE
2> 'E:\ora10g\oradata\jssweb\jssweb1.dbf',
3> 'E:\ora10g\oradata\jssweb\jssweb2.dbf'
5> TO PLATFORM="Linux IA (32-bit)"
6> FROM PLATFORM="Microsoft Windows IA (32-bit)"
7> DB_FILE_NAME_CONVERT=
8> "E:\ora10g\oradata", "/opt/oar10g/oradata";

这些参数的功能的格式与CONVERT TABLESPACE中介绍的完全一致,这里就不多废话了。
0
相关文章