<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Hack Admin &#187; Repair</title>
	<atom:link href="http://www.hackadmin.com/category/repair/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.hackadmin.com</link>
	<description></description>
	<lastBuildDate>Tue, 16 Mar 2010 21:31:57 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>The Beauty of mysqlcheck</title>
		<link>http://www.hackadmin.com/2009/06/22/the-beauty-of-mysqlcheck/</link>
		<comments>http://www.hackadmin.com/2009/06/22/the-beauty-of-mysqlcheck/#comments</comments>
		<pubDate>Mon, 22 Jun 2009 23:45:14 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Database]]></category>
		<category><![CDATA[Maintenance]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Repair]]></category>
		<category><![CDATA[checking all mysql tables in a database]]></category>
		<category><![CDATA[cluster]]></category>
		<category><![CDATA[master]]></category>
		<category><![CDATA[mysqlcheck]]></category>
		<category><![CDATA[Replication]]></category>
		<category><![CDATA[slave]]></category>

		<guid isPermaLink="false">http://www.hackadmin.com/?p=37</guid>
		<description><![CDATA[I manage a ton of mysql databases, from single wordpress instances, to clusters, to systems that have a core data structure that selectively replicates out to as many as 50 systems.   Fortunately, or maybe not, they seldom have issues and after setup, other than disk space issues, I seldom have to touch them.
Recently, as I [...]]]></description>
			<content:encoded><![CDATA[<p>I manage a ton of mysql databases, from single wordpress instances, to clusters, to systems that have a core data structure that selectively replicates out to as many as 50 systems.   Fortunately, or maybe not, they seldom have issues and after setup, other than disk space issues, I seldom have to touch them.</p>
<p>Recently, as I was migrating a set of DBs from an aquired company onto new hardware in a new location, I ran across a DB that seemed to consistently become corrupt.  It was usually the larger tables and typically on the slave system.  At first, it was bad enough that I blamed the hardware.  So the box was replaced and things went well for a while.  Recently the head developer for this system came to me with corrupted tables.  He was seeing the output in his code and was feeding me the tables so that I could repair them.  We did them one by one and it became clear that I really needed to check the whole DB.</p>
<p><span id="more-37"></span>It would have been relatively simple to throw together a script to do this, but I was apparenlty feeling lazy and did a google search instead.  Low an behold, I ran across a utility that I have read about countless times in the past, and I&#8217;m sure at some point I had actually run.   mysqlcheck.  I believe this nice little script has been packaged with mysql since the late 3.x strains.</p>
<p>At any rate, I think I&#8217;m documenting it here so that I won&#8217;t forget 6 months from now when I need the same functionality again.</p>
<p>So, on the system in question, I had about 20 instances and only one of them needed to be checked.  This is a big deal as the check script, or the repair command, or the optimize command will lock up your tables when it does it&#8217;s work and there were 19 web/data instances running on this box that I didn&#8217;t want to bother.  The check script is smart enough to handle this situation with the &#8211;databases flag.  Simply add the names of the instances that you want the check after that flag and you&#8217;re off.</p>
<p>Obviously, you want to do your best to stop traffic to the instances you intend to repair.  Can you get away with not doing this?  Well sure, remember however that the check, repair and optimize functions will lock up the tables in question when they do their work.  What does this mean?  Well, it means that none of your inbound querys will be run, they will queue up behind the repair functions until those functions finish.  In a really bad scenario, it&#8217;s possible that each of your querys will be bound to an apache instance and your web server will start eating up memory and potentially crash the whole box.  Thus, it&#8217;s in your best interest to stop as much traffic as possible before you start.</p>
<p>In my case, the usage of mysqlcheck looked like this:</p>
<p>mysqlcheck -uroot -pxxxxx &#8211;auto-repair &#8211;optimize &#8211;databases broken_db</p>
<p>The output is fantastic, it tells you where it&#8217;s at and what is broken or ok.  If you don&#8217;t want to see the output, if you intend to run from cron or whatever, there is a &#8211;silent option as well.</p>
<p>At any rate, leave it to mysql to simplify your admin a bit.  Run the mysqlcheck without any options and you&#8217;ll see all the options.  Takes 5 minutes to read through them.</p>
<p>That&#8217;s it, happy mysql&#8217;ing.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.hackadmin.com/2009/06/22/the-beauty-of-mysqlcheck/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Net-SNMP Startup Issues and package updates.</title>
		<link>http://www.hackadmin.com/2008/04/16/net-snmp-startup-issues-and-package-updates/</link>
		<comments>http://www.hackadmin.com/2008/04/16/net-snmp-startup-issues-and-package-updates/#comments</comments>
		<pubDate>Wed, 16 Apr 2008 22:57:16 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Maintenance]]></category>
		<category><![CDATA[Network]]></category>
		<category><![CDATA[Repair]]></category>
		<category><![CDATA[centos]]></category>
		<category><![CDATA[centos 4.5]]></category>
		<category><![CDATA[error message]]></category>
		<category><![CDATA[net-snmp]]></category>
		<category><![CDATA[yum]]></category>

		<guid isPermaLink="false">http://www.hackadmin.com/2008/04/16/net-snmp-startup-issues-and-package-updates/</guid>
		<description><![CDATA[I ran into an issue the other day installing net-snmp-utils via yum on a CentOS 4.5  box and it just happened to me again.  This time however, I didn&#8217;t install the net-snmp-utils, it was from the original load of net-snmp.  Basically, I typically just do a:
yum -y install net-snmp
Then copy over my [...]]]></description>
			<content:encoded><![CDATA[<p>I ran into an issue the other day installing net-snmp-utils via yum on a CentOS 4.5  box and it just happened to me again.  This time however, I didn&#8217;t install the net-snmp-utils, it was from the original load of net-snmp.  Basically, I typically just do a:</p>
<p>yum -y install net-snmp</p>
<p>Then copy over my default snmpd.conf file and fire it up.</p>
<p>In these instances however, snmpd either refused to start or gave the following error in /var/log/messages:</p>
<p><span id="more-6"></span><code>Apr 16 18:14:35 msx-db01 kernel: audit(1208384075.250:6): avc:  denied  { read } for  pid=27712 comm="snmpd" name="snmpd.conf" dev=sda3 ino=7241736 scontext=root:system_r:snmpd_t tcontext=root:object_r:tmp_t tclass=file<br />
Apr 16 18:14:35 msx-db01 kernel: audit(1208384075.265:7): avc:  denied  { read } for  pid=27712 comm="snmpd" name="snmpd.conf" dev=sda3 ino=7241736 scontext=root:system_r:snmpd_t tcontext=root:object_r:tmp_t tclass=file<br />
Apr 16 18:14:35 msx-db01 snmpd[27712]: Warning: no access control information configured.   It's unlikely this agent can serve any useful purpose in this state.   Run "snmpconf -g basic_setup" to help you configure the snmpd.conf file for this agent.<br />
Apr 16 18:14:35 msx-db01 snmpd[27712]: NET-SNMP version 5.1.2<br />
</code></p>
<p>I tried to use snmpconf as suggested even though I knew my snmpd.conf file was fine.  snmpconf was not on the system so I didn&#8217;t waste any time trying to find out how to get it.</p>
<p>So the fix is to install the net-snmp-libs package, not sure what it updates but it works.</p>
<p><code>yum -y install net-snmp-libs</code></p>
<p>The catch after that is (at least in all 3 of my situations) the following error on the yum install:</p>
<p><code>Transaction Check Error:   file /usr/share/man/man8/ext2online.8.gz from install of e2fsprogs-1.35-12.11.el4_6.1 conflicts with file from package e2fsprogs-1.35-12.4.EL4</code></p>
<p>So, back to the hack admin package manager of choice *yum* :</p>
<p><code>yum update e2fsprogs</code></p>
<p>Once it&#8217;s updated, the net-snmp-libs goes in as expected.</p>
<p>So what&#8217;s the deal with all this?  I dunno, what the hell do utilities for ext2 have to do with my ability to run snmp monitoring?  Who gives a shit and if you know, you&#8217;re probably on the wrong site.  At any rate, my monitoring works and I&#8217;ll leave the rest to the server fairies.</p>
<p>Moral of the story: If your shit works, do you really need to understand it?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.hackadmin.com/2008/04/16/net-snmp-startup-issues-and-package-updates/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

