По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
Хранилище сервера - важнейшая часть с точки зрения отказоустойчивости. При не надлежащей настройке дисков, данные могут быть утеряны. Полбеды, если вы храните там только игрули, сериальчики и фотографии из поездки в Туапсе в 2005 году, а что если это корпоративные данные? Поэтому, нужно быть уверенными, что если что - то случится с дисками, то данные не пропадут. Для этого используют технологию RAID (Redundant Array of Independent Disks) (не путать с RAID: Shadow Legends), или так называемый избыточный массив независимых дисков. В RAID одни и те же данные копируются сразу на множество дисков, так что, в случае, если один диск выйдет из строя, потери данных не будет - копия есть на другом носителе. Поговорим про четыре распространенных типа RAID массивов: RAID 0, RAID 1, RAID 5 и RAID 10. Видео: RAID 0, 1, 5 и 10 | Что это? RAID 0 Честно говоря, RAID 0 нифига не отказоустойчивый. Мы даже против того , чтобы RAID 0 имел название RAID. Скорее AID (Redundant Array of Independent Disks) 0. В нем цельные данные дробятся на блоки и частями записываются на 2 (два) или более диска. Тем самым, 2 физически отдельных диска, на самом деле, объединяются в один. И, например, если один из двух физических дисков случайно попадет под каток - вы потеряете все данные. Единственный случай, когда RAID 0 имеет смысл использовать, это если вы храните не критичные к потери данные к которым нужен доступ на высокой скорости. Да - да, RAID 0 имеет низкую отказоуйстойчивость, но высокую производительность. RAID 1 А вот это парень уже вполне отказоустойчив. RAID 1 кстати еще называют зеркальным, по вполне простой причине - данные синхронно записываются на 2 и более диска сразу: Тем самым, если один из дисков попадет в воду и выйдет из строя, данные не будут потеряны. Важный пункт - если вы собираете в RAID 1 массив 2 (два) диска, то в результате вы будете иметь только половину от их общей памяти. RAID 5 В пятом рэйде вам понадобятся 3 и более дисков. Он, кстати, один из наиболее распространенных рэйдов. Он работает быстро и может хранить много данных (в отличие от первого рэйда, например). В RAID 5 данные не копируются между всеми дисками, а как в RAID 0 последовательно записываются частями на каждый из дисков, но с одним дополнением - к данным так же равномерно записывается контрольная сумма, которая называется parity, которая нужна для восстановления данных в случае, если один из дисков отвалится. Важный недостаток RAID 5 в том, что это контрольная сумма занимает немало места. Например, если у вас 4 диска суммарным объемом в 4 терабайта, то использовать под хранение данных вы сможете только 3 терабайта - что около 75%. Остальное займет как раз контрольная сумма. RAID 10 Подходим к финалу - десятый рейд. Но не спешите, не такой уж он и десятый. Цифру 10 он имеет потому, что с точки зрения технологии, сочетает в себе функциональность RAID 1 и RAID 0. Создатели технологии уверены, что 1 + 0 = 10. Не будем их расстраивать, и разберемся в технологии. Для десятого рейда вам понадобится минимум 4 диска или больше, но всегда их количество должно быть четным. Говоря простым языком, 4 диска делятся на 2 группы, по 2 диска, и каждая из групп объединяется в отказоустойчивый RAID 1. Тем самым, мы имеем 2 зеркальных RAID 1 массива, которые в свою очередь, объединяются в RAID 0 массив - ну вы помните, где данные частями записываются на каждый из дисков. Только вместо дисков у нас по первому рэйду. Тем самым, 10ый рэйд имеет все скоростные преимущества RAID 0 и преимущество надежности RAID 1, но стоит как чугунный мост, так как опять же, под реальное хранение данных вы сможете использовать только 50% от общего объема всех дисков.
img
SQL расшифровывается как Structured Query Language, или структурированный язык запросов. Команды SQL – это инструкции, которые даются базе данных для выполнения задач, функций и запросов с данными. SQL-командами можно пользоваться для поиска по базе данных и выполнения различных функций: создания и удаления таблиц, добавления данных в таблицы и их редактирования. Ниже приведен список основных команд (их иногда называют операторами), которые необходимо знать при работе с SQL. SELECT и FROM SELECT в запросе определяет, какие столбцы данных отобразить в результатах. Кроме того, в SQL есть возможности отображать данные не из столбца таблицы. В примере ниже показаны 3 столбца, взятые из таблицы студентов Student (через SELECT и FROM) и один вычисляемый столбец. В базе данных хранятся ID (studentID), имя (FirstName) и фамилия (LastName) студента. Мы можем объединить столбцы с именем и фамилией и создать вычисляемое поле с полным именем (FullName). SELECT studentID, FirstName, LastName, FirstName + ' ' + LastName AS FullName FROM student; Вывод: +-----------+-------------------+------------+------------------------+ | studentID | FirstName | LastName | FullName | +-----------+-------------------+------------+------------------------+ | 1 | Monique | Davis | Monique Davis | | 2 | Teri | Gutierrez | Teri Gutierrez | | 3 | Spencer | Pautier | Spencer Pautier | | 4 | Louis | Ramsey | Louis Ramsey | | 5 | Alvin | Greene | Alvin Greene | | 6 | Sophie | Freeman | Sophie Freeman | | 7 | Edgar Frank "Ted" | Codd | Edgar Frank "Ted" Codd | | 8 | Donald D. | Chamberlin | Donald D. Chamberlin | | 9 | Raymond F. | Boyce | Raymond F. Boyce | +-----------+-------------------+------------+------------------------+ 9 rows in set (0.00 sec) CREATE TABLE Название CREATE TABLE говорит само за себя – оператор создает таблицу. Вы можете задать название таблицы и настроить, какие столбцы будут присутствовать в таблице. CREATE TABLE table_name ( column_1 datatype, column_2 datatype, column_3 datatype ); ALTER TABLE ALTER TABLE изменяет структуру таблицы. Вот так можно добавить столбец в базу данных: ALTER TABLE table_name ADD column_name datatype; CHECK CHECK ограничивает диапазон значений, которые можно добавить в столбец. Когда вы настраиваете ограничение CHECK для отдельного столбца, оператор проверяет, что в этом столбце присутствуют строго определенные значения. Если же CHECK настраивается для таблицы, то он может ограничивать значения в отдельных столбцах на основании значений из других столбцов этой строки. В следующем примере при создании таблицы Persons используется ограничение CHECK для столбца «Возраст» (Age). Таким образом проверяется, что в таблицу не попадают лица младше 18 лет. CREATE TABLE Persons ( ID int NOT NULL, LastName varchar(255) NOT NULL, FirstName varchar(255), Age int, CHECK (Age>=18) ); Следующий синтаксис используется для присвоения названия оператору CHECK и настройки CHECK для нескольких столбцов: CREATE TABLE Persons ( ID int NOT NULL, LastName varchar(255) NOT NULL, FirstName varchar(255), Age int, City varchar(255), CONSTRAINT CHK_Person CHECK (Age>=18 AND City='Sandnes') ); WHERE (AND, OR, IN, BETWEEN и LIKE) Оператор WHERE используется для ограничения количества возвращаемых строк. Сначала, в качестве примере, мы покажем оператор SELECT и его результат без оператора WHERE. Затем добавим оператор WHERE, в котором используются сразу 5 из вышеуказанных квалификаторов. SELECT studentID, FullName, sat_score, rcd_updated FROM student; +-----------+------------------------+-----------+---------------------+ | studentID | FullName | sat_score | rcd_updated | +-----------+------------------------+-----------+---------------------+ | 1 | Monique Davis | 400 | 2017-08-16 15:34:50 | | 2 | Teri Gutierrez | 800 | 2017-08-16 15:34:50 | | 3 | Spencer Pautier | 1000 | 2017-08-16 15:34:50 | | 4 | Louis Ramsey | 1200 | 2017-08-16 15:34:50 | | 5 | Alvin Greene | 1200 | 2017-08-16 15:34:50 | | 6 | Sophie Freeman | 1200 | 2017-08-16 15:34:50 | | 7 | Edgar Frank "Ted" Codd | 2400 | 2017-08-16 15:35:33 | | 8 | Donald D. Chamberlin | 2400 | 2017-08-16 15:35:33 | | 9 | Raymond F. Boyce | 2400 | 2017-08-16 15:35:33 | +-----------+------------------------+-----------+---------------------+ 9 rows in set (0.00 sec) Теперь повторим запрос SELECT, но ограничим возвращаемые строки оператором WHERE. STUDENT studentID, FullName, sat_score, recordUpdated FROM student WHERE (studentID BETWEEN 1 AND 5 OR studentID = 8) AND sat_score NOT IN (1000, 1400); +-----------+----------------------+-----------+---------------------+ | studentID | FullName | sat_score | rcd_updated | +-----------+----------------------+-----------+---------------------+ | 1 | Monique Davis | 400 | 2017-08-16 15:34:50 | | 2 | Teri Gutierrez | 800 | 2017-08-16 15:34:50 | | 4 | Louis Ramsey | 1200 | 2017-08-16 15:34:50 | | 5 | Alvin Greene | 1200 | 2017-08-16 15:34:50 | | 8 | Donald D. Chamberlin | 2400 | 2017-08-16 15:35:33 | +-----------+----------------------+-----------+---------------------+ 5 rows in set (0.00 sec) UPDATE Для обновления записи в таблице используется оператор UPDATE. Условием WHERE можно уточнить, какие именно записи вы бы хотели обновить. Вы можете обновлять по одному или нескольким столбцам сразу. Синтаксис выглядит так: UPDATE table_name SET column1 = value1, column2 = value2, ... WHERE condition; В примере ниже обновляется название записи (поле Name) с Id 4: UPDATE Person SET Name = “Elton John” WHERE Id = 4; Помимо этого, можно обновлять столбцы в таблице значениями из других таблиц. Чтобы получить данные из нескольких таблиц, воспользуйтесь оператором JOIN. Синтаксис выглядит так: UPDATE table_name1 SET table_name1.column1 = table_name2.columnA table_name1.column2 = table_name2.columnB FROM table_name1 JOIN table_name2 ON table_name1.ForeignKey = table_name2.Key В примере ниже мы обновляем поле «Менеджер» (Manager) для всех записей: UPDATE Person SET Person.Manager = Department.Manager FROM Person JOIN Department ON Person.DepartmentID = Department.ID GROUP BY GROUP BY позволяет объединять строки и агрегировать данные. Вот так выглядит синтаксис GROUP BY: SELECT column_name, COUNT(*) FROM table_name GROUP BY column_name; HAVING HAVING позволяет сортировать данные, которые собираются через GROUP BY. Таким образом, пользователю показывается лишь ограниченный набор записей. Вот так выглядит синтаксис HAVING: SELECT column_name, COUNT(*) FROM table_name GROUP BY column_name HAVING COUNT(*) > value; AVG() AVG, или среднее, вычисляет среднее значение числового столбца из набора строк, которые возвращает оператор SQL. Вот так выглядит синтаксис: SELECT groupingField, AVG(num_field) FROM table1 GROUP BY groupingField А вот пример этого оператора для таблицы Student: SELECT studentID, FullName, AVG(sat_score) FROM student GROUP BY studentID, FullName; AS AS позволяет переименовать столбец или таблицу с помощью псевдонима. SELECT user_only_num1 AS AgeOfServer, (user_only_num1 - warranty_period) AS NonWarrantyPeriod FROM server_table И вот так будет выглядеть результат. +-------------+------------------------+ | AgeOfServer | NonWarrantyPeriod | +-------------+------------------------+ | 36 | 24 | | 24 | 12 | | 61 | 49 | | 12 | 0 | | 6 | -6 | | 0 | -12 | | 36 | 24 | | 36 | 24 | | 24 | 12 | +-------------+------------------------+ Кроме того, через оператор AS вы можете задать название таблицы – так будет проще обращаться к ней в JOIN. SELECT ord.product, ord.ord_number, ord.price, cust.cust_name, cust.cust_number FROM customer_table AS cust JOIN order_table AS ord ON cust.cust_number = ord.cust_number Результат выглядит так. +-------------+------------+-----------+-----------------+--------------+ | product | ord_number | price | cust_name | cust_number | +-------------+------------+-----------+-----------------+--------------+ | RAM | 12345 | 124 | John Smith | 20 | | CPU | 12346 | 212 | Mia X | 22 | | USB | 12347 | 49 | Elise Beth | 21 | | Cable | 12348 | 0 | Paul Fort | 19 | | Mouse | 12349 | 66 | Nats Back | 15 | | Laptop | 12350 | 612 | Mel S | 36 | | Keyboard| 12351 | 24 | George Z | 95 | | Keyboard| 12352 | 24 | Ally B | 55 | | Air | 12353 | 12 | Maria Trust | 11 | +-------------+------------+-----------+-----------------+--------------+ ORDER BY ORDER BY позволяет сортировать результирующий набор данных по одному или нескольким элементам в разделе SELECT. Ниже дан пример сортировки студентов по имени (FullName) в порядке убывания. Изначально используется стандартная сортировка по возрастанию (ASC), поэтому для сортировки в обратном порядке мы применяем DESC. SELECT studentID, FullName, sat_score FROM student ORDER BY FullName DESC; COUNT COUNT вычисляет количество строк и возвращает результирующее значение в столбце. Ниже приводятся возможные сценарии использования COUNT: Подсчет всех строк в таблице (не требуется Group by) Подсчет общего числа подмножеств данных (в операторе обязательно прописывается Group By) Этот оператор SQL выводит количество всех строк. Кроме того, что вы можете настроить название результирующего столбца COUNT с помощью AS. SELECT count(*) AS studentCount FROM student; DELETE DELETE используется для удаления записи из таблицы. Будьте внимательны! Вы можете удалить несколько записей в таблице, либо сразу все. С помощью условия WHERE вы указываете, какие записи необходимо удалить. Синтаксис выглядит так: DELETE FROM table_name WHERE condition; Вот так выглядит удаление из таблицы Person записи с Id 3: DELETE FROM Person WHERE Id = 3; INNER JOIN JOIN, или внутреннее соединение, выбирает записи, соответствующие значениям в двух таблицах. SELECT * FROM A x JOIN B y ON y.aId = x.Id LEFT JOIN LEFT JOIN возвращает все строки из левой таблицы и соответствующие им строки из правой таблицы. Строки из левой таблицы возвращаются даже при пустых значениях в правой таблице. Если для строк из левой таблицы нет соответствия в правой, то в значениях последней будет стоять null. SELECT * FROM A x LEFT JOIN B y ON y.aId = x.Id RIGHT JOIN RIGHT JOIN возвращает все строки из правой таблицы и соответствующие им строки из левой. В отличие от левого соединения, здесь возвращаются все строки из правой таблицы, даже если им ничего не соответствует в левой. В таком случае, в значениях столбцов из левой таблицы будет стоять null. SELECT * FROM A x RIGHT JOIN B y ON y.aId = x.Id FULL OUTER JOIN FULL OUTER JOIN возвращает все строки, соответствующие условиям в любой из таблиц. Если в левой таблице есть строки, которым ничего не соответствует в правой, то они все равно отобразятся в результирующих значениях. То же самое распространяется и на строки из правой таблицы без соответствующих значений в левой. SELECT Customers.CustomerName, Orders.OrderID FROM Customers FULL OUTER JOIN Orders ON Customers.CustomerID=Orders.CustomerID ORDER BY Customers.CustomerName INSERT INSERT используется для добавления данных в таблицу. INSERT INTO table_name (column_1, column_2, column_3) VALUES (value_1, 'value_2', value_3); LIKE LIKE используется в связке с WHERE или HAVING (в составе оператора GROUP BY) и ограничивает выбранные строки по элементам, если в столбце содержится определенный шаблон символов. Этот SQL запрос выбирает студентов, чье значение в FullName начинается с «Monique» или заканчивается с «Greene». SELECT studentID, FullName, sat_score, rcd_updated FROM student WHERE FullName LIKE 'Monique%' OR FullName LIKE '%Greene'; +-----------+---------------+-----------+---------------------+ | studentID | FullName | sat_score | rcd_updated | +-----------+---------------+-----------+---------------------+ | 1 | Monique Davis | 400 | 2017-08-16 15:34:50 | | 5 | Alvin Greene | 1200 | 2017-08-16 15:34:50 | +-----------+---------------+-----------+---------------------+ 2 rows in set (0.00 sec) Перед LIKE вы можете добавить NOT, и тогда строки, соответствующие условию, будут исключаться, а не добавляться. Этот SQL исключает записи, у которых в столбце FULL NAME содержится «cer Pau» и «Ted». SELECT studentID, FullName, sat_score, rcd_updated FROM student WHERE FullName NOT LIKE '%cer Pau%' AND FullName NOT LIKE '%"Ted"%'; +-----------+----------------------+-----------+---------------------+ | studentID | FullName | sat_score | rcd_updated | +-----------+----------------------+-----------+---------------------+ | 1 | Monique Davis | 400 | 2017-08-16 15:34:50 | | 2 | Teri Gutierrez | 800 | 2017-08-16 15:34:50 | | 4 | Louis Ramsey | 1200 | 2017-08-16 15:34:50 | | 5 | Alvin Greene | 1200 | 2017-08-16 15:34:50 | | 6 | Sophie Freeman | 1200 | 2017-08-16 15:34:50 | | 8 | Donald D. Chamberlin | 2400 | 2017-08-16 15:35:33 | | 9 | Raymond F. Boyce | 2400 | 2017-08-16 15:35:33 | +-----------+----------------------+-----------+---------------------+ 7 rows in set (0.00 sec)
img
3CX программная IP-АТС на открытых стандартах с технологиями Унифицированных коммуникаций и интеграцией услуг в режиме реального времени. Это простая в установке, настройке и сопровождении IP-АТС. /p> В данной статье мы рассмотрим процесс настройки IP-DECT-базы Gigaset N870 IP PRO для работы с IP-АТС 3CX и последующего подключения IP-DECT-телефонов Gigaset серии PRO. DECT (Digital Enhanced Cordless Telecommunication) технология беспроводной связи, использующая частоты 1880-1900 МГц с модуляцией GMSK (ВТ = 0,5). Используется в современных радиотелефонах. Пользуется высокой популярностью благодаря простоте развертывания DECT-сетей, широкому спектру предоставляемых пользовательских услуг и высокому качеству связи. Достоинства DECT хорошая помехоустойчивость канала связи благодаря цифровой передаче сигнала. хорошая интеграция с системами корпоративной телефонии меньшее облучение абонента (по сравнению с мобильными телефонами) Недостатки DECT небольшая дальность связи невысокая скорость передачи данных (по сравнению с Wi-Fi) Микросотовая SIP DECT система на базе Gigaset N870 IP PRO позволяет развернуть бесшовную масштабируемую микросотовую систему вплоть до 20000 абонентов. О настройке DECT станции для работы с 3CX и пойдет речь в данной статье. Поддержка данной DECT-базы со стороны 3CX возможна, начиная с версии DECT-базы 2.16.2 и выше. Шаг 1. Включение DHCP мода (All in One) Зажмите кнопку базы на 10 секунд, до тех пор, пока не выключатся LED индикаторы. Нажав на кнопку, выберите роль устройства. В зависимости от цвета и сочетания LED индикаторов, база будет иметь разные роли. Нажмите кнопку базы. Оба LED индикатора станут синими и база получит роль Интегратор/DECT-менеджера/База с динамическим IP-адресом. Зажмите кнопку базы на 5 секунд для подтверждения новой роли. Устройству необходимы 5 минут на перезагрузку и появления в сети как Интегратора/DECT-менеджера/Базы с настройками по умолчанию. После перезагрузки, LED-светодиоды на базовой станции показывают разными цветами когда изменяется роль. Шаг 2. Обновление базы до рекомендуемой версии программного обеспечения Последние поддерживаемые версии программного обеспечения (ПО) можно скачать здесь (https://teamwork.gigaset.com/gigawiki/pages/viewpage.action?pageId=702251506) Введите в браузере IP-адрес базы. В роли Интегратора с динамическим IP-адресом, DECT-база получает IP-адрес от DHCP-сервера. Найдите IP-адрес базы на своем DHCP сервере по MAC-адресу базы (указан на обратной стороне устройства). При необходимости обратитесь к вашему системному администраторе. Для подключения рекомендуется использовать веб-браузер Google Chrome или Mozilla Firefox. Введите логин admin и пароль admin. При первом подключении необходимо установить новый пароль и выбрать DECT-диапазон. Введите новый пароль, выберите диапазон 1880 1900 МГц для Европы. Затем нажмите на кнопку Set. Перейдите в Settings , затем перейдите в System -> Firmware. Нажмите на Browse и выберите файл прошивки, который вы хотите установить. Нажмите на кнопку Upload и дождитесь завершения загрузки файла на базу. Нажмите на кнопку Set для начала обновления и загрузки ПО. Шаг 3. Настройка базы в 3CX. Запишите MAC адрес базы (указан на обратной стороне устройства). В 3CX перейдите в Дополнительно -> Устройства FXS/DECT. Нажмите на Добавить FXS/DECT Выберите производителя Gigaset. Выберите модель Gigaset N870. Укажите MAC-адрес устройства. Нажмите ОК. Скопируйте ссылку автонастройки. Перейдите на вкладку Добавочные номера и выберите номер, который будет назначен на данную базу. Нажмите ОК. Шаг 4. Настройка базы через Веб-интерфейс. Введите IP-адрес базы в адресную строку веб-браузера. Перейдите в Settings. Перейдите в System -> Provisioning and configuration. Вставьте скопированную в шаге 3 ссылке в поле Provisioning server. Нажмите Set, а затем нажмите Start auto configuration. Шаг 5. Регистрация DECT-трубок. Введите IP-адрес базы в адресную строку веб-браузера. Перейдите в Mobile Devices -> Administration. Нажмите на значок карандаша для редактирования учетной записи. Измените значение RegStatus на To register Нажмите кнопку Register now. Перейдите в Mobile Devices -> Registration Centre Нажмите на кнопку Start Now Нажмите на кнопку Регистрация на трубке и введите PIN код (по умолчанию 0000) для подтверждения регистрации. К сожалению, DECT системы поддерживают не весь функционал 3CX и имеют следующие ограничения: Нет поддержки STUN (возможно использовать только SBC) Нет полной поддержки CTI (только звонки) Нет LCD Language Provisioning Нет возможности установить различные мелодии вызова для внешних вызовов, очередей или IVR Нет поддержки 3CX Firmware Management Нет поддержки Paging групп (включая Multicast)
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59