Commit c9d7f47164aa3ce56a0e31f88601ea39e1c9fbda
1 parent
8f912fc9
Bump to v0.2.0.
Use MariaDB 10.0 Include triggers, routines, and events in mysqldump command. Change some default values.
Showing
6 changed files
with
22 additions
and
8 deletions
1 | # cfe-mariadb-cookbook | 1 | # cfe-mariadb-cookbook |
2 | 2 | ||
3 | -This installs MariaDB by default and initiates databases and users. It can also install a script that performs a backup of all those databases into a designated S3 bucket. | 3 | +This installs MariaDB 10.0 by default and initiates databases and users. It can also install a script that performs a backup of all those databases into a designated S3 bucket. |
4 | 4 | ||
5 | 5 | ||
6 | The server is assumed to be using an IAM role with S3 bucket read/write access, instead of a physical credentials file. | 6 | The server is assumed to be using an IAM role with S3 bucket read/write access, instead of a physical credentials file. |
@@ -80,14 +80,19 @@ default['mariadb']['server_root_password'] = 'secretpassword' | @@ -80,14 +80,19 @@ default['mariadb']['server_root_password'] = 'secretpassword' | ||
80 | default['mariadb']['mysqld']['bind_address'] = '127.0.0.1' | 80 | default['mariadb']['mysqld']['bind_address'] = '127.0.0.1' |
81 | default['mariadb']['mysqld']['port'] = '3306' | 81 | default['mariadb']['mysqld']['port'] = '3306' |
82 | default['mariadb']['install']['type'] = 'package' | 82 | default['mariadb']['install']['type'] = 'package' |
83 | -default['mariadb']['install']['version'] = '5.5' | 83 | +default['mariadb']['install']['version'] = '10.0' |
84 | +default['mariadb']['use_default_repository'] = true | ||
84 | default['mariadb']['forbid_remote_root'] = true | 85 | default['mariadb']['forbid_remote_root'] = true |
85 | # io_capacity has to be roughly the IO capacity of the EC2 instance. | 86 | # io_capacity has to be roughly the IO capacity of the EC2 instance. |
86 | # buffer_pool_size can be increased to 75% (0.75) of RAM if dedicated server. | 87 | # buffer_pool_size can be increased to 75% (0.75) of RAM if dedicated server. |
87 | -default['mariadb']['innodb']['io_capacity'] = '30' | 88 | +default['mariadb']['innodb']['io_capacity'] = '40' |
88 | default['mariadb']['innodb']['buffer_pool_size'] = | 89 | default['mariadb']['innodb']['buffer_pool_size'] = |
89 | ( %x(free -m).split(' ')[7].to_i * 0.5 ).round.to_s | 90 | ( %x(free -m).split(' ')[7].to_i * 0.5 ).round.to_s |
90 | -default['mariadb']['mysqld']['open_files_limit'] = '19000' | 91 | +# Set innodb_open_files value same as table_open_cache. |
92 | +# But set open_files_limit as highest. | ||
93 | +default['mariadb']['innodb']['open_files'] = '2000' | ||
94 | +default['mariadb']['mysqld']['table_open_cache'] = '2000' | ||
95 | +default['mariadb']['mysqld']['open_files_limit'] = '24000' | ||
91 | 96 | ||
92 | ## Tip: | 97 | ## Tip: |
93 | ## For encrypted attributes like passwords, | 98 | ## For encrypted attributes like passwords, |
@@ -4,12 +4,12 @@ maintainer_email 'sysadmin @ chromedia.com' | @@ -4,12 +4,12 @@ maintainer_email 'sysadmin @ chromedia.com' | ||
4 | license 'Apache License' | 4 | license 'Apache License' |
5 | description 'Simplifies setup of MariaDB in Chromedia.' | 5 | description 'Simplifies setup of MariaDB in Chromedia.' |
6 | long_description IO.read(File.join(File.dirname(__FILE__), 'README.md')) | 6 | long_description IO.read(File.join(File.dirname(__FILE__), 'README.md')) |
7 | -version '0.1.3' | 7 | +version '0.2.0' |
8 | 8 | ||
9 | { | 9 | { |
10 | - 'mariadb' => '0.2.12', | ||
11 | - 'mysql2_chef_gem' => '1.0.2', | ||
12 | - 'database' => '4.0.9', | 10 | + 'mariadb' => '0.3.1', |
11 | + 'mysql2_chef_gem' => '1.1.0', | ||
12 | + 'database' => '5.1.2', | ||
13 | 'awscli' => '1.0.1', | 13 | 'awscli' => '1.0.1', |
14 | 'cron' => '1.7.4' | 14 | 'cron' => '1.7.4' |
15 | }.each { |cb, ver| depends cb, '~> ' + ver } | 15 | }.each { |cb, ver| depends cb, '~> ' + ver } |
@@ -21,6 +21,9 @@ | @@ -21,6 +21,9 @@ | ||
21 | # Some notes: | 21 | # Some notes: |
22 | # If the DB server is dedicated, it might be a good idea to | 22 | # If the DB server is dedicated, it might be a good idea to |
23 | # add 'noatime' to the / disk's mount options. | 23 | # add 'noatime' to the / disk's mount options. |
24 | +# NOTE: | ||
25 | +# Make sure the open files limit are enforced for the mysql process. | ||
26 | +# If not, try restarting the mysql service for the config to take effect. | ||
24 | 27 | ||
25 | chef_gem 'chef-rewind' do | 28 | chef_gem 'chef-rewind' do |
26 | compile_time true if respond_to?(:compile_time) | 29 | compile_time true if respond_to?(:compile_time) |
@@ -28,6 +31,7 @@ end | @@ -28,6 +31,7 @@ end | ||
28 | require 'chef/rewind' | 31 | require 'chef/rewind' |
29 | 32 | ||
30 | mysql2_chef_gem 'default' do | 33 | mysql2_chef_gem 'default' do |
34 | + gem_version '0.4.4' | ||
31 | action :install | 35 | action :install |
32 | end | 36 | end |
33 | 37 |
@@ -40,6 +40,7 @@ export_db() { | @@ -40,6 +40,7 @@ export_db() { | ||
40 | echo "$(date) : Export database ${1}." | 40 | echo "$(date) : Export database ${1}." |
41 | "$mysqldump_bin" -h "$db_host" -P "$db_port" -C --opt \ | 41 | "$mysqldump_bin" -h "$db_host" -P "$db_port" -C --opt \ |
42 | --no-create-db --single-transaction --lock-tables \ | 42 | --no-create-db --single-transaction --lock-tables \ |
43 | + --routines --events --triggers \ | ||
43 | -u "$2" -p"$3" "$1" > "${bak_dir}/${4}" | 44 | -u "$2" -p"$3" "$1" > "${bak_dir}/${4}" |
44 | } | 45 | } |
45 | 46 |