B*********L 发帖数: 700 | 1 SELECT name
FROM sys.master_files
SELECT name
FROM sys.database_files
同一个database, sys.master_file中log file的名字和sys.database_files中的不一
样.其中sys.database_files给出的file name与SSMS列出的一样,是正确的.
后果是我没法shrink log file.
各位老大,我应该怎样update sys.master_file呢? |
c*****d 发帖数: 6045 | 2 你的意思是说有这个一个database_A
use [master]
select * from sys.master_files
where database_id = DB_ID ('database_A');
GO
use [database_A]
select * from sys.database_files;
GO
然后返回的结果中log file的名字不同
是这样吗?
dbcc checkdb返回什么错误
你试过哪种方法去shrink logfile
dbcc shrinkfile (file_id)
or
dbcc shrinkfile (file_name)
提问的时候尽量把问题说清楚,全面一些
否则别人没法回答你的问题 |
B*********L 发帖数: 700 | 3 谢谢,就是您说的这种情况.
我run"dbcc checkdb" 没有错误
dbcc shrinkfile (file_id)works (问题解决了一半,谢谢!)
dbcc shrinkfile (name from sys.master_files) works
dbcc shrinkfile (name from sys.database_files) doesn't work
我用maintenance plans的wizard,生成了一个plan,去check database integrity.
结果Job fail: Alter failed for Server 'xxxx'. |
s**********o 发帖数: 14359 | 4 把DATABASE放到SIMPLE MODE看看
【在 B*********L 的大作中提到】 : 谢谢,就是您说的这种情况. : 我run"dbcc checkdb" 没有错误 : dbcc shrinkfile (file_id)works (问题解决了一半,谢谢!) : dbcc shrinkfile (name from sys.master_files) works : dbcc shrinkfile (name from sys.database_files) doesn't work : 我用maintenance plans的wizard,生成了一个plan,去check database integrity. : 结果Job fail: Alter failed for Server 'xxxx'.
|
B*********L 发帖数: 700 | 5 可以了,是个苯办法:
先full backup,然后restore, sys.master_file被的file_name改对了. |
c*****d 发帖数: 6045 | 6 用dbcc shrinkfile (file_id)解决了问题是意料之中的
因为其实数据库内部存的是ID和指针
文件从一个位置挪到另外的位置,只不过是指针变了,数据库内部还是同样的ID
我感觉你两次的描述可能有一个写反了
物理存在的文件名是哪一个?
name from sys.master_files or sys.database_files
ssms里面看到的名字是name from sys.database_files ?
那你用dbcc shrinkfile(physical_file_name)是failed,对吗? |
B*********L 发帖数: 700 | 7 可以了,是个苯办法:
先full backup,然后restore, sys.master_file被的file_name改对了. |
c*****d 发帖数: 6045 | 8 这个是最可靠的方法
【在 B*********L 的大作中提到】 : 可以了,是个苯办法: : 先full backup,然后restore, sys.master_file被的file_name改对了.
|
B*********L 发帖数: 700 | 9 我感觉你两次的描述可能有一个写反了
物理存在的文件名是哪一个?
name from sys.master_files or sys.database_files
physical_name = database_A_log
name from sys.master_files = database_X_log
name from sys.database_files = database_A_log
ssms里面看到的名字是name from sys.database_files ?
database_A_log
那你用dbcc shrinkfile(physical_file_name)是failed,对吗?
dbcc shrinkfile('database_X_log') works
dbcc shrinkfile('database_A_log') 这个failed
Could not locate file 'database_A_log' for database 'database_A' in sys.
database_files. The file either does not exist, or was dropped.
补充,这个server刚刚作了升级2008=>2014. shrink log 本来是work的,升级以后开始
不work了.
我本来就是按照ssms里面看到的名字,写的shrink log的job. |