versus
|
|
« Ответ #15 : 18 Марта 2011, 02:22:56 » |
|
Ядро биллинга ка кбы не учавствует в процессе авторизации, оно только дает команду на выключение.
Авторизация идет двумя способами, классический через ключик, посредством сервера авторизации и новый рекомендуемый через радиус. Основная проблема при авторизации на слейв базе будет в том. что сервер доступа noserver.pl не увидет авторизованных клиентов и соотвественно не пустит их в интернет. Поэтому как бы лучше все таки делать репликацию мастер мастер, что бы авторизация распространялась на всех участников репликации, с которой у же сервер доступа сможет выпустить клиента в интернет.
|
|
|
Записан
|
|
|
|
blackjack
NoDeny
Старожил
Карма: 24
Offline
Сообщений: 352
|
|
« Ответ #16 : 18 Марта 2011, 19:25:07 » |
|
при репликации мастер мастер, постоянно вылазят косяки с дупликейт записями, вследствие хранимых процедур и триггеров
|
|
|
Записан
|
|
|
|
Rico-X
NoDeny
Старожил
Карма: 7
Offline
Сообщений: 349
|
|
« Ответ #17 : 18 Марта 2011, 20:13:13 » |
|
Есть такое дело и carp падает переодически. По этому использую мастер-слейф, если что можно руками за пару минут переключить и не париться.
|
|
|
Записан
|
|
|
|
Efendy
|
|
« Ответ #18 : 19 Марта 2011, 00:21:50 » |
|
при репликации мастер мастер, постоянно вылазят косяки с дупликейт записями, вследствие хранимых процедур и триггеров
процитируй ошибку какую-нить
|
|
|
Записан
|
|
|
|
Andrey Zentavr
NoDeny
Старожил
Карма: 29
Offline
Сообщений: 301
|
|
« Ответ #19 : 19 Марта 2011, 01:31:08 » |
|
при репликации мастер мастер, постоянно вылазят косяки с дупликейт записями, вследствие хранимых процедур и триггеров
Можно конфиг обоих MySQL серваков? может поможет такой финт: ServerA: ### Rackspace MySQL 4.1/5.0 Verbose Configuration File v1.1 ### ### This is a base configuration file containing the most frequently used ### settings with reasonably defined default values for configuring and ### tuning MySQL. Note that these settings can likely be further tuned ### in order to get optimum performance from MySQL based upon the database ### configuration and hardware platform. ### ### While the settings provided are likely sufficient for most situations, an ### exhaustive list of settings (with descriptions) can be found at: ### ### For MySQL 4.1: ### http://dev.mysql.com/doc/refman/4.1/en/server-system-variables.html ### For MySQL 5.0: ### http://dev.mysql.com/doc/refman/5.0/en/server-system-variables.html ### ### Further configuration file examples (with and without comments) can be ### found in @@@mysql_server_docdir@@@. ### ### Take care to only add/remove/change a setting if you are comfortable ### doing so! For Rackspace customers, if you have any questions or concerns, ### please contact the MySQL Database Services Team. Be aware that some work ### performed by this team can involve additional billable fees.
[mysqld]
# __________________ #< General Settings > # ------------------ # \ ^__^ # \ (oo)\_______ # (__)\ )\/\ # ||----w | # || ||
# Misc Settings # ------------- datadir=/var/lib/mysql #tmpdir=/var/lib/mysqltmp socket=/var/lib/mysql/mysql.sock skip-locking #skip-name-resolve table_cache=2048 thread_cache_size=16 back_log=100 max_connect_errors=10000 open-files-limit=20000 interactive_timeout=600 wait_timeout=600 #max_connections=200
# Set this to change the way MySQL handles validation, data # conversion, etc. Be careful with this setting as it can # cause unexpected results and horribly break some applications! # Note, too, that it can be set per-session and can be hard set # in stored procedures. #sql_mode=TRADITIONAL
# Slow Query Log Settings # ----------------------- #log-slow-queries=/var/lib/mysqllogs/slow-log #long_query_time=2 #log-queries-not-using-indexes
# Global, Non Engine-Specific Buffers # ----------------------------------- max_allowed_packet=16M tmp_table_size=64M max_heap_table_size=64M
# Generally, it is unwise to set the query cache to be # larger than 64-128M as this can decrease performance # since the penalty for flushing the cache can become # significant. query_cache_size=32M
# Per-Thread Buffers # ------------------ sort_buffer_size=1M read_buffer_size=1M read_rnd_buffer_size=8M join_buffer_size=1M
# __________________________ #< Engine Specific Settings > # -------------------------- # \ ^__^ # \ (oo)\_______ # (__)\ )\/\ # ||----w | # || ||
# Set this to force MySQL to use a particular engine / table-type # for new tables. This setting can still be overridden by specifying # the engine explicitly in the CREATE TABLE statement. #default-storage-engine=InnoDB
# MyISAM # ------
# Not sure what to set this to? # Try running a 'du -sch /var/lib/mysql/*/*.MYI' # This will give you a good estiamte on the size of all the MyISAM indexes. # (The buffer may not need to set that high, however) key_buffer_size=64M
# This setting controls the size of the buffer that is allocated when # sorting MyISAM indexes during a REPAIR TABLE or when creating indexes # with CREATE INDEX or ALTER TABLE. myisam_sort_buffer_size=64M
# InnoDB # ------ # Note: While most settings in MySQL can be set at run-time, InnoDB # variables require restarting MySQL to apply.
# If the customer already has InnoDB tables and wants to change the # size of the InnoDB tablespace and InnoDB logs, then: # 1. Run a full backup with mysqldump # 2. Stop MySQL # 3. Move current ibdata and ib_logfiles out of /var/lib/mysql # 4. Uncomment the below innodb_data_file_path and innodb_log_file_size # 5. Start MySQL (it will recreate new InnoDB files) # 6. Restore data from backup #innodb_data_file_path=ibdata1:2000M;ibdata2:10M:autoextend #innodb_log_file_size=100M
# InnoDB loves RAM. For customers using mostly InnoDB, consider setting # this variable somewhat liberally. Do make sure the server is 64-bit, # however, if you plan on setting it above 1.5-2GB. innodb_buffer_pool_size=16M
#innodb_additional_mem_pool_size=20M
# innodb_file_per_table can be useful in certain cases # but be aware that it does not scale well with a # large number of tables! #innodb_file_per_table=1
# Somewhat equivalent to table_cache for InnoDB # when using innodb_file_per_table. #innodb_open_files=1024
# If you are not sure what to set this two, the # following formula can offer up a rough idea: # (number of cpus * number of disks * 2) #innodb_thread_concurrency=16
# _____________________________ #< Replication/Backup Settings > # ----------------------------- # \ ^__^ # \ (oo)\_______ # (__)\ )\/\ # ||----w | # || ||
server-id=2
# Master Side master-host=10.0.0.1 master-user=replication master-password=Sf8kClPs master-port=3306
replicate-same-server-id=0
# It may be wise to include the server-name or an easy identifier # to the server in these logs, such as 'log-bin=/var/lib/mysqllogs/db1-bin-log' log-bin=/var/lib/mysqllogs/bin-log log-bin-index=/var/lib/mysqllogs/bin-log.index relay-log=/var/lib/mysqllogs/relay-log relay-log-index=/var/lib/mysqllogs/relay-log.index
# MySQL 5.0+ Only expire_logs_days=14
# This is usually only needed when setting up chained replication. log-slave-updates
# Enable this to make replication more resilient against server # crashes and restarts, but can cause higher I/O on the server. #sync_binlog=1
# If the server is a standard MySQL slave, it would be wise # to enable read-only mode to prevent stray writes that could # break replication # read_only=1
# MySQL 5.0+ Only # Uncomment the following when enabling multi-master replication # Do NOT uncomment these unless you know exactly what you are doing! auto_increment_increment=10 auto_increment_offset=2
## databases replicate-do-db = nodeny replicate-do-db = repdb replicate-ignore-db=mysql replicate-ignore-db=test
# _________________ #< Script Settings > # ----------------- # \ ^__^ # \ (oo)\_______ # (__)\ )\/\ # ||----w | # || || # (You probably do not need to change these)
[mysql.server] user=mysql #basedir=/var/lib
[mysqld_safe] log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid open-files-limit=65535
ServerB: ### Rackspace MySQL 4.1/5.0 Verbose Configuration File v1.1 ### ### This is a base configuration file containing the most frequently used ### settings with reasonably defined default values for configuring and ### tuning MySQL. Note that these settings can likely be further tuned ### in order to get optimum performance from MySQL based upon the database ### configuration and hardware platform. ### ### While the settings provided are likely sufficient for most situations, an ### exhaustive list of settings (with descriptions) can be found at: ### ### For MySQL 4.1: ### http://dev.mysql.com/doc/refman/4.1/en/server-system-variables.html ### For MySQL 5.0: ### http://dev.mysql.com/doc/refman/5.0/en/server-system-variables.html ### ### Further configuration file examples (with and without comments) can be ### found in @@@mysql_server_docdir@@@. ### ### Take care to only add/remove/change a setting if you are comfortable ### doing so! For Rackspace customers, if you have any questions or concerns, ### please contact the MySQL Database Services Team. Be aware that some work ### performed by this team can involve additional billable fees.
[mysqld]
# __________________ #< General Settings > # ------------------ # \ ^__^ # \ (oo)\_______ # (__)\ )\/\ # ||----w | # || ||
# Misc Settings # ------------- datadir=/var/lib/mysql #tmpdir=/var/lib/mysqltmp socket=/var/lib/mysql/mysql.sock skip-locking #skip-name-resolve table_cache=2048 thread_cache_size=16 back_log=100 max_connect_errors=10000 open-files-limit=20000 interactive_timeout=600 wait_timeout=600 #max_connections=200
# Set this to change the way MySQL handles validation, data # conversion, etc. Be careful with this setting as it can # cause unexpected results and horribly break some applications! # Note, too, that it can be set per-session and can be hard set # in stored procedures. #sql_mode=TRADITIONAL
# Slow Query Log Settings # ----------------------- #log-slow-queries=/var/lib/mysqllogs/slow-log #long_query_time=2 #log-queries-not-using-indexes
# Global, Non Engine-Specific Buffers # ----------------------------------- max_allowed_packet=16M tmp_table_size=64M max_heap_table_size=64M
# Generally, it is unwise to set the query cache to be # larger than 64-128M as this can decrease performance # since the penalty for flushing the cache can become # significant. query_cache_size=32M
# Per-Thread Buffers # ------------------ sort_buffer_size=1M read_buffer_size=1M read_rnd_buffer_size=8M join_buffer_size=1M
# __________________________ #< Engine Specific Settings > # -------------------------- # \ ^__^ # \ (oo)\_______ # (__)\ )\/\ # ||----w | # || ||
# Set this to force MySQL to use a particular engine / table-type # for new tables. This setting can still be overridden by specifying # the engine explicitly in the CREATE TABLE statement. #default-storage-engine=InnoDB
# MyISAM # ------
# Not sure what to set this to? # Try running a 'du -sch /var/lib/mysql/*/*.MYI' # This will give you a good estiamte on the size of all the MyISAM indexes. # (The buffer may not need to set that high, however) key_buffer_size=64M
# This setting controls the size of the buffer that is allocated when # sorting MyISAM indexes during a REPAIR TABLE or when creating indexes # with CREATE INDEX or ALTER TABLE. myisam_sort_buffer_size=64M
# InnoDB # ------ # Note: While most settings in MySQL can be set at run-time, InnoDB # variables require restarting MySQL to apply.
# If the customer already has InnoDB tables and wants to change the # size of the InnoDB tablespace and InnoDB logs, then: # 1. Run a full backup with mysqldump # 2. Stop MySQL # 3. Move current ibdata and ib_logfiles out of /var/lib/mysql # 4. Uncomment the below innodb_data_file_path and innodb_log_file_size # 5. Start MySQL (it will recreate new InnoDB files) # 6. Restore data from backup #innodb_data_file_path=ibdata1:2000M;ibdata2:10M:autoextend #innodb_log_file_size=100M
# InnoDB loves RAM. For customers using mostly InnoDB, consider setting # this variable somewhat liberally. Do make sure the server is 64-bit, # however, if you plan on setting it above 1.5-2GB. innodb_buffer_pool_size=16M
#innodb_additional_mem_pool_size=20M
# innodb_file_per_table can be useful in certain cases # but be aware that it does not scale well with a # large number of tables! #innodb_file_per_table=1
# Somewhat equivalent to table_cache for InnoDB # when using innodb_file_per_table. #innodb_open_files=1024
# If you are not sure what to set this two, the # following formula can offer up a rough idea: # (number of cpus * number of disks * 2) #innodb_thread_concurrency=16
# _____________________________ #< Replication/Backup Settings > # ----------------------------- # \ ^__^ # \ (oo)\_______ # (__)\ )\/\ # ||----w | # || ||
server-id=1
# Master Side master-host=10.0.0.2 master-user=replication master-password=4wi3k78J master-port=3306
replicate-same-server-id=0
# It may be wise to include the server-name or an easy identifier # to the server in these logs, such as 'log-bin=/var/lib/mysqllogs/db1-bin-log' log-bin=/var/lib/mysqllogs/bin-log log-bin-index=/var/lib/mysqllogs/bin-log.index relay-log=/var/lib/mysqllogs/relay-log relay-log-index=/var/lib/mysqllogs/relay-log.index
# MySQL 5.0+ Only expire_logs_days=14
# This is usually only needed when setting up chained replication. log-slave-updates
# Enable this to make replication more resilient against server # crashes and restarts, but can cause higher I/O on the server. #sync_binlog=1
# If the server is a standard MySQL slave, it would be wise # to enable read-only mode to prevent stray writes that could # break replication # read_only=1
# MySQL 5.0+ Only # Uncomment the following when enabling multi-master replication # Do NOT uncomment these unless you know exactly what you are doing! auto_increment_increment=10 auto_increment_offset=1
## databases replicate-do-db = nodeny replicate-do-db = repdb replicate-ignore-db=mysql replicate-ignore-db=test
# _________________ #< Script Settings > # ----------------- # \ ^__^ # \ (oo)\_______ # (__)\ )\/\ # ||----w | # || || # (You probably do not need to change these)
[mysql.server] user=mysql #basedir=/var/lib
[mysqld_safe] log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid open-files-limit=65535
Именно вся прелесть в настройках для автоинкремента: на одной ноде auto_increment_increment=10 auto_increment_offset=1
и второй ноде auto_increment_increment=10 auto_increment_offset=2
|
|
|
Записан
|
|
|
|
versus
|
|
« Ответ #20 : 20 Марта 2011, 12:54:57 » |
|
Четные айди на одном мастере, нечетные на другом при добалвении записей никто не отменял!!!
|
|
|
Записан
|
|
|
|
Rico-X
NoDeny
Старожил
Карма: 7
Offline
Сообщений: 349
|
|
« Ответ #21 : 20 Марта 2011, 14:56:27 » |
|
При такой настройке вылазит бок при генерации карт оплаты, так что инкременты приходится вернуть на исходные.
|
|
|
Записан
|
|
|
|
Andrey Zentavr
NoDeny
Старожил
Карма: 29
Offline
Сообщений: 301
|
|
« Ответ #22 : 21 Марта 2011, 01:00:16 » |
|
Четные айди на одном мастере, нечетные на другом при добалвении записей никто не отменял!!!
Ну как бы именно про это и пост
|
|
|
Записан
|
|
|
|
Andrey Zentavr
NoDeny
Старожил
Карма: 29
Offline
Сообщений: 301
|
|
« Ответ #23 : 21 Марта 2011, 01:01:50 » |
|
При такой настройке вылазит бок при генерации карт оплаты, так что инкременты приходится вернуть на исходные.
Какой собственно бок вылазит?? Я понимаю тот, когда простыня карт в настройках биллинга отображается? Да, есть такое.. Я когда с UTM5 переносил карточки - намучался с этим.
|
|
|
Записан
|
|
|
|
Rico-X
NoDeny
Старожил
Карма: 7
Offline
Сообщений: 349
|
|
« Ответ #24 : 25 Марта 2011, 15:46:33 » |
|
Бок в том, что то сгенерит одну карту и вылетет с ошибкой, то кинет целую простыню, то нагенерит кучу карт с одним номером, уже не помню всех вариаций с пол года назад было, потом плюнул и сделал мастер-слейф репликацию+ ежедневный бэкап как мастера так и слейва, благо падение базы не такое частое событие, чтоб нельзя было руками переткнуть. Ну и простенький скрипт на баше набросал, который у меня меняет мастер и слейф местами, так что хоть с мобильника его запускай, юзал 1 раз (выгорел бп на мастере) время простоя менее 10 минут, не особо критично при том что сателиты продолжали работать и уже авторизировавшиеся пользователи связи не потеряли.
|
|
|
Записан
|
|
|
|
Demeo
NoDeny
Постоялец
Карма: 6
Offline
Сообщений: 204
|
|
« Ответ #25 : 18 Ноября 2011, 20:43:42 » |
|
Как раз сейчас есть необходимость в распределении нагрузки на 2 сервера с фейловером. CARP, я так понял, самый простой вариант. Если не юзать карт, еще какие-нибудь траблы могут быть при мастер-мастер репликации? Может кто поделится своим рабочим вариантом?
Юзаем pppoe авторизацию - два сервера не будут помехой? И какой тогда интерфейс писать в конфиге mpd - локальный или carp?
А если объединить в carp внешние интерфейсы - проблемы будут? Или лучше взять еще один IP? Но тогда будут отваливаться всякие там авторизации по IP
|
|
« Последнее редактирование: 18 Ноября 2011, 20:48:25 от Demeo »
|
Записан
|
|
|
|
Rico-X
NoDeny
Старожил
Карма: 7
Offline
Сообщений: 349
|
|
« Ответ #26 : 19 Ноября 2011, 17:01:44 » |
|
Иногда происходит разсинхронизация баз данных. Может стоит просто вынести отдельно pppoe авторизаторы оставив базу на отдельном сервере? Сателитов можно наплодить сколько угодно для снятия нагрузки. Carp иногда сбоит и самопроизвольно отваливается, с чем связано не выявил. Система мастер-мастер поработала в тестовом режиме пару месяцев, но так как случались сбои в работе перевел на мастер-слейф, что в разы стабильней, а вместо carp использовал банальный алиас, который при необходимости применялся на "живом" сервере отдельным скриптом привязанным к мониторингу.
|
|
|
Записан
|
|
|
|
Demeo
NoDeny
Постоялец
Карма: 6
Offline
Сообщений: 204
|
|
« Ответ #27 : 20 Ноября 2011, 00:28:39 » |
|
Скриптом, к сожалению, не получится распределить нагрузку на рррое-сервера. А CARP дает как бы рапределение+фейловер
|
|
|
Записан
|
|
|
|
Rico-X
NoDeny
Старожил
Карма: 7
Offline
Сообщений: 349
|
|
« Ответ #28 : 20 Ноября 2011, 10:30:03 » |
|
А можно мне открыть страшную тайну ЗАЧЕМ распределять нагрузку на pppoe сервера какими-то левыми средствами если несколько pppoe серверов запущенных в одной сети сами "из коробки" распределяют нагрузку между собой. Какой первый ответил, тот и подцепил пользователь, первым отвечает менее нагруженный, что не так?
|
|
|
Записан
|
|
|
|
Андрій
NoDeny
Старожил
Карма: 3
Offline
Сообщений: 294
|
|
« Ответ #29 : 20 Ноября 2011, 11:41:01 » |
|
А можно мне открыть страшную тайну ЗАЧЕМ распределять нагрузку на pppoe сервера какими-то левыми средствами если несколько pppoe серверов запущенных в одной сети сами "из коробки" распределяют нагрузку между собой. Какой первый ответил, тот и подцепил пользователь, первым отвечает менее нагруженный, что не так?
в такому варіанті є шанс що під одним логіном підключаться два користувача на різні сателіти
|
|
|
Записан
|
|
|
|
|