added Delphix scripts
This commit is contained in:
133
DELPHIX - create target db.sql
Normal file
133
DELPHIX - create target db.sql
Normal file
@@ -0,0 +1,133 @@
|
|||||||
|
/*
|
||||||
|
Server: samnb705db01.amavita.ch
|
||||||
|
Format: GCM
|
||||||
|
Business: TPPHAR
|
||||||
|
type: VALI
|
||||||
|
Version: 24.1.21007.00072
|
||||||
|
|
||||||
|
08.04.2024, TSC
|
||||||
|
*/
|
||||||
|
USE master
|
||||||
|
|
||||||
|
SET XACT_ABORT ON;
|
||||||
|
SET NOCOUNT ON;
|
||||||
|
|
||||||
|
DECLARE @dbName NVARCHAR(255);
|
||||||
|
DECLARE @query_bkp NVARCHAR(MAX)='';
|
||||||
|
DECLARE @query_rest NVARCHAR(MAX)='';
|
||||||
|
DECLARE @query_perms NVARCHAR(MAX)='';
|
||||||
|
DECLARE @dump NVARCHAR(255);
|
||||||
|
DECLARE @users TABLE (login VARCHAR(255) NOT NULL,
|
||||||
|
name VARCHAR(255) NOT NULL);
|
||||||
|
INSERT INTO @users ([login],
|
||||||
|
[name])
|
||||||
|
VALUES
|
||||||
|
('svc-delphix-masking','sql login'),
|
||||||
|
('CENTRALINFRA\ua253440', 'Oliver'),
|
||||||
|
('CENTRALINFRA\ua253450', 'Franck'),
|
||||||
|
('CENTRALINFRA\ua210510', 'Wyn');
|
||||||
|
|
||||||
|
DECLARE @tplRight NVARCHAR(MAX) = N'
|
||||||
|
USE @dbName@_delphix
|
||||||
|
BEGIN TRY
|
||||||
|
CREATE USER [@login@] FOR LOGIN [@login@];
|
||||||
|
ALTER ROLE [db_owner] ADD MEMBER [@login@]
|
||||||
|
END TRY
|
||||||
|
BEGIN CATCH
|
||||||
|
ALTER ROLE [db_owner] ADD MEMBER [@login@]
|
||||||
|
END CATCH
|
||||||
|
';
|
||||||
|
|
||||||
|
DECLARE csrDb CURSOR FAST_FORWARD READ_ONLY FOR
|
||||||
|
SELECT [d].[name]
|
||||||
|
FROM sys.databases d
|
||||||
|
WHERE LOWER([d].[name]) IN ( 'arizona', 'arizonarep', 'hcitools', 'arizonacust', 'activepos_read', 'activepos_write' );
|
||||||
|
|
||||||
|
OPEN csrDb;
|
||||||
|
|
||||||
|
FETCH NEXT FROM csrDb
|
||||||
|
INTO @dbName;
|
||||||
|
|
||||||
|
WHILE @@FETCH_STATUS = 0
|
||||||
|
BEGIN
|
||||||
|
SET @dump = @dbName+'_dump';
|
||||||
|
IF NOT EXISTS (
|
||||||
|
SELECT 1
|
||||||
|
FROM sys.[backup_devices]
|
||||||
|
WHERE name = @dump
|
||||||
|
)
|
||||||
|
BEGIN
|
||||||
|
RAISERROR ('No dump device named %s exists', 16, 1, @dump);
|
||||||
|
END
|
||||||
|
ELSE
|
||||||
|
BEGIN
|
||||||
|
SET @query_bkp = @query_bkp + REPLACE(REPLACE('
|
||||||
|
BACKUP DATABASE [@dbname@] TO [@dump@] WITH COPY_ONLY, NOFORMAT, NOINIT, NAME = N''@dbname@-Full Database Backup'', SKIP, NOREWIND, NOUNLOAD, STATS = 10;
|
||||||
|
'
|
||||||
|
,'@dbname@'
|
||||||
|
,@dbName)
|
||||||
|
|
||||||
|
,'@dump@'
|
||||||
|
,@dump
|
||||||
|
);
|
||||||
|
|
||||||
|
DECLARE @file_row VARCHAR(255);
|
||||||
|
DECLARE @file_log VARCHAR(255);
|
||||||
|
|
||||||
|
SELECT @file_row = name
|
||||||
|
FROM sys.master_files F
|
||||||
|
WHERE DB_NAME([F].[database_id]) = @dbName
|
||||||
|
AND type_desc = 'ROWS'
|
||||||
|
|
||||||
|
SELECT @file_log = name
|
||||||
|
FROM sys.master_files F
|
||||||
|
WHERE DB_NAME([F].[database_id]) = @dbName
|
||||||
|
AND type_desc = 'LOG'
|
||||||
|
|
||||||
|
SET @query_rest = @query_rest +REPLACE(REPLACE(REPLACE(REPLACE('
|
||||||
|
RESTORE DATABASE [@dbname@_delphix] FROM [@dump@] WITH FILE = 1, REPLACE, MOVE N''@file_row@'' TO N''F:\SQLDataBase\@dbname@_delphix.mdf'', MOVE N''@file_Log@'' TO N''G:\SQLDataBase\@dbname@_delphix_1.ldf'', NOUNLOAD, STATS = 5;
|
||||||
|
'
|
||||||
|
,'@dbname@'
|
||||||
|
,@dbName)
|
||||||
|
|
||||||
|
,'@dump@'
|
||||||
|
,@dump)
|
||||||
|
|
||||||
|
,'@file_Log@'
|
||||||
|
,@file_log)
|
||||||
|
|
||||||
|
,'@file_row@'
|
||||||
|
,@file_row
|
||||||
|
);
|
||||||
|
|
||||||
|
--permissions
|
||||||
|
SELECT @query_perms = @query_perms + REPLACE(REPLACE(
|
||||||
|
@tplRight
|
||||||
|
,'@dbName@'
|
||||||
|
,@dbName
|
||||||
|
)
|
||||||
|
,'@login@'
|
||||||
|
,u.[login]
|
||||||
|
)
|
||||||
|
FROM @users u
|
||||||
|
|
||||||
|
FETCH NEXT FROM csrDb
|
||||||
|
INTO @dbName;
|
||||||
|
END
|
||||||
|
END
|
||||||
|
|
||||||
|
CLOSE csrDb;
|
||||||
|
DEALLOCATE csrDb;
|
||||||
|
|
||||||
|
|
||||||
|
--PRINT @query_bkp;
|
||||||
|
--PRINT '--------------------------------'
|
||||||
|
--PRINT @query_rest
|
||||||
|
--PRINT '--------------------------------'
|
||||||
|
--PRINT @query_perms
|
||||||
|
|
||||||
|
EXEC(@query_bkp)
|
||||||
|
EXEC(@query_rest)
|
||||||
|
EXEC(@query_perms)
|
||||||
|
|
||||||
|
|
||||||
@@ -51,7 +51,8 @@ DECLARE @users TABLE (login VARCHAR(255) NOT NULL,
|
|||||||
INSERT INTO @users ([login],
|
INSERT INTO @users ([login],
|
||||||
[name])
|
[name])
|
||||||
VALUES ('CENTRALINFRA\ua253440', 'Oliver'),
|
VALUES ('CENTRALINFRA\ua253440', 'Oliver'),
|
||||||
('CENTRALINFRA\ua253450', 'Franck');
|
('CENTRALINFRA\ua253450', 'Franck'),
|
||||||
|
('CENTRALINFRA\ua210510', 'Wyn');
|
||||||
|
|
||||||
--#region create logins
|
--#region create logins
|
||||||
SELECT @q = @q + REPLACE(@tplLogin, '@login@', [u].[login])
|
SELECT @q = @q + REPLACE(@tplLogin, '@login@', [u].[login])
|
||||||
|
|||||||
Reference in New Issue
Block a user