MSSQL2005 分页存储过程
2012-04-18 19:46
218 查看
恢复GlusterFS文件裂脑步骤
1. 执行如下命令,获取裂脑文件的路径。
# gluster volume heal VOLNAME info split-brain
客户端访问裂脑文件会报I/O错误。
2. 关闭在mount客户端访问裂脑文件的进程。如果有虚拟机正在使用裂脑文件,必须将虚拟机关闭。
3. 通过getfattr命令获取和验证扩展属性的变更记录,然后通过扩展属性来确定哪些brick包含可信的文件。
# getfattr -d -m . -e hex <file-path-on-brick>
[root@lab21:/letv/disk4]$getfattr -d -m . -e hex file1
# file: file1
trusted.afr.plane-client-0=0x000000000000000000000000
trusted.afr.plane-client-1=0x000000000000000000000000
trusted.gfid=0x4e028c9b64234502ba304eba44e16da4
文件变更记录属性说明,如下示例:
0x 000003d7 00000001 000000110
| | |
| | \_ changelog of directory entries
| \_ changelog of metadata
\ _ changelog of data
首8位***背景字段记录数据变更记录
中间8位蓝色背景字段记录元数据变更记录
末8位粉红色背景字段记录索引gfid变更记录
对于目录而言,元数据和索引gfid变更对应字段是有效的。
对于普通文件,数据和元数据对应字段是有效的。
对于特殊文件,如设备文件,元数据对应字段是有效的。
一个文件发生裂脑,可是数据裂脑,也可以是元数据裂脑,也有可以是数据和元数据同时裂脑。
一个元数据、数据同时裂脑例子如下:
# getfattr -d -m . -e hex /gfs/brick-?/a
getfattr: Removing leading '/' from absolute path names
\#file: gfs/brick-a/a
trusted.afr.vol-client-0=0x000000000000000000000000
trusted.afr.vol-client-1=0x000003d70000000100000000
trusted.gfid=0x80acdbd886524f6fbefa21fc356fed57
\#file: gfs/brick-b/a
trusted.afr.vol-client-0=0x000003b00000000100000000
trusted.afr.vol-client-1=0x000000000000000000000000
trusted.gfid=0x80acdbd886524f6fbefa21fc356fed57
4. 选择正确的拷贝。
5. 通过重置相关字段解决裂脑问题
1)解决数据裂脑:重置数据字段对应属性值
2)解决元数据裂脑:重置元数据字段对应属性值
3)解决索引裂脑:删除一个无效的副本,同时必须删除对应的gfid-link文件,在.glusterfs目录下
在删除gfid-link文件之前,确保当前brick上要删除的文件没有硬链接,如果有也必须删除。
6. 触发自动修复
# ls -l <file-path-on-gluster-mount>
or
# gluster volume heal VOLNAME
注意: 对于属性正常,文件内容不同引起的裂脑,heal命令无法修复,需要执行heal full命令,当然ls也可以。 修复方法,删除错误副本及对应的gfid文件。
备注:本文针对gluster 3.4进行编写,后续版本gluster修复机制发生了一些变化,客户端通过ls已经不能触发数据恢复。
本文出自 “敏而好学” 博客,请务必保留此出处http://dangzhiqiang.blog.51cto.com/7961271/1713501
1. 执行如下命令,获取裂脑文件的路径。
# gluster volume heal VOLNAME info split-brain
客户端访问裂脑文件会报I/O错误。
2. 关闭在mount客户端访问裂脑文件的进程。如果有虚拟机正在使用裂脑文件,必须将虚拟机关闭。
3. 通过getfattr命令获取和验证扩展属性的变更记录,然后通过扩展属性来确定哪些brick包含可信的文件。
# getfattr -d -m . -e hex <file-path-on-brick>
[root@lab21:/letv/disk4]$getfattr -d -m . -e hex file1
# file: file1
trusted.afr.plane-client-0=0x000000000000000000000000
trusted.afr.plane-client-1=0x000000000000000000000000
trusted.gfid=0x4e028c9b64234502ba304eba44e16da4
文件变更记录属性说明,如下示例:
0x 000003d7 00000001 000000110
| | |
| | \_ changelog of directory entries
| \_ changelog of metadata
\ _ changelog of data
首8位***背景字段记录数据变更记录
中间8位蓝色背景字段记录元数据变更记录
末8位粉红色背景字段记录索引gfid变更记录
对于目录而言,元数据和索引gfid变更对应字段是有效的。
对于普通文件,数据和元数据对应字段是有效的。
对于特殊文件,如设备文件,元数据对应字段是有效的。
一个文件发生裂脑,可是数据裂脑,也可以是元数据裂脑,也有可以是数据和元数据同时裂脑。
一个元数据、数据同时裂脑例子如下:
# getfattr -d -m . -e hex /gfs/brick-?/a
getfattr: Removing leading '/' from absolute path names
\#file: gfs/brick-a/a
trusted.afr.vol-client-0=0x000000000000000000000000
trusted.afr.vol-client-1=0x000003d70000000100000000
trusted.gfid=0x80acdbd886524f6fbefa21fc356fed57
\#file: gfs/brick-b/a
trusted.afr.vol-client-0=0x000003b00000000100000000
trusted.afr.vol-client-1=0x000000000000000000000000
trusted.gfid=0x80acdbd886524f6fbefa21fc356fed57
4. 选择正确的拷贝。
5. 通过重置相关字段解决裂脑问题
1)解决数据裂脑:重置数据字段对应属性值
2)解决元数据裂脑:重置元数据字段对应属性值
3)解决索引裂脑:删除一个无效的副本,同时必须删除对应的gfid-link文件,在.glusterfs目录下
在删除gfid-link文件之前,确保当前brick上要删除的文件没有硬链接,如果有也必须删除。
6. 触发自动修复
# ls -l <file-path-on-gluster-mount>
or
# gluster volume heal VOLNAME
注意: 对于属性正常,文件内容不同引起的裂脑,heal命令无法修复,需要执行heal full命令,当然ls也可以。 修复方法,删除错误副本及对应的gfid文件。
备注:本文针对gluster 3.4进行编写,后续版本gluster修复机制发生了一些变化,客户端通过ls已经不能触发数据恢复。
本文出自 “敏而好学” 博客,请务必保留此出处http://dangzhiqiang.blog.51cto.com/7961271/1713501
相关文章推荐
- mssql2005 系统存储过程对应的物理文件
- 针对sql 2005优化的高性能分页存储过程
- 自己修改一个别人的sql2005通用存储过程分页
- Sql server 2005的分页存储过程,利用ROW_NUMBER()新特性
- 千万数量级分页存储过程(sql2005)
- SQL SERVER 2005 用ROW_NUMBER()创建分页存储过程
- sql 2005分页存储过程实例(一)
- mssql高效的分页存储过程
- SqlServer 2000、2005分页存储过程整理第1/3页
- SQL SERVER 2005分页存储过程
- 存储过程分页实现代码,2005 T-SQL新增功能
- SQL2005 存储过程通用分页
- 一个通用MSSQL海量数据分页存储过程
- SQL SERVER 2005 通用高效分页存储过程
- SQL Server 2005中利用临时表和@@RowCount提高分页查询存储过程性能
- vs 2005存储过程分页主要代码
- sql 2005 存储过程分页 java 代码
- 修复一个吉日嘎拉MSSQL数据库版中的分页存储过程bug