sql数据库满了怎么清理

sql数据库满了怎么清理,第1张

-- 清空日志

--压缩日志及数据文件大小

/*--特别注意

请按步骤进行,未进行前面的步骤,请不要做后面的步骤

否则可能损坏你的数据库.

--*/

select*fromsysfiles

--1.清空日志

DUMPTRANSACTIONusernameWITHNO_LOG

--2.截断事务日志:

BACKUPLOGusernameWITHNO_LOG

--3.收缩数据库文件(如果不压缩,数据库的文件不会减小

-- 企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件

--选择日志文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了

--选择数据文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了

-- 也可以用SQL语句来完成

--收缩数据库

DBCCSHRINKDATABASE(username)

--收缩指定数据文件,1是文件号,可以通过这个语句查询到:select*fromsysfiles

DBCCSHRINKFILE(2)

--4.为了最大化的缩小日志文件(如果是sql7.0,这步只能在查询分析器中进行)

-- a.分离数据库:

-- 企业管理器--服务器--数据库--右键--分离数据库

-- b.在我的电脑中删除LOG文件

-- c.附加数据库:

-- 企业管理器--服务器--数据库--右键--附加数据库

-- 此法将生成新的LOG,大小只有500多K

-- 或用代码:

-- 下面的示例分离username,然后将username中的一个文件附加到当前服务器。

execsp_dboptionusername,'singleuser',true

a.分离

EXECsp_detach_db@dbname='username'

b.删除日志文件

execmaster..xp_cmdshell'delD:\ProgramFiles\SQL\database\username_LOG.ldf'

c.再附加

EXECsp_attach_single_file_db@dbname='username',

@physname='D:\ProgramFiles\SQL\database\username_Data.MDF'

--5.为了以后能自动收缩,做如下设置:

-- 企业管理器--服务器--右键数据库--属性--选项--选择"自动收缩"

--SQL语句设置方式:

EXECsp_dboption'数据库名','autoshrink','TRUE'

--6.如果想以后不让它日志增长得太大

-- 企业管理器--服务器--右键数据库--属性--事务日志

--将文件增长限制为xM(x是你允许的最大数据文件大小)

--SQL语句的设置方式:

alterdatabase数据库名modifyfile(name=逻辑文件名,maxsize=20)

锐捷商通 V6 是一款网络管理软件,如果您想要清除其中的数据,可以按照以下步骤进行 *** 作:

1. 打开"锐捷商通 V6"软件;

2. 在主界面中找到"文件"菜单选项,并点击它;

3. 在d出的下拉菜单中选择"数据库管理"选项;

4. 在"数据库管理"窗口中,可以看到当前已有的数据库;

5. 选择您需要清空数据的数据库,右键点击并选择"清空数据"选项;

6. 在d出的确认对话框中,输入管理员账号和密码,然后点击"确定"按钮即可清空该数据库的所有数据。清空数据是不可恢复的 *** 作,因此在清空之前,请务必确认已备份好重要的数据。同时,建议仅在必要时进行这个 *** 作,避免误删或误 *** 作。

删除的办法是执行truncat方法,只是不需要每次手动的输入truncate命令进行删除。

通过sql命令的方式生成所有的truncate语句并写入到.sql脚本文件中,然后执行脚本即可完成删除 *** 作,并且保留了表结构。

生成truncate命令的sql语句为:

SELECTCONCAT('TRUNCATETABLE',TABLE_NAME,';')FROMinformation_schema.TABLESWHERETABLE_SCHEMA='test'intooutfile'/tmp/truncate_test.sql';。

然后将生成的.sql脚本拷贝到当前文件夹下面:

mv/tmp/truncate_test.sql$current_dir/。

然后执行.sql脚本将数据库中所有表中数据删除:

source$current_dir/truncate_test.sql。

注意:

在进行select....intooutfile...... *** 作时,默认只能将文件写入到tmp路径下,可以不用将tmp文件夹下面的.sql脚本移动到当前文件夹下,直接在tmp路径下执行.sql脚本即可。

扩展资料:

常见的删除数据库表中数据的方法是通过delete或者truncate的方法进行删除 *** 作,如果删除的是表中某一条或者部分数据的话适合用delete *** 作进行删除,如果要删除表中所有的数据的话,适合是同truncate进行删除 *** 作。

如果不需要保留数据库中所有表的结构,那么答案很简单,执行命令dropdatabase数据库名即可达到目的。

但是如果需要保留该数据库中所有表的结构,只想删除所有表中的数据,多执行几次truncate可以达到。

参考资料:百度百科-数据表


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9576715.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存