Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 MSSQL 2005 Express: "Нормальная" база данных или приаттаченный файл?  [new]
iConst
Member

Откуда:
Сообщений: 2066
Привет всем.
Сразу извиняюсь за вопрос - с SQL очень мало знаком.

В ASP.NET проектах по умолчанию база данных создается аттач-файлом.

Какая принципиальная разница (плюсы/минусы) между созданием БД в контексте сервера (например, с помощью SQL Studio) и использовании аттач-файла?

Спасибо.
Перевернув мир - оглянись, может перевернулся ты сам?!
4 ноя 09, 20:58    [7882513]     Ответить | Цитировать Сообщить модератору
 Re: MSSQL 2005 Express: "Нормальная" база данных или приаттаченный файл?  [new]
tpg
Member

Откуда: Novosibirsk
Сообщений: 23902
В приаттаченой базе могут быть уже созданы объекты и иметься данные, во вновь создаваемой - нет ни объектов, ни данных.
Какие ж тут плюсы-минусы?..

Сообщение было отредактировано: 5 ноя 09, 06:25
5 ноя 09, 06:25    [7883407]     Ответить | Цитировать Сообщить модератору
 Re: MSSQL 2005 Express: "Нормальная" база данных или приаттаченный файл?  [new]
iConst
Member

Откуда:
Сообщений: 2066
Я не про это.
Как я понимаю: приаттаченная БД аттачится-детачится автоматически, в отличие от "постоянной".
Мне нужно бэкапить всё АСПНет приложение - в него постоянно вносятся изменения (релизы).
Бэкап осуществляется копированием со сжатием содержимого всего корневого каталога приложения. Я могу сделать это шедулером, но проблема в том, что если в момент бэкапа база была задействована, то сама база не копируется (оно и понятно).
В то же время в контексте SQL сервера такой базы нет.
Вот как решить проблему?
Перевернув мир - оглянись, может перевернулся ты сам?!
5 ноя 09, 10:28    [7883951]     Ответить | Цитировать Сообщить модератору
 Re: MSSQL 2005 Express: "Нормальная" база данных или приаттаченный файл?  [new]
Glory
Member

Откуда:
Сообщений: 104760
iConst

В ASP.NET проектах по умолчанию база данных создается аттач-файлом.

Вы про строку соединия с параметром Attached или про серверную процедуру sp_attach_db ?
5 ноя 09, 10:30    [7883962]     Ответить | Цитировать Сообщить модератору
 Re: MSSQL 2005 Express: "Нормальная" база данных или приаттаченный файл?  [new]
iConst
Member

Откуда:
Сообщений: 2066
Поясню (к посту выше):
Файл базы данных лежит в подкаталоге App_Data (стандарное размещение) относительно корня.
Нужно бэкапить базу - проблема описана выше.
Почему я задал превоначально вопрос про плюсы-минусы: может лучше отказаться от аттач-файла и заменить на "постоянную" базу данных? В чем различие двух вариантов?
Перевернув мир - оглянись, может перевернулся ты сам?!
5 ноя 09, 10:35    [7883997]     Ответить | Цитировать Сообщить модератору
 Re: MSSQL 2005 Express: "Нормальная" база данных или приаттаченный файл?  [new]
iConst
Member

Откуда:
Сообщений: 2066
Glory,
Про строку. Про процедуру я ничего не знаю. Вероятно процедура вызывается автоматически .Net провайдерами (если вообще вызывается).
5 ноя 09, 10:38    [7884026]     Ответить | Цитировать Сообщить модератору
 Re: MSSQL 2005 Express: "Нормальная" база данных или приаттаченный файл?  [new]
Glory
Member

Откуда:
Сообщений: 104760
iConst
Glory,
Про строку. Про процедуру я ничего не знаю. Вероятно процедура вызывается автоматически .Net провайдерами (если вообще вызывается).

база, которая "присоединяется" к серверу клиентским приложением через параметер в строке коннекта, доступна только этому коннекту и не видна другим пользователям. Посколько база эта не регистрируется в системеных таблицах. В остальном же она является совершенно нормальной базой.
Удобство такого способа должны между собой определить пользователь и админ. Потому что такая база совершенно точно выпадает из регламентных работ. Ибо ее просто нет в списке баз.
5 ноя 09, 10:44    [7884069]     Ответить | Цитировать Сообщить модератору
 Re: MSSQL 2005 Express: "Нормальная" база данных или приаттаченный файл?  [new]
Интересуюсь
Guest
Glory,

А вплане обработки данных в БД, это будет равнозначно по быстродействию?
5 ноя 09, 10:46    [7884089]     Ответить | Цитировать Сообщить модератору
 Re: MSSQL 2005 Express: "Нормальная" база данных или приаттаченный файл?  [new]
слоненок
Member

Откуда:
Сообщений: 479
Glory, видимо ТС имеет ввиду т.н. пользовательские экземпляры (User Instances) в Express Edition версии.
5 ноя 09, 10:49    [7884114]     Ответить | Цитировать Сообщить модератору
 Re: MSSQL 2005 Express: "Нормальная" база данных или приаттаченный файл?  [new]
iConst
Member

Откуда:
Сообщений: 2066
Glory
база, которая "присоединяется" к серверу клиентским приложением через параметер в строке коннекта, доступна только этому коннекту и не видна другим пользователям. Посколько база эта не регистрируется в системеных таблицах. В остальном же она является совершенно нормальной базой.
Удобство такого способа должны между собой определить пользователь и админ. Потому что такая база совершенно точно выпадает из регламентных работ. Ибо ее просто нет в списке баз.

Да, это я понимаю, и потому задаю вопрос - как правильно бэкапить аттач-файл БД? Если сайт используется достаточно активно, то детач может произойти не скоро. Не останавливать же приложение для этого!
5 ноя 09, 10:49    [7884115]     Ответить | Цитировать Сообщить модератору
 Re: MSSQL 2005 Express: "Нормальная" база данных или приаттаченный файл?  [new]
Glory
Member

Откуда:
Сообщений: 104760
iConst

Да, это я понимаю, и потому задаю вопрос - как правильно бэкапить аттач-файл БД? Если сайт используется достаточно активно, то детач может произойти не скоро. Не останавливать же приложение для этого!

Что в вашем понимании "правильно"? Раз базы нет в списке баз сервера, то бэкапить вы ее можете как угодно. Ручным копирование, командой copy, утилитой ntbackup, любой другой утилитой, ...
5 ноя 09, 10:51    [7884135]     Ответить | Цитировать Сообщить модератору
 Re: MSSQL 2005 Express: "Нормальная" база данных или приаттаченный файл?  [new]
iConst
Member

Откуда:
Сообщений: 2066
Glory,
Так к приаттаченному файлу БД доступа нет. Даже для чтения. Файл заблокирован.
5 ноя 09, 10:54    [7884151]     Ответить | Цитировать Сообщить модератору
 Re: MSSQL 2005 Express: "Нормальная" база данных или приаттаченный файл?  [new]
Glory
Member

Откуда:
Сообщений: 104760
iConst
Glory,
Так к приаттаченному файлу БД доступа нет. Даже для чтения. Файл заблокирован.

А ваше приложение работает 24х7 что ли ?
5 ноя 09, 10:55    [7884166]     Ответить | Цитировать Сообщить модератору
 Re: MSSQL 2005 Express: "Нормальная" база данных или приаттаченный файл?  [new]
iConst
Member

Откуда:
Сообщений: 2066
Glory
А ваше приложение работает 24х7 что ли ?

Немного по-другому: 365(6)х24 :).
5 ноя 09, 10:57    [7884188]     Ответить | Цитировать Сообщить модератору
 Re: MSSQL 2005 Express: "Нормальная" база данных или приаттаченный файл?  [new]
слоненок
Member

Откуда:
Сообщений: 479
iConst, как я понимаю, вам проще использовать "обычное подключение" к БД.
5 ноя 09, 10:58    [7884191]     Ответить | Цитировать Сообщить модератору
 Re: MSSQL 2005 Express: "Нормальная" база данных или приаттаченный файл?  [new]
Glory
Member

Откуда:
Сообщений: 104760
iConst
Glory
А ваше приложение работает 24х7 что ли ?

Немного по-другому: 365(6)х24 :).

Ну тогда вот и решайте, когда вы своими силами организуете для этой базы регламентные работы.
Хотите приложение останавливайте, хотите внедряйте в приложение соответствующий функционал
5 ноя 09, 10:59    [7884201]     Ответить | Цитировать Сообщить модератору
 Re: MSSQL 2005 Express: "Нормальная" база данных или приаттаченный файл?  [new]
iConst
Member

Откуда:
Сообщений: 2066
слоненок
iConst, как я понимаю, вам проще использовать "обычное подключение" к БД.

В АСП.Нет приложениях какой вариант используется чаще?
Но похоже, придется перевести БД в "постоянный" режим.
Чем различаются экземпляр по умолчанию и пользовательский?


Просьба ко всем: поделитесь ссылкой на ресурс примера скриптов (или еще как) бэкапа SQL2005 Express.
5 ноя 09, 11:06    [7884246]     Ответить | Цитировать Сообщить модератору
 Re: MSSQL 2005 Express: "Нормальная" база данных или приаттаченный файл?  [new]
Glory
Member

Откуда:
Сообщений: 104760
iConst



Просьба ко всем: поделитесь ссылкой на ресурс примера скриптов (или еще как) бэкапа SQL2005 Express.

Не поверите, но во всех редакциях SQL бэкап осуществляется документированной командй BACKUP
5 ноя 09, 11:10    [7884271]     Ответить | Цитировать Сообщить модератору
 Re: MSSQL 2005 Express: "Нормальная" база данных или приаттаченный файл?  [new]
iConst
Member

Откуда:
Сообщений: 2066
Glory
Ну тогда вот и решайте, когда вы своими силами организуете для этой базы регламентные работы.
Хотите приложение останавливайте, хотите внедряйте в приложение соответствующий функционал

Я уже думаю насчет "постоянного" подключения БД.
Как в таком случае решаются вопросы бэкапа и активности сайта?
Ситуация, когда пользователи гуляют по страницам и БД задействована, и настает время бэкапа. Что происходит тогда? Сайт недоступен?
Активность сайта - не только чтение, но и запись в таблицы БД - логи, данные от пользователей и т.п.
Как это будет выглядеть для пользователя?
5 ноя 09, 11:13    [7884306]     Ответить | Цитировать Сообщить модератору
 Re: MSSQL 2005 Express: "Нормальная" база данных или приаттаченный файл?  [new]
Glory
Member

Откуда:
Сообщений: 104760
iConst
Glory
Ну тогда вот и решайте, когда вы своими силами организуете для этой базы регламентные работы.
Хотите приложение останавливайте, хотите внедряйте в приложение соответствующий функционал

Я уже думаю насчет "постоянного" подключения БД.
Как в таком случае решаются вопросы бэкапа и активности сайта?
Ситуация, когда пользователи гуляют по страницам и БД задействована, и настает время бэкапа. Что происходит тогда? Сайт недоступен?
Активность сайта - не только чтение, но и запись в таблицы БД - логи, данные от пользователей и т.п.
Как это будет выглядеть для пользователя?

Откройте в хелпе статью BACKUP и найдете ответы на многие вопросы
5 ноя 09, 11:15    [7884322]     Ответить | Цитировать Сообщить модератору
 Re: MSSQL 2005 Express: "Нормальная" база данных или приаттаченный файл?  [new]
Кхе
Guest
iConst,

Все доступно если, бэкапите на отдельный массив, то пользователь совсем ничего не заметит
5 ноя 09, 11:16    [7884327]     Ответить | Цитировать Сообщить модератору
 Re: MSSQL 2005 Express: "Нормальная" база данных или приаттаченный файл?  [new]
слоненок
Member

Откуда:
Сообщений: 479
iConst, вы вначале в бол загляните по поводу всех ограничений и специфики "пользовательских экземпляров". Думаю у вас пыла поубавится. ASP.NET приложение в продакшене вы тоже на автономном Web-сервере крутите, или все же на internet information деплоите? С базами то же самое.
5 ноя 09, 11:46    [7884601]     Ответить | Цитировать Сообщить модератору
 Re: MSSQL 2005 Express: "Нормальная" база данных или приаттаченный файл?  [new]
Я
Guest
Скриптуете процедуру бекапа в файл на диске с расширением sql. Пишите на VB script запуск SQLCMD.exe, который выполняет ваш sql скрипт. В вин-шедулере создаете задачу с расписанием. Все. В BOLe есть описание
5 ноя 09, 12:54    [7885294]     Ответить | Цитировать Сообщить модератору
 Re: MSSQL 2005 Express: "Нормальная" база данных или приаттаченный файл?  [new]
iConst
Member

Откуда:
Сообщений: 2066
Я
Скриптуете процедуру бекапа в файл на диске с расширением sql. Пишите на VB script запуск SQLCMD.exe, который выполняет ваш sql скрипт. В вин-шедулере создаете задачу с расписанием. Все. В BOLe есть описание

Нашел пример. Но, повторюсь, не силен в языке.

DECLARE @DBName varchar(255)

DECLARE @DATABASES_Fetch int

DECLARE DATABASES_CURSOR CURSOR FOR
    select
        DATABASE_NAME   = db_name(s_mf.database_id)
    from
        sys.master_files s_mf
    where
       -- ONLINE
        s_mf.state = 0 

       -- Only look at databases to which we have access
    and has_dbaccess(db_name(s_mf.database_id)) = 1 

        -- Not master, tempdb or model
    and db_name(s_mf.database_id) not in ('Master','tempdb','model')
    group by s_mf.database_id
    order by 1

OPEN DATABASES_CURSOR

FETCH NEXT FROM DATABASES_CURSOR INTO @DBName

WHILE @@FETCH_STATUS = 0
BEGIN
    declare @DBFileName varchar(256)    
    set @DBFileName = datename(dw, getdate()) + ' - ' + 
                       replace(replace(@DBName,':','_'),'\','_')

    exec ('BACKUP DATABASE [' + @DBName + '] TO  DISK = N''c:\db backup\' + 
        @DBFileName + ''' WITH NOFORMAT, INIT,  NAME = N''' + 
        @DBName + '-Full Database Backup'', SKIP, NOREWIND, NOUNLOAD,  STATS = 100')

    FETCH NEXT FROM DATABASES_CURSOR INTO @DBName
END

CLOSE DATABASES_CURSOR
DEALLOCATE DATABASES_CURSOR

Назначение некоторых операторов мне понятна, но не все.
Просьба помочь адаптировать скрипт к моим нуждам - например, как сделать его универсальным, задавая в параметрах исходную базу данных, путь и имя бэкапа?
5 ноя 09, 13:48    [7885800]     Ответить | Цитировать Сообщить модератору
 Re: MSSQL 2005 Express: "Нормальная" база данных или приаттаченный файл?  [new]
Supra93
Member

Откуда:
Сообщений: 8174
BACKUP (Transact-SQL)
там же полно примеров
5 ноя 09, 14:35    [7886207]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить