ORACLE的redo文件在不同机器上存储是否使用big-endian还是little-endian的问题
来源:互联网 发布:知党规 行敬畏 编辑:程序博客网 时间:2024/04/30 14:34
在解析ORACLE的dbf文件的时候,发现在不同的机器台上,存储使用的字节序并不一样.
今天看PostgreSQL 9.6.1更新版本发布说明的时候,看到这块有相关的描述:
pg_upgrade在大端机器上的问题
在大端机器(例如许多非Intel CPU架构)上,pg_upgrade不正确地写入可见性映射的字节, 导致 pg_upgrade无法完成。
如果你使用的是big-endian机器(许多非Intel架构都是big-endian) 并且使用pg_upgrade从9.6之前的版本升级, 你应该假定所有的可见性映射都不正确,需要重新生成。 使用 contrib/pg_visibility 的 pg_truncate_visibility_map() 函数截断每个关系的可见性映射就行了。 请阅读更新部分, 查阅文章末尾提到的安装说明, 可以了解相关在PostgreSQL实例上解决此问题的方法。
这个问题只存在于PostgreSQL 9.6.0版本中。
出处http://www.postgres.cn/release/v/30
又在网上找了一些其他例子的说明:
如果我们使用的是一台32位机器。
如果是little endian, 那么x在内存中是之样排列的
高内存 ----> +----+----+----+----+ |0x01|0x00|0x00|0x00| +----+----+----+----+ A | &x 所以 (char*)(*x) == 1
高内存 ----> +----+----+----+----+ |0x00|0x00|0x00|0x01| +----+----+----+----+ A | &x 所以 (char*)(*x) == 0
#include <stdio.h> #include <stdint.h> int is_big_endian(void) { union { uint32_t i; char c[4]; } e = {0x10000000}; return e.c[0]; } int main(void) { printf("System is %s -endian.\n", is_big_endian() ? "big" : "little"); return 0; }
该例子出处 http://blog.csdn.net/robinsongsog/article/details/42320151
上述的两个帖子结合,给出了如何去确定机器上ORACLE的dbf文件是大端字节序还是小端字节序存储的。
0 0
- ORACLE的redo文件在不同机器上存储是否使用big-endian还是little-endian的问题
- 判断字节的升序存储还是降序存储(little-endian or big-endian)
- cpu 是big-endian 还是 Little-endian的?
- little-endian和big-endian的区别
- Big-Endian与Little-Endian的转换
- Big Endian与Little Endian的判别
- Little endian 和 big endian 的区分
- Big Endian和Little Endian的区别
- Big Endian和Little Endian的转换...
- Big Endian和Little Endian的区别
- Little endian和Big endian的区别
- Big Endian和Little Endian的区别
- Big Endian和Little Endian的区别
- Big Endian和Little Endian的区别
- Little-endian和Big-endian的区别
- Big Endian和Little Endian的区别
- 如何判断一个机器是Little-Endian还是Big-Endian
- 判断机器字节存储顺序是big endian还是little endian
- kruskal
- java中实现同步的两种方式:syschronized和lock的区别和联系
- 工作中碰到的那些坑(二)-安卓混合开发webview打开链接出错
- 同城交友软件“快啵”开发总结----自定义Toast
- SQL学习——查询基础
- ORACLE的redo文件在不同机器上存储是否使用big-endian还是little-endian的问题
- 单片机程序下载,LED灯
- ImageLoader的各种格式DisplayImageOptions 的设置
- matlab ubuntu linux 出现 libGL error
- 适配android 7的自定义相机的预览及拍照
- 238. Product of Array Except Self
- Laravel学习:路由、视图、控制器工作流程(2)
- integer综合分析
- linux海量文件数量的发布