DBO自动获得DBCC命令和全部选项的权限。该权限不可转授。此外,dbcc在数据库是活动时运行,除了dbrepair选项和带有fix选项的dbcc checkalloc以外。 二 DBCC命令分类 维护语句 DBCC DBREINDEX 重建指定数据库中表的一个或多个索引 DBCC DBREPAIR 除去损坏的数据库 DBCC INDEXDEFRAG 整理指定的表或视图的聚集索引和辅助索引碎片 其他语句 DBCC dllname (FREE) 从内存中卸载指定的扩展存储过程动态链接库 (DLL) DBCC HELP 返回指定的 DBCC 语句的语法信息 DBCC PINTABLE Syntax: DBCC HELP ('dbcc_statement' | @dbcc_statement_var | '?') Syntax: DBCC resource This is an example: DBCC TRACEON (3604) DBCC resource DBCC TAB You can
大家好,又见面了,我是你们的朋友全栈君。 1、db2 变量查看 db2set -all (connect to dbanme ) get db cfg db2pd -osinfo 这个命令很强大哦 2、db2c变量的设置用命令 db2set 变量=value 可以参考一下: 客户端: db2codepage=1386(简体中文) db2country=86(中国) db2comm=tcp
status=0 where name=’Geb’ sp_configure ‘allow’,0 reconfigure with override dbcc checkdb(‘Geb’) 若发现有错误,还要进一步找出出错的地方,可以先检查 DBCC CHECKTABLE (sysobjects) DBCC CHECKTABLE (sysindexes) DBCC CHECKTABLE (syscolumns ) DBCC CHECKTABLE (systypes) DBCC CHECKTABLE ( ‘表名 ‘,REPAIR_ALLOW_DATA_LOSS) DBCC CHECKDB ( ‘database_name ‘ ,REPAIR_ALLOW_DATA_LOSS ) dbcc dbreindex(’database_name.dbo.Employee’,’’,90) WITH NO_INFOMSGS DBCC CHECKTABLE
九、下面执行真正的恢复操作,用dbcc rebuild_log命令来重建数据库日志文件(重建路径根据你实际的数据库路径来)。 DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。 应运行 DBCC CHECKDB 以验证物理一致性。将必须重置数据库选项,并且可能需要删除多余的日志文件。 DBCC 执行完毕。 如果 DBCC 输出了错误信息,请与系统管理员联系。 此时打开在企业管理器里面会看到数据库的状态为“只供DBO使用”。此时可以访问数据库里面的用户表了。 十、验证数据库一致性。 DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。
核心SQL技巧条件查询优化 WHERE 1=1用于全选,WHERE 1=2用于全不选动态SQL构建时作为占位符使用,便于后续条件拼接数据库维护命令 索引重建:DBCC REINDEX和DBCC INDEXDEFRAG 数据库收缩:DBCC SHRINKDB和DBCC SHRINKFILE数据库压缩:dbcc shrinkdatabase(dbname)用户权限管理 转移数据库用户权限:exec sp_change_users_login 'update_one','newname','oldname'数据库修复与备份备份集检查 RESTORE VERIFYONLY from disk='备份路径'数据库修复流程 设置单用户模式执行DBCC CHECKDB修复恢复多用户模式日志清除方法 使用BACKUP LOG WITH TRUNCATE_ONLY结合DBCC SHRINKFILE收缩日志文件高级操作技巧对象所有权更改 单表更改:exec sp_changeobjectowner '表名','dbo'批量更改:通过存储过程循环处理数据操作循环 使用WHILE循环插入数据示例:批量更新成绩至及格线关键要点总结条件表达式1=1和1=2在动态SQL构建中有特殊用途DBCC
DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。 应运行 DBCC CHECKDB 以验证物理一致性。将必须重置数据库选项,并且可能需要删除多余的日志文件。 DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。 ‘systypes’ 的 DBCC 结果。 对象 ‘systypes’ 有 26 行,这些行位于 1 页中。 ‘syscomments’ 的 DBCC 结果。 DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。 DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。
此时可以在SQL Server Enterprise Manager里面看到该数据库处于“只读置疑脱机紧急模式”可以看到数据库里面的表,但是仅仅有系统表 G.下面执行真正的恢复操作,重建数据库日志文件 dbcc DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。 应运行 DBCC CHECKDB 以验证物理一致性。将必须重置数据库选项,并且可能需要删除多余的日志文件。 DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。 H.验证数据库一致性(可省略) dbcc checkdb('test') 一般执行结果如下: CHECKDB 发现了 0 个分配错误和 0 个一致性错误(在数据库 'test' 中)。 DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。
SQL --DatabaseName为数据库名 DUMP TRANSACTION DatabaseName WITH NO_LOG BACKUP LOG DatabaseName WITH NO_LOG DBCC sysname SELECT @LogFileLogicalName=Name FROM sys.database_files WHERE Type=1 PRINT @LogFileLogicalName DBCC SHRINKFILE (@LogFileLogicalName, 1); --backup log, then shrink it USE WAIBPM; -- Get Log information DBCC DBCC SHRINKFILE (@LogFileLogicalName, 1); GO 2011年10月31日,补充如下: 在使用先备份log,然后再收缩的时候,出现硬盘的空间不足,只能采用这种方法: USE WAIBPM; GO ALTER DATABASE WAIBPM SET RECOVERY SIMPLE;--设置简单恢复模式 GO DBCC SHRINKFILE (WAIBPM_Log, 1
status =32768 where name='置疑的数据库名称' go sp_dboption '置疑的数据库名称', 'single user', 'true' go dbcc DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。 应运行 DBCC CHECKDB以验证物理一致性。将必须重置数据库选项,并且可能需要删除多余的日志文件。 DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。 15、验证数据库一致性(可省略) dbcc checkdb('置疑的数据库名称') 一般执行结果如下: CHECKDB 发现了 0 个分配错误和 0 个一致性错误(在数据库 ‘置疑的数据库名称’ DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。 16、设置数据库为正常状态(如果没有出错,那么现在就可以正常的使用恢复后的数据库啦。)
CONVERT(NVARCHAR(20),@ID)) SET @ID=@ID+1 END GO SELECT * FROM Orders GO 分析新创建的表的页的信息 ---显示跟踪标志的状态 DBCC TRACESTATUS ---开启跟踪标志 DBCC TRACEON(3604,2588) --DBCC TRACEOFF(3604,2588) ---获取对象的数据页,结构:数据库、对象、显示 . -2: 显示指定对象的所有IAM分页 0:显示所有IAM、数据分页. */ DBCC IND的表结构 ? 分析索引页 ---DBCC page的格式为(数据库,文件id,页号,显示)DBCC page(Ixdata,1,89,3) ? --查看2719数据页的信息DBCC page(Ixdata,1,2719,1) ? 结果记录了每一条记录的偏移量。 每个人在自己的电脑上面测试页面id会不一样,但是反应的结果是一样的。
SQL Server Enterprise Manager里面看到该数据库处于“只读\置疑\脱机\紧急模式”可以看到数据库里面的表,但是仅仅有系统表 G.下面执行真正的恢复操作,重建数据库日志文件 dbcc DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。 应运行 DBCC CHECKDB 以验证物理一致性。将必须重置数据库选项,并且可能需要删除多余的日志文件。 DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。 H.验证数据库一致性(可省略) dbcc checkdb(’test’) 一般执行结果如下: CHECKDB 发现了 0 个分配错误和 0 个一致性错误(在数据库 ’test’ 中)。 DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。
以后版本 数据库状态显示置疑,数据库中执行以下代码: ALTER DATABASE 数据库名称 SET EMERGENCY ALTER DATABASE 数据库名称 SET SINGLE_USER DBCC sysdatabases set status = 32768 where name = ‘数据库名称’ go –2_1: 停止sql 服务, 删掉日志文件 –2_2: 启动sql 服务,重建数据库日志文件 dbcc databasename varchar(255) set @databasename=’数据库名称’ exec sp_dboption @databasename, N’single’, N’true’ dbcc checkdb(@databasename,REPAIR_ALLOW_DATA_LOSS) dbcc checkdb(@databasename,REPAIR_REBUILD) exec sp_dboption @databasename, N’single’, N’false’ –最后修复完.再dbcc checkdb 检查一次。
strSQL = 'select count(*) as Total from [' + @tblName + '] where 1=1 安定 '+ @strWhere 2、收缩数据库 --重建索引 DBCC REINDEX DBCC INDEXDEFRAG --收缩数据和日志 DBCC SHRINKDB DBCC SHRINKFILE 3、压缩数据库 dbcc shrinkdatabase(dbname 检查备份集 RESTORE VERIFYONLY from disk='E:\dvbbs.bak' 6、修复数据库 ALTER DATABASE [dvbbs] SET SINGLE_USER GO DBCC 255) SELECT @StartTime = GETDATE(), @TruncLog = 'BACKUP LOG ' + db_name() + ' WITH TRUNCATE_ONLY' DBCC
方法1 -- 清空已有数据,并且将自增自段恢复从1开始计数 truncate table 表名 方法2 -- 不清空已有数据,但将自增自段恢复从1开始计数 dbcc checkident(表名, RESEED,0) 让SQL自动增长的ID号从一个新的位置开始 在查询分析器中执行后,该表自动增长列从1开始 dbcc checkident(表名,RESEED,99) 在查询分析器中执行后,该表自动增长列从 99开始 关于DBCC CHECKIDENT DBCC CHECKIDENT 检查指定表的当前标识值,如有必要,还对标识值进行更正。 语法 DBCC CHECKIDENT ( 'table_name' [ , { NORESEED | { RESEED ][ , new_reseed_value ] } } ] ) 参数 'table_name
[ordDemo] REORGANIZE GO --重组表中所有索引: ALTER INDEX ALL ON [ordDemo] REORGANIZE GO --使用DBCC INDEXDEFRAG重建表上所有索引: DBCC INDEXDEFRAG('AdventureWorks','ordDemo') GO --使用DBCC INDEXDEFRAG重组表上一个索引 : DBCC INDEXDEFRAG('AdventureWorks','ordDemo','idx_refno') GO 2、 DBCC INDEXDEFRAG命令同样是后续不建议继续使用的命令
3、相关工具 3.1 组织分析命令 DBCC IND 用于分析表组织和索引组织查询命令。 命令行 DBCC IND ( { 'dbname' | dbid }, { 'objname' | objid }, { nonclustered indid | 1 | 0 | -1 | -2 } [ DBCC PAGE ( ['database name'|database id], -- can be the actual name or id of the database file number IND('DataPageTestDb','TestData8000',-1) 先查看表在数据里页数据信息 --DBCC PAGE(DataPageTestDb,1,8,3) 以文本信息查看 --DBCC 3.2 查询计划 查看索引情况 --dbcc show_statistics ([tablename], [indexname]) --dbcc show_statistics (TestDataUnIndex
DBCC_CHECK_AGGREGATE Internal use only. DBCC_CHECK_RESULTSET Internal use only. DBCC_CHECK_TABLE Internal use only. DBCC_CHECK_TABLE_INIT Internal use only. DBCC_CHECK_TRACE_LIST Internal use only. DBCC_FILE_CHECK_OBJECT Internal use only. DBCC_PFS_STATUS Internal use only. DBCC_OBJECT_METADATA Internal use only. DBCC shrinkdatabase DBCC shrinkdatabase用于收缩数据库,SQL语句如下: DBCC shrinkdatabase (N'库名' , 1) 执行结果如下: ?
或是上一次使用文件大小更改操作(如 DBCC SHRINKFILE)设置的显式大小。 4、数据库收缩的方式 4.1 收缩数据库 DBCC SHRINKDATABASE 介绍:收缩指定数据库中的数据文件大小。 4.2 收缩数据库文件 DBCC SHRINKFILE 介绍:收缩当前数据库的指定数据或日志文件的大小,或通过将数据从指定的文件移动到相同文件组中的其他文件来清空文件,以允许从数据库中删除该文件。 如果未指定,则 DBCC SHRINKFILE 将文件大小减少到默认文件大小。默认大小为创建文件时指定的大小。 注意:可以使用 DBCC SHRINKFILE target_size 减小空文件的默认大小。
快速修复一下(如果出现问题请试试, [Repair_Rebuild-重建索引并修复] 和 [Repair_Allow_Data_Loss-允许丢失数据的修复方式]) --dbcc checkdb用法(手工修复数据库 ) --检查数据库完整性 --dbcc checkdb('数据库名') --go --快速修复 --dbcc checkdb ('数据库名', Repair_Fast) --go --重建索引并修复 --dbcc checkdb ('数据库名', REPAIR_REBUILD) --go --如果必要允许丢失数据修复 --dbcc checkdb ('数据库名', Repair_Allow_Data_Loss
Sales.OrdersForCountry @country = N'Portugal'; SET IDENTITY_INSERT Sales.MyOrders OFF; 对于动态SQL,或者类似DBCC CREATE TABLE test_dbcc ( TraceFlag VARCHAR(100) , Status TINYINT , Global TINYINT , Session TINYINT ) INSERT INTO test_dbcc EXEC ( 'DBCC TRACESTATUS' ) 注:不能嵌套使用insert exec语句 ,可以用以下方式变动(这里直接拷贝参考文章中的内容。 --dbcc不能直接运行 SELECT a.* INTO #t FROM OPENROWSET('SQLOLEDB', '127.0.0.1'; 'sa'; 'sa_password', 'dbcc log a --可以变通一下 SELECT a.* INTO #t FROM OPENROWSET('SQLOLEDB', '127.0.0.1'; 'sa'; 'sa_password', 'exec(''DBCC