在V$TRANSPORTABLE_PLATFORM中有一列ENDIAN_FORMAT,reference的解释为
Platform endian format:
Big
Little
UNKNOWN FORMAT
关于字节序有如下解释:
在计算机中最小的单位是一个字节,不过一个字节能表示的范围太小了,我们可以将一个字节理解成一个0-9间的任何一个数字, 因此我们要表示一个千位数时就需要四位来表示, 给定一个四位数8765, 这个值是不会变的, 但我们记录这个数字时可以写成8765也可以记录成5678, 只要我们自已记住是如何存贮就可以了. 在三十二位的系统中, 一个整数由四个字节来组成, 所在在不同的硬件系统中放在内存中时, 就有两种顺序, Big Edian指将千位写在前面, Little Edian指将个位写成前面. 有些人理解成一个Byte中各个bit的顺序是不对的.
在Oracle的数据文件中, 记录了各种信息, 有一些信息是用多于一个字节来表示的, 如相对数据块地址(RDBA)由四个字节组成, 而Row index则只需要两个字节组成, 不同硬件平台下的Oracle在将这些信息写入文件时, 就出现了不同的写入顺序, 因此不同硬件的Oraclce数据文件并不能在相互拷贝使用. 由于字节对齐方式只有2种, 而实际上我们有很多的不同的硬件平台, 所以有的不同硬件平台他们的字节对齐方式是相同的, 在相同的平台上, Oracle数据库文件其实是相同的, 理论上应当是可以互通的, 只是Oracle可以记录了一些OS的信息, 导致数据文件不能通过.
有朋友将Windows下的文件拷贝到Linux下和Solaris(在PC上的)平台下测试, 8i的数据文件在拷贝上去后, 通过重建控制文件和resetlogs成功打开, biti用9i做了试验, 在9i的第一个块上记录了平台信息, 通过交换第一个block后, 成功地在Linux上打开了Windows下9i的数据文件, 需要注意的是这只能作为测试, 而不是官方的。
Platform endian format:
Big
Little
UNKNOWN FORMAT
关于字节序有如下解释:
在计算机中最小的单位是一个字节,不过一个字节能表示的范围太小了,我们可以将一个字节理解成一个0-9间的任何一个数字, 因此我们要表示一个千位数时就需要四位来表示, 给定一个四位数8765, 这个值是不会变的, 但我们记录这个数字时可以写成8765也可以记录成5678, 只要我们自已记住是如何存贮就可以了. 在三十二位的系统中, 一个整数由四个字节来组成, 所在在不同的硬件系统中放在内存中时, 就有两种顺序, Big Edian指将千位写在前面, Little Edian指将个位写成前面. 有些人理解成一个Byte中各个bit的顺序是不对的.
在Oracle的数据文件中, 记录了各种信息, 有一些信息是用多于一个字节来表示的, 如相对数据块地址(RDBA)由四个字节组成, 而Row index则只需要两个字节组成, 不同硬件平台下的Oracle在将这些信息写入文件时, 就出现了不同的写入顺序, 因此不同硬件的Oraclce数据文件并不能在相互拷贝使用. 由于字节对齐方式只有2种, 而实际上我们有很多的不同的硬件平台, 所以有的不同硬件平台他们的字节对齐方式是相同的, 在相同的平台上, Oracle数据库文件其实是相同的, 理论上应当是可以互通的, 只是Oracle可以记录了一些OS的信息, 导致数据文件不能通过.
有朋友将Windows下的文件拷贝到Linux下和Solaris(在PC上的)平台下测试, 8i的数据文件在拷贝上去后, 通过重建控制文件和resetlogs成功打开, biti用9i做了试验, 在9i的第一个块上记录了平台信息, 通过交换第一个block后, 成功地在Linux上打开了Windows下9i的数据文件, 需要注意的是这只能作为测试, 而不是官方的。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29135257/viewspace-2111809/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/29135257/viewspace-2111809/