Sayfalar

SQL SERVER etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
SQL SERVER etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

6 Kasım 2020 Cuma

How to move SQL Server database files (LDF and MDF) to another location (path)

DatabaseName: CND    (example)

NewPathNameData: C:\DATA1\

NewPathNameLog: C:\LOG\


checking to Database PathLocation:

SELECT name, physical_name AS CurrentLocation, state_desc

FROM sys.master_files

WHERE database_id = DB_ID(N'CND');

 

use master

go

ALTER DATABASE CND

    MODIFY FILE ( NAME = CND,   

                  FILENAME = 'C:\DATA1\CND.mdf');  

GO

 

ALTER DATABASE CND

    MODIFY FILE ( NAME = CND_log,   

                  FILENAME = 'C:\LOG\CND_Log.ldf');  

GO


 

ALTER DATABASE CND SET OFFLINE;  

GO


move data (*.mdf and *.ldf ) to new location (as phisical) "like copy and past to new location etc."


ALTER DATABASE CND SET ONLINE;  

GO


checking to New Database PathLocation: 

SELECT name, physical_name AS NewLocation, state_desc AS OnlineStatus

FROM sys.master_files  

WHERE database_id = DB_ID(N'CND')  

GO

14 Şubat 2019 Perşembe

AlwaysOndan çıkarılmış database'i second (ikinci) note da AlwayOn'a alma

Merhabalar,

Eğer Database'iniz daha önceden ikinci yada diğer notlarda ise çıkartmışsanız yada bir şekilde AlwaysOn listenerdan cıkarmışsanız. Aşağıdaki adımlarla ve benim gibi görsel değilde komutlarla çalışmaya alışmışsanız hızlı bir şekilde alwayson'a alabilirsiniz..


1Adım:
A) eğer Dblerinizin sürekli full ve log backupları alınıyorsa aşağıdaki komutla backuplarınız alındığı pathleri çıkarın..

SELECT          physical_device_name,
                backup_start_date,
                backup_finish_date,
                backup_size/1024.0 AS BackupSizeKB
FROM msdb.dbo.backupset b
JOIN msdb.dbo.backupmediafamily m ON b.media_set_id = m.media_set_id
WHERE database_name = 'DATABASE_NAME'
ORDER BY backup_finish_date DESC
 
 Çıkan sonuc ".bak" ile biten dosya pathlerinden itibaren full backuptan sıra ile yukarıya restore edilecek(şuanki zamana kadar alınan backupları).
  
B)Eğer hazırda backupınız yoksa bu komutlarla full ve log backuplar alınır..(ilk note da çalıştırılacak.)
BACKUP DATABASE DATABASE_NAME 
   FROM DISK = '\\10.10.10.12\backupfile\DATABASE_NAME.bak'
WITH COPY_ONLY;
GO

BACKUP LOG DATABASE_NAME 
   FROM DISK = '\\10.10.10.12\backupfile\DATABASE_NAME.trn'
WITH COPY_ONLY;
GO

2Adım: ikinci notda çalıştırılacak restore işlemleri(elimizde backuplar var şimdi eşitlemeye geldi)
RESTORE DATABASE DATABASE_NAME 
   FROM DISK = '\\10.10.10.12\backupfile\DATABASE_NAME.bak' 
  WITH NORECOVERY, REPLACE, 
   MOVE 'vdk' TO 'W:\DATA\DATABASE_NAME.mdf',
   MOVE 'vdk_log' TO 'X:\LOG\DATABASE_NAME_log.ldf';
GO

RESTORE LOG DATABASE_NAME 
   FROM DISK = '\\10.10.10.12\backupfile\DATABASE_NAME4.trn' WITH NORECOVERY;
GO
   
RESTORE LOG DATABASE_NAME 
   FROM DISK = '\\10.10.10.12\backupfile\DATABASE_NAME3.trn' WITH NORECOVERY;
GO
RESTORE LOG DATABASE_NAME 
   FROM DISK = '\\10.10.10.12\backupfile\DATABASE_NAME2.trn' WITH NORECOVERY;
GO
RESTORE LOG DATABASE_NAME 
   FROM DISK = '\\10.10.10.12\backupfile\DATABASE_NAME1.trn' WITH NORECOVERY;
GO


3ADIM:Eşitleme tamamlandı şimdi sıra lsn'eri eşitlemek kaldı..
--->>eğer daha önce hiç gruba alınmadısya alttaki komuıtla gruba alabilirsin.
  ALTER AVAILABILITY GROUP [AO_GROUPNAME] ADD DATABASE [DATABASE_NAME]
go

--gruba alınmışsa zaten aşagıdaki komutla eşitlemeyi başlatabilir ve AlwaysOna alabilirsin.
ALTER DATABASE [vdk] SET HADR AVAILABILITY GROUP = AO_GROUPNAME;
go
 
4.ADIM:Eğer backupı alınmış db içeriğine bakmak istersen  aşağıdaki komutla detaylarını listeleyebilirsin.
RESTORE FILELISTONLY FROM DISK = '\\10.10.10.12\backupfile\DATABASE_NAME1.bak'


MSSQL,SQL,SQL SERVER, SQL BACKUP, ALWAYSON