导航:首页 > 编程大全 > sybasey数据库空间满

sybasey数据库空间满

发布时间:2021-10-26 07:29:57

❶ SQL数据库空间不足怎么办

一、用户数据库搬家
操作方法有以下两种
方法1:在企业管理器中进行
(1)在企业管理器中选定要搬家的数据库名,在其上单击鼠标右键,出现如图1所示对话框。
(2)选中“所有任务”,在其子菜单中单击“分离数据库”。
(3)将该数据库的数据文件和日志文件从旧的位置(如D:\MSSQL\Data)拷贝到新的位置(如E:\SQLDataNew)。
(4)再在企业管理器中选中“数据库”文件夹,在其上单击鼠标右键,在出现的对话框中选中“所有任务”,在其子菜单中单击“附加数据库”。
(5)在出现的“附加数据库”对话框中,选择数据库的两个文件的新位置。
方法2:用SQL系统存储过程sp_detach_db/sp_attach_db实现
(1)使用下面语句分离数据库:
USE master
GO
EXEC sp_detach_db 'mydb'
GO
(2)将该数据库的数据文件和日志文件从旧的位置拷贝到新的位置。
(3)使用下面语句重新附加数据库:
USE master
GO
EXEC sp_attach_db
'mydb', 'E:\SQLDataNew\mydbdata.mdf', 'E:\SQLDataNew\mydblog.ldf''
GO
二、系统数据库搬家
1.master数据库搬家
(1)由于SQL Server每次启动的时候都需要读取master数据库,因此必须在企业管理器中改变SQL Server启动参数中master数据文件和日志文件的路径。
在 SQL Server属性的“常规”选项卡下面有一个叫做“启动参数”的按钮,单击后可以看到所示的界面。
其中,-d用来指定master数据库文件的路径,而–l用来指定master数据库日志文件的路径。
删除旧的master数据库文件和日志文件的路径,添加新的master数据文件和日志文件所在的路径,如:
-dE:\ SQLDataNew \master.mdf
-lE:\ SQLDataNew \mastlog.ldf
(2)停止SQL Server服务,将master.mdf文件和mastlog.ldf文件拷贝到新的位置,如E:\ SQLDataNew文件夹中。
(3)重新启动服务即可。
小技巧:如果在“启动参数”添加的master数据库文件和日志文件的路径或文件名有误,就会造成SQL Server启动不起来。而此时想改正错误又因SQL Server启动不了而重设不了“启动参数”。其实这两个文件路径和文件名是放置在注册表HKEY_LOCAL_MACHINE\SOFWARE\Microsoft\Miccrosoft SQL Server\你安装SQL服务器的名\MSSQLServer\Parrmeters下的参数SQLArg1和SQLArg2中,修改这两个参数的值即可。
2. msdb数据库和model数据库搬家
(1)对于msdb数据库和model数据库,我们不能在企业管理器中实现分离和附加,只能用sp_detach_db和sp_attach_db存储过程来分离和附加这两个数据库。
其中,对于msdb数据库,还应确保SQL Server代理当前没有运行,否则sp_detach_db存储过程将运行失败,并返回如下消息:
“无法除去数据库 'msdb' ,因为它当前正在使用。”
(2)调出如图4所示的“启动参数”对话框,添加新参数-T3608。这样,启动SQL Server,它就不会恢复除master之外的任何数据库。
(3)重新启动SQL Server,再用下面命令分离msdb或者model数据库:
EXEC sp_detach_db 'msdb'
GO
(4)将数据文件和日志文件移到新的位置,然后再用下面命令重新附加msdb数据库或者model数据库:
USE master
GO
EXEC sp_attach_db
'msdb', ‘E:\SQLDataNew\msdbdata.mdf', ' E:\SQLDataNew\msdblog.ldf '
GO
(5)在企业管理器中,从“启动参数”框中删除-T3608跟踪标记,再停止并重新启动SQL Server。
3. tempdb数据库搬家
对于tempdb数据库,则可以直接使用ALTER DATABASE语句来为数据文件和日志文件指定新的存放位置,如下所示:
USE master
GO
ALTER DATABASE tempdb MODIF
Y FILE (NAME=tempdev, FILENAME ='E:\SQLDataNew \tempdb.mdf')
GO
ALTER DATABASE tempdb MODIF
Y FILE(NAME=templog, FILENAME=
' E:\SQLDataNew \templog.ldf')
GO
至此,SQL Server 中数据库全部搬家完成。

❷ 如何处理Sybase临时表空间tempdb已满的问题

开发数据库服务器遇到这样的一个问题,使用了一段时间之的后,突然之间数据库就用不了了,现象是新连接连接不上,已经连接的执行sql时,报出tempdb日志满了,无法进行操作的错误,而且控制台无法连接上服务器,所有操作都无法正常进行。
经过上网查询,得知是tempdb日志满了,缺省情况下,tempdb数据库是放置在master设备上,容量为2M,而临时数据库是活动最为平凡的数据库常常被用来排序、创建临时表、重格式化等操作,所以tempdb的优化应该受到特别的关注。安装Sybase的时候就应该把tempdb的空间扩大,并且最好新建一个表空间给它专门用。
正常的时候可以用sp_helpdb tempdb命令查看tempdb,可以看到tempdb占用空间的情况。
如果日志满了,可以执行mp tran tempdb with truncate_only或者mp tran tempdb with no_log来清除日志,但是现在根本无法执行该语句,因为tempdb已经满了,根本没有空间来执行该语句(如果出现Sybase的服务也无法启动的情况就需要把jsj重启,然后再去启动Sybase的服务),这该怎么办,好像进入了一个死循环里,日志满了要清除,但因为满了又无法清除,看来只能先扩容了,现在已经没有一个空闲的表空间了,控制台根本无法连接上数据库,只能用语句来新建一个表空间,下面是新建表空间的语句:
执行disk init命令必须先执行use master命令。
disk init
name="tempdblog",
physname="D:/Sybase/tempdblog.dat",
vdevno=11,
size= 409600
go
新建好表空间后,将该空间分配给tempdb存放日志用如下命令:
alter database tempdb log on tempdblog=800
【注】执行上面的语句之前执行sp_helpdb tempdb命令发现db_size为12MB,执行完上面的语句后db_size变为812MB。alter database tempdb on tempdbdata=1024mp tran tempdb with truncate_only
或者 mp tran tempdb with no_log
如果不想占用master的空间,可以执行如下语句将master上为tempdb的空间删除:
sp_dropsegment "default",tempdb,master
sp_dropsegment logsegment,tempdb,master 还可以将临时数据库与高速缓冲进行绑定
tempdb数据库是活动最为平凡的数据库,常常被用来排序、创建临时表、重格式化等操作,它会频繁地使用数据缓存,所以应为临时数据库创建高速缓存,从而可以使其常驻内存并有助于分散I/O,根据服务器的实际情况,我们为tempdb数据库创建100M的高速缓存,实现方法如下:
创建命名高速缓存
sp_cacheconfig “tempdb_cache”,”100m”,”mixed”
go
2、重新启动server
3、捆绑临时数据库到tempdb_cache高速缓存
sp_bindcache “tempdb_cache”, tempdb
go

❸ 数据库空间不够了,怎么删除数据库多余的数据

1、收缩数据库文件
2、查找到你“确定”为多余的表的记录,写SQL删除

❹ sybase 数据库的日志剩余空间超过设备大小,求修复,百度到得那个情况和我一样,但是那个方法不能解决。

这个属于Sybase ASE中部分存储空间信息的内容有误导致显示异常。
可以通过dbcc进行修复,下面例子中的DB_NAME要改为你实际的数据库名字ps330
终止所有当前数据库上的连接,将数据库设置为 单用户 状态
use master
go
sp_dboption DB_NAME,'single',true
go
use DB_NAME
go
checkpoint
go

对数据库进行下面的dbcc检查
dbcc tablealloc(syslogs, full, fix)

检查完毕后,取消数据库的单用户模式
use master
go
sp_dboption DB_NAME,'single',false
go
use DB_NAME
go
checkpoint
go

❺ 怎么判断sybase数据库的剩余空间

如:> sp_helpsegment system 查看抄系统的剩余空袭间
> sp_helpsegment logsegment 查看日志的剩余空间
data_pages() 或者data_pgs()
curunreservedpgs()
通过这两个函数自己计算。

❻ SQL数据磁盘满了怎么解决

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

/*--特别注意
请按步骤进行,未进行前面的步骤,请不要做后面的步骤
否则可能损坏你的数据库.
--*/
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)

❼ Sybase数据库中如何一次查出所有系数据库空间占用大小

select base besc

❽ 数据库空间满了怎么处理

估计你的数据库是Access数据库
如果以前的数据必须存储,不能删除,那么再创建一个新表,就原来回的表重答命名,新表的结构必须与原结构完全一样,新表重命名为原来表的名称即可。
如果以前的数据可以不保存,将不需要的记录删除就可以。
如果能够转换为SQL数据库,存储量比Access数据库大得多。

❾ sybase中表空间日志已满,如何删除表中记录。

大流量测试程序性能时,程序写入到sybase数据中的日志太多,导致在对表进行操作(比如删除日志)的时候提示: “数据库****中的事务日志已满,直到日志中存在可用的空间,你的事务才将被挂起” 这个库中的每个表都是这样,除了可查询,别的操作都执行不了,并且,连接这个数据库的程序也不能顺利跑起来。 两种解决方法: 2、alter database test log on newdevice = [ addSize] 加日志,如果没有全备,最好是直接加日志。注:test 是只你的数据库名,第二种方式要在master数据库下执行

❿ 如何判断sybase数据库日志空间满

SYBASE公司是世界著名的数据库厂家, 其关系数据库产品SYBASE SQL Server在中国大中型企事业单位中拥有大量的用户。 笔者在多年的使用过程中, 总结出SYBASE数据库管理和维护的一些经验, 现拿出来与大家分享。 我们知道,SYBASE SQL Server用事务(Transaction) 来跟踪所有数据库的变化。事务是SQL Server的工作单元。 一个事务包含一条或多条作为整体执行的T-SQL语句。 每个数据库都有自己的事务日志(Transaction Log),即系统表(Syslogs)。 事务日志自动记录每个用户发出的每个事务。 日志对于数据库的数据安全性、完整性至关重要, 我们进行数据库开发和维护必须熟知日志的相关知识。 一、SYBASE SQL Server 如何记录和读取日志信息 SYBASE SQL Server是先记Log的机制。 每当用户执行将修改数据库的语句时,SQL Server就会自动地把变化写入日志。 一条语句所产生的所有变化都被记录到日志后, 它们就被写到数据页在缓冲区的拷贝里。该数据页保存在缓冲区中, 直到别的数据页需要该内存时,该数据页才被写到磁盘上。 若事务中的某条语句没能完成,SQL Server将回滚事务产生的所有变化。 这样就保证了整个数据库系统的一致性和完整性。 二、日志设备 Log和数据库的Data一样,需要存放在数据库设备上, 可以将Log和Data存放在同一设备上,也可以分开存放。 一般来说, 应该将一个数据库的Data和Log存放在不同的数据库设备上。 这样做有如下好处:一是可以单独地备份 Backup 事务日志;二是防止数据库溢满; 三是可以看到Log的空间使用情况。 所建Log设备的大小,没有十分精确的方法来确定。一般来说, 对于新建的数据库,Log的大小应为数据库大小的30%左右。 Log的大小还取决于数据库修改的频繁程度。 如果数据库修改频繁,则Log的增长十分迅速。 所以说Log空间大小依赖于用户是如何使用数据库的。此外, 还有其它因素影响Log大小, 我们应该根据实际操作情况估计Log大小, 并间隔一段时间就对Log进行备份和清除。 三、日志的清除 随着数据库的使用,数据库的Log是不断增长的, 必须在它占满空间之前将它们清除掉。清除Log有两种方法: 1.自动清除法 开放数据库选项 Trunc Log on Chkpt,使数据库系统每隔一段时间自动清除Log。 此方法的优点是无须人工干预,由SQL Server自动执行,并且一般不会出现Log溢满的情况; 缺点是只清除Log而不做备份。 本文来自: ( www.91linux.com ) 详细出处参考: http://www.91linux.com/ html/article/database/sybase/ 20080518/11017.html

阅读全文

与sybasey数据库空间满相关的资料

热点内容
速影tv 官网 浏览:806
在哪里找数据分析软件 浏览:109
刑辩律师电子数据质证怎么办 浏览:576
word2007如何设置背景图片 浏览:979
60版本绝版布甲 浏览:92
法国经典复古四级有哪些 浏览:185
韩国徐元有哪些电影 浏览:1
苹果手机能看的网站有哪些 浏览:756
u盘格式化存储更大文件 浏览:307
电脑网线未识别的网络连接电脑 浏览:101
岛国电影网址 浏览:735
linux互传文件 浏览:603
谷歌商店微信支付宝 浏览:965
一级动物和人电影有哪些 浏览:611
十部顶级原始部落电影 浏览:210
win10按键精灵连不上手机助手 浏览:586
东莞市经济数据是多少 浏览:910
编程会运用到哪些程序 浏览:662
游戏在c盘中哪个文件夹 浏览:53
三不直接分管出自哪个文件 浏览:426

友情链接