MSSQL数据库日志压缩
SQLServer压缩日志与减少SQLServer文件大小的方法
SQLServer压缩⽇志与减少SQLServer⽂件⼤⼩的⽅法⼀般不建议做第4,6两步,第4步不安全,有可能损坏数据库或丢失数据。
第6步如果⽇志达到上限,则以后的数据库处理会失败,在清理⽇志后才能恢复。
1.清空⽇志 DUMP TRANSACTION 库名 WITH NO_LOG 2.截断事务⽇志 BACKUP LOG 数据库名 WITH NO_LOG 3.收缩数据库⽂件 (如果不压缩,数据库的⽂件不会减⼩企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩⽂件 选择⽇志⽂件--在收缩⽅式⾥选择收缩⾄XXM,这⾥会给出⼀个允许收缩到的最⼩M数,直接输⼊这个数,确定就可以了 选择数据⽂件--在收缩⽅式⾥选择收缩⾄XXM,这⾥会给出⼀个允许收缩到的最⼩M数,直接输⼊这个数,确定就可以了,也可以⽤SQL语句来完成 收缩数据库 DBCC SHRINKDATABASE(客户资料) 收缩指定数据⽂件,1是⽂件号,可以通过这个语句查询到: select * from sysfiles DBCC SHRINKFILE(1)4.为了最⼤化的缩⼩⽇志⽂件(如果是sql 7.0,这步只能在查询分析器中进⾏) 分离数据库: 企业管理器--服务器--数据库--右键--分离数据库 在我的电脑中删除LOG⽂件 附加数据库: 企业管理器--服务器--数据库--右键--附加数据库 此法将⽣成新的LOG,⼤⼩只有500多K 或⽤代码: 下⾯的⽰例分离 pubs,然后将 pubs 中的⼀个⽂件附加到当前服务器。
分离 EXEC sp_detach_db @dbname = 'pubs' 删除⽇志⽂件 再附加 EXEC sp_attach_single_file_db @dbname = 'pubs', @physname = 'c:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs.mdf' 4.为了以后能⾃动收缩,做如下设置 企业管理器--服务器--右键数据库--属性--选项--选择"⾃动收缩" SQL语句设置⽅式: EXEC sp_dboption '数据库名', 'autoshrink', 'TRUE' 5.如果想以后不让它⽇志增长得太⼤ 企业管理器--服务器--右键数据库--属性--事务⽇志 将⽂件增长限制为xM(x是你允许的最⼤数据SQL Server ⽂件⼤⼩) SQL语句的设置⽅式: alter database 数据库名 modify file(name=逻辑⽂件名,maxsize=20)这⾥⼩编为⼤家分享个我⾃⼰经常使⽤的⽅法:DUMP TRANSACTION [jb51] WITH NO_LOGBACKUP LOG [jb51] WITH NO_LOGDBCC SHRINKDATABASE([jb51])jb51就是数据库名称。
SQL2012自动备份及日志压缩
SQLServer2012自动备份及日志压缩配置一、自动备份1.打开SQL Server Management Studio。
如下图所示。
2.左侧树状图点开“管理”选择“维护计划”,右键维护计划选择“维护计划向导”。
在弹出的向导对话框中依次进行如以下图所示操作。
(若弹出错误提示请参考附录[1])点击下一步继续计划名称自取(这里取名为backup),运行身份:SQL Server代理服务器。
点击下一步继续。
选择“备份数据库(完整)”点击下一步继续。
点击下一步继续。
在“数据库”选项选择需要备份的数据库(这里选择testdb)。
选择“跨一个或多个文件备份数据库”点击“添加”按钮选择备份文件路径及名称(这里选择E盘,备份名为backupdb)。
在“如果备份文件存在”选项选择“覆盖”。
过程如下图所示。
设置好备份路径及名称后点击确定完成设置。
如果备份文件存在则覆盖。
完成以上设置后点击下一步继续。
点击下一步继续。
确认无误后点击完成。
维护计划添加成功,点击关闭。
3.成功完成维护计划的添加后,即可在主窗口树形图中发现刚添加的维护计划,双击刚添加的维护计划,即可在主窗口右侧区域显示维护计划列表。
如下图所示。
点击作业计划属性按钮即可设置作业计划的名称、类型、是否启动、频率及持续时间。
确认无误后点击确定完成计划属性设置。
如下图所示注:为了为之后的SQL Server代理作业添加做准备,完成计划属性设置后需及时保存(点击主窗口的保存按钮即可)。
至此,数据库的自动备份功能已实现(为进行测试可调高计划发生频率如每10S备份一次,这样过10S就可在备份路径下查看数据库是否备份,若一切正常即可看见备份文件。
)二、日志压缩及数据表清除1.压缩日志需要在SQL Server代理中添加作业,这时若SQL Server代理处于停止状态请右键启动SQL Server代理。
如下图所示。
2.启动完成后展开SQL Server代理树形图选择“作业”在展开的作业中就会发现先前添加的任务计划。
SQL数据库操作5--数据库压缩
"所有任务"--"收缩数据库"--打开对话框
2)收缩对话框--选择不同的收缩策略
自动收缩:[收缩操作]
手动收缩:[收缩文件]
3)设置相关参数收缩数据库空间
日志文件到:100M
例:将数据库AAA中,分别收缩:
主文件收缩到:10M
二级文件收缩到:10M
日志文件收缩到:10M
查看收缩后的文件空间大小。
参数:
datafile name :数据库名
target_percent:进行压缩后数据库文件中所剩余可用的空间百分比.
notruncate:数据库压缩后所释放的空间保留在文件中,不返回给操作系统.
truncateonly:数据库压缩后所释放的空间返回给操作系统,并将文件压缩到上一次所分配的大小.如果选择此项,则target_percent所指定的参数变为无效.
GO
Dbcc shrinkdatabase (AAA,80,notruncate)
GO
SP_HELPDB AAA
GO
.返回企业管理器,刷新ttt数据库,查看是否已经收缩.
■自动收缩
自动对整个数据库中的主文件、二级文件,日志文件,按设置的大小进行调整。
[收缩操作]---设置参数:将原来的空间减少百分之。。
例:新建一个数据库AAA,
主文件空间A1:1M
go
SP_HELPDB AAA
GO
查看A1文件是否已经收缩.
二级文件空间A2:1M
日志文件空间A3:1M
例:将数据库AAA中文件扩充
MSSqlServer查询数据库文件大小和剩余空间,数据库日志压缩
MSSqlServer查询数据库文件大小和剩余空间,数据库日志压缩Sql Server查询数据库文件大小和剩余空间,数据库日志压缩•A、磁盘空间的使用情况及各数据库数据文件及日志文件的大小及使用利用率•o1、查询各个磁盘分区的剩余空间:o2、查询数据库的数据文件及日志文件的相关信息o3、查询当前数据库的磁盘使用情况:o4、查询数据库服务器各数据库日志文件的大小及利用率o5、一次性的查询数据库中所有的表的大小•B、数据库日志收缩•o1、查看当前的存放位置o2、修改文件的存放位置(下次启动生效)o3、修改默认的数据库文件存放位置(即时生效)o4、修改默认的日志文件存放位置(即时生效)o5、日志压缩步骤o▪1)、修改数据库为简单模式▪2)、收缩相关数据库的指定数据文件或日志文件大小▪3)、还原数据库为完全模式▪4)、查询收缩日志后数据库信息A、磁盘空间的使用情况及各数据库数据文件及日志文件的大小及使用利用率在MS Sql Server中,使用以下的方法查询出磁盘空间的使用情况及各数据库数据文件及日志文件的大小及使用利用率:1、查询各个磁盘分区的剩余空间:exec master.dbo.xp_fixeddrives2、查询数据库的数据文件及日志文件的相关信息--(包括文件组、当前文件大小、文件最大值、文件增长设置、文件逻辑名、文件路径等)select * from [数据库名].[dbo].[sysfiles]--转换文件大小单位为MB:select name, convert(float,size) * (8192.0/1024.0)/1024. from [数据库名].dbo.sysfiles3、查询当前数据库的磁盘使用情况:exec sp_spaceused4、查询数据库服务器各数据库日志文件的大小及利用率DBCC SQLPERF(LOGSPACE)5、一次性的查询数据库中所有的表的大小--========================================= ====---- 更新查询数据库中各表的大小,结果存储到数据表中---- 运行方式: EXEC sp_UpdateTableSpaceInfo-- 结果查询: SELECT * FROM temp_tableSpaceInfo----========================================= ====create procedure [dbo].[sp_UpdateTableSpaceInfo]ASbegin--查询是否存在结果存储表if not exists (select * from sysobjects where id = object_id(N'temp_tableSpaceInfo') AND objectproperty(id, N'IsUserTable') = 1)begin--不存在则创建create table temp_tableSpaceInfo(name nvarchar(128),rows char(11),reserved varchar(18),data varchar(18),index_size varchar(18),unused varchar(18))end--清空数据表delete from temp_tableSpaceInfo--定义临时变量在遍历时存储表名称declare @tablename varchar(255)--使用游标读取数据库内所有表表名declare table_list_cursor cursor for --申明游标select name from sysobjectswhere objectproperty(id, N'IsTable') = 1 and name not like N'#%%' order by name--打开游标open table_list_cursor--将提取结果代入游标fetch next from table_list_cursor into @tablename--遍历查询到的表名while @@fetch_status = 0 --最近一条FETCH语句的标志begin--检查当前表是否为用户表if exists (select * from sysobjects where id = object_id(@tablename) AND objectproperty(id, N'IsUserTable') = 1)begin--当前表则读取其信息插入到表格中execute sp_executesql N'insert into temp_tableSpaceInfo exec sp_spaceused @tbname', N'@tbname varchar(255)', @tbname = @tablenameend--读取下一条数据fetch next from table_list_cursor into @tablenameend--释放游标close table_list_cursor --解除游标deallocate table_list_cursor --将游标内容代入最后结果endGOB、数据库日志收缩1、查看当前的存放位置--查看当前的存放位置select database_id,name,physical_name AS CurrentLocation,state_desc,size from sys.master_files where database_id=db_id(N'数据库名');2、修改文件的存放位置(下次启动生效)--修改文件的存放位置下次启动生效--testDb为数据库名,alter database 数据库名 modify file ( name = 文件名(不包含后缀), filename = '文件存储路径');alter database 数据库名 modify file ( name = 文件名(不包含后缀), filename = '文件存储路径');eg.alter database testDb modify file ( name = testDb, filename = 'G:\SQL_DATA\testDb\testDb.mdf');alter database testDb modify file ( name = testDb_log, filename = 'G:\SQL_DATA\testDb\testdb_log.ldf');3、修改默认的数据库文件存放位置(即时生效)--修改默认的数据库文件存放位置(即时生效)EXEC xp_instance_regwrite@rootkey='HKEY_LOCAL_MACHINE',@key='Software\Microsoft\MSSQLServer\MSSQLServer', @value_name='DefaultData',@type=REG_SZ,@value='E:\MSSQL_MDF\data'GO4、修改默认的日志文件存放位置(即时生效)--修改默认的日志文件存放位置(即时生效)EXEC master..xp_instance_regwrite@rootkey='HKEY_LOCAL_MACHINE',@key='Software\Microsoft\MSSQLServer\MSSQLServer', @value_name='DefaultLog',@type=REG_SZ,@value='E:\MSSQL_MDF\log'GO5、日志压缩步骤1)、修改数据库为简单模式-- 修改数据库为简单模式USE[master]GOALTER DATABASE dbstore-pole-an SET RECOVERY SIMPLE WITH NO_WAITGOALTER DATABASE dbstore-pole-an SET RECOVERY SIMPLEGO2)、收缩相关数据库的指定数据文件或日志文件大小-- 收缩相关数据库的指定数据文件或日志文件大小USE dbstore-pole-anDBCC SHRINKFILE (N'dbstore-pole-an_log' , 700)3)、还原数据库为完全模式--还原数据库为完全模式USE[master]GOALTER DATABASE dbstore-pole-an SET RECOVERY FULL WITH NO_WAITGOALTER DATABASE dbstore-pole-an SET RECOVERY FULLGO4)、查询收缩日志后数据库信息-- 查询收缩日志后数据库信息select database_id,name,physical_name AS CurrentLocation,state_desc,size from sys.master_files where database_id=db_id(N'dbstore-pole-an');。
MS-SQL-Server-2008-R2(简体中文版)日志收缩详解
MS SQL Server 2008 R2(简体中文版)
日志收缩详解
1、右击要收缩的数据库,选择“属性”,如下图所示。
2、在弹出的窗口左侧“选择页”中点击“选项”,在右侧选择“恢复模式”值为“简单”,点击“确定”按钮,如下图所示。
3、右击数据库,选择“任务”-“收缩”-“文件”,如下图所示:
4、在“收缩文件”对话框中,选择“文件类型”值为“日志”,在收缩操作中选择“在释放未使用的空间前重新组织页”,将文件收缩到指定大小,单击“确定”按钮,完成日志收缩。
5、右击数据库,选择“属性”,在弹出的窗口左侧“选择页”中点击“选项”,在右侧选择“恢复模式”值为“完整”,点击“确定”按钮即可。
[文档可能无法思考全面,请浏览后下载,另外祝您生活愉快,工作顺利,万事如意!]。
sql数据减肥处理
SQL 数据库瘦身程序前提: 1. 在所有使用者皆离线状况下(无使用者进入下, 包括Terminal 模式)2. 离线时间必须先予计算, 旧数据库汇出为文字文件时间+文字文件汇入新数据库时间(例: 汇出为文字文件时间为 1 小时, 汇入新数据库时间为28 小时, 那就必须要有2 天时间内, 使用者是不能进入Pilot 内作业的)共分二步骤: (在主机上执行)第一步骤: ldf 压缩Step 1.登入Pilotadmin.exeStep 2.执行压缩SQL Server 日志Step 3.选择帐目进行压缩该帐目日志(Ldf)容量为1 MB# 此项仅为压缩MS_SQL 的Ldf (日志文件)并无法压缩Mdf(数据文件), MS_SQL本身提供的Mdf 压缩工具亦无法有效的压缩档案客量, 所以必须进步骤二所述的程序,才能真正降低Mdf的客量,并且加快Pilot AP的执行速度.第二步骤: Mdf 压缩Step 1.新开一个帐目# 1692 为新开帐目# 1692 为未来汇入成功后, 使用者新登入的帐目Step 2.将旧数据库(此例为1117 帐目)汇出为文字文件(GFS)# 使用「数据库更新」的汇出功能, 「选择帐目」及「帐别」均需指定# 再点选表格清单, 选择表格内容窗内任一笔数据, 先鼠标左键, 再按鼠标右键, 选择「全选」# S YSLOG 及 SYSLOGACT 此二表记录非常大,不建议汇出# 再按鼠标右键, 选择「汇出GFS 」# 指定汇出目录, 再按「确定」键按「数据表」后, 下方会重新排序Step 3.使用「一般文字文件汇入」功能, 再## 再次执行步骤一, 压缩新帐目的日志檔(Ldf), 因为上述的汇入后, 又会增加日志文件的容量, 所以再次压缩, 且「步骤一」也是日后的例行性工作.# !注意事项:1.先行测试, 并计算出「汇出」+「汇入」的完成时间, 再加上一小时的其执行程序所需时间, 得出总需求时间.2.寻找主机可停机的时间是大于总需求时间.3.规划此项事务的执行日期, 并对使用者公告, 从何时起, 登入Pilot的帐目为新帐目编号, 使用者登入的使用者代号及密码不变4.汇出为CSV格式时, 在其汇入时, 速度较快, 但是会碰到保留符号的问题(原始数据字段内含‘ / \ ” , 等符号), 造成汇入后数据不对, 较不保险. 相反的, 使用GFS 格式, 速度较慢, 但数据可避免上述问题, 可保证数据一致.5.Pilot 主机在执行开始到完成的期间内, 不可有任何Pilot使用端登入操作.。
MicrosoftSQLServer数据库日志截断
--参考 压缩⽇志及数据库⽂件⼤⼩ /*--注意事项 请按步骤进⾏,未进⾏前⾯的步骤,请不要做后⾯的步骤,否则可能损坏你的数据库. ⼀般情况下不建议做第4,6两步。
第4步不安全,有可能损坏数据库或丢失数据。
第6步如果⽇志达到上限,则以后的数据库处理会失败,在清理⽇志后才能恢复。
--*/ --下⾯的所有库名都指你要处理的数据库的库名。
1.清空⽇志 DUMP TRANSACTION 库名 WITH NO_LOG 2.截断事务⽇志: BACKUP LOG 库名 WITH NO_LOG 3.收缩数据库⽂件(RU 不压缩,数据库的⽂件不会减⼩ 企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩⽂件 --选择⽇志⽂件--在收缩⽅式⾥选择收缩⾄XXM,这⾥会给出⼀个允许收缩到的最⼩M数,直接输⼊这个数,确定就可以了 --选择数据⽂件--在收缩⽅式⾥选择收缩⾄XXM,这⾥会给出⼀个允许收缩到的最⼩M数,直接输⼊这个数,确定就可以了 也可以⽤SQL语句来完成 --收缩数据库 DBCC SHRINKDATABASE(库名) --收缩指定数据⽂件,1是⽂件号,可以通过这个语句查询到:select * from sysfiles DBCC SHRINKFILE(1) 4.为了化的缩⼩⽇志⽂件(假如是SQL Server7.0,这步只能在查询分析器中进⾏) a.分离数据库: 企业管理器--服务器--数据库--右键--分离数据库 b.在我的电脑中删除LOG⽂件 c.附加数据库: 企业管理器--服务器--数据库--右键--附加数据库 此法将⽣成新的LOG,⼤⼩只有500多K 或⽤代码: 下⾯的⽰例分离 pubs,然后将 pubs 中的⼀个⽂件附加到当前服务器。
a.分离 EXEC sp_detach_db @dbname = '库名' b.删除⽇志⽂件 c.再附加 EXEC sp_attach_single_file_db @dbname = '库名', @physname = 'c:Program FilesMicrosoft SQL ServerMSSQLData库名.mdf' 5.为了将来能⾃动收缩,需要做下⾯的设置: 企业管理器--服务器--右键数据库--属性--选项--选择"⾃动收缩" --SQL语句设置⽅式: EXEC sp_dboption '库名', 'autoshrink', 'TRUE' 6.假如你想以后不让⽇志增长得过⼤ 企业管理器--服务器--右键数据库--属性--事务⽇志 --将⽂件增长限制为xM(x是你允许的数据⽂件⼤⼩)。
SQL 收缩日志
1、建议首先备份数据库(但不是必需的):
BACKUP DATABASE database_name TO LOG database_name TO backup_device
如果不需要当前事务日志中的记录进行数据库还原或没有足够的空间进行事务日志备份的的话,也可仅执行以下命令截断事务日志:
BACKUP LOG database_name WITH NO_LOG
3、收缩事务日志文件:
DBCC SHRINKFILE (log_file_name)
其中log_file_name是事务日志文件的逻辑名称,可以在企业管理器中数据库属性的“事务日志”页中看到(如Northwind数据库的默认事务日志文件逻辑名称为Northwind_log)。
4、如果日志文件仍然较大的话,可以尝试重复执行一次BACKUP LOG WITH NO_LOG和DBCC SHRINKFILE命令。
5、如果这时仍没有明显的效果,请执行DBCC OPENTRAN (database_name)检查当前数据库中是否存在长时间未提交的活动事务。有必要的话,可以断开这些连接并重新尝试截断事务日志和收缩日志文件。
SQL数据库的压缩以及数据的导出讲解学习
S Q L数据库的压缩以及数据的导出SQL数据库的压缩,数据的导出1.SQL数据库的压缩数据库使用时间较长时(一般周期是一年),我们需要对数据库进行压缩,不过我们需要注意的是在压缩前,先要将数据库进行备份(相关步骤已经写出图文教材),这点很重要。
我们压缩数据库时,需要先将过去一年里面的分钟,五分钟,小时数据进行删除,具体步骤如下:先确定好DAS软件使用的数据库名称(在DAS软件中的系统设置里面的基本设置中可以确定),打开企业管理器,选择相对应的数据库名,点击对应数据库前面的小加号,展开,单击表,在弹出的的窗口中,右击pwkdata2项,在打开表中选择返回所有行,具体如图:左击返回所有行,打开,在弹出的的新窗口中点击SQL项,如图:点击SQL后,在弹出的新窗口中,将原来的更改为delete from pwkdata2, 并在其下方输入指令WHERE (res_date >= '2014-1-1') AND (res_date <= '2014-12-31'),期间用空格隔开,此指令的意思就是删除一年的小时数据(Pwkdata2指小时数据),指令中的日期可以进行改动,随现场具体情况而定,指令输好后点击窗口中的红色感叹号,待弹出对话框后点击确认即可,如图:点击确认后,数据删除成功。
上面的pwkdata2是指的小时数据,我们除了删除小时数据,还需要删除pwkdata4(1分钟数据),pwkdata(五分钟数据),pwkdata3(日数据),pwkdata5(实时数据),步骤同上数据删好后,我们就可以进行数据库压缩了,打开企业管理器,选择相对应的数据库名,右击该数据库,在所有任务中选择收缩数据库。
如图打开收缩数据库项,在弹出的窗口中点击文件,在数据库文件一栏中选择das_flow2_data,然后点击确定,然后再点击文件,在数据库文件一栏中选择das_flow2_log,点击确定,然后再点击确定,数据库收缩完成。
sql server数据库文件的压缩方法
sql server数据库文件的压缩方法如果需要压缩sql server数据库文件,应该怎么操作呢?下文将为您介绍sql server数据库文件的压缩详细的方法步骤,希望能够帮助到您兰州白癜风专科医院。
请按步骤进行,未进行前面的步骤时,请不要做后面的步骤,以免损坏你的数据库.一般不建议做第4,6两步,第4步不安全,有可能损坏数据库或丢失数据。
第6步如果日志达到上限,则以后的数据库处理会失败,在清理日志后才能恢复。
1.清空日志DUMP TRANSACTION库名WITH NO_LOG2.截断事务日志BACKUP LOG数据库名WITH NO_LOG3.收缩数据库文件(如果不压缩,数据库的文件不会减小企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件--选择日志文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了--选择数据文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了收缩数据库文件(也可以用SQL语句来完成--收缩数据库DBCC SHRINKDATABASE(客户资料)--收缩指定数据文件,1是文件号,可以通过这个语句查询到:select*from sysfilesDBCC SHRINKFILE(1)4.为了最大化的缩小日志文件(如果是sql7.0,这步只能在查询分析器中进行)a.分离数据库:企业管理器--服务器--数据库--右键--分离数据库b.在我的电脑中删除LOG文件c.附加数据库:企业管理器--服务器--数据库--右键--附加数据库此法将生成新的LOG,大小只有500多K或用代码:下面的示例分离pubs,然后将pubs中的一个文件附加到当前服务器兰州白癜风治疗。
SQL数据库的备份还原压缩与数据转移的方法
SQL数据库的备份还原压缩与数据转移的方法一、备份:1. 完全备份:将数据库的所有数据和对象都备份到一个文件中。
可以使用SQL Server的备份工具或者命令行工具来进行完全备份。
2.增量备份:只备份自上次完全备份或增量备份之后更改的数据。
可以定期进行增量备份来减少备份时间和空间占用。
3.差异备份:备份自上次完全备份之后更改的数据。
与增量备份的区别是差异备份会基于最近的完全备份而不是上次备份的时间。
二、还原:1.完全还原:将完整备份文件恢复到数据库中,还原数据库到备份时的状态。
2.增量还原:先还原最近的完全备份,然后逐个还原增量备份。
这样可以将数据库恢复到最新状态。
3.差异还原:先还原最近的完全备份,然后只还原最近的差异备份。
这样也可以将数据库恢复到最新状态。
三、压缩:1. 数据压缩:可以使用SQL Server的数据压缩功能来减少数据库文件的大小。
压缩后的文件需要更少的存储空间,提高了数据库的性能和效率。
2.备份压缩:可以在备份数据库时选择压缩备份选项。
压缩后的备份文件可以减少存储空间和备份时间,但同时可能会增加还原时间。
四、数据转移:1. 数据导入导出:可以使用SQL Server的数据导入导出向导或者命令行工具来将数据从一个数据库导出到另一个数据库。
可以选择导出的表、视图或者查询结果,并将其保存为文件,然后再导入到目标数据库中。
2. 数据同步:可以使用SQL Server复制功能来实现数据的实时同步。
可以将数据从一个数据库复制到另一个数据库,这样可以确保数据在不同数据库之间的一致性。
3. 数据传输:可以使用SQL Server的链接服务器功能来实现不同数据库之间的数据传输。
可以在不同的服务器之间建立链接,然后通过链接来查询和传输数据。
总结:SQL数据库的备份、还原、压缩与数据转移是数据库管理中的重要操作。
备份和还原可以保证数据的安全性和完整性,压缩可以减少数据库文件的大小,提高性能和效率,数据转移可以实现数据的导入导出和同步传输。
如何压缩SQL Server 2005指定数据库文件和日志的大小
面有两个SQL语句可以达到在SQL Server 2005/2008压缩指定数据库文件和日志的大小的效果:1、DBCC SHRINKDATABASE (Transact-SQL)收缩指定数据库中的数据文件和日志文件的大小。
语法DBCC SHRINKDATABASE( 'database_name' | database_id | 0[ ,target_percent ][ , { NOTRUNCATE | TRUNCATEONLY } ])[ WITH NO_INFOMSGS ]参数'database_name' | database_id | 0 要收缩的数据库的名称或 ID。
如果指定 0,则使用当前数据库。
target_percent 数据库收缩后的数据库文件中所需的剩余可用空间百分比。
NOTRUNCATE 通过将已分配的页从文件末尾移动到文件前面的未分配页来压缩数据文件中的数据。
target_percent 是可选参数。
文件末尾的可用空间不会返回给操作系统,文件的物理大小也不会更改。
因此,指定 NOTRUNCATE 时,数据库看起来未收缩。
NOT RUNCATE 只适用于数据文件。
日志文件不受影响。
TRUNCATEONLY 将文件末尾的所有可用空间释放给操作系统,但不在文件内部执行任何页移动。
数据文件只收缩到最近分配的区。
如果与 TRUNCATEONLY 一起指定,将忽略 target _percent。
TRUNCATEONLY 只适用于数据文件。
日志文件不受影响。
WITH NO_INFOMSGS 取消严重级别从 0 到 10 的所有信息性消息。
结果集列名说明DbId 数据库引擎试图收缩的文件的数据库标识号。
FileId 数据库引擎尝试收缩的文件的文件标识号。
CurrentSize 文件当前占用的 8 KB 页数。
MinimumSize 文件最低可以占用的 8 KB 页数。
MSSQL收缩事务日志日志文件过大无法收缩
MSSQL收缩事务⽇志⽇志⽂件过⼤⽆法收缩⼀.MS SQL SERVER 2005--1.清空⽇志exec('DUMP TRANSACTION 数据库名 WITH NO_LOG')--2.截断事务⽇志:exec('BACKUP LOG 数据库名 WITH NO_LOG')--3.收缩数据库⽂件(如果不压缩,数据库的⽂件不会减⼩exec('DBCC SHRINKDATABASE(数据库名) ')--4.设置⾃动收缩exec('EXEC sp_dboption 数据库名,autoshrink,TRUE')⼆.MS SQL SERVER 2008 &2008r2 &2012 &2016--在SQL2008中清除⽇志就必须在简单模式下进⾏,等清除动作完毕再调回到完全模式。
USE [master]GOALTER DATABASE 数据库名 SET RECOVERY SIMPLE WITH NO_WAITGOALTER DATABASE 数据库名 SET RECOVERY SIMPLE --简单模式GOUSE 数据库名GO--crm50sp1_log 为数据库⽇志⽂件逻辑名DBCC SHRINKFILE (N'crm50sp1_log' , 11, TRUNCATEONLY)GOUSE [master]GOALTER DATABASE 数据库名 SET RECOVERY FULL WITH NO_WAITGOALTER DATABASE 数据库名 SET RECOVERY FULL --还原为完全模式GO三. ⽇志⽂件异常⼤⽆法收缩的问题如果⽇志⽂件异常⼤,且收缩的时候⽆法收缩,这个时候,需要查看是否有未提交或者回滚的事务执⾏DBCC OPENTRAN 命令,查看是否有很早运⾏的事务(消息中显⽰的有事务开始时间),显⽰出来的都表⽰该事务没有提交或回滚所以⼀直导致MinLSN⽆法前滚。
数据库日志收缩步骤
数据库日志收缩步骤嘿,朋友们!今天咱就来讲讲数据库日志收缩那些事儿。
你想想看啊,数据库就像一个大仓库,里面存了好多好多的数据呢。
而日志呢,就像是这个大仓库的记录员,把每一笔进出库的情况都详细地记下来。
时间一长,这日志可就变得老长老长啦,占了不少空间呢!那咱就得想办法给它缩缩水,让数据库轻装上阵呀。
首先呢,咱得找到数据库的日志文件在哪里。
就像你要找一件东西,总得先知道它在哪个柜子里吧。
然后呢,看看这个日志文件现在有多大了,心里有个数。
接下来,咱就可以开始收缩啦!这就好比给一个气球放气,得慢慢地来,可不能一下子猛戳个洞,那可就乱套啦。
可以通过一些特定的命令或者工具来进行操作。
比如说,有的数据库系统会有专门的收缩日志的功能,就像有个神奇的按钮,一按下去,日志就开始变小啦。
在这个过程中,可千万要小心别把重要的数据给弄丢了呀!这就好比你整理房间,可别把宝贝给当垃圾扔了。
所以呢,在收缩之前,一定要做好备份,万一出了啥问题,咱还有后路可走呢。
收缩的时候,你可能会感觉时间过得有点慢,就像等一壶水烧开似的,别着急呀,让它慢慢进行。
等收缩完了,你再去看看,哇塞,日志文件变小了好多呢,是不是感觉特别有成就感呀!这数据库日志收缩啊,其实也不难,只要咱按照步骤来,小心翼翼地操作,就一定能成功。
你说,要是不收缩这日志,那数据库得多累呀,就像人背着个大包袱走路,能快得起来吗?咱给它瘦瘦身,让它跑得更快,工作得更高效。
所以呀,朋友们,别再对那庞大的日志视而不见啦,赶紧行动起来,给咱的数据库来一次清爽的瘦身之旅吧!让它重新焕发活力,为我们更好地服务呀!怎么样,是不是跃跃欲试啦?那就赶紧去试试吧!。
几种清除MSSQL日志的方法
方法一、MS SQL清除日志的命令如何清除sql server 日志?设置数据库为简单模式,自动收缩1.打开查询分析器,输入命令backup log databasename with no_log2.再打开企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件--选择日志文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M 数,直接输入这个数,确定就可以了。
dbcc shrinkfile (databasename_log,truncateonly)方法三、1: 删除LOG第1步:分离数据库企业管理器->服务器->数据库->右键->分离数据库第2步:删除LOG文件第3布:附加数据库企业管理器->服务器->数据库->右键->附加数据库此法生成新的LOG,大小只有500多K再将此数据库设置自动收缩方法四、EXEC sp_detach_db @dbname = 'pubs'EXEC sp_attach_single_file_db @dbname = 'pubs',@physname = 'c:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs.mdf'方法五、Use Database_NameBackup Log Database_Name With No_logdbcc shrinkfile (Database_Name_Log,truncateonly)Go直接在查询分析那里执行backup log databasename with no_log然后回到企业管理器把数据库收缩一下(可能需另外设置属性)如果以后,不想要它变大。
SQL2000下使用:在数据库上点右键->属性->选项->故障恢复-模型-选择-简单模型。
或用SQL语句:alter database 数据库名set recovery simple另外,Truncate log on checkpoint(此选项用于SQL7.0,SQL 2000中即故障恢复模型选择为简单模型)当执行CHECKPOINT 命令时如果事务日志文件超过其大小的70% 则将其内容清除在开发数据库时时常将此选项设置为True Auto shrink定期对数据库进行检查当数据库文件或日志文件的未用空间超过其大小的25%时,系统将会自动缩减文件使其未用空间等于25% 当文件大小没有超过其建立时的初始大小时不会缩减文件缩减后的文件也必须大于或等于其初始大小对事务日志文件的缩减只有在对其作备份时或将Truncate log on checkpoint 选项设为True 时才能进行。
SQL数据库日志已满,或者日志很大问题解决
SQL数据库日志已满,或者日志很大,怎么办?先提供一种复杂的方法压缩日志及数据库文件如下:1.清空日志DUMP TRANSACTION 库名 WITH NO_LOG2.截断事务日志:BACKUP LOG 数据库名 WITH NO_LOG3.收缩数据库文件(如果不压缩,数据库的文件不会减小企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件--选择日志文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了--选择数据文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了也可以用SQL语句来完成--收缩数据库DBCC SHRINKDATABASE(客户资料)--收缩指定数据文件,1是文件号,可以通过这个语句查询到:select * from sysfilesDBCC SHRINKFILE(1)4.为了最大化的缩小日志文件(如果是sql 7.0,这步只能在查询分析器中进行)a.分离数据库:企业管理器--服务器--数据库--右键--分离数据库b.在我的电脑中删除LOG文件c.附加数据库:企业管理器--服务器--数据库--右键--附加数据库此法将生成新的LOG,大小只有500多K或用代码:下面的示例分离 pubs,然后将 pubs 中的一个文件附加到当前服务器。
a.分离E X E C sp_detach_db @dbname = 'pubs'b.删除日志文件c.再附加E X E C sp_attach_single_file_db @dbname = 'pubs',@physname = 'c:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs.mdf'5.为了以后能自动收缩,做如下设置:企业管理器--服务器--右键数据库--属性--选项--选择"自动收缩"--SQL语句设置方式:E X E C sp_dboption '数据库名', 'autoshrink', 'TRUE'6.如果想以后不让它日志增长得太大企业管理器--服务器--右键数据库--属性--事务日志--将文件增长限制为xM(x是你允许的最大数据文件大小)--SQL语句的设置方式:alter database 数据库名 modify file(name=逻辑文件名,maxsize=20)特别注意:请按步骤进行,未进行前面的步骤,请不要做后面的步骤否则可能损坏你的数据库.一般不建议做第4,6两步第4步不安全,有可能损坏数据库或丢失数据第6步如果日志达到上限,则以后的数据库处理会失败,在清理日志后才能恢复.另外提供一种更简单的方法,本人屡试不爽,建议大家使用。
数据库数据压缩与归档的操作日志记录(九)
数据库数据压缩与归档的操作日志记录随着科技的飞速发展,数据库的存储容量也在以前所未有的速度增长。
面对庞大的数据量,数据库管理员不仅需要高效地存储数据,还要保证数据的安全和完整性。
在这个背景下,数据库数据压缩与归档的操作日志记录成为了一个重要的议题。
一、为何需要数据库数据压缩与归档数据库中存储的数据量越来越大,给存储系统带来了巨大压力。
为了节约存储空间,数据库管理员需要采取有效的措施进行数据压缩。
数据压缩可以通过各种算法实现,如常用的LZW算法、哈弗曼编码和基于字典的算法等。
压缩后的数据可以减少存储空间的占用,并提高数据读取的效率。
另一个重要的原因是数据归档。
数据归档是将数据库中的过期数据转移到较慢的存储介质上,以节约数据库的存储空间和提高数据库的性能。
归档后的数据可以按需提取,从而保证了数据库的工作效率和速度。
二、数据库数据压缩的实现方法1. 列压缩: 列压缩是对数据库中每一列数据进行压缩。
对于相同类型的数据,如整数、浮点数、日期等,可以使用特定的压缩算法进行压缩。
例如对于整数列,可以使用变长整数编码(VLC)进行压缩,可以将较大的整数压缩为较小的存储空间。
2. 行压缩: 行压缩是对数据库中每一行数据进行压缩。
行压缩可以根据行中各个列的数据类型和实际情况,采用不同的压缩算法。
比如对于稀疏矩阵型的行数据,可以采用压缩的方式存储,将其中大量为零的数据剔除,只保留有效的数据进行存储。
3. 字典压缩: 字典压缩是对数据库中的重复数据进行压缩。
可以通过建立一个字典表,将重复的数据进行映射,用较小的数据代表大量的重复数据。
这样可以大大减少存储空间的占用。
三、数据库数据归档的实现方法1. 分区归档: 分区归档是将数据库中的数据按照一定的规则划分为多个分区,将过期的数据转移到较慢的存储介质上。
可以按照时间范围、地理位置等规则进行分区,以满足不同的业务需求。
对于分区中的数据,可以根据实际需求进行归档和恢复。
2. 垂直归档: 垂直归档是将数据库中的不同表或列按照业务逻辑进行分割,将不经常使用的数据归档到较慢的存储介质上。
DBCCSHRINKDATABASEMSSQL数据库日志压缩方法
DBCCSHRINKDATABASEMSSQL数据库⽇志压缩⽅法MS SQL数据库⽇志压缩⽅法
MS SQL性能是很不错的,但是数据库⽤了⼀段时间之后,数据库却变得很⼤,实际的数据量不⼤。
⼀般都是数据库⽇志引起的!数据库⽇志的增长可以达到好⼏百M。
⽹上的MSSQL虚拟主机价格也贵,要想不让数据库超容,只好压缩下数据库⽇志,或者删除数据库⽇志。
下⾯我给⼤家介绍⼀个⽅法
1、打开企业管理器
2、打开要处理的数据库
3、点击菜单>⼯具>SQL查询分析器
4、在输⼊窗⼝⾥⾯输⼊:
DUMP TRANSACTION [数据库名] WITH NO_LOG
BACKUP LOG [数据库名] WITH NO_LOG
DBCC SHRINKDATABASE([数据库名])
点击执⾏!这样⼦数据库就操作成功了。
程序⾥⾯的⽅法:
压缩数据库⽇志
--1.清空⽇志
exec('DUMP TRANSACTION [' @dbname '] WITH NO_LOG')
--2.截断事务⽇志:
exec('BACKUP LOG [' @dbname '] WITH NO_LOG')
--3.收缩数据库⽂件(如果不压缩,数据库的⽂件不会减⼩
exec('DBCC SHRINKDATABASE([' @dbname '])')。