Практическая задача- взвести флаги на репликацию

добавлено: 01 сен 15
понравилось:0
просмотров: 834
комментов: 0

теги:

Автор: Дмитрий Горчилин

Прошло некоторое время, по ряду причин не связан какими-либо обязательствами. Решил выложить некоторые старые скрипты-примочки. Мелочь вроде, но иногда именно они приносят огромную пользу. Скрипты имеют важную особенность- написаны в виде учебных, избегал псевдонимов для лучшего понимания, некоторые из этих вещей делались в формате наглядного пособия. Кроме того, гуру SQL заметят некоторые моменты в плане стиля. Я это тоже вижу, себе я пишу иначе :) В принципе, любая серьезная работа подразумевает подготовку многих скриптов, не было большой работы в которой не пришлось бы придумывать что-то новое. Творческое это дело :)

/* Запусти меня в базе RSSD, и я расскажу какие таблицы ходят с конкретного сервера */
select 'DATABASE '+dsname+'.'+dbname+' tabename:'+phys_tablename
from rs_objects,rs_databases where rs_databases.dbid=rs_objects.dbid
and (phys_tablename not like 'rs_%%')
and dsname='ИмяСервера'
/*and dbname in('если надо- название базы')*/
group by dsname,dbname,phys_tablename
order by dsname,dbname,phys_tablename

/* Запусти меня в любой базе, и я сформирую скрипт, чтобы снести флаги на репликацию в этой базе */

select
'sp_setreptable '+name+' ,false'+char(13)+char(10)+'go'
from sysobjects where type='u'
order by name

/* Запусти меня в базе RSSD, и я сформирую скрипт, чтобы взвести флаги на репликацию для конкретного сервера */

select 'use '+dbname+char(10)+'go'+char(10)+'sp_setreptable '+phys_tablename+',true'+char(10)+'go'
from rs_objects,rs_databases where rs_databases.dbid=rs_objects.dbid
and (phys_tablename not like 'rs_%%') and dsname='ИмяСервера' /*!!!!!!!!!!!!!!!!*/

/* Запусти меня в базе RSSD, и я сформирую скрипт, чтобы взвести флаги на репликацию для конкретного сервера */
-- с группировкой и указанием имени сервера на котором полученный скрипт нужно запустить

select 'use '+dbname+' /* Run Me on: '+dsname+' */'+char(10)+'go'+char(10)+'sp_setreptable '+phys_tablename+',true'+char(10)+'go'
from rs_objects,rs_databases where rs_databases.dbid=rs_objects.dbid
and (phys_tablename not like 'rs_%%') and
--!!!
dsname='ИмяСервера' /*!!!!!!!!!!!!!!!!*/
--!!!
group by
'use '+dbname+' /* Run Me on: '+dsname+' */'+char(10)+'go'+char(10)+'sp_setreptable '+phys_tablename+',true'+char(10)+'go'


/* Запусти меня в базе RSSD, и я сформирую скрипт, чтобы взвести флаги на репликацию вообще для всех серверов */
-- с группировкой и указанием имени сервера на котором полученный скрипт нужно запустить

select 'use '+dbname+' /* Run Me on: '+dsname+' */'+char(10)+'go'+char(10)+'sp_setreptable '+phys_tablename+',true'+char(10)+'go'
from rs_objects,rs_databases where rs_databases.dbid=rs_objects.dbid
and (phys_tablename not like 'rs_%%') --and
--!!!
--dsname='ИмяСервера' /*!!!!!!!!!!!!!!!!*/
--!!!
group by
'use '+dbname+' /* Run Me on: '+dsname+' */'+char(10)+'go'+char(10)+'sp_setreptable '+phys_tablename+',true'+char(10)+'go'
order by dsname,dbname

/* Скрипт имени Горчилина */
--Dmitry Gorchilin scripts for Sybase Replication Server

Комментарии




Необходимо войти на сайт, чтобы оставлять комментарии