I have an .mdf file from distribution database which is growing. I know the advantages and disadvantages of shrinking database/files. Is it okay to shrink the .mdf file to some a smaller size. Is there any data loss during this time and does this affect the replication.?
-
1There would not be any data loss.– ShankyJun 12, 2019 at 13:37
-
@Shanky : This is the distribution database i am talking about and does this affect transactional replication i have in place?– user9516827Jun 12, 2019 at 13:44
-
1Shrinking may slow things but would not cause any loss. Do it when load is relatively very less– ShankyJun 12, 2019 at 13:45
2 Answers
You need to check WHY the distribution database is growing rather than trying to shrink. If there is no available free space inside the file then you will not be able to shrink it anyway.
Check for the retention period and any other reasons why the distibution database would be growing e.g. Replication is erroring out.Below blog would give some areas you can look into :
Answering your question exactly : Yes you can shrink the file ,given it has free space available.
-
I have error in replication monitor in one of publisher/subscriber.The issue is on Distributor to subscriber.So i am trying to figure it out.Meanwhile can i turn off the Distribution agent so that the MSRepl_Commands don't get filled.? Jun 12, 2019 at 14:12
-
1If you Stop Distribution agent, the log reader agent will still keep pushing data to for Distribution. You should stop the replication all together and check out for the actual issue. Once found,fix and re-enable. Jun 12, 2019 at 14:49
-
I understand what you are saying.I checked and MSRepl_Commands have 422 millions records.If i run the
sp EXEC dbo.sp_MSdistribution_cleanup @min_distretention = x, @max_distretention = y
and if it removes the commands from the MsRepl_Commands table,then i would loose the changes that needs to be applied to subsciber since i have error in replication.Am i right? Jun 12, 2019 at 14:56 -
1sp_MSdistribution_cleanup is more of a retention thing. So it deletes things which have been replicated (distributed) to subscriber. Jun 12, 2019 at 15:14
-
One final question: If i disable the replication and enable it after a day ,do i loose all those transactions in between.? Jun 12, 2019 at 15:18
It is ok to shink the datafile, there WON'T be any data loss.
The "issues" when shrinking could be performance, during the rellocation of data pages. Also if you know that your DF will grow again to the same size, shrink is not recommended. If it was because a one time only operation, or other stuff where the DF won't grow at the same big size again, it is ok to perform your shrink operation.