Содержание


Управление кластерами Vertica в среде SaaS

Часть 1. Копирование баз данных Vertica между кластерами

Comments

Серия контента:

Этот контент является частью # из серии # статей: Управление кластерами Vertica в среде SaaS

Следите за выходом новых статей этой серии.

Этот контент является частью серии:Управление кластерами Vertica в среде SaaS

Следите за выходом новых статей этой серии.

NIOD — это продукт IBM® Unica® в комплексе Enterprise Marketing Management (EMM), предназначенный для клиентов, использующих среду SaaS на базе кластеров Hewlett-Packard® Vertica. Первым шагом в настройке базы данных Vertica является установка Vertica на целевой кластер. Исходный и целевой кластеры имеют три узла. Проверяется наличие требуемых пакетов и выполнение необходимых условий для копирования базы данных между кластерами. На целевом кластере создается пустая база данных. Затем база данных копируется с исходного кластера на целевой.

Авторизация на узлах исходного и целевого кластеров Vertica

Убедитесь в том, что пользователь dbadmin может проходить SSH-авторизацию без пароля для каждого узла исходного и целевого кластеров. Пользователь dbadmin должен иметь возможность авторизоваться на всех исходных и целевых узлах без ввода пароля. Кроме того, этот пользователь должен иметь возможность проходить авторизацию в обратном направлении, то есть со всех узлов целевого кластера на всех узлах исходного кластера.

Для простоты предполагается использование следующих исходных и целевых кластеров и узлов Vertica:

Таблица 1. Сведения об исходном и целевом кластерах Vertica
Тип кластераИмя узла кластераIP-адресИмя БДПользователь
Исходныйsource01.niod.unica.net10.10.10.1unicl01dbadmin
source02.niod.unica.net10.10.10.2unicl01dbadmin
source03.niod.unica.net10.10.10.3unicl01dbadmin
Целевойtarget01.niod.unica.net10.10.10.4dbadmin
target02.niod.unica.net10.10.10.5dbadmin
target03.niod.unica.net10.10.10.6dbadmin

Копирование инсталлятора Vertica на узел целевого кластера

Предположим, что двоичный файл Vertica vertica-5.0.12-0.x86_64.RHEL5.rpm доступен на исходном кластере и может быть скопирован на целевой кластер.

Скопируйте этот двоичный файл с исходного кластера на первый узел целевого кластера target01.niod.unica.net (10.10.10.4).

Например:

[ambarsag@source01 Vertica-binaries]$ scp vertica-5.0.12-0.x86_64.RHEL5.rpm ambarsag@10.10.10.4:/local/Vertica-binaries

Примечание: убедитесь в том, что этот двоичный файл был скопирован на узел целевого кластера и предоставьте полные права доступа, чтобы пользователь dbadmin мог его запустить.
[ambarsag@target01 Vertica-binaries]$ chmod -R 777 vertica-5.0.12-0.x86_64.RHEL5.rpm

Проверка пакетов на целевом кластере

Убедитесь в том, что на каждом узле целевого кластера есть требуемые пакеты и файлы.

Проверка sudo и Python

Убедитесь в доступности sudo и Python на всех хостах целевого кластера. Убедитесь в том, что у вас есть полномочия на их использование на этих хостах, выполнив в оболочке следующую команду:

[root@target01 dbadmin]# which sudo
/usr/bin/sudo
[root@target01 /]# which python
/usr/bin/python

[root@target02 ~]# which sudo 
/usr/bin/sudo 
[root@target02 /]# which python
/usr/bin/python

[root@target03 ~]# which sudo
/usr/bin/sudo
[root@target03 /]# which python
/usr/bin/python

Проверка rsync и версии

Убедитесь в том, что на всех хостах кластера установлен rsync версии 3.0.5 или выше.

[root@target01 /]# which rsync
/usr/bin/rsync
[root@target01 /]# rsync --version
rsync  version 3.0.6  protocol version 30

Примечание: выполните такую проверку на двух других узлах, target02 и target03.

Проверка файла su

Убедитесь в наличии файла su в каталоге /etc/pam.d на всех узлах кластера.

[root@target01 pam.d]# pwd
/etc/pam.d

Примечание: выполните такую проверку на двух других узлах, target02 и target03.

Проверка демона NTP

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

Примечание: если демон NTP установлен, то результат будет похож на следующий:

Результат указывает уровни, на которых выполняется демон. Убедитесь в том, что для текущего уровня выполнения системы (обычно 3 или 5) демон NTP имеет значение ON.

[root@target01 pam.d]# chkconfig --list ntpd 
ntpd            0:off   1:off   2:on    3:on    4:on    5:on    6:off 

[root@target01 /]# runlevel 
N 3

Примечание: выполните такую проверку на двух других узлах, target02 и target03.

Определение адреса обратной связи

Убедитесь в том, что файл /etc/hosts существует. Убедитесь в том, что этот файл содержит адрес обратной связи 127.0.0.1 только с полным и кратким именем localhost.

Например:

127.0.0.1 localhost.localdomain localhost

Примечание: выполните такую проверку на двух других узлах, target02 и target03.

Настройка файла hosts

Настройте файл /etc/hosts на каждом узле кластера

Убедитесь в том, что файл /etc/hosts включает все хосты, которые становятся частью кластера.

[root@target01 /]# vi /etc/hosts

Добавьте в файл hosts следующую запись:

#Vertica HB
10.10.10.4     target01.niod.unica.net
10.10.10.5     target02.niod.unica.net
10.10.10.6     target03.niod.unica.net

Примечание: выполните эти действия на двух других узлах, target02 и target03.

Убедитесь в том, что порт 5433 не используется

[root@target01 /]# netstat -atup
[root@target01 /]# vi /etc/services

Эта команда не выводит номер порта, если он идентифицируется сервисом, определенным в /etc/services. Порт 5433 могут использовать такие сервисы, как pyrrho, nibbler и postgresql.

Примечание: выполните такую проверку на двух других узлах, target02 и target03.

Убедитесь в том, что файловая система /dev/pts смонтирована

[root@target01 /]# cd /dev/pts
[root@target02 /]# cd /dev/pts
[root@target03 /]# cd /dev/pts

Установка Vertica на целевой кластер

Выберите один их хостов кластера в качестве административного хоста для целей установки Vertica и использования инструментов администрирования Vertica. В данном случае для установки используется узел target01.niod.unica.net.

Запуск установочного пакета RPM

Примечание: поскольку для входа с правами root используется sudo (sudo su -), необходимо использовать sudo и для запуска установочного пакета RPM.

[root@target01 Vertica-binaries]# sudo rpm -Uvh /local/Vertica-binaries/vertica-5.0.12-0.x86_64.RHEL5.rpm

Preparing...                ########################################### [100%]
   1:vertica                ########################################### [100%]

Vertica Analytic Database V5.0.12-0 successfully installed on host target01.niod.unica.net

Примечание: если вы пользователь root, выполните следующую команду:

# rpm -Uvh pathname

Примечание: эта команда создает каталог /opt/vertica.

[root@target01 vertica]# pwd
/opt/vertica				
[root@target01 vertica]# ls	
bin  config  examples  include  java  lib  lib64  log  oss  packages  sbin  scripts  sdk  share  spread
Запуск сценария установки

Запустите сценарий установки из каталога /opt/vertica/sbin.

Примечание: в случае запуска сценария установки Vertica без параметров выполняется установка на один узел localhost.

Если вы пользователь root:

# /opt/vertica/sbin/install_vertica -s host_list -r rpm_package -u dba_username

Если вы используете sudo:

$ sudo /opt/vertica/sbin/install_vertica -s host_list -r rpm_package -u dba_username

Примечание: параметры -r и -s при установке на один узел не требуются.

Пример:

[ambarsag@target01 sbin]$
sudo /opt/vertica/sbin/install_vertica -s 10.10.10.4,10.10.10.5,10.10.10.6 -r /local/Vertica-binaries/vertica-5.0.12-0.x86_64.RHEL5.rpm -u dbadmin -p xxxx -g dbadmin

где:

  • -sсписок хостов
  • -rпакет RPM
  • -u — пользователь dbadmin
  • -p — пароль для пользователя dbadmin
  • -g — группа пользователя dbadmin

После успешного завершения установки вы увидите следующее сообщение:

Verifying spread configuration on whole cluster 
Creating node node0001 definition for host 10.10.10.4 
... Done
Creating node node0002 definition for host 10.10.10.5
... Done
Creating node node0003 definition for host 10.10.10.6 
... Done 
Error Monitor  0 errors  0 warnings 
Installation complete.

Необходимые условия для копирования базы данных из источника в целевой кластер

Для копирования исходной базы данных unicl01 на узлы целевого кластера должны быть выполнены следующие условия.

В целевом кластере должно быть такое же количество узлов, что и в исходном кластере

Убедитесь в том, что исходный и целевой кластеры Vertica имеют одинаковое количество узлов.

Доступность с исходного кластера

Вам может потребоваться добавление имени хоста каждого узла целевого кластера в файл hosts на исходном кластере. Поскольку этот экземпляр базы данных инициируется с одного из узлов исходного кластера, все файлы hosts исходных узлов должны содержать имена целевых хостов.

Как пользователь root выполните на первом узле исходного кластера source01.niod.unica.net следующие действия.

[root@source01 /]# vi /etc/hosts

#Vertica SOURCE
10.10.10.1      source01.niod.unica.net
10.10.10.2      source02.niod.unica.net
10.10.10.3      source03.niod.unica.net

#Vertica TARGET
10.10.10.4     target01.niod.unica.net
10.10.10.5     target02.niod.unica.net
10.10.10.6     target03.niod.unica.net

Примечание: выполните такие действия на двух других узлах, source02 и source03.

Копирование файла лицензии с исходного кластера на целевой

Файл лицензии license.key необходимо скопировать на все узлы целевого кластера. Предположим, что файл лицензии находится на исходном узле в каталоге /opt/vertica/config/share. В таком случае файл лицензии копируется на каждый узел целевого кластера в каталог /opt/vertica/config/share.

Пример:

source01:/opt/vertica/config/share $ ls -la
-rw-rw-rw- 1 dbadmin verticadba  547 Nov 16  2011 license.key

source01:/home/dbadmin $ scp license.key dbadmin@10.10.10.4:/opt/vertica/config/share

Примечание: скопируйте файл лицензии на два других узла целевого кластера, 10.10.10.5 и 10.10.10.6.

Создание пустой базы данных в целевом кластере

Теперь в целевом кластере создайте пустую базу данных с именем unicl01. Новая база данных должна иметь то же имя, что и копируемая. Эта база данных может быть пустой.

Действия по созданию пустой базы данных в целевом кластере:

  • Авторизуйтесь на узле target01.niod.unica.net как пользователь dbadmin.
  • Запустите Vertica Admintools:
    [dbadmin@target01 bin]$ /opt/vertica/bin/admintools
  • Откроется окно Main Menu.
  • Выберите пункт Configuration Menu.
Рисунок 1. Выбор Configuration Menu
The Main Menu with Configuration Menu as the sixth item.
The Main Menu with Configuration Menu as the sixth item.
  • Нажмите OK.
  • В окне Configuration Menu щелкните по пункту Create Database.
Рисунок 2. Выбор Create Database
The Configuration Menu with Create Database as the first item.
The Configuration Menu with Create Database as the first item.
  • Нажмите OK.
  • Введите имя базы данных и комментарий (не обязательно).
    dbname: unicl01
    comment: Copy db from source to target vertica cluster.
  • Нажмите OK.
  • Введите пароль для новой базы данных.
  • Нажмите OK.
  • Введите пароль еще раз и нажмите OK.
  • Выберите узлы целевого кластера, на которых вы хотите создать ту же базу данных.
    [X] 10.10.10.4 
    [X] 10.10.10.5 
    [X] 10.10.10.6
  • Путь к каталогу: /home/dbadmin
  • Путь к данным: /home/dbadmin
  • Нажмите OK.
  • В окне Current Database Definition проверьте информацию и нажмите Yes.

Примечание: База данных unicl01 создается на всех трех узлах целевого кластера. В Vertica Admintools можно просматривать, а также подключать, запускать и останавливать базу данных.

Копирование базы данных Vertica из источника в целевой кластер

Создайте каталоги резервного копирования на всех трех узлах целевого кластера. Затем создайте файл конфигурации для выполнения вместе с командой copycluster.

Создание каталога резервного копирования на целевых узлах

На всех трех узлах целевого кластера создайте каталог резервного копирования /home/dbadmin/backups. Затем измените владельца на dbadmin.

[root@target01 /]# mkdir /home/dbadmin/backups
[root@target01 /]# chown -R dbadmin:dbadmin /home/dbadmin/backups

Примечание: повторите эти действия на двух других узлах кластера, target02 и target03.

Идентификация имени узла базы данных

Определите имена узлов базы данных в исходном кластере, которые будут использоваться в файле конфигурации при выполнении команды copycluster. Например:

source01:/opt/vertica/config $ /opt/vertica/bin/admintools -t node_map -d unicl01
DATABASE   | NODENAME               | HOSTNAME 
--------------------------------------------------------
unicl01  | v_unicl01_node0001   | 10.10.10.1 
unicl01  | v_unicl01_node0002   | 10.10.10.2 
unicl01  | v_unicl01_node0003   | 10.10.10.3

Примечание: имя после флага -d — это имя базы данных.

Создание файла конфигурации

Вам необходимо создать файл конфигурации CopyCluster.ini на исходном узле source01.niod.unica.net. Например:

Имя файла: CopyCluster.ini
Путь:  /opt/vertica/config/CopyCluster.ini
Пример содержимого файла CopyCluster.ini
[Misc]
snapshotName = CopySourceDB
tempDir = /tmp
verticaConfig = False 
retryCount = 5
retryDelay = 1

[Database] 
dbName = unicl01
dbUser = dbadmin
dbPassword = xxxx
dbPromptForPassword = False
[Transmission]
encrypt = False
checksum = False
port_rsync = 50000
bwlimit = 0 
hardLinkLocal = False

[Mapping0]
dbNode = v_unicl01_node0001 
backupHost = 10.10.10.4
backupDir = /home/dbadmin/backups

[Mapping1]
dbNode = v_unicl01_node0002 
backupHost = 10.10.10.5 
backupDir = /home/dbadmin/backups 

[Mapping2]
dbNode = v_unicl01_node0003 
backupHost = 10.10.10.6
backupDir = /home/dbadmin/backups

Примечание:

  • dbNode — имя каждого узла исходного кластера
  • backupHost — имя узла целевого кластера
  • backupDir — каталог резервного копирования на узле целевого кластера
  • dbName — имя исходной базы данных unicl01
  • dbUser — администратор, один и тот же в исходном и целевом кластерах
  • dbPassword — пароль для исходной базы данных.
Выполнение команды copycluster

Для копирования кластера необходимо выполнить сценарий vbr.py на узле в исходной базе данных. Используйте учетную запись администратора базы данных, передавая команду --task copycluster. Если вы создали файл конфигурации специально для копирования базы данных, используйте параметр --config-file, чтобы сообщить утилите резервного копирования его местоположение.

Выполните следующую команду как пользователь dbadmin на узле source01.niod.unica.net. Перейдите в каталог: /opt/vertica/config/CopyCluster.ini.

source01:/home/dbadmin $ cd /opt/vertica/config
source01:/opt/vertica/config $ vbr.py --config-file CopyCluster.ini --task copycluster

Примечание: на этом этапе вы можете получить следующее сообщение об ошибке:

Node v_unicl01_node0001 of target cluster is not DOWN; cannot copycluster.
copycluster failed!

Вам необходимо остановить базу данных unicl01 на узле source01.niod.unica.net, используя Vertica Admintools. Этим действием останавливается база данных и на других двух узлах. Остановив базу данных, снова выполните команду CopyCluster.

source01:/opt/vertica/config $ vbr.py --config-file CopyCluster.ini --task copycluster

Вы можете получить следующее сообщение, в зависимости от размера исходной базы данных:

Copying...
151093501882 out of 151093501882, 100%

После успешного завершения копирования базы данных из исходного кластера в целевой вы можете запустить базу данных. Запустите базу данных с любого узла целевого кластера, используя Vertica Admintools.

Заключение

В статье описываются пакеты Vertica, необходимые для выполнения установки, а также различные конфигурации и настройки. Процесс копирования баз данных Vertica для клиентов IBM NIOD в среде SaaS включает создание пустой базы данных, настройку файла конфигурации и выполнение команды copycluster с использованием сценария vbr.py.

Благодарность

Автор выражает благодарность Марьяне Ивкович (Marjana Ivkovic, mivkovic@us.ibm.com), руководителю группы архитекторов приложений EMM SaaS Ops, за поддержку и ценные технические рекомендации, оказавшие помощь в подготовке этой статьи.


Ресурсы для скачивания


Похожие темы


Комментарии

Войдите или зарегистрируйтесь для того чтобы оставлять комментарии или подписаться на них.

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=40
Zone=Information Management
ArticleID=1032458
ArticleTitle=Управление кластерами Vertica в среде SaaS: Часть 1. Копирование баз данных Vertica между кластерами
publish-date=05312016