Все технические форумы на одном сайте Удобный поиск информации с популярных форумов в одном месте
Вопрос: Транзакционная репликация с кластера AlwaysOn

Всем привет!

Была настроена транзакционная репликация:
Сервер А - публикатор;
Сервер Б - подписчик.

Далее, вместо сервера А, стали использовать кластер AlwaysOn: сервер А1 и А2 (имя группы доступности А)
Настроить репликацию подключившись к серверу А нельзя, Managment studio пишет ошибку:

"TITLE: New Publication Wizard
------------------------------

SQL Server is unable to connect to server 'А'.

For help, click:

------------------------------
ADDITIONAL INFORMATION:

SQL Server replication requires the actual server name to make a connection to the server. Specify the actual server name, 'А2'. (Replication.Utilities)

------------------------------
BUTTONS:

OK
------------------------------
".

Настроил репликацию с А1 к Б. Теперь, когда А1 становится пассивным сервером, а А2 активным джобы репликации выдают ошибку:
"
Error messages:
• The process could not execute 'sp_replcmds' on 'А1'. (Source: MSSQL_REPL, Error number: MSSQL_REPL20011)
Get help:
Failed to update database "Х" because the database is read-only. (Source: MSSQLServer, Error number: 3906)
".

Хотел настроить также репликацию с А2 к Б, мысль такая, что на активном сервере будет работать, на пасивном джоб будет падать с ошибкой. Но подключившись к серверу А2, вижу, что уже есть репликация, хотя я её не создавал на А2, только на А1. На А2 даже базы distribution нет.

Подскажите, как правильно настраивать репликацию в такой связке? Сссылки на статьи тоже приветствуются.
Гуглил, везде описывают реплику между А1 и А2, а мне нужно между А (группа доступности) и Б (обычный внешний сервер).
Ответ: Glory, я правильно понимаю, что:
1. Теперь нельзя использовать А1 и А2 в качестве дистрибьютера, для него нужен отдельный сервер и сетевая папка для снепшота?
2. Сервера А1 и А2 могут быть, только издателями?
Вопрос: показать что есть и чего нет

Условие.
Есть две таблицы следующего плана. Первая содержит ID неких предметов и их описание.

Вторая таблица содержит ID неких пользователей и ID доступных для пользователей

предметов из первой таблицы.

Таблица 1:
Item_IDItem_Name
1pen
2pencil
3marker



Таблица 2:
User_IDItem_ID
11
13
21
22
33


Задача.
Вывести запросом таблицу, показывающую всех пользователей из Таблицы 2 и какие предметы

каждый пользователей имеет, а какие нет.

Результат:
User_IDItem_IDIs_Have
11have
12not have
13have
21have
22have
23not have
31not have
32not have
33have


+ Версия сервера
Microsoft SQL Server 2008 R2 (SP2) - 10.50.4033.0 (Intel X86) Jul 9 2014 16:08:15 Copyright (c) Microsoft Corporation Express Edition with Advanced Services on Windows NT 6.1 <X86> (Build 7601: Service Pack 1)
Ответ: Кролик-зануда,
Спасибо!! Теперь буду разбираться как это работает)
Вопрос: Новый проект в SSAS. Быть или не быть ?

Доброго времени суток, друзья.

Прошу совета. Есть некая система (на базе MS SQL 2012), в которой регистрируются обращения пользователей. В ней 2-3 десятка небольших таблиц (по количеству строк, кандидаты на измерения) и 2 большие - непосредственно таблица заявок и таблица истории изменений значений (кандидаты на факты).

Таблица заявок хранит описания заявок, т.е. внешние ключи на "небольшие" таблицы, несколько полей с датами и описаниями в текстовом виде.

Таблица истории состоит из ID на запись в таблице заявки, даты события, тип изменяемого параметра, старого и нового значения.

Типичные показатели отчетов в этой системе - сколько раз в истории встречается то или иное значение.

Есть желание, в образовательных целях, написать отчетную подсистему с использованием SSAS.

Вопросы:
1. Есть ли в этом смысл?
2. Если смысл есть, как грамотно спроектировать связь между таблицей Заявок и таблице Истории ?
Ответ: Mega User,

1. образование всегда имеет смысл
2.


или начать с более простого (историю отдельной группой мер)
Вопрос: Есть ли в Acces возможность Импорт/экспорт (копирование, вставка) полей таблицы?

Решил объединить поля двух таблиц в одну таблицу, а они не копируются через конструктор.
Одна таблица внешняя, одна локальная

Это нормально или есть нюансы в этом вопросе?

А то как-то перенабивать каждый раз хлопотно.

Понимаю, что вопрос глупый, но в упор, что-то не вижу как сделать.
Ответ:
Сообщение от zakaz_77
Я как раз в присоединённую копирую.
В присоединенной вообще ничего нельзя поменять в конструкторе.
Вопрос: Возможно ли из Access закрыть файл Excel, который был изменен

Работает программа, которая была обсуждена
(использовался вариант Волшебника). Но если файл был изменен, а у меня изменен формат, то нужно сначала
сохранить (или не сохранять-мне все равно) изменения. Зачем все это нужно? Следующей операцией из Access
я захочу открыть другую таблицу, которая будет находится в этом же файле. Прежнее его содержание очищается.
Перед этой операцией нужно закрыть уже открытый файл Excel, который на экране
не активен. Предлагаемые функции Windows не хотят. Программа зависает: нужно сказать "Да" или "Нет" во всплывающем
окне приложения Excel.
Ответ: Что-то не то. Вот так
Вопрос: Есть ли ограничения на максимальную скорость выборки данных из одного табличного пространс

Есть ли ограничения на максимальную скорость выборки данных из одного табличного пространства?

Имеем БД:
DB2 LUW ver 9.7 fix pack 8 Enterprise x64
на платформе: Win 2008 R2 Enterprise x64
сервер: BC Hx5, CPU: E7-4870, RAM: 384GB
СХД: Storwize V7000.
Суть проблемы:
Есть таблица с количеством строк порядка 5 млд. записей и небольшой средней длинной записи . В табличном пространстве только эта таблица. На таблице 1 кластеризованный индекс, который используется когда выборка данных небольшая и не используется когда итоговая выборка составляет > 300 тыс. строк. Это все нормально и оптимизатор отрабатывает корректно, поскольку таблица кластеризована именно по этой большой выборке и коэффициент селективности небольшой.
Проблема заключается в том, что когда идет большая выборка данных мы видим, что суммарная нагрузка на СХД очень мала (примерно 25 -35 MB/s), причем скорость выборки не зависит ни от нагрузки на БД не от нагрузки на СХД. Причем скорость выборки не зависит даже от мощности СХД, наши тесты на DS5100 и на Storwize v7000 показывают одинаковые результаты. На обоих СХД используется 1 большой массив из RAID 10. Попытка разнести табличное пространство на 10 логических дисков (в пределах 1 массива на СХД) не принесла результата, мы имеем все ту же скорость ~30 MB/s., пропорционально распределенную по контейнерам. На комбинированных тестах мы получали на Storwize v7000 суммарную скорость ~ 2 GB/s. Изменение параметров: intra_parallel & querydegree результатов не дали, не можем понять где узкое место. DB2ADVIS говорит, что так и должно быть и изменений не требуется.

Вопрос. Почему мы не можем получить сравнимые скорости (или хотя бы улучшение) при выборке данных? На что стоит посмотреть, на какие параметры БД или может СХД?

Спасибо.
Ответ:
Mark Barinstein
use-se
пока писал ответ скорость изменилась, сейчас скачет 7-30 мб/с

Интересно насколько актуальным является параметр db2_parallel_io=*.45 (сейчас стоит) для СХД вроде Storwize, мне сказали,
что не актуально, это так?

Надо план запроса смотреть - использование индексов тут, скорее всего, будет очень неэффективным.
Большую таблицу надо бы попробовать организовать по MDC (с1).
db2_parallel_io=* (т.е. 6) для Storwize в IBM PDOA. У вас очень большое значение.

План запроса напрямую зависит от количества выбираемых данных.
Основное назначение БД OLTP, т.е. для нашей большой таблицы на 1 запрос выбирается от 20 до 1000
записей, время выборки меньше 1 секунды (доли секунды), здесь используется индекс.
При большой выборке, как было указано вначале, индекс не используется, а если и используется
(на граничных условиях) то приводит, как правило, к увеличению общего времени выборки.

Таблица имеет уникальный кластерный индекс по 3 первым полям (bigint,date,bigint), соответственно.
Здесь немного статистики.
F1: 100 * OVERFLOW / CARD < 5
F2: 100 * (Effective Space Utilization of Data Pages) > 70
F3: 100 * (Required Pages / Total Pages) > 80

SCHEMA.NAME CARD OV NP FP ACTBLK TSIZE F1 F2 F3 REORG
----------------------------------------------------------------------------------------
Table: big_tab
5,2e+09 0 9e+07 9e+07 - 3,46e+11 0 99 99 ---
----------------------------------------------------------------------------------------

Index statistics:

F4: CLUSTERRATIO or normalized CLUSTERFACTOR > 80
F5: 100 * (Space used on leaf pages / Space available on non-empty leaf pages) > MIN(50, (100 - PCTFREE))
F6: (100 - PCTFREE) * (Amount of space available in an index with one less level / Amount of space required for all keys) < 100
F7: 100 * (Number of pseudo-deleted RIDs / Total number of RIDs) < 20
F8: 100 * (Number of pseudo-empty leaf pages / Total number of leaf pages) < 20

SCHEMA.NAME INDCARD LEAF ELEAF LVLS NDEL KEYS LEAF_RECSIZE NLEAF_RECSIZE LEAF_PAGE_OVERHEAD NLEAF_PAGE_OVERHEAD PCT_PAGES_SAVED F4 F5 F6 F7 F8 REORG
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Table: big_tab
Index: big_tab_PK
5,2e+09 6e+07 55765 5 7e+07 5,2e+09 20 20 370 370 0 69 73 2 1 0 *----
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
В момент первой загрузки/реорганизации по кластерному индексу clasterfacktor конечно же был выше, но и сейчас выборка
большого количества данных из таблице не намного хуже (по времени). Главная проблема, что нет прироста скорости на новом железе. Первичная реорганизация была offline. Конечно же хотелось бы реорганизовать табличку снова, но....
На тестовом сервере (с этой же БД) с имитацией нагрузки я пытался сделать online реорганизацию, но после 5 дней непрерывной реорганизации прервал ее.
Относительно маленькой таблицы, то она каждый день содержит новые данные и после каждого ETL чистится.
Я не вижу, что с ней можно сделать, там всего 1 поле (bigint).

Относительно:
>>Большую таблицу надо бы попробовать организовать по MDC (с1).
буду пробовать, но немного страшновато по следующим причинам:
1. Уникальность первичного ключа - это 3 поля, следовательность размерность будет 3? насколько вырастет потребность в дисковом пространстве?
2. пока не имею практики использования (почитать, конечно же почитаю и попробую), но насколько сложны
эти MDC в обслуживании?
3. я так понял стоит попробовать именно
автор
ORGANIZE BY -- Groups rows with similar values on multiple dimensions in the same table extent. This concept is known as multidimensional clustering (MDC).

а не
автор
PARTITION BY -- Groups rows with similar values of a single dimension in the same data partition. This concept is known as table partitioning.


Mark Barinstein
db2_parallel_io=* (т.е. 6) для Storwize в IBM PDOA. У вас очень большое значение.

здесь немного не понял, вариант
а)db2_parallel_io=*
или
б)db2_parallel_io=*.6

Буду пробовать, тестировать - это займет время.
У меня будет возможность проверить эту выборку на IBM FlashSystem, посмотрим, что там будет.

Большое спасибо всем за помощь, всем удачных выходных.
Вопрос: Alter table и транзакционный лог

Уважаемые!
Может кто-то сталкивался и знает как решить задачу.
SQL Server 2005. БД 120 GB. Модель БД Simple.
выполняю скриgт alter table ... ; в нем меняю тип поля, добавляю поля, добавляю индексы.
таблица имеет около 500000 записей. свободного места около 100 GB
При выполнении скрипта транзакционный лог растет (у него установлено 10 % роста не ограничено) и занимает все свободное место. и модификация таблицы прекращается.
вопрос почему так много надо места для модификации таблицы и есть метода как в этом случае поступать.
т.е есть ли вариант не выгружать данные в файл , оттранкетить таблицу, изменить структуру таблицу, залить обратно данные.
Ответ: SergoM,

наверняка эти действия Вы производите в одной транзакции, да еще и автоматически созданным скриптом. Автоскрипт имеет тенденцию перестраховываться и перезаливать таблицу в копию иногда без необходимости. Внимательно просмотрите скрипт и измените перезаливку, если можно это выполнить более простыми средствами.
Вопрос: Не могу почистить транзакционный лог БД (MSSQL 2005)

Приветствую.
База с моделью восстановления Simple. Транзакционный лог вырос да 242 Гб.
BACKUP LOG MyDB WITH TRUNCATE_ONLY - отрабатывает без ошибок за секунду. Лог базы при этом не уменьшается.

DBCC OPENTRAN (MyDB) выдает:

Transaction information for database 'MyDB'.

Replicated Transaction Information:
Oldest distributed LSN : (0:0:0)
Oldest non-distributed LSN : (60689572:1414:1)
DBCC execution completed. If DBCC printed error messages, contact your system administrator.

Перезапуск SQL-сервера не помогает.

Подскажите, что можно сделать?
Ответ: Glory,

Понятно. Буду разбираться. Спасибо.
Вопрос: Растёт жернал транзакций

Импортирую данные в таблицу порциями по 100 000 записей. Обновляются имеющиеся записи, затем добавляется отсутствующие.
Считал, что изменения пишутся в журнал транзакций, которые затем записываются в БД, освобождая место в журнале. Однако журнал транзакций постоянно растёт.
С чем это связано?
Ответ:
=Сергей=
Гавриленко Сергей Алексеевич
А порции по 100к поди в одной транзакции?

Да, а как можно иначе и что это даст?
Т.е. я правильно понимаю, что вы открыли неделю назад транзакцию, грузите данные в этой транзакции, а потом удивляетесь, что растет лог?
Вопрос: База растет

Прошу заранее извинения за простой вопрос. Опыта, к сожалению в администрации баз данных пока не набрал. Следующая ситуация: Растет потребление места здесь:

db2inst1@host:~/db2inst1/NODE0000/KTC3/T0000000> pwd
/home/db2inst1/db2inst1/NODE0000/KTC3/T0000000
db2inst1@host:~/db2inst1/NODE0000/KTC3/T0000000> ll
insgesamt 131204
-rw------- 1 db2inst1 db2iadm1 134217728 2. Nov 12:03 C0000000.CAT
db2inst1@host:~/db2inst1/NODE0000/KTC3/T0000000>

Как я понимаю растет сама база.
Вопрос: Можно ли тут что то сделать или единственное решение увеличить место.

Логи пишутся на другой диск
First log archive method (LOGARCHMETH1) = DISK:/space/db2_backup/db/KTC3/logarchmeth1/
Path to log files = /space/db2_backup/db/KTC3/aktivelogs/NODE0000/
Ответ:
-_Михаил_-
Нашел на IBM следующее:

db2 connect to mydb
db2 update db cfg using LOGFILSIZ 5000
db2 update db cfg using LOGPRIMARY 50
db2 update db cfg using LOGSECOND 50


Этого достаточно?
Проблема с переполнением журнала транзакций может возникнуть не только из-за того, что есть много меняющие данные транзакции одновременно, но и в таком, например, случае: даже совсем мало меняющая данные транзакция "забыла" завершиться (ничего долго не делает, и не выдает commit или rollback). Журнал, в котором ее изменения были сделаны, и все последующие в этом случае будут считаться активными, и в конце концов вы получите log full ошибку, когда кол-во активных журналов достигнет LOGPRIMARY + LOGSECOND, какими бы большими эти значения не были (мы не рассматриваем здесь LOGSECOND = -1, там могут быть свои эффекты, несмотря на "бесконечность" журнала транзакций).
Защититься от таких транзакций можно с помощью параметра num_log_span - ограничения протяженности для транзакций в журналах. См. документацию для справки.

P.S.: из этих 3-х параметров LOGSECOND - онлайновый, т.е. его можно менять без реактивации базы.