Thanks James. Sadly, my budget for this is $0, so buying something is out 
of the question. 

Ivan - Sadly, periodic dumps aren't useful in this case - they take too 
long to create (1.5 hours), exacerbating the load issues on the master... 
unless I run 2 PGSQL instances on my backup server, where I pg_dump/restore 
the contents from the R/O DB in to a R/W periodically and make sure reports 
are run off of the "fresh" data. Not a clean solution, but a start. Thanks, 
I hadn't thought about that until you mentioned periodic dumps!

On Sunday, November 12, 2017 at 9:23:22 PM UTC-5, James Shewey wrote:
>
> You could try using ScaleArc (https://www.youtube.com/watch?v=C0jj4iaSkNE), 
> or if you think you could switch you DB to MariaDB you could use MaxScale (
> https://mariadb.com/products/technology/maxscale) to do read/write 
> splitting to a database cluster.
>
> On Friday, November 10, 2017 at 2:20:40 PM UTC-7, Chris Baldwin wrote:
>>
>> I'm trying to figure out how best to create a reporting-only instance of 
>> Foreman. This is because the reports being run on my production cluster 
>> have a tendency to overwhelm the DB and cause performance issues.
>>
>> My current idea:
>> Roll out a slave DB that's read-only, roll out a Foreman instance reading 
>> from the slave, tell all users to run reports against the r/o Foreman. I've 
>> done the first two items.
>>
>> My current problem:
>> Passenger won't start because the DB is read only.
>>
>> [ E 2017-11-10 12:53:27.1852 5260/Tr age/Cor/App/Implementation.cpp:304 
>> ]: Could not spawn process for application /usr/share/foreman: An error 
>> occurred while starting up the preloader.
>>   Error ID: e350b8ee
>>   Error details saved to: /tmp/passenger-error-uysq1A.html
>>   Message from application: PG::Error: ERROR:  cannot execute UPDATE in a 
>> read-only transaction
>> : UPDATE "settings" SET "full_name" = NULL WHERE "settings"."category" IN 
>> ('Setting::DefaultHostgroup') AND "settings"."id" = $1 
>> (ActiveRecord::StatementInvalid)
>>
>>
>> Is there an easy way to deal with this? While I'd love to find a magical 
>> bit to flip (didn't find one listed in the docs), I realize there might be 
>> some additional complexity here. For a limited deployment like this, I 
>> would consider some form of LB for reads vs writes (limited to this foreman 
>> instance).
>>
>> Versions, OS, etc:
>> Foreman 1.12
>> PostgreSQL 9.4.9
>> RHEL 6
>> Puppet 3.8
>> (yes, I would love to upgrade, but I'm stuck on this setup for a little 
>> bit.)
>>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Foreman users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/foreman-users.
For more options, visit https://groups.google.com/d/optout.

Reply via email to