笔记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