Roman Krasavtsev

четверг, 24 мая 2012 г.

Sybase


--------------------Смотрим список файлов в дампе---------------------------------
---Высчитываем размер базы  размер страницы * кол-во страниц----------------------

use master
go
load database toyota from 'd:\dump\report72.bak'
with headeronly
go

----------------------Инициализируем девайс для даты базы------------------------
DISK INIT
    NAME='report72_pr_data',
    PHYSNAME='D:\data\sybase\report72_pr_data.dat',
    SIZE='11700M',
    VSTART=0,
    CNTRLTYPE=0,
    DSYNC=TRUE
go
-----------------------Инициализируем девай для логов базы--------------------------
DISK INIT
    NAME='report72_pr_log',
    PHYSNAME='D:\data\sybase\report72_pr_log.dat',
    SIZE='3300M',
    VSTART=0,
    CNTRLTYPE=0,
    DSYNC=TRUE
go
---------------------- Дропаем девайс, если нужно-----------------------
USE master
go
EXEC sp_dropdevice 'report72_data'
go

-------------------------Создаем пустую базу на созданных девайсах-----------------------
USE master
go
CREATE DATABASE report72_pr
    ON report72_pr_data=11700        --'AAAA_data' - имя девайса и размер
    LOG ON report72_pr_log=3300      --'AAAA_log' - девайс, на котором будет располагаться файл данных и размер
go                                   --если дату и логи восст. на один девайс нужен параметр with override
USE report72_pr
go
EXEC sp_changedbowner 'sa'
go

-----------------------Восстанавливаем дамп на созданную базу---------------------------------
load database report72_pr from 'd:\dump\report72.bak'
 go
online database report72_pr
go
--------------------------------

use master
go
sp_addlogin 'user', '123456'
go

use report72_pr
go
sp_dropalias user
go

use report72_pr
go
sp_addalias user_dbo, dbo
go
sp_adduser 'user', 'user'
go

USE master
go
CREATE DATABASE report72_pr
    ON report72_data=11700        --'AAAA_data' - имя девайса и размер
    LOG ON report72_data=3300 with override   --'AAAA_log' - девайс, на котором будет располагаться файл данных и размер
go

use master
go
DROP database report72
go

select @@version


#Cross_dump_unix


--DATABASE_NAME заменить на имя бд

use master
go

select getdate()
go

exec sp_dboption DATABASE_NAME ,'single user', true    
go

use DATABASE_NAME  
go
checkpoint
go

exec sp_flushstats
go

checkpoint
go

waitfor delay '00:03:00' --'HH:MM:SS'
go

use master
go
dump database DATABASE_NAME to 'compress::5::c:\dump\DATABASE_NAME_1.dmp'
                stripe on 'compress::5::c:\dump\DATABASE_NAME_2.dmp'
            stripe on 'compress::5::c:\dump\DATABASE_NAME_3.dmp'
            stripe on 'compress::5::c:\dump\DATABASE_NAME_4.dmp'
            stripe on 'compress::5::c:\dump\DATABASE_NAME_5.dmp'
go

exec sp_dboption DATABASE_NAME ,'single user', false      
go

use DATABASE_NAME
go
checkpoint
go

#Девайсы

-- Перед созданием новой БД, необходимо создать девайсы,
-- на которых она будет располагаться
-- вместо АААА указать имя базы.

USE master
go
DISK INIT
    NAME='AAAA_data',
    PHYSNAME='c:\sybase\data\AAAA_data',    -- указать путь, где будет создан файл
    SIZE='100M',        -- указать необходимый размер файла данных в Мб
    VSTART=0,
    CNTRLTYPE=0
go
EXEC sp_diskdefault 'AAAA_data',defaultoff
go
IF EXISTS (SELECT * FROM master.dbo.sysdevices WHERE name='icb61_data')
    PRINT '<<< CREATED DATABASE DEVICE AAAA_data >>>'
ELSE
    PRINT '<<< FAILED CREATING DATABASE DEVICE AAAA_data >>>'
go


USE master
go
DISK INIT
    NAME='AAAA_log',
    PHYSNAME='c:\sybase\data\AAAA_log',     -- указать путь, где будет создан файл
    SIZE='100M',        -- указать необходимый размер файла лога в Мб
    VSTART=0,
    CNTRLTYPE=0
go
EXEC sp_diskdefault 'AAAA_log',defaultoff
go
IF EXISTS (SELECT * FROM master.dbo.sysdevices WHERE name='AAAA_log')
    PRINT '<<< CREATED DATABASE DEVICE AAAA_log >>>'
ELSE
    PRINT '<<< FAILED CREATING DATABASE DEVICE AAAA_log >>>'
go


#База разворачивается на предварительно созданных девайсах

USE master
go
CREATE DATABASE aaaa
    ON AAAA_data=100        --'AAAA_data' - имя девайса и размер
    LOG ON icb61_log=100    --'AAAA_log' - девайс, на котором будет располагаться файл данных и размер
go
USE aaaa
go
EXEC sp_changedbowner 'sa'
go
IF DB_ID('aaaa') IS NOT NULL
    PRINT '<<< CREATED DATABASE aaaa >>>'
ELSE
    PRINT '<<< FAILED CREATING DATABASE aaaa >>>'
go



Комментариев нет:

Отправить комментарий