top

笔记125 关闭数据库的数据页IO保护机制,即设置page_verify数据库选项为none SQL Server 简单模式下,误删除堆表记录如何恢复

笔记125 关闭数据库的数据页IO保护机制,即设置page_verify数据库选项为none SQL Server 简单模式下,误删除堆表记录如何恢复

复制代码
 1 --关闭数据库的数据页IO保护机制,即设置page_verify数据库选项为none SQL Server 简单模式下,误删除堆表记录如何恢复
 2 
 3 http://www.cnblogs.com/SQLServer2012/archive/2013/01/17/2864880.html
 4 
 5 
 6 --关闭数据库的数据页I/O保护机制,即设置page_verify数据库选项为none
 7 
 8 ALTER DATABASE [GPOSDB] SET PAGE_VERIFY  NONE
 9 
10 
11 
12 
13 ALTER DATABASE [GPOSDB] SET PAGE_VERIFY CHECKSUM
14 ALTER DATABASE [GPOSDB] SET PAGE_VERIFY TORN_PAGE_DETECTION
复制代码

mysql
double write buffer,双写
innodb存在partial write问题
目的/作用:保证数据写入的可靠性
防止数据页损坏,又无从修复
因为InnoDB有partial write问题
16K的页只写入了部分数据时发生crash
redo里记录的是逻辑操作,不是物理块,无法通过redo log恢复 crash recovery
操作系统的block是4KB,innodb页面是16KB,那么需要4次IO才能写入一个完整的页面

怎么解决partial write问题
双写,doublewrite
2个1M的空间,共2M(既有磁盘文件,也有内存空间)
页在写入时首先顺序地写入到doublewrite
然后再刷新回磁盘




double write
性能损失
double write写入是顺序的,性能损失很小
slave上可关闭
btrfs,zfs文件系统支持原子写,不用打开double write
ssd等支持原子写的存储设备不用打开double write
innodb_doublewrite=0
status
innodb_dblwr_pages_written
innodb_dblwr_writes
innodb_dblwr_pages_written:innodb_dblwr_writes=64:1(一次刷新64个脏页),当系统写入压力并不是很高时,应小于64:1

sqlserver2008数据库技术内幕
SQL Server将内存数据写入磁盘中的数据页时,一般以数据页为单位,而磁盘硬件和操作系统一般会以一个扇区(大小为512字节)为单位执行写入操作。
如果在数据写入磁盘过程中出现电源或磁盘故障,则可能导致只有数据页中的部分扇区写入而发生错误
8KB数据页-》 OS cache-》 512byte 16个扇区 -》disk

posted @   桦仔  阅读(1039)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
点击右上角即可分享
微信分享提示