作者:再见傻瓜傻瓜_299 | 来源:互联网 | 2023-07-29 18:53
问题的产生:
由于上系统时建库不小心,在建数据库时没有将数据与日志分布在不同的设备上,导致成了现在的样子
sp_helpdb maindb
name db_size owner dbid
---- ------- ----- -----------
maindb 4000.0 MB sa 6
device_fragments size usage
---------------- ---- -----
maindbdev 1000.0 MB data only
maindbdev 1000.0 MB log only
maindblogdev 2000.0 MB data and log
-
log only free kbytes = 912314
device segment
------ -------
maindbdev default
maindbdev logsegment
maindbdev system
maindblogdev default
maindblogdev logsegment
maindblogdev system
怎样将logsegment从maindbdev,maindblogdev中分离出来,可以添加一个2G的设备
专给logsegment用
也可以采用将default,system从maindbdev,maindblogdev中分离出来的方法,但不能重新建数据库,也不能用BCP的方法倒出数据,建表,倒入数据,因为表太多,数据量太大,影响业务
在此向各位关心这个问题的朋友表示诚挚的感谢
4 个解决方案
你创建个新的device用于放log用
然后执行alter database命令啊
alter database databasename
log on database_device = size
with override
这样就可以了吧
如果是NT的,那操作起来更方便啊
不用写语句的
sp_logdevice
example:
1.
create database products on default = 10, logs = 2
go
sp_logdevice products, logs
go
创建数据库products,并将表products.syslogs放到数据库设备logs上
2.
alter database test log on logdev
go
sp_logdevice test, logdev
go
对于日志和数据保存在同一设备上的数据库test,将其日志存放到日志设备logdev上
你可以看看帮助获得更详细的资料。
呵呵,祝你好运!
有必要一定要添加一个2G的设备专给logsegment用,我们的数据库就是用的一个设备的。不过随着数据量的增大后,我现在已经又增加了几个设备来专做日志和数据的,运行起来好象没有什么大的妨害的~~~~^_^还有你的数据库是在什么环境下的?
谢谢各位 我周末的时候试一次看看
我的操作系统为AIX