Canlıdan Teste, Testten Canlıya  Veri Aktarımı


Implemetasyon veya re-implemantasyon süreçlerinde yeni veritabanları oluşturmak ve test, qa ortamları yaratmak istenebilir. Bu durumlarda veri aktarımı yapılabilir.


1- Database'i Restore Edin.
Use Master;

ALTER DATABASE veritabanının_adı SET SINGLE_USER WITH ROLLBACK IMMEDIATE;

RESTORE DATABASE veritabanı_adı
FROM DISK = 'Dizin(Örneğin C):\veritabanı-adı'
WITH REPLACE, MOVE 'veritabanı_adı_Data' TO 'Dizin (Örneğin E\Folder):\test_veritabanına_verecilecek_ad.mdf', 
MOVE 'veritabanı_adı_Log' TO 'Dizin (Örneğin E\Folder):\test_veritabanına_verecilecek_ad.ldf'

ALTER DATABASE veritabanının-adı SET MULTI_USER

2- Şemalar Oluşturun
CREATE SCHEMA test-veritabanı-adı; (Grup-Holding Şeması)
CREATE SCHEMA test-veritabanı-adı_1; (Şirket Şeması)
CREATE SCHEMA test-veritabanı-adı_2020_1; (1. Şirketin Mali Yıl Şeması)
CREATE SCHEMA test-veritabanı-adı_product; (Ürün Şeması)

Şirket ve dönem sayısı kadar dönem ve şirket şemaları create edilebilir.

3- Kullanıcılar oluşturun. (Kullanıcı sistemde varsa tekrar oluşturmaya gerek yoktur)
CREATE LOGIN test-veritabanı-adı WITH PASSWORD = 'pasword' (Şifreyi kompleks vermeniz tavsiye edilir)

4-Test Kullanıcıları Test Şemaları İçin Yetkilendirin.
Örnek; CREATE USER [test-veritabanı-adı_product] FOR LOGIN [test-veritabanı-adı_product] WITH DEFAULT_SCHEMA=[test-veritabanı-adı_product
ALTER ROLE [db_owner(veya belirlediğiniz rolü oluşturun)] ADD MEMBER [test-veritabanı-adı_product

5- Her Bir Şema İçin Aşağıdaki Kod Çalıştırın.
Bu Kod Bir SQL Listesi Oluşturur.  Oluşturulan bu liste kopyalanıp yeni bir ekrana yapıştırılarak çalıştırılır.

SELECT 'ALTER SCHEMA test-veritabanı-adı TRANSFER [' + SysSchemas.Name + '].[' + DbObjects.Name + '];'
FROM sys.Objects DbObjects
INNER JOIN sys.Schemas SysSchemas ON DbObjects.schema_id = SysSchemas.schema_id
WHERE SysSchemas.Name = 'test-veritabanı-adı'
AND (DbObjects.Type IN ('U', 'P', 'V','FN','TF'))

6-Dönem ve şirket viewlerini tekrar çalıştırın.


Geri Bildirim

Bu içeriği faydalı buldunuz mu?