<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Database Administrators Knowledge Blog</title>
	<atom:link href="http://dbperf.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://dbperf.wordpress.com</link>
	<description>DB performance made easy</description>
	<lastBuildDate>Mon, 12 Dec 2011 12:36:56 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='dbperf.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Database Administrators Knowledge Blog</title>
		<link>http://dbperf.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://dbperf.wordpress.com/osd.xml" title="Database Administrators Knowledge Blog" />
	<atom:link rel='hub' href='http://dbperf.wordpress.com/?pushpress=hub'/>
		<item>
		<title>MySQL Cluster Setup and Replication between NDB and Non NDB Engines</title>
		<link>http://dbperf.wordpress.com/2011/03/04/mysql-cluster-setup-and-replication-between-ndb-and-non-ndb-engines-2/</link>
		<comments>http://dbperf.wordpress.com/2011/03/04/mysql-cluster-setup-and-replication-between-ndb-and-non-ndb-engines-2/#comments</comments>
		<pubDate>Fri, 04 Mar 2011 10:01:10 +0000</pubDate>
		<dc:creator>Death</dc:creator>
				<category><![CDATA[Database Configurations]]></category>
		<category><![CDATA[MySQL API nodes config]]></category>
		<category><![CDATA[MySQL Cluster Geographical replication]]></category>
		<category><![CDATA[MySQL Cluster NDB Replication]]></category>
		<category><![CDATA[MySQL Cluster Non NDB replication]]></category>
		<category><![CDATA[MySQL Cluster Replication]]></category>
		<category><![CDATA[MySQL Clusters]]></category>
		<category><![CDATA[MySQL MGMT node config]]></category>
		<category><![CDATA[NDBD Nodes config]]></category>

		<guid isPermaLink="false">http://dbperf.wordpress.com/?p=300</guid>
		<description><![CDATA[Index&#160; 1. Introduction 2. MySQL Database Cluster Details 3. Steps to setup MySql Cluster 4. Testing the Cluster 5. Cluster Replication 6. Steps to setup Cluster Replication Introduction This document aims to provide the steps to set up a mysql database cluster. The cluster is assumed to be consisting of three nodes, one of which <a href="http://dbperf.wordpress.com/2011/03/04/mysql-cluster-setup-and-replication-between-ndb-and-non-ndb-engines-2/" class="excerpt-more-link">[&#8230;]</a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dbperf.wordpress.com&amp;blog=12761657&amp;post=300&amp;subd=dbperf&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Index&nbsp;</p>
<p>1. Introduction</p>
<p>2. MySQL Database Cluster Details</p>
<p>3. Steps to setup MySql Cluster</p>
<p>4. Testing the Cluster</p>
<p>5. Cluster Replication</p>
<p>6. Steps to setup Cluster Replication</p>
<p>Introduction</p>
<p>This document aims to provide the steps to set up a mysql database cluster. The cluster is assumed to be consisting of three nodes, one of which is management node and remaining two are data and sql nodes.</p>
<p>The document then goes on to explain the steps required to set up replication between two such independent mysql database clusters.</p>
<p>MySql Database Cluster Details</p>
<p>MySql Cluster is basically one or more computers configured to work in a way such that data will be shared amongst all the involved nodes. The database engine to be used for all the database tables is NDB.<br />
Following diagram represents a typical cluster.</p>
<p><a href="http://dbperf.files.wordpress.com/2011/03/img1clus.png"><img class="aligncenter size-full wp-image-301" title="img1clus" src="http://dbperf.files.wordpress.com/2011/03/img1clus.png?w=500" alt=""   /></a></p>
<p>Diag. 1 : Typical MySql Cluster</p>
<p>Steps to setup MySql Cluster</p>
<p>1. For the sake of simplicity, this document assumes that the cluster is set up using three database machines. The three servers are referred as Server A, Server B and Server C. also it is assumed that no mysql component exists on the server initially.</p>
<p>2. Open a putty session on all the three servers using ‘root’ access.</p>
<p>3. Also ensure that ‘/etc/hosts’ file contains entries for all the involved servers.</p>
<p>4. Before starting with the setup, first determine the roles to be played by each server in the cluster. For rest of document, it is assumed that Server A will act as Management Node of the cluster whereas Server B &amp; C will act as Data and Sql nodes.</p>
<p>5. On server A, run the following commands to check if any mysql process is running.<br />
Shell&gt;ps –aef | grep mysql</p>
<p>Shell&gt;ps –aef | grep ndb</p>
<p>If any process is running, it is better to shutdown (or kill) the process before moving ahead. Also, it should be noted that, if the process is running, then some mysql component is already installed on the server. It is better to uninstall the component and start over. For unistallation guide goto step</p>
<p>6. If no process is running, next check to be preformed is whether any mysql component is already installed on the server or not? Execute following command on the shell.<br />
Shell&gt;rpm –qa | grep –i mysql</p>
<p>This command will print all the mysql packages already installed on the server.<br />
To remove this package (or all the installed packages), run the following command.<br />
Shell&gt;rpm –e &lt;package_name&gt;</p>
<p>It is always advised to take DB backup before removing mysql from the system.</p>
<p>7. Once all the installed mysql packages are removed, the server is ready to be installed with fresh new version of mysql cluster software. Download the latest mysql cluster package from mysql site. The list of packages for version mysql-5.1.51 ndb-7.1.9 is given below.</p>
<p>MySQL-Cluster-com-client-7.1.9a-1.rhel4.i386.rpm<br />
MySQL-Cluster-com-clusterj-7.1.9a-1.rhel4.i386.rpm<br />
MySQL-Cluster-com-debuginfo-7.1.9a-1.rhel4.i386.rpm<br />
MySQL-Cluster-com-devel-7.1.9a-1.rhel4.i386.rpm<br />
MySQL-Cluster-com-embedded-7.1.9a-1.rhel4.i386.rpm<br />
MySQL-Cluster-com-extra-7.1.9a-1.rhel4.i386.rpm<br />
MySQL-Cluster-com-management-7.1.9a-1.rhel4.i386.rpm<br />
MySQL-Cluster-com-server-7.1.9a-1.rhel4.i386.rpm<br />
MySQL-Cluster-com-shared-7.1.9a-1.rhel4.i386.rpm<br />
MySQL-Cluster-com-shared-compat-7.1.9a-1.rhel4.i386.rpm<br />
MySQL-Cluster-com-storage-7.1.9a-1.rhel4.i386.rpm<br />
MySQL-Cluster-com-test-7.1.9a-1.rhel4.i386.rpm<br />
MySQL-Cluster-com-tools-7.1.9a-1.rhel4.i386.rpm</p>
<p>8. Install all the above mysql packages except for ‘MySQL-Cluster-com-server-7.1.9a-1.rhel4.i386.rpm’ and ‘MySQL-Cluster-com-shared-compat-7.1.9a-1.rhel4.i386.rpm’. Run following command to install the package.</p>
<p>Shell&gt;rpm –ivh &lt;package_name&gt;</p>
<p>You might need to clear all the dependencies to install the packages.</p>
<p>9. Once the packages are installed, go to ‘mysql’ directory. This should be available under ‘/var/lib’. In case it is not present here, search for this directory in the system. You can use following command to search the system.</p>
<p>Shell&gt;find / -name “mysql”</p>
<p>10. On the same level as this directory, there should be another directory named ‘mysql-cluster’. Move inside ‘mysql-cluster’.</p>
<p>11. Create a text file named ‘config.ini’ in this directory. The contents of the file are given below. Meaning of each parameter is also explained in comments.</p>
<p>[NDBD DEFAULT]<br />
NoOfReplicas=2    #Number of data and sql nodes in the cluster. In #our case this is 2.</p>
<p>[MYSQLD DEFAULT]</p>
<p>[NDB_MGMD DEFAULT]</p>
<p>[TCP DEFAULT]<br />
# Managment Server<br />
SendBufferMemory=8M<br />
ReceiveBufferMemory=8M</p>
<p>[NDB_MGMD]<br />
# the IP of THIS SERVER<br />
HostName=&lt;Server A’s IP&gt;</p>
<p>[NDBD]<br />
# the IP of the FIRST SERVER (Data Node)<br />
HostName=&lt;Server B’s IP&gt;<br />
DataDir=/var/lib/mysql-cluster</p>
<p>[NDBD]<br />
# the IP of the FIRST SERVER (Data Node)<br />
HostName=&lt;Server C’s IP&gt;<br />
DataDir=/var/lib/mysql-cluster</p>
<p>[MYSQLD]<br />
[MYSQLD]</p>
<p>12. Now move to Server B. Re-execute steps 4,5 and 6 on the server.</p>
<p>13. Once all the packages are available install all the packages except for ‘MySQL-Cluster-com-management-7.1.9a-1.rhel4.i386.rpm’ and ‘MySQL-Cluster-com-shared-compat-7.1.9a-1.rhel4.i386.rpm’. You can use same command given in step 7 to install the packages.</p>
<p>14. Once the packages are installed, go to /etc directory. Create/Edit ‘my.cnf’ file in this directory. The content of typical my.cnf is given below.</p>
<p>[mysqld]</p>
<p>ndbcluster                                             # run NDB engine<br />
ndb-connectstring=&lt;Server A’s IP&gt;        # location of MGM node</p>
<p>datadir=mysql directory on Server B&gt;<br />
#socket=/lib/mysql/mysql.sock<br />
user=mysql<br />
# Default to using old password format for compatibility with mysql 3.x<br />
# clients (those using the mysqlclient10 compatibility package).<br />
old_passwords=1<br />
default_character_set=utf8<br />
collation_server=utf8_unicode_ci<br />
character_set_server=utf8<br />
skip_character_set_client_handshake<br />
back_log = 75<br />
max_connections = 500<br />
key_buffer = 1G<br />
myisam_sort_buffer_size = 64M<br />
join_buffer_size = 1M<br />
read_buffer_size = 1M<br />
sort_buffer_size = 2M<br />
table_cache = 1800<br />
thread_cache_size = 384<br />
wait_timeout = 7200<br />
connect_timeout = 10<br />
tmp_table_size = 64M<br />
max_heap_table_size = 64M<br />
max_allowed_packet = 64M<br />
max_connect_errors = 1000<br />
read_rnd_buffer_size = 524288<br />
bulk_insert_buffer_size = 8M<br />
query_cache_limit = 4M<br />
query_cache_size =52428800<br />
query_cache_type = 1<br />
query_prealloc_size = 65536<br />
query_alloc_block_size = 131072<br />
default-storage-engine = MyISAM<br />
log-slow-queries<br />
long_query_time = 5</p>
<p>[mysqld_safe]<br />
nice = -5<br />
open_files_limit = 8192</p>
<p>[mysqldump]<br />
quick<br />
max_allowed_packet = 16M</p>
<p>[myisamchk]<br />
key_buffer = 256M<br />
sort_buffer = 64M<br />
read_buffer = 64M<br />
write_buffer = 64M</p>
<p>#options for ndbd process:<br />
[MYSQL_CLUSTER]<br />
ndb-connectstring=&lt;Server A’s IP&gt;       # location of MGM node</p>
<p>15. Repeat the steps 11, 12 and 13 for Server C.</p>
<p>16. Once this step is done, the cluster configuration is done. The cluster of three servers A, B &amp; C is now ready.</p>
<p>Testing the Cluster</p>
<p>1. Once the cluster is configured using steps given above, we will move to testing of the cluster.</p>
<p>2. On the Management Node (i.e. Server A), run the following command.<br />
Shell&gt;ndb_mgmd –f &lt;path of config.ini file&gt;</p>
<p>3. This is should start the management node of the cluster. Run the following set of commands to check the status of the cluster.<br />
Shell&gt;ndb_mgm<br />
&#8211; NDB Cluster &#8212; Management Client &#8211;<br />
ndb_mgm&gt;show</p>
<p>The ‘show’ command will show the status of all the nodes in the cluster. Initially this would be ‘not connected’.</p>
<p>4. Now move to Server B and C respectively and execute following command on these servers.<br />
Shell&gt;ndbd –initial –connect-string=</p>
<p>5. This should start the node B and C and put them in the cluster. Now go back to Server A and re-run the show command. This will now show the ndbd nodes as connected and started.</p>
<p>6. Once the nodes are started and put in cluster, all that remains is starting mysql daemon on sql nodes so that they can start sharing and replicating the data. To achieve this, go to Server B and C and run following command.<br />
Shell&gt;mysqld –u root &amp;</p>
<p>7. Once the mysql daemon starts gracefully, the cluster is fully functional and operating. The ‘show’ command on Server A will now display accordingly.</p>
<p>8. You can now test this cluster. Try creating any table on any of the database on one of the sql nodes (Server B or Server C). Please take care to use ‘NDB’ engine to create the table. This should get replicated to another node in no time. All the insertion, updates and deletions will also get replicated amongst the nodes.</p>
<p>Cluster Replication<br />
The cluster replication refers to the configuration such that data is shared between two independent clusters. This configuration allows the data nodes of cluster 1 to communicate and send/receive db transactions from data nodes of cluster 2, so that the data on all the data nodes of both the clusters is always the same.</p>
<p>There are various ways of implementing this. The way, we have adopted for NGMP is depicted in the following diagram</p>
<p><a href="http://dbperf.files.wordpress.com/2011/03/img2clus.png"><img class="aligncenter size-full wp-image-302" title="img2clus" src="http://dbperf.files.wordpress.com/2011/03/img2clus.png?w=500&#038;h=312" alt="" width="500" height="312" /></a></p>
<p>Diag. 2 : Cluster Replication Setup</p>
<p>Here we have two clusters viz. Cluster 1 and Cluster 2 with 2 data and sql nodes each. The node A of cluster 1 acts as master to node Y of cluster 2.<br />
Similarly, node Z of cluster 2 acts as master to node C of cluster 1.<br />
This way, any data arriving on any of the node gets to all the remaining nodes in all the clusters.</p>
<p>Steps to setup Cluster Replication</p>
<p>1. For the sake of explanation, it is assumed that, we have already set up two clusters. Each cluster has three nodes, with one of them as management and remaining two as data and sql nodes. Cluster 1 has Server A as management node and Server B &amp; C as data and sql node. Cluster 2 has Server X as management node and Server Y &amp; Z as data and sql node.</p>
<p>2. Before setting up the replication, it is advised to determine which nodes will act as master to which nodes. The configuration we have explained here assumed that Node B is mater to Node Y and Node Z is master to Node C.</p>
<p>3. Shutdown (or kill) mysql daemon running on node B and node Y.</p>
<p>4. Open /etc/my.cnf on node B (Server B) for editing. Add following lines to the [mysqld] section of the file.<br />
log-bin<br />
binlog-format=row<br />
server-id=10</p>
<p>5. Similarly, open the /etc/my.cnf on the node Y (Server Y). Add following lines to the [mysqld] section of the file.<br />
server-id=20<br />
master-host=&lt;Server B’s IP&gt;<br />
master-port=3306<br />
master-user=&lt;username&gt;<br />
master-password=&lt;password&gt;</p>
<p>Please note username as password can be set to any appropriate value.</p>
<p>6. Start the mysql daemon on both the nodes using following command.<br />
Shell&gt;mysqld –u root &amp;</p>
<p>7. Once the mysqld comes up gracefully on both the servers, go to node B and start the mysql client. On mysql prompt, execute the following command.</p>
<p>Mysql&gt;GRANT REPLICATION SLAVE TO *.* ON ‘&lt;username&gt;’@’&lt;Server Y’s IP&gt;’ IDENTIFIED BY ‘&lt;password&gt;’</p>
<p>The username and password should be same as mentioned in the my.cnf file.</p>
<p>8. Now start the mysql client on node Y and execute following command.<br />
Mysql&gt;Slave start;</p>
<p>9. This should start the replication between the nodes B and Y with node B as master.</p>
<p>10. Execute similar steps on node Z and node C to set up replication between them with node Z as master.</p>
<p>11. Once this is done, the replication between the clusters is set up. We can check this by inserting any data in anyone node of the two clusters and checking if the db transaction gets replicated across the clusters on all nodes.</p>
<p>12. To further check the replication status, go to any master node (Node B or Node Z) and execute following query.</p>
<p>Mysql&gt; SELECT * FROM mysql.ndb_binlog_index;<br />
+&#8212;&#8212;&#8212;-+&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-+&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;+&#8212;&#8212;&#8212;+&#8212;&#8212;&#8212;+&#8212;&#8212;&#8212;+&#8212;&#8212;&#8212;&#8211;+&#8212;&#8212;&#8212;&#8212;&#8212;-+&#8212;&#8212;&#8212;&#8212;+&#8212;&#8212;-+<br />
| Position | File              | epoch           | inserts | updates | deletes | schemaops | orig_server_id | orig_epoch | gci   |<br />
+&#8212;&#8212;&#8212;-+&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-+&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;+&#8212;&#8212;&#8212;+&#8212;&#8212;&#8212;+&#8212;&#8212;&#8212;+&#8212;&#8212;&#8212;&#8211;+&#8212;&#8212;&#8212;&#8212;&#8212;-+&#8212;&#8212;&#8212;&#8212;+&#8212;&#8212;-+<br />
|      554 | ./win3-bin.000003 | 137073881251848 |       1 |       0 |       0 |         0 |              0 |          0 | 31915 |<br />
+&#8212;&#8212;&#8212;-+&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-+&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;+&#8212;&#8212;&#8212;+&#8212;&#8212;&#8212;+&#8212;&#8212;&#8212;+&#8212;&#8212;&#8212;&#8211;+&#8212;&#8212;&#8212;&#8212;&#8212;-+&#8212;&#8212;&#8212;&#8212;+&#8212;&#8212;-+<br />
1 row in set (0.00 sec)</p>
<p>Please note the value of ‘epoch’ filed.</p>
<p>13. Now execute following query on the respective slave</p>
<p>Mysql&gt; SELECT * FROM mysql.ndb_apply_status;<br />
+&#8212;&#8212;&#8212;&#8211;+&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;+&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;+&#8212;&#8212;&#8212;&#8211;+&#8212;&#8212;&#8212;+<br />
| server_id | epoch           | log_name        | start_pos | end_pos |<br />
+&#8212;&#8212;&#8212;&#8211;+&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;+&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;+&#8212;&#8212;&#8212;&#8211;+&#8212;&#8212;&#8212;+<br />
|        10 | 137073881251848 | win3-bin.000003 |       554 |     885 |<br />
+&#8212;&#8212;&#8212;&#8211;+&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;+&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;+&#8212;&#8212;&#8212;&#8211;+&#8212;&#8212;&#8212;+<br />
1 row in set (0.00 sec)</p>
<p>The ‘epoch’ value here should match that with the master. If so, replication is working fine.</p>
<p>14. If the epoch value does not match, please execute the set of queries on the slave</p>
<p>Mysql&gt;SLAVE STOP;</p>
<p>Mysql&gt;CHANGE MASTER TO MASTER_HOST=&#8217;&lt;MASTER’s IP&gt;&#8217;, MASTER_PORT=3306, MASTER_LOG_FILE = ‘&lt;VALUE OF File FIELD IN ndb_binlog_index TABLE ON MASTER&gt;&#8217;, MASTER_LOG_POS=&lt;VALUE OF Epoch FIELD IN ndb_binlog_index TABLE ON MASTER&gt;;</p>
<p>Mysql&gt;SLAVE START;</p>
<p>15. This should resolve the issue. This concludes configuration and testing of Mysql database cluster and cluster replication.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/dbperf.wordpress.com/300/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/dbperf.wordpress.com/300/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/dbperf.wordpress.com/300/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/dbperf.wordpress.com/300/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/dbperf.wordpress.com/300/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/dbperf.wordpress.com/300/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/dbperf.wordpress.com/300/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/dbperf.wordpress.com/300/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/dbperf.wordpress.com/300/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/dbperf.wordpress.com/300/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/dbperf.wordpress.com/300/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/dbperf.wordpress.com/300/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/dbperf.wordpress.com/300/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/dbperf.wordpress.com/300/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dbperf.wordpress.com&amp;blog=12761657&amp;post=300&amp;subd=dbperf&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://dbperf.wordpress.com/2011/03/04/mysql-cluster-setup-and-replication-between-ndb-and-non-ndb-engines-2/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/6a90fbc3d87686a798af840105a1625b?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Death</media:title>
		</media:content>

		<media:content url="http://dbperf.files.wordpress.com/2011/03/img1clus.png" medium="image">
			<media:title type="html">img1clus</media:title>
		</media:content>

		<media:content url="http://dbperf.files.wordpress.com/2011/03/img2clus.png" medium="image">
			<media:title type="html">img2clus</media:title>
		</media:content>
	</item>
		<item>
		<title>Resuming the Blog</title>
		<link>http://dbperf.wordpress.com/2011/03/04/resuming-the-blog/</link>
		<comments>http://dbperf.wordpress.com/2011/03/04/resuming-the-blog/#comments</comments>
		<pubDate>Fri, 04 Mar 2011 09:32:26 +0000</pubDate>
		<dc:creator>Death</dc:creator>
				<category><![CDATA[Database Configurations]]></category>

		<guid isPermaLink="false">http://dbperf.wordpress.com/2011/03/04/resuming-the-blog/</guid>
		<description><![CDATA[Hi all, I was away from blogging for quite long. Occupied with many responsibilities and personal commitments. Hopefully will continue bringing up technical articles to simplify DB tasks. -Thanks<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dbperf.wordpress.com&amp;blog=12761657&amp;post=296&amp;subd=dbperf&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Hi all,</p>
<p>I was away from blogging for quite long. Occupied with many  responsibilities and personal commitments.<br />
Hopefully will continue bringing up technical articles to simplify DB tasks.</p>
<p>-Thanks</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/dbperf.wordpress.com/296/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/dbperf.wordpress.com/296/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/dbperf.wordpress.com/296/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/dbperf.wordpress.com/296/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/dbperf.wordpress.com/296/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/dbperf.wordpress.com/296/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/dbperf.wordpress.com/296/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/dbperf.wordpress.com/296/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/dbperf.wordpress.com/296/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/dbperf.wordpress.com/296/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/dbperf.wordpress.com/296/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/dbperf.wordpress.com/296/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/dbperf.wordpress.com/296/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/dbperf.wordpress.com/296/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dbperf.wordpress.com&amp;blog=12761657&amp;post=296&amp;subd=dbperf&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://dbperf.wordpress.com/2011/03/04/resuming-the-blog/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/6a90fbc3d87686a798af840105a1625b?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Death</media:title>
		</media:content>
	</item>
		<item>
		<title>Auto Recover MyISAM Tables</title>
		<link>http://dbperf.wordpress.com/2010/10/08/auto-recover-myisam-tables/</link>
		<comments>http://dbperf.wordpress.com/2010/10/08/auto-recover-myisam-tables/#comments</comments>
		<pubDate>Fri, 08 Oct 2010 11:28:52 +0000</pubDate>
		<dc:creator>Death</dc:creator>
				<category><![CDATA[Database Configurations]]></category>
		<category><![CDATA[Auto repair]]></category>
		<category><![CDATA[Auto-Recovery of MyISAM tables]]></category>
		<category><![CDATA[MyISAM Check]]></category>
		<category><![CDATA[MyISAM table check]]></category>

		<guid isPermaLink="false">http://dbperf.wordpress.com/?p=292</guid>
		<description><![CDATA[Enable MyISAM Auto-Repair MyISAM can be configured to check and repair its tables automatically. By enabling the MyISAM auto repair you let the server check each MyISAM table when it is opened. It checks  if the table was closed properly when it was  last used, also checks if it needs any repair, if required it <a href="http://dbperf.wordpress.com/2010/10/08/auto-recover-myisam-tables/" class="excerpt-more-link">[&#8230;]</a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dbperf.wordpress.com&amp;blog=12761657&amp;post=292&amp;subd=dbperf&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><span style="color:#000080;">Enable MyISAM Auto-Repair</span></p>
<p><span style="color:#000080;">MyISAM</span> can be configured to check and repair its tables automatically. By enabling the MyISAM auto repair you let the server check each MyISAM table when it is opened. It checks  if the table was closed properly when it was  last used, also checks if it needs any repair, if required it repairs the table.</p>
<p>To enable auto check and repair,you can start the server with <span style="color:#ff0000;">&#8211;myisam-recover</span> with following options.</p>
<p><span style="color:#000080;">DEFAULT</span> for the default checking.</p>
<p><span style="color:#000080;">BACKUP</span> tells the server to make a backup of any table that it must change.</p>
<p><span style="color:#000080;">FORCE</span> causes table recovery to be performed even if it would cause the loss of more than one row of data.</p>
<p><span style="color:#000080;">QUICK</span> performs quick recovery: Tables that have no holes resulting from deletes or updates are skipped.</p>
<p>You can also add it to the <span style="color:#000080;">my.cnf</span> file as shown below</p>
<p><span style="color:#ff0000;">[mysqld]</span></p>
<p><span style="color:#ff0000;">myisam-recover=FORCE,BACKUP</span></p>
<p>-Thanks</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/dbperf.wordpress.com/292/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/dbperf.wordpress.com/292/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/dbperf.wordpress.com/292/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/dbperf.wordpress.com/292/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/dbperf.wordpress.com/292/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/dbperf.wordpress.com/292/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/dbperf.wordpress.com/292/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/dbperf.wordpress.com/292/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/dbperf.wordpress.com/292/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/dbperf.wordpress.com/292/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/dbperf.wordpress.com/292/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/dbperf.wordpress.com/292/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/dbperf.wordpress.com/292/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/dbperf.wordpress.com/292/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dbperf.wordpress.com&amp;blog=12761657&amp;post=292&amp;subd=dbperf&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://dbperf.wordpress.com/2010/10/08/auto-recover-myisam-tables/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/6a90fbc3d87686a798af840105a1625b?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Death</media:title>
		</media:content>
	</item>
		<item>
		<title>SQL Server Integration Services 2008(SSIS) and MySQL</title>
		<link>http://dbperf.wordpress.com/2010/07/23/sql-server-integration-services-2008-ssis-and-mysql/</link>
		<comments>http://dbperf.wordpress.com/2010/07/23/sql-server-integration-services-2008-ssis-and-mysql/#comments</comments>
		<pubDate>Fri, 23 Jul 2010 12:34:36 +0000</pubDate>
		<dc:creator>Death</dc:creator>
				<category><![CDATA[MS SQL]]></category>
		<category><![CDATA[Create SSIS Package]]></category>
		<category><![CDATA[MS SQL 2008 SSIS and MySQL]]></category>
		<category><![CDATA[MySQL data transfer through SSIS]]></category>
		<category><![CDATA[SSIS and MySQL]]></category>
		<category><![CDATA[SSIS Creation]]></category>

		<guid isPermaLink="false">http://dbperf.wordpress.com/?p=281</guid>
		<description><![CDATA[In my previous article I had created linked server, to access and query a database. However, it is just the basic step to try and bring two different RDBMS systems linked together. In this article I will discuss about creating a SSIS package to transfer data from MS SQL Server 2008 to MySQL 5.5 Prerequisite: <a href="http://dbperf.wordpress.com/2010/07/23/sql-server-integration-services-2008-ssis-and-mysql/" class="excerpt-more-link">[&#8230;]</a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dbperf.wordpress.com&amp;blog=12761657&amp;post=281&amp;subd=dbperf&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>In my previous article I had created linked server, to access and query a database. However, it is just the basic step to try and bring two different RDBMS systems linked together.</p>
<p>In this article I will discuss about creating a SSIS package to transfer data from MS SQL Server 2008 to MySQL 5.5</p>
<p><span style="color:#000080;"><strong>Prerequisite: </strong></span></p>
<p><span style="color:#000080;"><strong>___________________________________________________<br />
</strong></span></p>
<p><strong>SQL Server Business Intelligence Development Studio</strong></p>
<p><strong>MySQL Connector Net 5.2.7 </strong></p>
<p>You can download this package from <a href="http://www.mysql.com/downloads/connector/net/">http://www.mysql.com/downloads/connector/net/</a></p>
<p>Connector/Net is a fully-managed ADO.NET driver for MySQL.</p>
<p><strong>MySQL Connector/ODBC 5.1 (Which is already installed, in our previous article)</strong></p>
<p><a href="http://www.mysql.com/downloads/connector/odbc/">http://www.mysql.com/downloads/connector/odbc/</a></p>
<p><span style="color:#000080;"><strong>Brief about SSIS</strong></span></p>
<p><strong>___________________________________________________</strong></p>
<p>SSIS provides a graphical front end to design control flow data processing logic.  Once designed, these ‘packages’ are compiled into ‘.dtsx’ packages which can then be distributed and run on any machine with the SSIS tools installed.</p>
<p>Packages contain two main logic flows, a ‘Control Flow’ which defines a sequence of logical operations which are processed in sequence. Each step is completed before the next starts e.g.</p>
<p>1.  Empty out work tables in a database</p>
<p>2.  Populate the work tables with data</p>
<p>3.  Perform calculations and update the values in the work table</p>
<p>4.  Update OLAP cubes with the data from the work tables</p>
<p>5.  Run reports against the OLAP cubes.</p>
<p>This level of control also allows processing loops to be defined e.g.</p>
<p>For each file in a specified folder, read the contents of the file and write it into a specified table.</p>
<p>The second main logic flow is the ‘Data Flow’.  This allows for the processing of data at the record level. Data is read from a ‘Data Source’ and passes down a series of ‘Data Transformations’ to a ‘Data Destination’. These transformations can be as simple as changing the data type of fields e.g. varchar(4000) to varchar(2000) or decimal(18,2) to decimal(8,2), or can be more complex like data merges, joins, pivot tables, multicasts etc. Each transformation is represented by an icon in the designer and the icons are linked together to define the logic path.</p>
<p><span style="color:#000080;"><strong>Creating SSIS package to transfer data from MS SQL Server 2008 to MySQL</strong></span></p>
<p><strong>___________________________________________________</strong></p>
<p>Follow the below steps to create a SSIS package for data transfer.</p>
<p>Go to <strong>START&gt;MS SQL SERVER 2008&gt;SQL SERVER BUSINESS INTELLIGENCE DEVELOPMENT STUDIO </strong>and Click on <strong>File&gt;New&gt;Project</strong></p>
<p><strong><a href="http://dbperf.files.wordpress.com/2010/07/ssis1.jpg"><img class="aligncenter size-full wp-image-258" title="ssis1" src="http://dbperf.files.wordpress.com/2010/07/ssis1.jpg?w=500&#038;h=294" alt="" width="500" height="294" /></a></strong></p>
<p>Under <strong>Business Intelligence Projects</strong>, select <strong>Integration Services Project </strong>and rename the Project Name.</p>
<p><a href="http://dbperf.files.wordpress.com/2010/07/ssis2.jpg"><img class="aligncenter size-full wp-image-259" title="ssis2" src="http://dbperf.files.wordpress.com/2010/07/ssis2.jpg?w=500&#038;h=363" alt="" width="500" height="363" /></a></p>
<p>This will open a Package Designer Screen, where you can start designing the data flow for your package.</p>
<p><a href="http://dbperf.files.wordpress.com/2010/07/ssis3.jpg"><img class="aligncenter size-full wp-image-260" title="ssis3" src="http://dbperf.files.wordpress.com/2010/07/ssis3.jpg?w=500&#038;h=323" alt="" width="500" height="323" /></a></p>
<p><strong><span style="color:#000080;">Configure Connection Managers for you package</span></strong></p>
<p><strong>___________________________________________________</strong></p>
<p><strong>Right</strong> Click in the area where it shows the Connection Manager tab and select <strong>New ADO.Net Connection</strong>.</p>
<p><a href="http://dbperf.files.wordpress.com/2010/07/ssis4.jpg"><img class="aligncenter size-full wp-image-261" title="ssis4" src="http://dbperf.files.wordpress.com/2010/07/ssis4.jpg?w=500&#038;h=322" alt="" width="500" height="322" /></a></p>
<p>You will see the Configuration Manager Editor window</p>
<p><a href="http://dbperf.files.wordpress.com/2010/07/ssis5.jpg"><img class="aligncenter size-full wp-image-262" title="ssis5" src="http://dbperf.files.wordpress.com/2010/07/ssis5.jpg?w=500&#038;h=481" alt="" width="500" height="481" /></a></p>
<p>Click <strong>New</strong></p>
<p><a href="http://dbperf.files.wordpress.com/2010/07/ssis6.jpg"><img class="aligncenter size-full wp-image-263" title="ssis6" src="http://dbperf.files.wordpress.com/2010/07/ssis6.jpg?w=500&#038;h=524" alt="" width="500" height="524" /></a></p>
<p>Now you need to define connection manager configuration for source (i.e. MS SQL Server 2008) in our case.</p>
<p><a href="http://dbperf.files.wordpress.com/2010/07/ssis7.jpg"><img class="aligncenter size-full wp-image-264" title="ssis7" src="http://dbperf.files.wordpress.com/2010/07/ssis7.jpg?w=500&#038;h=524" alt="" width="500" height="524" /></a></p>
<p>In the Connection Manager Editor, by default the Provider is set to <strong>.Net Providers\SqlClient Data Provider</strong></p>
<p>Use your test server name or IP for Server Name and under connect to database, select the database to use. I’m using <strong>ssistest</strong>.</p>
<p>Similarly, you need to create connection manager configuration for Destination (i.e. MySQL)</p>
<p><strong>Right</strong> Click, under Connection Manager’s tab and Select ADO.NET Connection as mentioned above and click New on Connection Manager Editor.</p>
<p><a href="http://dbperf.files.wordpress.com/2010/07/ssis8.jpg"><img class="aligncenter size-full wp-image-265" title="ssis8" src="http://dbperf.files.wordpress.com/2010/07/ssis8.jpg?w=500&#038;h=524" alt="" width="500" height="524" /></a></p>
<p>For Provider click on the drop down arrow to select .<strong>Net Providers\odbc data Provider.</strong></p>
<p>In the previous article we had created <strong>System DSN </strong>name <strong>MySQL</strong>. We will use the same here for Use user or system data source name.</p>
<p>Enter your login information and Test Connection. It should succeed, and then click <strong>Ok.</strong></p>
<p>Now, on Configure ADO.NET Connection Manager screen, you can see both the source and destination are configured.</p>
<p><a href="http://dbperf.files.wordpress.com/2010/07/ssis9.jpg"><img class="aligncenter size-full wp-image-266" title="ssis9" src="http://dbperf.files.wordpress.com/2010/07/ssis9.jpg?w=500&#038;h=481" alt="" width="500" height="481" /></a></p>
<p>It’s now time to add control flows to the package, ensure you are on Control Flow tab and Drag <strong>Data Flow Task</strong> from the <strong>Control Flow Items</strong> under ToolBox.</p>
<p><a href="http://dbperf.files.wordpress.com/2010/07/ssis10.jpg"><img class="aligncenter size-full wp-image-267" title="ssis10" src="http://dbperf.files.wordpress.com/2010/07/ssis10.jpg?w=500&#038;h=362" alt="" width="500" height="362" /></a></p>
<p>Now click on the <strong>Data Flow</strong> tab above and Drag <strong>ADO NET Source</strong> and <strong>ADO NET Destination</strong> as shown below. You can rename the Source and Destination Names from Properties.</p>
<p><a href="http://dbperf.files.wordpress.com/2010/07/ssis12.jpg"><img class="aligncenter size-full wp-image-268" title="ssis12" src="http://dbperf.files.wordpress.com/2010/07/ssis12.jpg?w=500&#038;h=362" alt="" width="500" height="362" /></a></p>
<p><strong>Right</strong> click on <strong>ADO NET SOURCE</strong> i.e. MS SQL Server 2008 and click <strong>EDIT</strong>. Make the below changes as mentioned on the screen.</p>
<p>As mentioned before I have <strong>ssistest </strong>database which has few sample tables, that I have exported from AdventureWorks database. I’m selecting one of the tables named HumanResources.Department for this example.</p>
<p><a href="http://dbperf.files.wordpress.com/2010/07/ssis13.jpg"><img class="aligncenter size-full wp-image-269" title="ssis13" src="http://dbperf.files.wordpress.com/2010/07/ssis13.jpg?w=500&#038;h=491" alt="" width="500" height="491" /></a></p>
<p>In the above screen you can see the test server selected with database and table to transfer the data from.</p>
<p>Similarly right click on MySQL (Destination) and click <strong>Edit. </strong>On this screen, under ADO.NET Connection Manager select <strong>MySQL.root </strong>from the drop downlist.</p>
<p><a href="http://dbperf.files.wordpress.com/2010/07/ssis14.jpg"><img class="aligncenter size-full wp-image-270" title="ssis14" src="http://dbperf.files.wordpress.com/2010/07/ssis14.jpg?w=500&#038;h=527" alt="" width="500" height="527" /></a></p>
<p>Since we do not have any destination table to map with the source, we need to click on <strong>New</strong>. It will show you the below message, click <strong>OK</strong></p>
<p><strong><a href="http://dbperf.files.wordpress.com/2010/07/ssis15.jpg"><img class="aligncenter size-full wp-image-271" title="ssis15" src="http://dbperf.files.wordpress.com/2010/07/ssis15.jpg?w=500&#038;h=106" alt="" width="500" height="106" /></a></strong></p>
<p>Now remove the quotes and Click <strong>OK</strong> to create a table on destination as shown.</p>
<p><strong><a href="http://dbperf.files.wordpress.com/2010/07/ssis16.jpg"><img class="aligncenter size-full wp-image-272" title="ssis16" src="http://dbperf.files.wordpress.com/2010/07/ssis16.jpg?w=500" alt=""   /></a></strong></p>
<p>It will come back to the editor,</p>
<p><a href="http://dbperf.files.wordpress.com/2010/07/ssis17.jpg"><img class="aligncenter size-full wp-image-274" title="ssis17" src="http://dbperf.files.wordpress.com/2010/07/ssis17.jpg?w=500&#038;h=527" alt="" width="500" height="527" /></a></p>
<p>Click on the Mappings tab and check if all the columns are mapped and click <strong>OK</strong>.</p>
<p><a href="http://dbperf.files.wordpress.com/2010/07/ssis18.jpg"><img class="aligncenter size-full wp-image-275" title="ssis18" src="http://dbperf.files.wordpress.com/2010/07/ssis18.jpg?w=500&#038;h=491" alt="" width="500" height="491" /></a></p>
<p>This will complete the data flow design of our package.</p>
<p><span style="color:#000080;"><strong>Saving the SSIS Package</strong></span></p>
<p><strong>___________________________________________________</strong></p>
<p>Once the package is created, save the copy of it to SSIS Package store or MSDB. Follow the below steps,</p>
<p>Click on <strong>File&gt; Save Copy of Package.dtsx</strong> As from the menu it will open a window,</p>
<p>Select <strong>SSIS Package Store</strong> as the Package Location and Select the name of your test server.</p>
<p>Enter <strong>/File System/Export2MySQL</strong> as the package path and Click <strong>OK</strong>.</p>
<p>Select <strong>File &gt; Save Copy of Package.dtsx</strong> as again from the menu and Select SQL Server as the Package Location. Select the name of your test server and fill in your authentication information.</p>
<p>Enter Export2MySQL as the package path and Click <strong>OK</strong>.</p>
<p>Once the copies are saved you can see them under Integration Services Stored Packages as shown below.</p>
<p><a href="http://dbperf.files.wordpress.com/2010/07/ssis19.jpg"><img class="aligncenter size-full wp-image-276" title="ssis19" src="http://dbperf.files.wordpress.com/2010/07/ssis19.jpg?w=500" alt=""   /></a></p>
<p><strong><span style="color:#000080;">Changes on MySQL</span></strong></p>
<p><strong>___________________________________________________</strong></p>
<p>Before running the Package, make this change on the MySQL Server</p>
<p>mysql&gt; SET GLOBAL sql_mode= ‘ANSI’</p>
<p><span style="color:#000080;"><strong>Executing the Package</strong></span></p>
<p><strong>___________________________________________________</strong></p>
<p>You can execute the package either from SSMS and BI Development Studio. I’m doing it from the BI, on the right hand side your BI screen you will find solution explorer, which has the <strong>Package.dtsx</strong> listed. Right click and select <strong>Execute Package.</strong></p>
<p>The moment you click execute the debugging process start and the Output is show below on the BI screen.  If the Data Flow Task is changed to Green, it means the package has succeeded, and if it is Red it means somewhere in the flow there was an error.</p>
<p><a href="http://dbperf.files.wordpress.com/2010/07/ssis20.jpg"><img class="aligncenter size-full wp-image-277" title="ssis20" src="http://dbperf.files.wordpress.com/2010/07/ssis20.jpg?w=500&#038;h=362" alt="" width="500" height="362" /></a></p>
<p>On the <strong>Data Flow Tab</strong>, you can see the number of rows transferred in the execution.</p>
<p><a href="http://dbperf.files.wordpress.com/2010/07/ssis21.jpg"><img class="aligncenter size-full wp-image-278" title="ssis21" src="http://dbperf.files.wordpress.com/2010/07/ssis21.jpg?w=500&#038;h=362" alt="" width="500" height="362" /></a></p>
<p>There is a <strong>progress tab</strong> on the screen, where you can check the steps taken in the flow, it also list errors and warnings if any.</p>
<p><a href="http://dbperf.files.wordpress.com/2010/07/ssis22.jpg"><img class="aligncenter size-full wp-image-279" title="ssis22" src="http://dbperf.files.wordpress.com/2010/07/ssis22.jpg?w=500&#038;h=362" alt="" width="500" height="362" /></a></p>
<p>Query the <strong>MySQL</strong> Server to see if the data transfer was successful as show below.</p>
<p><a href="http://dbperf.files.wordpress.com/2010/07/ssis23.jpg"><img class="aligncenter size-full wp-image-280" title="ssis23" src="http://dbperf.files.wordpress.com/2010/07/ssis23.jpg?w=500&#038;h=362" alt="" width="500" height="362" /></a></p>
<p>This was about transferring data from MS SQL Server 2008 to MySQL, you can do vice verse by changing the source and destination while designing the package on <strong>Data Flow tab</strong>.</p>
<p>Hope this article is useful.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/dbperf.wordpress.com/281/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/dbperf.wordpress.com/281/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/dbperf.wordpress.com/281/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/dbperf.wordpress.com/281/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/dbperf.wordpress.com/281/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/dbperf.wordpress.com/281/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/dbperf.wordpress.com/281/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/dbperf.wordpress.com/281/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/dbperf.wordpress.com/281/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/dbperf.wordpress.com/281/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/dbperf.wordpress.com/281/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/dbperf.wordpress.com/281/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/dbperf.wordpress.com/281/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/dbperf.wordpress.com/281/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dbperf.wordpress.com&amp;blog=12761657&amp;post=281&amp;subd=dbperf&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://dbperf.wordpress.com/2010/07/23/sql-server-integration-services-2008-ssis-and-mysql/feed/</wfw:commentRss>
		<slash:comments>29</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/6a90fbc3d87686a798af840105a1625b?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Death</media:title>
		</media:content>

		<media:content url="http://dbperf.files.wordpress.com/2010/07/ssis1.jpg" medium="image">
			<media:title type="html">ssis1</media:title>
		</media:content>

		<media:content url="http://dbperf.files.wordpress.com/2010/07/ssis2.jpg" medium="image">
			<media:title type="html">ssis2</media:title>
		</media:content>

		<media:content url="http://dbperf.files.wordpress.com/2010/07/ssis3.jpg" medium="image">
			<media:title type="html">ssis3</media:title>
		</media:content>

		<media:content url="http://dbperf.files.wordpress.com/2010/07/ssis4.jpg" medium="image">
			<media:title type="html">ssis4</media:title>
		</media:content>

		<media:content url="http://dbperf.files.wordpress.com/2010/07/ssis5.jpg" medium="image">
			<media:title type="html">ssis5</media:title>
		</media:content>

		<media:content url="http://dbperf.files.wordpress.com/2010/07/ssis6.jpg" medium="image">
			<media:title type="html">ssis6</media:title>
		</media:content>

		<media:content url="http://dbperf.files.wordpress.com/2010/07/ssis7.jpg" medium="image">
			<media:title type="html">ssis7</media:title>
		</media:content>

		<media:content url="http://dbperf.files.wordpress.com/2010/07/ssis8.jpg" medium="image">
			<media:title type="html">ssis8</media:title>
		</media:content>

		<media:content url="http://dbperf.files.wordpress.com/2010/07/ssis9.jpg" medium="image">
			<media:title type="html">ssis9</media:title>
		</media:content>

		<media:content url="http://dbperf.files.wordpress.com/2010/07/ssis10.jpg" medium="image">
			<media:title type="html">ssis10</media:title>
		</media:content>

		<media:content url="http://dbperf.files.wordpress.com/2010/07/ssis12.jpg" medium="image">
			<media:title type="html">ssis12</media:title>
		</media:content>

		<media:content url="http://dbperf.files.wordpress.com/2010/07/ssis13.jpg" medium="image">
			<media:title type="html">ssis13</media:title>
		</media:content>

		<media:content url="http://dbperf.files.wordpress.com/2010/07/ssis14.jpg" medium="image">
			<media:title type="html">ssis14</media:title>
		</media:content>

		<media:content url="http://dbperf.files.wordpress.com/2010/07/ssis15.jpg" medium="image">
			<media:title type="html">ssis15</media:title>
		</media:content>

		<media:content url="http://dbperf.files.wordpress.com/2010/07/ssis16.jpg" medium="image">
			<media:title type="html">ssis16</media:title>
		</media:content>

		<media:content url="http://dbperf.files.wordpress.com/2010/07/ssis17.jpg" medium="image">
			<media:title type="html">ssis17</media:title>
		</media:content>

		<media:content url="http://dbperf.files.wordpress.com/2010/07/ssis18.jpg" medium="image">
			<media:title type="html">ssis18</media:title>
		</media:content>

		<media:content url="http://dbperf.files.wordpress.com/2010/07/ssis19.jpg" medium="image">
			<media:title type="html">ssis19</media:title>
		</media:content>

		<media:content url="http://dbperf.files.wordpress.com/2010/07/ssis20.jpg" medium="image">
			<media:title type="html">ssis20</media:title>
		</media:content>

		<media:content url="http://dbperf.files.wordpress.com/2010/07/ssis21.jpg" medium="image">
			<media:title type="html">ssis21</media:title>
		</media:content>

		<media:content url="http://dbperf.files.wordpress.com/2010/07/ssis22.jpg" medium="image">
			<media:title type="html">ssis22</media:title>
		</media:content>

		<media:content url="http://dbperf.files.wordpress.com/2010/07/ssis23.jpg" medium="image">
			<media:title type="html">ssis23</media:title>
		</media:content>
	</item>
		<item>
		<title>Link MySQL to MS SQL Server2008</title>
		<link>http://dbperf.wordpress.com/2010/07/22/link-mysql-to-ms-sql-server2008/</link>
		<comments>http://dbperf.wordpress.com/2010/07/22/link-mysql-to-ms-sql-server2008/#comments</comments>
		<pubDate>Thu, 22 Jul 2010 08:06:39 +0000</pubDate>
		<dc:creator>Death</dc:creator>
				<category><![CDATA[MS SQL]]></category>
		<category><![CDATA[Add linked Server]]></category>
		<category><![CDATA[Create linked server]]></category>
		<category><![CDATA[MS SQL to MySQL Linked Server]]></category>
		<category><![CDATA[MySQL Linked Server]]></category>
		<category><![CDATA[steps to create linked server]]></category>

		<guid isPermaLink="false">http://dbperf.wordpress.com/?p=239</guid>
		<description><![CDATA[I came up with Idea of this article, when I tried to create replication setup between MS SQL 2008 and MySQL. I was unable to do it since MS SQL provides only two non SQL Subscriptions/Publishers options. However I created the linked server through which I can access and query the MySQL databases and tables. <a href="http://dbperf.wordpress.com/2010/07/22/link-mysql-to-ms-sql-server2008/" class="excerpt-more-link">[&#8230;]</a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dbperf.wordpress.com&amp;blog=12761657&amp;post=239&amp;subd=dbperf&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I came up with Idea of this article, when I tried to create replication setup between MS SQL 2008 and MySQL. I was unable to do it since MS SQL provides only two non SQL Subscriptions/Publishers options.</p>
<p><a href="http://dbperf.files.wordpress.com/2010/07/link1.jpg"><img class="aligncenter size-full wp-image-240" title="link1" src="http://dbperf.files.wordpress.com/2010/07/link1.jpg?w=500&#038;h=237" alt="" width="500" height="237" /></a></p>
<p>However I created the linked server through which I can access and query the MySQL databases and tables.</p>
<p>A linked server (a virtual server) may be considered a more flexible way of achieving remote access, with the added benefits of remote table access and distributed queries. Microsoft manages the link mechanism via OLE DB technology. Specifically, an OLE DB data source points to the specific database that can be accessed using OLEDB.</p>
<p>Let’s try and create MySQL linked Server on MS SQL Server 2008 and query a database.</p>
<p><em><strong>Step 1: Create ODBC DSN for MySQL</strong></em></p>
<p>To create ODBC DSN you need to download the MySQL Connector/ODBC Drivers 5.1 from <a href="http://www.mysql.com/downloads/connector/odbc/">http://www.mysql.com/downloads/connector/odbc/</a> .</p>
<p>Once you download and install the ODBC drivers, it’s time to create the DSN. Initially check if the drivers are listed under your data sources from <strong>CONTROL PANEL&gt;Administrative Tools&gt;Data Sources(ODBC)</strong></p>
<p><strong><a href="http://dbperf.files.wordpress.com/2010/07/link21.jpg"><img class="aligncenter size-full wp-image-253" title="link2" src="http://dbperf.files.wordpress.com/2010/07/link21.jpg?w=500" alt=""   /></a></strong></p>
<p>After you see the drivers listed. Follow the Images to setup <strong>MySQL ODBC DSN</strong>.</p>
<p>On <strong>System DSN</strong> tab click <strong>Add</strong> button,</p>
<p><a href="http://dbperf.files.wordpress.com/2010/07/link4.jpg"><img class="aligncenter size-full wp-image-244" title="link4" src="http://dbperf.files.wordpress.com/2010/07/link4.jpg?w=500" alt=""   /></a></p>
<p>After you click OK and Close the window, MySQL ODBC will be added to System DSN as shown below.</p>
<p><a href="http://dbperf.files.wordpress.com/2010/07/link5.jpg"><img class="aligncenter size-full wp-image-245" title="link5" src="http://dbperf.files.wordpress.com/2010/07/link5.jpg?w=500" alt=""   /></a></p>
<p><em><strong>Steps 2: Create Linked Server through SSMS</strong></em></p>
<p><em> </em></p>
<p><em>Under Object Browser expand <strong>Server Objects</strong> and right click <strong>Linked Servers </strong>as shown below</em></p>
<p><em><a href="http://dbperf.files.wordpress.com/2010/07/link6.jpg"><img class="aligncenter size-full wp-image-246" title="link6" src="http://dbperf.files.wordpress.com/2010/07/link6.jpg?w=500" alt=""   /></a></em></p>
<p><em>Click <strong>New Linked Sever</strong>, It brings up a window; fill in the information as shown to create linked server under <strong>General</strong> tab. </em></p>
<p><em><a href="http://dbperf.files.wordpress.com/2010/07/link7.jpg"><img class="aligncenter size-full wp-image-247" title="link7" src="http://dbperf.files.wordpress.com/2010/07/link7.jpg?w=500&#038;h=448" alt="" width="500" height="448" /></a></em></p>
<p><em>In the above screen I have entered the following details to create a linked server for MySQL.</em></p>
<p><em> </em></p>
<p><em>Provider: Microsoft OLE DB Provider for ODBC Drivers</em></p>
<p><em>Product name:  MySQL</em></p>
<p><em>Data Source: MySQL (This the system dsn created earlier)</em></p>
<p><em>Provider String:  DRIVER={MySQL ODBC 5.1 Driver};SERVER=localhost;PORT=3306;DATABASE=repltest; USER=user;PASSWORD=password;OPTION=3;</em></p>
<p><em>(This string is providing all the information to connect to MySQL using the ODBC)</em></p>
<p><em>Location: Null</em></p>
<p><em>Catalog: repltest (Database name to access and query)</em></p>
<p><em> </em></p>
<p><em>Now on the <strong>Security</strong> tab, select Be made using this security context option and enter the credentials to connect to MySQL server.</em></p>
<p><em><a href="http://dbperf.files.wordpress.com/2010/07/link8.jpg"><img class="aligncenter size-full wp-image-248" title="link8" src="http://dbperf.files.wordpress.com/2010/07/link8.jpg?w=500&#038;h=448" alt="" width="500" height="448" /></a></em></p>
<p><em>Also finally under <strong>Server Options</strong> tab, change <strong>RPC</strong> and <strong>RPC Out</strong> properties to </em><em><strong>True</strong></em><em>, by default they are set to </em><em><strong>False.</strong></em></p>
<p><a href="http://dbperf.files.wordpress.com/2010/07/link9.jpg"><img class="aligncenter size-full wp-image-249" title="link9" src="http://dbperf.files.wordpress.com/2010/07/link9.jpg?w=500&#038;h=448" alt="" width="500" height="448" /></a></p>
<p><em>Click <strong>Ok, </strong>after making all the mentioned changes. This will create the linked server and it will be listed under<strong> SSMS Object Browser.</strong> Right Click on the MYSQL linked server and click <strong>Test Connection</strong>.</em></p>
<p><em><a href="http://dbperf.files.wordpress.com/2010/07/link10.jpg"><img class="aligncenter size-full wp-image-250" title="link10" src="http://dbperf.files.wordpress.com/2010/07/link10.jpg?w=500" alt=""   /></a></em></p>
<p><em><a href="http://dbperf.files.wordpress.com/2010/07/link12.jpg"><img class="aligncenter size-full wp-image-252" title="link12" src="http://dbperf.files.wordpress.com/2010/07/link12.jpg?w=500" alt=""   /></a></em></p>
<p><em>It should show you the above once succeeded. You can also browse the MYSQL linked server to check if the catalogs are displayed by expanding it.</em></p>
<p><em><strong>Step 3: Create Linked Server using T-SQL</strong></em></p>
<p>While the linked server can be created using the built-in wizard of the Management Studio, it can also be created using TSQL statements as in the following listing (run both statements, the first one creates the linked server and the second the logins).</p>
<p>Exec master.dbo.sp_addlinkedserver<br />
@server=N&#8217;localhost&#8217;,<br />
@srvprodcut=N&#8217;MySQL&#8217;,<br />
@provider=N&#8217;MSDASQL&#8217;,<br />
@datasrc=N&#8217;MySQL&#8217;</p>
<p>Exec master.dbo.sp_addlinkedserverlogin<br />
@server=N&#8217;localhost&#8217;,<br />
@locallogin=NULL,<br />
@rmtuser=N&#8217;user&#8217;,<br />
@rmtpassword=N&#8217;&lt;your password&gt;&#8217;<br />
@rmtsrvname=N&#8217;localhost&#8217;</p>
<p><em> </em></p>
<p><em> </em></p>
<p><em><strong>Step 4: Accessing and Querying MySQL through SSMS</strong></em></p>
<p><em> </em></p>
<p><em>Open a new query tab, and run a select query </em>[<em> </em><span style="color:#0000ff;">select * from openquery</span>(MYSQL,<span style="color:#ff0000;">'select * from reptab'</span>)]</p>
<p><em><a href="http://dbperf.files.wordpress.com/2010/07/link11.jpg"><img class="aligncenter size-full wp-image-251" title="link11" src="http://dbperf.files.wordpress.com/2010/07/link11.jpg?w=500&#038;h=211" alt="" width="500" height="211" /></a></em></p>
<p><em>Since we also have enabled the RPC, we can test the same using the following query </em>[<span style="color:#0000ff;">Execute</span> (<span style="color:#ff0000;">'select * from reptab</span>')at MYSQL]</p>
<p><em> If it returns the same results, the RPC is configured fine.</em></p>
<p><em> </em></p>
<p><em>Follow all the above steps to configure working Linked Server to MySQL.</em></p>
<p><em><strong><br />
</strong></em></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/dbperf.wordpress.com/239/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/dbperf.wordpress.com/239/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/dbperf.wordpress.com/239/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/dbperf.wordpress.com/239/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/dbperf.wordpress.com/239/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/dbperf.wordpress.com/239/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/dbperf.wordpress.com/239/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/dbperf.wordpress.com/239/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/dbperf.wordpress.com/239/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/dbperf.wordpress.com/239/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/dbperf.wordpress.com/239/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/dbperf.wordpress.com/239/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/dbperf.wordpress.com/239/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/dbperf.wordpress.com/239/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dbperf.wordpress.com&amp;blog=12761657&amp;post=239&amp;subd=dbperf&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://dbperf.wordpress.com/2010/07/22/link-mysql-to-ms-sql-server2008/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/6a90fbc3d87686a798af840105a1625b?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Death</media:title>
		</media:content>

		<media:content url="http://dbperf.files.wordpress.com/2010/07/link1.jpg" medium="image">
			<media:title type="html">link1</media:title>
		</media:content>

		<media:content url="http://dbperf.files.wordpress.com/2010/07/link21.jpg" medium="image">
			<media:title type="html">link2</media:title>
		</media:content>

		<media:content url="http://dbperf.files.wordpress.com/2010/07/link4.jpg" medium="image">
			<media:title type="html">link4</media:title>
		</media:content>

		<media:content url="http://dbperf.files.wordpress.com/2010/07/link5.jpg" medium="image">
			<media:title type="html">link5</media:title>
		</media:content>

		<media:content url="http://dbperf.files.wordpress.com/2010/07/link6.jpg" medium="image">
			<media:title type="html">link6</media:title>
		</media:content>

		<media:content url="http://dbperf.files.wordpress.com/2010/07/link7.jpg" medium="image">
			<media:title type="html">link7</media:title>
		</media:content>

		<media:content url="http://dbperf.files.wordpress.com/2010/07/link8.jpg" medium="image">
			<media:title type="html">link8</media:title>
		</media:content>

		<media:content url="http://dbperf.files.wordpress.com/2010/07/link9.jpg" medium="image">
			<media:title type="html">link9</media:title>
		</media:content>

		<media:content url="http://dbperf.files.wordpress.com/2010/07/link10.jpg" medium="image">
			<media:title type="html">link10</media:title>
		</media:content>

		<media:content url="http://dbperf.files.wordpress.com/2010/07/link12.jpg" medium="image">
			<media:title type="html">link12</media:title>
		</media:content>

		<media:content url="http://dbperf.files.wordpress.com/2010/07/link11.jpg" medium="image">
			<media:title type="html">link11</media:title>
		</media:content>
	</item>
		<item>
		<title>Walkthrough: Cluster Setup SQL/Win2008</title>
		<link>http://dbperf.wordpress.com/2010/07/10/walkthrough-cluster-setup-sql-win-2008/</link>
		<comments>http://dbperf.wordpress.com/2010/07/10/walkthrough-cluster-setup-sql-win-2008/#comments</comments>
		<pubDate>Sat, 10 Jul 2010 12:19:54 +0000</pubDate>
		<dc:creator>Death</dc:creator>
				<category><![CDATA[MS SQL]]></category>
		<category><![CDATA[Clustering MS SQL 2008]]></category>
		<category><![CDATA[MS SQL 2008 Cluster]]></category>
		<category><![CDATA[MS SQL failover cluster]]></category>
		<category><![CDATA[Windows 2008 Cluster]]></category>

		<guid isPermaLink="false">http://dbperf.wordpress.com/?p=217</guid>
		<description><![CDATA[Problem After Installing SQL Server 2008 Installation Process you must have noticed how different SQL Server 2008 installation is from its previous versions. Now, we will be installing SQL Server 2008 on a Windows Server 2008 Cluster. Windows Server 2008 has a lot of differences from its previous versions and one of them is the <a href="http://dbperf.wordpress.com/2010/07/10/walkthrough-cluster-setup-sql-win-2008/" class="excerpt-more-link">[&#8230;]</a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dbperf.wordpress.com&amp;blog=12761657&amp;post=217&amp;subd=dbperf&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><strong><span style="text-decoration:underline;">Problem<br />
</span></strong>After Installing <a href="http://mssqltips.com/tip.asp?tip=1678">SQL Server 2008 Installation Process</a> you must have noticed how different SQL Server 2008 installation is from its previous versions. Now, we will be installing SQL Server 2008 on a Windows Server 2008 Cluster. Windows Server 2008 has a lot of differences from its previous versions and one of them is the clustering feature.</p>
<p><strong><span style="text-decoration:underline;">Solution<br />
</span></strong>There have been a lot of changes regarding clustering between Windows Server 2003 and Windows Server 2008. It took quite a lot of effort for us to build a cluster in Windows Server 2003 &#8211; from making sure that the server hardware for all nodes are cluster-compatible to creating resource groups. Microsoft has redefined clustering with Windows Server 2008, making it simpler and easier to implement. Now that both SQL Server 2008 and Windows Server 2008 are out in the market for quite some time, it would be a must to prepare ourselves to be able to setup and deploy a clustered environment running both. Installing SQL Server on a stand-alone server or member server in the domain is pretty straight-forward. Dealing with clustering is a totally different story. The goal of this series of tips is to be able to help DBAs who may be charged with installing SQL Server on a Windows Server 2008 cluster.</p>
<p><strong><em>Prepare the cluster nodes</em></strong></p>
<p>I will be working on a 2-node cluster throughout the series and you can extend it by adding nodes later on. You can do these steps on a physical hardware or a virtual environment. I opted to do this on a virtual environment running VMWare. To start with, download and install a copy of the evaluation version of <a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=13C7300E-935C-415A-A79C-538E933D5424&amp;displaylang=en" target="_blank">Windows Server 2008 Enterprise Edition. </a>This is pretty straight-forward and does not even require any product key or activation. Evaluation period runs for 60 days and can be extended up to 240 days so you have more than enough time to play around with it. Just make sure that you select at least the Enterprise Edition during the installation process and have at least 12GB of disk space for your local disks. This is to make sure you have enough space for both Windows Server 2008 and the binaries for SQL Server 2008. A key thing to note here is that you should already have a domain on which to join these servers and that both have at least 2 network cards &#8211; one for the public network and the other for the heartbeat. Although you can run a cluster with a single network card, it isn&#8217;t recommend at all. I&#8217;ll lay out the details of the network configuration as we go along. After the installation, my recommendation is to immediately install <a href="http://www.microsoft.com/downloads/details.aspx?familyid=ab99342f-5d1a-413d-8319-81da479ab0d7&amp;displaylang=en" target="_blank">.NET Framework 3.5 with Service Pack 1</a> and <a href="http://www.microsoft.com/downloadS/details.aspx?familyid=5A58B56F-60B6-4412-95B9-54D056D6F9F4&amp;displaylang=en" target="_blank">Windows Installer 4.5 </a>(the one for Windows Server 2008 x86 is named <strong><em>Windows6.0-KB942288-v2-x86.msu</em></strong>). These two are prerequisites for SQL Server 2008 and would speed up the installation process later on.</p>
<p><strong><em>Carve out your shared disks</em></strong></p>
<p>We had a lot of challenges in Windows Server 2003 when it comes to shared disks that we will use for our clusters. For one, the 2TB limit which has a lot to do with the master boot record (MBR) has been overcome by having the GUID Partition Table (GPT) support in Windows Server 2008. This allows you to have 16 Exabytes for a partition. Another has been the use of directly attached SCSI storage. This is no longer supported for Failover Clustering in Windows Server 2008. The only supported ones will be Serially Attached Storage (SAS), Fiber Channel and iSCSI. For this example, we will be using an iSCSI storage with the help of an iSCSI Software Initiator to connect to a software-based target. I am using <a href="http://www.starwindsoftware.com/starwind-server-iscsi-san" target="_blank">StarWind&#8217;s iSCSI SAN</a> to emulate a disk image that my cluster will use as shared disks. In preparation for running SQL Server 2008 on this cluster, I recommend creating at least 4 disks &#8211; one for the quorum disk, one for MSDTC, one for the SQL Server system databases and one for the user databases. Your quorum and MSDTC disks can be as small as 1GB, although <a href="http://technet.microsoft.com/en-us/library/cc770620.aspx" target="_blank">Microsoft TechNet</a> specifies a 512MB minimum for the quorum disk. If you decide to use iSCSI as your shared storage in a production environment, a dedicated network should be used so as to isolate it from all other network traffic. This also means having a dedicated network card on your cluster nodes to access the iSCSI storage.</p>
<p><strong><em>Present your shared disks to the cluster nodes </em></strong></p>
<p>Windows Server 2008 comes with iSCSI Initiator software that enables connection of a Windows host to an external iSCSI storage array using network adapters. This differs from previous versions of Microsoft Windows where you need to <a href="http://www.microsoft.com/downloads/details.aspx?familyid=12cb3c1a-15d6-4585-b385-befd1319f825&amp;displaylang=en" target="_blank">download</a> and install this software prior to connecting to an iSCSI storage. You can launch the tool from <strong>Administrative Tools</strong> and select <strong>iSCSI Initiator</strong>.</p>
<p><a href="http://dbperf.files.wordpress.com/2010/07/1687_1.jpg"><img class="aligncenter size-full wp-image-145" title="1687_1" src="http://dbperf.files.wordpress.com/2010/07/1687_1.jpg?w=500&#038;h=395" alt="" width="500" height="395" /></a></p>
<p>To connect to the iSCSI target:</p>
<p>In      the <strong>iSCSI Initiator Properties</strong> page, click on the <strong>Discovery</strong> tab.</p>
<p><a href="http://dbperf.files.wordpress.com/2010/07/1687_21.jpg"><img class="aligncenter size-full wp-image-158" title="1687_2" src="http://dbperf.files.wordpress.com/2010/07/1687_21.jpg?w=500&#038;h=392" alt="" width="500" height="392" /></a></p>
<p>Under      the <strong>Target Portals</strong> section, click on the <strong>Add Portal</strong> button.</p>
<p>In      the <strong>Add Target Portal</strong> dialog, enter the DNS name or IP address of      your iSCSI Target and click <strong>OK</strong>. If you are hosting the target on      another Windows host as an image file, make sure that you have your      Windows Firewall configured to enable inbound traffic to port 3260.      Otherwise, this should be okay.</p>
<p><a href="http://dbperf.files.wordpress.com/2010/07/1687_3.jpg"><img class="aligncenter size-full wp-image-147" title="1687_3" src="http://dbperf.files.wordpress.com/2010/07/1687_3.jpg?w=500&#038;h=392" alt="" width="500" height="392" /></a></p>
<p>Back      in the <strong>iSCSI Initiator Properties</strong> page, click on the <strong>Targets</strong> tab. You should see a list of the iSCSI Targets that we have defined      earlier</p>
<p><a href="http://dbperf.files.wordpress.com/2010/07/1687_4.jpg"><img class="aligncenter size-full wp-image-148" title="1687_4" src="http://dbperf.files.wordpress.com/2010/07/1687_4.jpg?w=500&#038;h=392" alt="" width="500" height="392" /></a></p>
<p>Select      one of the targets and click on the <strong>Log on</strong> button.</p>
<p>In      the <strong>Log On to Target</strong> dialog, select the <strong>Automatically restore      this connection when the computer starts</strong> checkbox. Click <strong>OK</strong>.</p>
<p><a href="http://dbperf.files.wordpress.com/2010/07/1687_5.jpg"><img class="aligncenter size-full wp-image-149" title="1687_5" src="http://dbperf.files.wordpress.com/2010/07/1687_5.jpg?w=500&#038;h=392" alt="" width="500" height="392" /></a></p>
<p>Once      you are done, you should see the status of the target change to <strong>Connected</strong>.      Repeat this process for all the target disks we initially created on both      of the servers that will become nodes of your cluster.</p>
<p>Once the targets have been defined using the iSCSI Initiator tool, you can now bring the disks online, initialize them, and create new volumes using the Server Manager console. I won’t go into much detail on this process as it is similar to how we used to do it in Windows Server 2003, except for the new management console. After the disks have been initialized and volumes created, you can try logging in to the other server and verify that you can see the disks there as well. You can rescan the disks if they haven’t yet appeared.</p>
<p><strong><em>Adding Windows Server 2008 Application Server Role</em></strong></p>
<p>Since we will be installing SQL Server 2008 later on, we will have to add the Application Server role on both of the nodes. A server role is a program that allows Windows Server 2008 to perform a specific function for multiple clients within a network. To add the Application Server role,</p>
<p>Open      the <strong>Server Manager</strong> console and select <strong>Roles</strong>.</p>
<p>Click      the <strong>Add Roles</strong> link.  This will run the <strong>Add Roles Wizard</strong></p>
<p><a href="http://dbperf.files.wordpress.com/2010/07/1687_6.jpg"><img class="aligncenter size-full wp-image-150" title="1687_6" src="http://dbperf.files.wordpress.com/2010/07/1687_6.jpg?w=500&#038;h=391" alt="" width="500" height="391" /></a></p>
<p>In      the <strong>Select Server Roles</strong> dialog box, select the <strong>Application      Server </strong>checkbox. This will prompt you to add features required for      Application Server role. Click <strong>Next</strong>.</p>
<p><a href="http://dbperf.files.wordpress.com/2010/07/1687_71.jpg"><img class="aligncenter size-full wp-image-152" title="1687_7" src="http://dbperf.files.wordpress.com/2010/07/1687_71.jpg?w=500&#038;h=393" alt="" width="500" height="393" /></a></p>
<p>In      the <strong>Application Server</strong> dialog box, click <strong>Next</strong>.</p>
<p><a href="http://dbperf.files.wordpress.com/2010/07/1687_8.jpg"><img class="aligncenter size-full wp-image-153" title="1687_8" src="http://dbperf.files.wordpress.com/2010/07/1687_8.jpg?w=500&#038;h=391" alt="" width="500" height="391" /></a></p>
<p>In      the <strong>Select Role Services </strong>dialog box, select <strong>Incoming Remote      Transactions</strong> and <strong>Outgoing Remote Transactions</strong> checkboxes. These      options will be used by MSDTC. Click <strong>Next</strong></p>
<p><a href="http://dbperf.files.wordpress.com/2010/07/1687_9.jpg"><img class="aligncenter size-full wp-image-154" title="1687_9" src="http://dbperf.files.wordpress.com/2010/07/1687_9.jpg?w=500&#038;h=388" alt="" width="500" height="388" /></a></p>
<p>In      the <strong>Confirm Installation Selections</strong> dialog box, click <strong>Install</strong>.      This will go thru the process of installing the Application Server role</p>
<p><a href="http://dbperf.files.wordpress.com/2010/07/1687_10.jpg"><img class="aligncenter size-full wp-image-155" title="1687_10" src="http://dbperf.files.wordpress.com/2010/07/1687_10.jpg?w=500&#038;h=392" alt="" width="500" height="392" /></a></p>
<p>In      the <strong>Installation Results</strong> dialog box, click <strong>Close</strong>. This      completes the installation of the Application Server role on the first      node. You will have to repeat this process for the other server</p>
<p><a href="http://dbperf.files.wordpress.com/2010/07/1687_11.jpg"><img class="aligncenter size-full wp-image-156" title="1687_11" src="http://dbperf.files.wordpress.com/2010/07/1687_11.jpg?w=500&#038;h=392" alt="" width="500" height="392" /></a></p>
<p>We have now gone thru the process of creating the cluster at this point. In the next tip in this series, we will go thru the process of installing the Failover Cluster feature, validating the nodes that will become a part of the cluster and creating the cluster itself. And that is just on the Windows side. Once we manage to create a working Windows Server 2008 cluster, that&#8217;s the only time we can proceed to install SQL Server 2008.</p>
<p>To continue this series on Installing SQL Server 2008 on a Windows Server 2008 Cluster, we will look at building our Windows Server 2008 cluster in preparation for SQL Server 2008. We have completed the installation of the Application Server role in both of the servers that we will be using as part of our cluster. This tip will walk you through the installation of the Failover Cluster Feature, validating the servers that will be a part of the cluster, and creating the cluster.</p>
<p><strong><em>Adding the Failover Cluster Feature </em></strong></p>
<p>Windows Server 2008 calls them features which are simply software programs that can support or augment the functionality of server roles. Since we&#8217;ve already installed the Application Server role in our server, let&#8217;s define a feature from this perspective: failover clustering simply augments the role as an application server by making it highly available. It is disabled by default, unlike in Windows Server 2003 so we need to add it on both of the servers that will form a part of our cluster.</p>
<p>To add the Failover Clustering feature:</p>
<p>Open      the <strong>Server Manager</strong> console and select <strong>Features</strong>.</p>
<p>Click      the <strong>Add Features</strong> link. This will run the <strong>Add Features</strong> Wizard</p>
<p><a href="http://dbperf.files.wordpress.com/2010/07/1698_1.jpg"><img class="aligncenter size-full wp-image-157" title="1698_1" src="http://dbperf.files.wordpress.com/2010/07/1698_1.jpg?w=500&#038;h=389" alt="" width="500" height="389" /></a></p>
<p>In      the <strong>Select Features</strong> dialog box, select the <strong>Failover Clustering</strong> checkbox and click <strong>Next</strong>.</p>
<p><a href="http://dbperf.files.wordpress.com/2010/07/1698_2.jpg"><img class="aligncenter size-full wp-image-220" title="1698_2" src="http://dbperf.files.wordpress.com/2010/07/1698_2.jpg?w=500&#038;h=390" alt="" width="500" height="390" /></a></p>
<p>In      the <strong>Confirm Installation Selections</strong> dialog box, click <strong>Install</strong> to confirm the selection and proceed to do the installation of the      Failover Clustering feature.</p>
<p><a href="http://dbperf.files.wordpress.com/2010/07/1698_3.jpg"><img class="aligncenter size-full wp-image-159" title="1698_3" src="http://dbperf.files.wordpress.com/2010/07/1698_3.jpg?w=500&#038;h=392" alt="" width="500" height="392" /></a></p>
<p>In      the <strong>Installation Results</strong> dialog box, click <strong>Close</strong>. This      completes the installation of the Failover Clustering feature on the first      node.</p>
<p><a href="http://dbperf.files.wordpress.com/2010/07/1698_4.jpg"><img class="aligncenter size-full wp-image-160" title="1698_4" src="http://dbperf.files.wordpress.com/2010/07/1698_4.jpg?w=500&#038;h=389" alt="" width="500" height="389" /></a></p>
<p>That&#8217;s how simple and easy it is to add the Failover Clustering feature in Windows Server 2008. You will have to do this on both nodes to complete the process. Once you have managed to install the Failover Cluster Feature on both nodes, we can proceed to validate our servers if they are ready for clustering.</p>
<p><strong><em>Running the Windows Server 2008 Validate Cluster Configuration </em></strong></p>
<p>Unlike in previous versions of Windows where Microsoft had some sort of a hardware compatibility list (HCL) from which we had to find and select components tested to be clustering-supported, this wizard is like the “seal” that tells you whether or not the hardware you are using is supported. In fact, Microsoft has partnered with hardware vendors to create the <a href="http://www.microsoft.com/windowsserver2008/en/us/clustering-program.aspx">Failover Cluster Configuration Program</a> to make the acquisition of hardware for Windows Server 2008 Failover Clustering very easy and simple. Basically, your hardware will be supported for clustering if it meets these two requirements: the server has a “Certified for Windows Server 2008” logo and it passes this wizard.</p>
<p>One word of caution: do not skip any error message that this wizard generates in the final report. Doing so would simply mean that your configuration going forward will be unsupported. You only need to run this wizard on either of the nodes.</p>
<p>To run the <strong>Validate Cluster Configuration</strong> Wizard:</p>
<p>Open      the <strong>Failover Cluster Management</strong> console</p>
<p>Under      the <strong>Management</strong> section, click the <strong>Validate a Configuration</strong> link. This will run the <strong>Validate a Configuration </strong>Wizard</p>
<p><a href="http://dbperf.files.wordpress.com/2010/07/1698_5.jpg"><img class="aligncenter size-full wp-image-161" title="1698_5" src="http://dbperf.files.wordpress.com/2010/07/1698_5.jpg?w=500&#038;h=391" alt="" width="500" height="391" /></a></p>
<p>In      the <strong>Select Servers or a Cluster</strong> dialog box, enter the hostnames of      the nodes that you want to add as members of your cluster and click <strong>Next</strong>.</p>
<p><a href="http://dbperf.files.wordpress.com/2010/07/1698_6.jpg"><img class="aligncenter size-full wp-image-162" title="1698_6" src="http://dbperf.files.wordpress.com/2010/07/1698_6.jpg?w=500&#038;h=393" alt="" width="500" height="393" /></a></p>
<p>In      the <strong>Testing Options</strong> dialog box, click <strong>Next</strong> to run all the      necessary tests to validate whether or not the nodes are OK for      clustering. If this is the first time to run the wizard, you must run all      the tests for validation. For succeding runs, especially when adding      hardware like disk subsystems ot network cards on your cluster nodes, you      can selectively choose which tests to run as long as you have initially      validated your hardware by running all tests.</p>
<p><a href="http://dbperf.files.wordpress.com/2010/07/1698_7.jpg"><img class="aligncenter size-full wp-image-163" title="1698_7" src="http://dbperf.files.wordpress.com/2010/07/1698_7.jpg?w=500&#038;h=390" alt="" width="500" height="390" /></a></p>
<p>In      the <strong>Confirmation</strong> dialog box, click <strong>Next</strong>. This will run all      the necessary validation tests.</p>
<p><a href="http://dbperf.files.wordpress.com/2010/07/1698_8.jpg"><img class="aligncenter size-full wp-image-164" title="1698_8" src="http://dbperf.files.wordpress.com/2010/07/1698_8.jpg?w=500&#038;h=390" alt="" width="500" height="390" /></a></p>
<p>In      the <strong>Summary</strong> dialog box, verify that all the report returns      successful.</p>
<p><a href="http://dbperf.files.wordpress.com/2010/07/1698_9.jpg"><img class="aligncenter size-full wp-image-165" title="1698_9" src="http://dbperf.files.wordpress.com/2010/07/1698_9.jpg?w=500&#038;h=392" alt="" width="500" height="392" /></a></p>
<p>If you have reached this part of the process, the wizard will tell you whether or not you can proceed to the next step of creating your cluster. As I’ve mentioned earlier, do not attempt to go any further if this report returned any error messages. I have seen some installations where the shared disk is displaying an error in the validation report prompting me to reconfigure the shared disk. This could mean removing the disk subsystem from both nodes, creating new disks and presenting them on the nodes as mentioned. It would be best to work with your storage engineers or your system administrators when in doubt as different vendors may have different implementations of their disk subsystems.</p>
<p>I&#8217;ve also seen issues pertaining to IPv6. This is a fairly common issue which can easily be resolved. The error message in the cluster validation report looks something similar to the one displayed below</p>
<p>Verifying  that there are no duplicate IP addresses between any pair of nodes.</p>
<p>Found  duplicate IP address fe80::100:7f:fffe%13 on node node1.domain.local adapter</p>
<p>Local Area Connection* X and node node2.domain.local adapter Local Area  Connection* X.</p>
<p>This <a href="http://blogs.msdn.com/clustering/archive/2008/07/26/8773796.aspx">blog post</a> outlines the step in resolving this issue. In a few cases, however, I needed to disable the Teredo Tunneling Pseudo-Interface adapter from Device Manager before I got a successful summary report generated by the Validate Cluster Configuration wizard. The bottom line is simply to make sure that the report returns a successful validation before creating the cluster.</p>
<p><strong><em>Creating the Windows Server 2008 Cluster </em></strong></p>
<p>You&#8217;ve finally reached this step in the entire process. This means you are now ready to create your Windows Server 2008 cluster. It&#8217;s as easy as running the Create Cluster Wizard on either of the nodes. Make sure that you have your virtual hostname and IP address ready before proceeding</p>
<p>To run the <strong>Create a Cluster </strong>Wizard:</p>
<p>Open      the <strong>Failover Cluster Management</strong> console</p>
<p>Under      the <strong>Management</strong> section, click the <strong>Create a Cluster</strong> link.      This will run the <strong>Create Cluster</strong> Wizard</p>
<p><a href="http://dbperf.files.wordpress.com/2010/07/1698_10.jpg"><img class="aligncenter size-full wp-image-166" title="1698_10" src="http://dbperf.files.wordpress.com/2010/07/1698_10.jpg?w=500&#038;h=389" alt="" width="500" height="389" /></a></p>
<p>In      the <strong>Select Servers</strong> dialog box, enter the hostnames of the nodes      that you want to add as members of your cluster and click <strong>Next</strong>.</p>
<p><a href="http://dbperf.files.wordpress.com/2010/07/1698_11.jpg"><img class="aligncenter size-full wp-image-167" title="1698_11" src="http://dbperf.files.wordpress.com/2010/07/1698_11.jpg?w=500&#038;h=391" alt="" width="500" height="391" /></a></p>
<p>In      the <strong>Access Point for Administering the Cluster</strong> dialog box, enter      the virtual hostname and IP address that you will use to administer the      cluster. Click <strong>Next</strong></p>
<p><a href="http://dbperf.files.wordpress.com/2010/07/1698_12.jpg"><img class="aligncenter size-full wp-image-168" title="1698_12" src="http://dbperf.files.wordpress.com/2010/07/1698_12.jpg?w=500&#038;h=390" alt="" width="500" height="390" /></a></p>
<p>In      the <strong>Confirmation</strong> dialog box, click <strong>Next</strong>. This will configure      <strong>Failover Clustering</strong> on both nodes of the cluster, add DNS and      Active Directory entries for the cluster hostname.</p>
<p><a href="http://dbperf.files.wordpress.com/2010/07/1698_13.jpg"><img class="aligncenter size-full wp-image-169" title="1698_13" src="http://dbperf.files.wordpress.com/2010/07/1698_13.jpg?w=500&#038;h=391" alt="" width="500" height="391" /></a></p>
<p>In      the <strong>Summary</strong> dialog box, verify that all the report returns      successful.</p>
<p><a href="http://dbperf.files.wordpress.com/2010/07/1698_14.jpg"><img class="aligncenter size-full wp-image-170" title="1698_14" src="http://dbperf.files.wordpress.com/2010/07/1698_14.jpg?w=500&#038;h=392" alt="" width="500" height="392" /></a></p>
<p>Congratulations! You now have a working Windows Server 2008 cluster. Notice how easy it was to do all of these with fewer steps and less configuration compared to its predecessors. You can now validate whether your cluster is working or not. A simple test would be to do a continuous PING on the virtual hostname or IP address that you have assigned to your cluster. Reboot one of the nodes and see how your PING test responds. At this point, you are now ready to install SQL Server 2008.</p>
<p><strong><em>OPTIONAL: Configuring your cluster quorum </em></strong></p>
<p>This section is sometimes necessary especially when Windows Server 2008 decides to take a different disk subsystem as a quorum other than the one you&#8217;ve originally intended it to. Notice that in the <strong>Create a Cluster</strong> wizard, there was no option to select the disk subsystem that we can use as a quorum disk (now called the <em>&#8220;witness&#8221;</em> disk). By default, the <strong>Create a Cluster</strong> wizard will use the first available disk as the witness disk. I have seen cases where the originally planned witness disk is sized 1GB while the other shared disks are sized 200 GB. The wizard then selects one of the 200GB-sized disks as a witness disk, requiring you to move the witness disk to the original allocation. To validate, check the <strong>Storage</strong> node under the <strong>Failover Cluster Management</strong> console</p>
<p>To configure the quorum in a failover cluster:</p>
<p>Open      the <strong>Failover Cluster Management</strong> console</p>
<p>Select      the name of the cluster you have just created. Right-click on the cluster,      select <strong>More Actions</strong>, and click <strong>Configure Cluster Quorum      Settings&#8230;</strong> This will open up the <strong>Configure Cluster Quorum</strong> Wizard</p>
<p><a href="http://dbperf.files.wordpress.com/2010/07/1698_15.jpg"><img class="aligncenter size-full wp-image-171" title="1698_15" src="http://dbperf.files.wordpress.com/2010/07/1698_15.jpg?w=500&#038;h=393" alt="" width="500" height="393" /></a></p>
<p>In      the <strong>Select Quorum Configuration</strong> dialog box, select the <strong>Node and      Disk Majority (recommended for your current number of nodes)</strong> option.      The options presented will depend on how you want your cluster configured.      The current selection is for a 2-node cluster configuration</p>
<p><a href="http://dbperf.files.wordpress.com/2010/07/1698_16.jpg"><img class="aligncenter size-full wp-image-172" title="1698_16" src="http://dbperf.files.wordpress.com/2010/07/1698_16.jpg?w=500&#038;h=392" alt="" width="500" height="392" /></a></p>
<p>In      the <strong>Configure Storage Witness</strong> dialog box, validate and select the      disk that you want your cluster to use as the quorum/witness disk. Click <strong>Next</strong></p>
<p><a href="http://dbperf.files.wordpress.com/2010/07/1698_17.jpg"><img class="aligncenter size-full wp-image-173" title="1698_17" src="http://dbperf.files.wordpress.com/2010/07/1698_17.jpg?w=500&#038;h=392" alt="" width="500" height="392" /></a></p>
<p>In      the <strong>Confirmation</strong> dialog box, verify that the disk configuration for      the quorum/witness disk is correct. Click <strong>Next</strong></p>
<p><a href="http://dbperf.files.wordpress.com/2010/07/1698_18.jpg"><img class="aligncenter size-full wp-image-174" title="1698_18" src="http://dbperf.files.wordpress.com/2010/07/1698_18.jpg?w=500&#038;h=391" alt="" width="500" height="391" /></a></p>
<p>In      the <strong>Summary</strong> dialog box, verify that all the configurations are      successful.</p>
<p>For more details on Configuring the Quorum in a Failover Cluster in Windows Server 2008, check out this <a href="http://technet.microsoft.com/en-us/library/cc770620.aspx">Microsoft TechNet article</a>.</p>
<p>To continue this series on Installing SQL Server 2008 on a Windows Server 2008 Cluster, we will look at installing SQL Server 2008 in a failover cluster. Firstly, we have completed the installation of the Application Server role in both of the servers that we will be using as part of our cluster. Secondly walked you through the installation of the Failover Cluster Feature, validating the servers that will be a part of the cluster, and creating the cluster. In this tip, we will proceed to install SQL Server 2008 in a clustered Windows Server 2008 environment.</p>
<p><strong><em>Installing and Configuring MSDTC </em></strong></p>
<p>The Microsoft Distributed Transaction Coordinator (MSDTC) is a transaction manager that permits client applications to include several different data sources in one transaction and which then coordinates committing the distributed transaction across all the servers that are enlisted in the transaction. A lot of people ask why we need to install MSDTC prior to installing SQL Server. If you are using distributed transactions or running SQL Server on a cluster, this is definitely a must. SQL Server uses the MSDTC service for distributed queries and two-phase commit transactions, as well as for some replication functionality.</p>
<p>Configuring MS DTC in Windows Server 2003 clusters as defined in this <a href="http://support.microsoft.com/kb/301600/" target="_blank">Microsoft KB</a> article is not pretty straight-forward. Windows Server 2008 made it simpler by providing a more straightforward process with fewer steps and less configuration.</p>
<p>To install and configure MSDTC:</p>
<p>Open      the <strong>Failover Cluster Management</strong> console on any of the cluster node.</p>
<p>Under      the cluster name, right-click on <strong>Server and Applications</strong> and select      <strong>Configure a Service or Application</strong>. This will run the <strong>High Availability      Wizard</strong></p>
<p><a href="http://dbperf.files.wordpress.com/2010/07/1709_110.jpg"><img class="aligncenter size-full wp-image-224" title="1709_1" src="http://dbperf.files.wordpress.com/2010/07/1709_110.jpg?w=500&#038;h=394" alt="" width="500" height="394" /></a></p>
<p>In      the <strong>Service or Application</strong> dialog box, select <strong>Distributed      Transaction Coordinator (DTC)</strong> and click <strong>Next</strong>.</p>
<p><a href="http://dbperf.files.wordpress.com/2010/07/1709_2.jpg"><img class="aligncenter size-full wp-image-176" title="1709_2" src="http://dbperf.files.wordpress.com/2010/07/1709_2.jpg?w=500&#038;h=392" alt="" width="500" height="392" /></a></p>
<p>In      the <strong>Client Access Point</strong> dialog box, enter the name and IP address      of the clustered MSDTC. This should be a different IP addresses and host      name from the one that the Windows Server 2008 cluster is already using.      Click <strong>Next</strong>.</p>
<p><a href="http://dbperf.files.wordpress.com/2010/07/1709_3.jpg"><img class="aligncenter size-full wp-image-178" title="1709_3" src="http://dbperf.files.wordpress.com/2010/07/1709_3.jpg?w=500&#038;h=391" alt="" width="500" height="391" /></a></p>
<p>In      the <strong>Select Storage</strong> dialog box, select the disk subsystem that will      be used by MSDTC. These disk subsystems have to be defined as available      storage in your cluster. In the example below, I have used the disk volume      <strong>F:\</strong> and left the disk volume <strong>E:\</strong> for SQL Server later in the      installation process. Click <strong>Next</strong></p>
<p><a href="http://dbperf.files.wordpress.com/2010/07/1709_4.jpg"><img class="aligncenter size-full wp-image-180" title="1709_4" src="http://dbperf.files.wordpress.com/2010/07/1709_4.jpg?w=500&#038;h=393" alt="" width="500" height="393" /></a></p>
<p>In      the <strong>Confirmation</strong> dialog box, validate the configuration you have      selected for MSDTC and click <strong>Next</strong></p>
<p><a href="http://dbperf.files.wordpress.com/2010/07/1709_5.jpg"><img class="aligncenter size-full wp-image-181" title="1709_5" src="http://dbperf.files.wordpress.com/2010/07/1709_5.jpg?w=500&#038;h=392" alt="" width="500" height="392" /></a></p>
<p>In      the <strong>Summary</strong> dialog box, click <strong>Close</strong>. This completes the      installation of MSDTC on the cluster.</p>
<p><a href="http://dbperf.files.wordpress.com/2010/07/1709_6.jpg"><img class="aligncenter size-full wp-image-182" title="1709_6" src="http://dbperf.files.wordpress.com/2010/07/1709_6.jpg?w=500&#038;h=393" alt="" width="500" height="393" /></a></p>
<p>You can validate your installation of MSDTC by expanding the <strong>Services and Applications</strong> node and check the cluster name of MSDTC.  Make sure that all of the dependency resources are online</p>
<p><a href="http://dbperf.files.wordpress.com/2010/07/1709_27.jpg"><img class="aligncenter size-full wp-image-204" title="1709_27" src="http://dbperf.files.wordpress.com/2010/07/1709_27.jpg?w=500&#038;h=391" alt="" width="500" height="391" /></a></p>
<p><strong><em>Installing SQL Server 2008 on a Windows Server 2008 cluster</em></strong></p>
<p>You&#8217;ve gone this far, don&#8217;t stop now. Only after we have managed to prepare everything can we proceed to install SQL Server 2008 on this cluster. Since we&#8217;ve already installed <a href="http://www.microsoft.com/downloads/details.aspx?familyid=ab99342f-5d1a-413d-8319-81da479ab0d7&amp;displaylang=en" target="_blank">.NET Framework 3.5 with Service Pack 1</a> and <a href="http://www.microsoft.com/downloadS/details.aspx?familyid=5A58B56F-60B6-4412-95B9-54D056D6F9F4&amp;displaylang=en" target="_blank">Windows Installer 4.5</a>, we no longer have to worry about them as they both are prerequisites whether you are doing a single server or a cluster installation. There are two options to install SQL Server 2008 on a cluster. The first one is by using the Integrated failover cluster install with Add Node option and the second one is the Advanced/Enterprise installation option. The process outlined below will take into account the first option.</p>
<p>To install SQL Server 2008:</p>
<p>Run      <strong>setup.exe</strong> from the installation media to launch <strong>SQL Server      Installation Center. </strong>Click on the <strong>Installation</strong> link on the      left-hand side</p>
<p>Click      the <strong>New SQL Server failover cluster installation</strong> link. This will      run the <strong>SQL Server 2008 Setup</strong> wizard</p>
<p><a href="http://dbperf.files.wordpress.com/2010/07/1709_7.jpg"><img class="aligncenter size-full wp-image-184" title="1709_7" src="http://dbperf.files.wordpress.com/2010/07/1709_7.jpg?w=500&#038;h=392" alt="" width="500" height="392" /></a></p>
<p>In      the <strong>Setup Support Rules </strong>dialog box, validate that the checks return      successful results and click <strong>Next</strong>.</p>
<p><a href="http://dbperf.files.wordpress.com/2010/07/1709_8.jpg"><img class="aligncenter size-full wp-image-183" title="1709_8" src="http://dbperf.files.wordpress.com/2010/07/1709_8.jpg?w=500&#038;h=391" alt="" width="500" height="391" /></a></p>
<p>In      the <strong>Product Key</strong> dialog box, enter the product key that came with      your installation media and click <strong>Next</strong>.</p>
<p><a href="http://dbperf.files.wordpress.com/2010/07/1709_9.jpg"><img class="aligncenter size-full wp-image-185" title="1709_9" src="http://dbperf.files.wordpress.com/2010/07/1709_9.jpg?w=500&#038;h=394" alt="" width="500" height="394" /></a></p>
<p>In      the <strong>License Terms</strong> dialog box, click the <strong>I accept the license      terms</strong> check box and click <strong>Next</strong>. You probably haven&#8217;t read one      of these, but if you feel inclined go for it.</p>
<p><a href="http://dbperf.files.wordpress.com/2010/07/1709_10.jpg"><img class="aligncenter size-full wp-image-186" title="1709_10" src="http://dbperf.files.wordpress.com/2010/07/1709_10.jpg?w=500&#038;h=391" alt="" width="500" height="391" /></a></p>
<p>In      the <strong>Setup Support Rules</strong> dialog box, click <strong>Install</strong>. Validate      that the checks return successful results. If the checks returned a few      warnings, make sure you fix them before proceeding with the installation.      An example of this is the <strong>Network binding order</strong>. The public network      cards should be first on both nodes. Also, you can disable NETBIOS and DNS      registration on the network cards to avoid network overhead. Be sure to      check your binding order as well.  For more details on the      network binding order warning, see <a href="http://support.microsoft.com/kb/955963" target="_blank">Microsoft KB 955963</a>.</p>
<p>For the Windows Firewall, make sure that you open the appropriate port number on which SQL Server will communicate. You can do this after the installation. Alternatively, you can disable Windows Firewall during the installation and enable it later with the proper configuration. Click <strong>Next</strong> to proceed.</p>
<p><a href="http://dbperf.files.wordpress.com/2010/07/1709_11.jpg"><img class="aligncenter size-full wp-image-187" title="1709_11" src="http://dbperf.files.wordpress.com/2010/07/1709_11.jpg?w=500&#038;h=391" alt="" width="500" height="391" /></a></p>
<p>In      the <strong>Feature Selection</strong> dialog box, select only the components that      you want installed. For the <strong>Shared feature directory</strong>, you can keep      the default path if you have sufficient disk space on your C:\ drive or      anywhere that is a<strong> local disk</strong> as this will be used by the SQL      Server installation process later on. The directory for the clustered      database engine will be different. Click <strong>Next</strong>.</p>
<p><a href="http://dbperf.files.wordpress.com/2010/07/1709_12.jpg"><img class="aligncenter size-full wp-image-188" title="1709_12" src="http://dbperf.files.wordpress.com/2010/07/1709_12.jpg?w=500&#038;h=391" alt="" width="500" height="391" /></a></p>
<p>In      the <strong>Instance Configuration</strong> dialog box, enter the SQL Server Network      Name. This is the name that will be available on the network for the      clients. This will vary depending on your selection of whether it is a      default or named instance. In this example, default instance is selected.</p>
<p><a href="http://dbperf.files.wordpress.com/2010/07/1709_13.jpg"><img class="aligncenter size-full wp-image-190" title="1709_13" src="http://dbperf.files.wordpress.com/2010/07/1709_13.jpg?w=500&#038;h=391" alt="" width="500" height="391" /></a></p>
<p>A couple of things need highlighting in this section. By default, the instance name is used as the <strong>Instance ID</strong>. This is used to identify installation directories and registry keys for your instance of SQL Server and is helpful when you want to run multiple instances in a cluster. This is the case for default instances and named instances. For a default instance, the instance name and instance ID would be <strong>MSSQLSERVER</strong>. To use a non-default instance ID, you should select the <strong>Instance ID</strong> box and specify a value.</p>
<p>The section on <strong>Detected SQL Server instances and features on this computer</strong> would make sense if there are other SQL Server instances running on your server.</p>
<p>In      the <strong>Disk Space Requirements</strong> dialog box, check that you have enough      space on your <strong>local disks</strong> to install the SQL Server 2008 binaries      and click <strong>Next</strong>.</p>
<p><a href="http://dbperf.files.wordpress.com/2010/07/1709_14.jpg"><img class="aligncenter size-full wp-image-191" title="1709_14" src="http://dbperf.files.wordpress.com/2010/07/1709_14.jpg?w=500&#038;h=393" alt="" width="500" height="393" /></a></p>
<p>In      the <strong>Cluster Resource Group</strong> dialog box, check the resources      available on your Windows Server 2008 cluster. This will tell you that a      new Resource Group will be created on your cluster for SQL Server. To      specify the SQL Server cluster resource group name, you can either use the      drop-down box to specify an existing group to use or type the name of a      new group to create it. Click <strong>Next</strong>.</p>
<p><a href="http://dbperf.files.wordpress.com/2010/07/1709_15.jpg"><img class="aligncenter size-full wp-image-192" title="1709_15" src="http://dbperf.files.wordpress.com/2010/07/1709_15.jpg?w=500&#038;h=393" alt="" width="500" height="393" /></a></p>
<p>In      the <strong>Cluster Disk Selection</strong> dialog box, select the available disk      groups that are on the cluster for SQL Server 2008 to use. In this      example, two clustered disk groups – <strong>APPS</strong> and <strong>APPS2</strong> – have      been selected to be used by SQL Server 2008. I will be using one disk      resource for the system databases while the other one for the user      databases. Click <strong>Next</strong>.</p>
<p><a href="http://dbperf.files.wordpress.com/2010/07/1709_16.jpg"><img class="aligncenter size-full wp-image-193" title="1709_16" src="http://dbperf.files.wordpress.com/2010/07/1709_16.jpg?w=500&#038;h=392" alt="" width="500" height="392" /></a></p>
<p>In      the <strong>Cluster Network Configuration</strong> dialog box, enter the IP address      and subnet mask that your SQL Server 2008 cluster will use. Deselect the      checkbox under the <strong>DHCP</strong> column as you will be using static IP      addresses. If you have not disabled your IPv6 adapters and protocols, it      would be better to uncheck the row for <strong>IPv6</strong></p>
<p><a href="http://dbperf.files.wordpress.com/2010/07/1709_17.jpg"><img class="aligncenter size-full wp-image-194" title="1709_17" src="http://dbperf.files.wordpress.com/2010/07/1709_17.jpg?w=500&#038;h=391" alt="" width="500" height="391" /></a></p>
<p>In      the <strong>Cluster Security Policy</strong> dialog box, accept the default value of      <strong>Use service SIDs (recommended)</strong>. In Windows Server 2003, we specify      domain groups for all SQL Server services but in Windows Server 2008, this      is the recommended option. For more information on using service SIDs for      SQL Server 2008, check out this <a href="http://msdn.microsoft.com/en-us/library/ms143504.aspx#Service_SID" target="_blank">MSDN article</a></p>
<p><a href="http://dbperf.files.wordpress.com/2010/07/1709_18.jpg"><img class="aligncenter size-full wp-image-195" title="1709_18" src="http://dbperf.files.wordpress.com/2010/07/1709_18.jpg?w=500&#038;h=391" alt="" width="500" height="391" /></a></p>
<p>In      the <strong>Server Configuration</strong> dialog box, enter the credentials that you      will use for your SQL Server service accounts in the <strong>Service Accounts</strong> tab. In the <strong>Collation</strong> tab, select the appropriate collation to be      used by SQL Server. Note that the startup type is set to manual for all      cluster-aware services and cannot be changed during the installation      process. Click <strong>Next</strong>.</p>
<p><a href="http://dbperf.files.wordpress.com/2010/07/1709_19.jpg"><img class="aligncenter size-full wp-image-196" title="1709_19" src="http://dbperf.files.wordpress.com/2010/07/1709_19.jpg?w=500&#038;h=391" alt="" width="500" height="391" /></a></p>
<p>In      the <strong>Database Engine Configuration</strong> dialog box, select the      appropriate <strong>Authentication Mode.</strong> If you want to add the currently      logged on user to be a part of the SQL Server administrators group, click      the <strong>Add Current User</strong> button.</p>
<p><a href="http://dbperf.files.wordpress.com/2010/07/1709_20.jpg"><img class="aligncenter size-full wp-image-197" title="1709_20" src="http://dbperf.files.wordpress.com/2010/07/1709_20.jpg?w=500&#038;h=390" alt="" width="500" height="390" /></a></p>
<p>On the <strong>Data Directories</strong> tab, enter the path where your system and user database files will be created. This will default to the first shared disk in the cluster so in case you want to change it to the other shared disks to be used by SQL Server 2008, modify accordingly. If you intend to use the new FILESTREAM feature, click the <strong>FILESTREAM</strong> tab and set the appropriate configurations. Click <strong>Next</strong></p>
<p><strong><a href="http://dbperf.files.wordpress.com/2010/07/1709_211.jpg"><img class="aligncenter size-full wp-image-198" title="1709_21" src="http://dbperf.files.wordpress.com/2010/07/1709_211.jpg?w=500&#038;h=392" alt="" width="500" height="392" /></a></strong></p>
<p>In      the <strong>Error and Usage Reporting </strong>dialog box, click <strong>Next</strong>.</p>
<p><a href="http://dbperf.files.wordpress.com/2010/07/1709_22.jpg"><img class="aligncenter size-full wp-image-199" title="1709_22" src="http://dbperf.files.wordpress.com/2010/07/1709_22.jpg?w=500&#038;h=391" alt="" width="500" height="391" /></a></p>
<p>In      the <strong>Cluster Installation Rules</strong> dialog box, verify that all checks      are successful and click <strong>Next</strong>.</p>
<p><a href="http://dbperf.files.wordpress.com/2010/07/1709_23.jpg"><img class="aligncenter size-full wp-image-200" title="1709_23" src="http://dbperf.files.wordpress.com/2010/07/1709_23.jpg?w=500&#038;h=391" alt="" width="500" height="391" /></a></p>
<p>In      the <strong>Ready to Install</strong> dialog box, verify that all configurations are      correct. Click <strong>Next</strong>.</p>
<p><a href="http://dbperf.files.wordpress.com/2010/07/1709_24.jpg"><img class="aligncenter size-full wp-image-201" title="1709_24" src="http://dbperf.files.wordpress.com/2010/07/1709_24.jpg?w=500&#038;h=393" alt="" width="500" height="393" /></a></p>
<p>In      the <strong>Complete</strong> dialog box, click <strong>Close</strong>. This concludes the      installation of a SQL Server 2008 Failover Cluster</p>
<p><a href="http://dbperf.files.wordpress.com/2010/07/1709_25.jpg"><img class="aligncenter size-full wp-image-202" title="1709_25" src="http://dbperf.files.wordpress.com/2010/07/1709_25.jpg?w=500&#038;h=392" alt="" width="500" height="392" /></a></p>
<p>At the completion of a successful installation and configuration of the node, you now have a fully functional failover cluster instance. To validate, open the <strong>Failover Cluster Management</strong> console, and click on <strong>SQL Server (MSSQLSERVER)</strong> under <strong>Services and Applications</strong>. Make sure that all dependencies are online</p>
<p><a href="http://dbperf.files.wordpress.com/2010/07/1709_26.jpg"><img class="aligncenter size-full wp-image-203" title="1709_26" src="http://dbperf.files.wordpress.com/2010/07/1709_26.jpg?w=500&#038;h=391" alt="" width="500" height="391" /></a></p>
<p>Although we do have a fully functioning SQL Server 2008 failover cluster, it does not have high-availability at this point in time because there is only one node in the failover cluster. We still have to add the second node to the SQL Server 2008 cluster. In the last part of this series, we will add the second node in the failover cluster and install the latest cumulative update</p>
<p>To continue this series on Installing SQL Server 2008 on a Windows Server 2008 Cluster, we will look at adding a node in a SQL Server 2008 failover cluster. In this third step, we will proceed to add a node in a SQL Server 2008 failover cluster and apply the latest cumulative updates.</p>
<p><strong><em>Adding a node on a SQL Server 2008 Failover Cluster </em></strong></p>
<p>Now that you have a working failover cluster, we will make it highly available by adding nodes. The number of nodes you can add in a failover cluster depends on the editions of SQL Server that you will use. A Standard Edition of SQL Server 2008 can support up to two (2) nodes in a failover cluster while the Enterprise Edition supports up to sixteen (16) nodes, which is practically the limit for the Enterprise Edition for Windows Server 2008. As most of the steps in this process are similar to the one when you were installing the failover cluster, I&#8217;ve skipped most of the screenshots.</p>
<p>To add a node on a SQL Server 2008 failover cluster:</p>
<p>Run      <strong>setup.exe</strong> from the installation media to launch <strong>SQL Server      Installation Center</strong></p>
<p>Click      on the <strong>Installation</strong> link on the left-hand side. Click the <strong>Add      node to a SQL Server failover cluster</strong> link. This will run the <strong>SQL      Server 2008 Setup</strong> wizard.</p>
<p>There are a couple of glitches when you get to this point. One of them is      a popup error with an error message &#8220;<em>failed to retrieve data for      this request</em>&#8221; while in this step. I&#8217;ve seen a <a href="https://connect.microsoft.com/SQLServer/feedback/ViewFeedback.aspx?FeedbackID=337981" target="_blank">Microsoft Connect</a> item on this but refers to CTP6 so I was thinking it      has already been resolved. After a few searches and questions asked, <a href="https://mvp.support.microsoft.com/profile=C482792D-D259-43F5-8128-194C643EF5F2" target="_blank">SQL Server MVP Geoff      Hiten</a> advised that prior to adding      another node in the cluster, any cumulative update should be pre-applied      to the node before the main installation as the cluster install of the RTM      version has some bugs. This creates a patched install script for the RTM      installer to use. The fix started with cumulative update 1 so,      technically, you can apply any cumulative update. Sounds weird, but it      works. You still have to apply the patch after the installation.</p>
<p><a href="http://dbperf.files.wordpress.com/2010/07/1721_1.jpg"><img class="aligncenter size-full wp-image-205" title="1721_1" src="http://dbperf.files.wordpress.com/2010/07/1721_1.jpg?w=500&#038;h=392" alt="" width="500" height="392" /></a></p>
<p>In      the <strong>Setup Support Rules</strong> dialog box, validate that the checks return      successful results and click <strong>OK</strong>.</p>
<p>In      the <strong>Product Key</strong> dialog box, enter the product key that came with      your installation media and click <strong>Next</strong>.</p>
<p>Again, a few glitches on this step. This might seem unusual as you are      only being asked about the Product Key. There is also a <a href="https://connect.microsoft.com/SQLServer/feedback/ViewFeedback.aspx?FeedbackID=363036" target="_blank">Microsoft Connect</a> item for this which basically asks you to run the <strong>setup.exe</strong> in command prompt. There is a popup error with an error message &#8220;<em>The      current SKU is invalid</em>&#8221; while in this step. This usually happens      when you use a media with a supplied product key, like the one that comes      with an MSDN subscription. What worked for me was to copy the installation      media on a local disk, locate the file <strong>DefaultSetup.ini</strong> file from      the installation files and delete it or move it to different location. If      you opt to delete the file, make sure you note down the product key      written on this file as you will need to manually key this in during the      installation process. This <a href="http://forums.techarena.in/server-cluster/1032365.htm" target="_blank">forum post</a> will give you quite a few options to solve this issue</p>
<p>In      the <strong>License Terms</strong> dialog box, click the <strong>I accept the license      terms</strong> check box and click <strong>Next</strong>.</p>
<p>In      the <strong>Setup Support Rules</strong> dialog box, click <strong>Install</strong>. Validate      that the checks return successful results. Again, make sure to fix any      errors returned by this check before proceeding with the installation.</p>
<p>In      the <strong>Cluster Node Configuration</strong> dialog box, validate that the      information for the existing SQL Server 2008 cluster is correct.</p>
<p><a href="http://dbperf.files.wordpress.com/2010/07/1721_2.jpg"><img class="aligncenter size-full wp-image-206" title="1721_2" src="http://dbperf.files.wordpress.com/2010/07/1721_2.jpg?w=500&#038;h=391" alt="" width="500" height="391" /></a></p>
<p>In      the<strong> Service Accounts</strong> dialog box, verify that the information is the      same as what you have used to configure the first node.</p>
<p><a href="http://dbperf.files.wordpress.com/2010/07/1721_3.jpg"><img class="aligncenter size-full wp-image-207" title="1721_3" src="http://dbperf.files.wordpress.com/2010/07/1721_3.jpg?w=500&#038;h=392" alt="" width="500" height="392" /></a></p>
<p>In      the <strong>Error and Usage Reporting</strong> dialog box, click <strong>Next</strong></p>
<p>In      the <strong>Add Node Rules</strong> dialog box, verify that all checks are      successful and click <strong>Next</strong></p>
<p>In      the <strong>Ready to Add Node</strong> dialog box, verify that all configurations      are correct and click <strong>Install</strong></p>
<p>In      the <strong>Complete</strong> dialog box, click <strong>Close</strong>. This concludes adding      a node to a SQL Server 2008 Failover Cluster</p>
<p><a href="http://dbperf.files.wordpress.com/2010/07/1721_4.jpg"><img class="aligncenter size-full wp-image-208" title="1721_4" src="http://dbperf.files.wordpress.com/2010/07/1721_4.jpg?w=500&#038;h=392" alt="" width="500" height="392" /></a></p>
<p>You can validate your cluster installation by expanding the <strong>Services and Applications</strong> node and check the cluster name of your SQL Server instance.  You can now see an option to move the service to another node, in this case, the node you&#8217;ve just added in your failover cluster</p>
<p><a href="http://dbperf.files.wordpress.com/2010/07/1721_5.jpg"><img title="1721_5" src="http://dbperf.files.wordpress.com/2010/07/1721_5.jpg?w=500&#038;h=390" alt="" width="500" height="390" /></a></p>
<p><strong><em>Applying patches on a SQL Server 2008 cluster</em></strong></p>
<p>Part of the tasks of a DBA is to apply patches on the database engine and a SQL Server 2008 failover cluster is no exception. In fact, it is not as straight-forward as applying patches and service packs on a stand-alone server. It is important to note that when applying patches or service packs to a SQL Server failover cluster, you should apply them first on the passive node. After completing the installation on the passive node, failover the SQL Server 2008 cluster resource to this node making it the active node. Once the SQL Server service and all other dependencies are up, you can, then, apply the patches on the new passive node. The latest available patch for SQL Server 2008 is cumulative update 4 and is available for request from Microsoft.  For more information, check out this <a href="http://support.microsoft.com/kb/963036/" target="_blank">Microsoft KB article</a>. You will have to request for the patch from Microsoft as it is not available from the Microsoft Download Center. The screenshots below show cumulative update 3 (version <strong>10.0.1600.22</strong>) but the process is basically the same. Also, note that even though you may have already applied the cumulative update due to the bug mentioned above for adding a node in a failover cluster, you still have to apply the patch on both nodes</p>
<p>To apply patches on a SQL Server 2008 failover cluster node:</p>
<p>Run      <strong>SQLServer2008-KB960484-x86.exe</strong> (this would depend on the cumulative      update that you want to apply) from the hotfix package you have requested      from Microsoft</p>
<p>In      the <strong>Welcome </strong>dialog box, validate that the checks return successful      results.</p>
<p><a href="http://dbperf.files.wordpress.com/2010/07/1721_6.jpg"><img title="1721_6" src="http://dbperf.files.wordpress.com/2010/07/1721_6.jpg?w=500&#038;h=392" alt="" width="500" height="392" /></a></p>
<p>In      the <strong>License Terms </strong>dialog box, click the <strong>I accept the license      terms</strong> check box and click <strong>Next</strong></p>
<p><a href="http://dbperf.files.wordpress.com/2010/07/1721_7.jpg"><img title="1721_7" src="http://dbperf.files.wordpress.com/2010/07/1721_7.jpg?w=500&#038;h=392" alt="" width="500" height="392" /></a></p>
<p>In      the <strong>Select Features </strong>dialog box, validate the SQL Server 2008      components by clicking on the check box.  The <strong>Upgrade Status</strong> field will tell you whether or not the patch has already been applied.      Click <strong>Next</strong></p>
<p><a href="http://dbperf.files.wordpress.com/2010/07/1721_8.jpg"><img title="1721_8" src="http://dbperf.files.wordpress.com/2010/07/1721_8.jpg?w=500&#038;h=392" alt="" width="500" height="392" /></a></p>
<p>In      the <strong>Ready to Update</strong> dialog box, verify that all configurations are      correct and click <strong>Patch</strong></p>
<p><a href="http://dbperf.files.wordpress.com/2010/07/1721_9.jpg"><img title="1721_9" src="http://dbperf.files.wordpress.com/2010/07/1721_9.jpg?w=500&#038;h=391" alt="" width="500" height="391" /></a></p>
<p>In      the <strong>Update Progress </strong>dialog box, validate that the installation was      successful.</p>
<p><a href="http://dbperf.files.wordpress.com/2010/07/1721_10.jpg"><img title="1721_10" src="http://dbperf.files.wordpress.com/2010/07/1721_10.jpg?w=500&#038;h=392" alt="" width="500" height="392" /></a></p>
<p>In      the <strong>Complete</strong> dialog box, click Close. This concludes patching the      passive node of a SQL Server 2008 Failover Cluster</p>
<p><a href="http://dbperf.files.wordpress.com/2010/07/1721_10.jpg"><br />
</a><a href="http://dbperf.files.wordpress.com/2010/07/1721_11.jpg"><img class="aligncenter size-full wp-image-216" title="1721_11" src="http://dbperf.files.wordpress.com/2010/07/1721_11.jpg?w=500&#038;h=392" alt="" width="500" height="392" /></a></p>
<p>After successfully installing the patch on the passive node, move the SQL Server 2008 cluster resource to this node so it will become the new active node. Make sure that all the SQL Server 2008 cluster dependencies are online prior to applying the patch on the other node.  Repeat the process outlined above to the new passive node. A more comprehensive approach for applying a SQL Server 2008 patch to a failover cluster instance is defined in this <a href="http://support.microsoft.com/default.aspx/kb/958734" target="_blank">Microsoft KB article</a></p>
<p>Congratulations! You now have a working two-node SQL Server 2008 failover cluster running on Windows Server 2008.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/dbperf.wordpress.com/217/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/dbperf.wordpress.com/217/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/dbperf.wordpress.com/217/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/dbperf.wordpress.com/217/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/dbperf.wordpress.com/217/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/dbperf.wordpress.com/217/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/dbperf.wordpress.com/217/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/dbperf.wordpress.com/217/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/dbperf.wordpress.com/217/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/dbperf.wordpress.com/217/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/dbperf.wordpress.com/217/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/dbperf.wordpress.com/217/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/dbperf.wordpress.com/217/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/dbperf.wordpress.com/217/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dbperf.wordpress.com&amp;blog=12761657&amp;post=217&amp;subd=dbperf&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://dbperf.wordpress.com/2010/07/10/walkthrough-cluster-setup-sql-win-2008/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/6a90fbc3d87686a798af840105a1625b?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Death</media:title>
		</media:content>

		<media:content url="http://dbperf.files.wordpress.com/2010/07/1687_1.jpg" medium="image">
			<media:title type="html">1687_1</media:title>
		</media:content>

		<media:content url="http://dbperf.files.wordpress.com/2010/07/1687_21.jpg" medium="image">
			<media:title type="html">1687_2</media:title>
		</media:content>

		<media:content url="http://dbperf.files.wordpress.com/2010/07/1687_3.jpg" medium="image">
			<media:title type="html">1687_3</media:title>
		</media:content>

		<media:content url="http://dbperf.files.wordpress.com/2010/07/1687_4.jpg" medium="image">
			<media:title type="html">1687_4</media:title>
		</media:content>

		<media:content url="http://dbperf.files.wordpress.com/2010/07/1687_5.jpg" medium="image">
			<media:title type="html">1687_5</media:title>
		</media:content>

		<media:content url="http://dbperf.files.wordpress.com/2010/07/1687_6.jpg" medium="image">
			<media:title type="html">1687_6</media:title>
		</media:content>

		<media:content url="http://dbperf.files.wordpress.com/2010/07/1687_71.jpg" medium="image">
			<media:title type="html">1687_7</media:title>
		</media:content>

		<media:content url="http://dbperf.files.wordpress.com/2010/07/1687_8.jpg" medium="image">
			<media:title type="html">1687_8</media:title>
		</media:content>

		<media:content url="http://dbperf.files.wordpress.com/2010/07/1687_9.jpg" medium="image">
			<media:title type="html">1687_9</media:title>
		</media:content>

		<media:content url="http://dbperf.files.wordpress.com/2010/07/1687_10.jpg" medium="image">
			<media:title type="html">1687_10</media:title>
		</media:content>

		<media:content url="http://dbperf.files.wordpress.com/2010/07/1687_11.jpg" medium="image">
			<media:title type="html">1687_11</media:title>
		</media:content>

		<media:content url="http://dbperf.files.wordpress.com/2010/07/1698_1.jpg" medium="image">
			<media:title type="html">1698_1</media:title>
		</media:content>

		<media:content url="http://dbperf.files.wordpress.com/2010/07/1698_2.jpg" medium="image">
			<media:title type="html">1698_2</media:title>
		</media:content>

		<media:content url="http://dbperf.files.wordpress.com/2010/07/1698_3.jpg" medium="image">
			<media:title type="html">1698_3</media:title>
		</media:content>

		<media:content url="http://dbperf.files.wordpress.com/2010/07/1698_4.jpg" medium="image">
			<media:title type="html">1698_4</media:title>
		</media:content>

		<media:content url="http://dbperf.files.wordpress.com/2010/07/1698_5.jpg" medium="image">
			<media:title type="html">1698_5</media:title>
		</media:content>

		<media:content url="http://dbperf.files.wordpress.com/2010/07/1698_6.jpg" medium="image">
			<media:title type="html">1698_6</media:title>
		</media:content>

		<media:content url="http://dbperf.files.wordpress.com/2010/07/1698_7.jpg" medium="image">
			<media:title type="html">1698_7</media:title>
		</media:content>

		<media:content url="http://dbperf.files.wordpress.com/2010/07/1698_8.jpg" medium="image">
			<media:title type="html">1698_8</media:title>
		</media:content>

		<media:content url="http://dbperf.files.wordpress.com/2010/07/1698_9.jpg" medium="image">
			<media:title type="html">1698_9</media:title>
		</media:content>

		<media:content url="http://dbperf.files.wordpress.com/2010/07/1698_10.jpg" medium="image">
			<media:title type="html">1698_10</media:title>
		</media:content>

		<media:content url="http://dbperf.files.wordpress.com/2010/07/1698_11.jpg" medium="image">
			<media:title type="html">1698_11</media:title>
		</media:content>

		<media:content url="http://dbperf.files.wordpress.com/2010/07/1698_12.jpg" medium="image">
			<media:title type="html">1698_12</media:title>
		</media:content>

		<media:content url="http://dbperf.files.wordpress.com/2010/07/1698_13.jpg" medium="image">
			<media:title type="html">1698_13</media:title>
		</media:content>

		<media:content url="http://dbperf.files.wordpress.com/2010/07/1698_14.jpg" medium="image">
			<media:title type="html">1698_14</media:title>
		</media:content>

		<media:content url="http://dbperf.files.wordpress.com/2010/07/1698_15.jpg" medium="image">
			<media:title type="html">1698_15</media:title>
		</media:content>

		<media:content url="http://dbperf.files.wordpress.com/2010/07/1698_16.jpg" medium="image">
			<media:title type="html">1698_16</media:title>
		</media:content>

		<media:content url="http://dbperf.files.wordpress.com/2010/07/1698_17.jpg" medium="image">
			<media:title type="html">1698_17</media:title>
		</media:content>

		<media:content url="http://dbperf.files.wordpress.com/2010/07/1698_18.jpg" medium="image">
			<media:title type="html">1698_18</media:title>
		</media:content>

		<media:content url="http://dbperf.files.wordpress.com/2010/07/1709_110.jpg" medium="image">
			<media:title type="html">1709_1</media:title>
		</media:content>

		<media:content url="http://dbperf.files.wordpress.com/2010/07/1709_2.jpg" medium="image">
			<media:title type="html">1709_2</media:title>
		</media:content>

		<media:content url="http://dbperf.files.wordpress.com/2010/07/1709_3.jpg" medium="image">
			<media:title type="html">1709_3</media:title>
		</media:content>

		<media:content url="http://dbperf.files.wordpress.com/2010/07/1709_4.jpg" medium="image">
			<media:title type="html">1709_4</media:title>
		</media:content>

		<media:content url="http://dbperf.files.wordpress.com/2010/07/1709_5.jpg" medium="image">
			<media:title type="html">1709_5</media:title>
		</media:content>

		<media:content url="http://dbperf.files.wordpress.com/2010/07/1709_6.jpg" medium="image">
			<media:title type="html">1709_6</media:title>
		</media:content>

		<media:content url="http://dbperf.files.wordpress.com/2010/07/1709_27.jpg" medium="image">
			<media:title type="html">1709_27</media:title>
		</media:content>

		<media:content url="http://dbperf.files.wordpress.com/2010/07/1709_7.jpg" medium="image">
			<media:title type="html">1709_7</media:title>
		</media:content>

		<media:content url="http://dbperf.files.wordpress.com/2010/07/1709_8.jpg" medium="image">
			<media:title type="html">1709_8</media:title>
		</media:content>

		<media:content url="http://dbperf.files.wordpress.com/2010/07/1709_9.jpg" medium="image">
			<media:title type="html">1709_9</media:title>
		</media:content>

		<media:content url="http://dbperf.files.wordpress.com/2010/07/1709_10.jpg" medium="image">
			<media:title type="html">1709_10</media:title>
		</media:content>

		<media:content url="http://dbperf.files.wordpress.com/2010/07/1709_11.jpg" medium="image">
			<media:title type="html">1709_11</media:title>
		</media:content>

		<media:content url="http://dbperf.files.wordpress.com/2010/07/1709_12.jpg" medium="image">
			<media:title type="html">1709_12</media:title>
		</media:content>

		<media:content url="http://dbperf.files.wordpress.com/2010/07/1709_13.jpg" medium="image">
			<media:title type="html">1709_13</media:title>
		</media:content>

		<media:content url="http://dbperf.files.wordpress.com/2010/07/1709_14.jpg" medium="image">
			<media:title type="html">1709_14</media:title>
		</media:content>

		<media:content url="http://dbperf.files.wordpress.com/2010/07/1709_15.jpg" medium="image">
			<media:title type="html">1709_15</media:title>
		</media:content>

		<media:content url="http://dbperf.files.wordpress.com/2010/07/1709_16.jpg" medium="image">
			<media:title type="html">1709_16</media:title>
		</media:content>

		<media:content url="http://dbperf.files.wordpress.com/2010/07/1709_17.jpg" medium="image">
			<media:title type="html">1709_17</media:title>
		</media:content>

		<media:content url="http://dbperf.files.wordpress.com/2010/07/1709_18.jpg" medium="image">
			<media:title type="html">1709_18</media:title>
		</media:content>

		<media:content url="http://dbperf.files.wordpress.com/2010/07/1709_19.jpg" medium="image">
			<media:title type="html">1709_19</media:title>
		</media:content>

		<media:content url="http://dbperf.files.wordpress.com/2010/07/1709_20.jpg" medium="image">
			<media:title type="html">1709_20</media:title>
		</media:content>

		<media:content url="http://dbperf.files.wordpress.com/2010/07/1709_211.jpg" medium="image">
			<media:title type="html">1709_21</media:title>
		</media:content>

		<media:content url="http://dbperf.files.wordpress.com/2010/07/1709_22.jpg" medium="image">
			<media:title type="html">1709_22</media:title>
		</media:content>

		<media:content url="http://dbperf.files.wordpress.com/2010/07/1709_23.jpg" medium="image">
			<media:title type="html">1709_23</media:title>
		</media:content>

		<media:content url="http://dbperf.files.wordpress.com/2010/07/1709_24.jpg" medium="image">
			<media:title type="html">1709_24</media:title>
		</media:content>

		<media:content url="http://dbperf.files.wordpress.com/2010/07/1709_25.jpg" medium="image">
			<media:title type="html">1709_25</media:title>
		</media:content>

		<media:content url="http://dbperf.files.wordpress.com/2010/07/1709_26.jpg" medium="image">
			<media:title type="html">1709_26</media:title>
		</media:content>

		<media:content url="http://dbperf.files.wordpress.com/2010/07/1721_1.jpg" medium="image">
			<media:title type="html">1721_1</media:title>
		</media:content>

		<media:content url="http://dbperf.files.wordpress.com/2010/07/1721_2.jpg" medium="image">
			<media:title type="html">1721_2</media:title>
		</media:content>

		<media:content url="http://dbperf.files.wordpress.com/2010/07/1721_3.jpg" medium="image">
			<media:title type="html">1721_3</media:title>
		</media:content>

		<media:content url="http://dbperf.files.wordpress.com/2010/07/1721_4.jpg" medium="image">
			<media:title type="html">1721_4</media:title>
		</media:content>

		<media:content url="http://dbperf.files.wordpress.com/2010/07/1721_5.jpg" medium="image">
			<media:title type="html">1721_5</media:title>
		</media:content>

		<media:content url="http://dbperf.files.wordpress.com/2010/07/1721_6.jpg" medium="image">
			<media:title type="html">1721_6</media:title>
		</media:content>

		<media:content url="http://dbperf.files.wordpress.com/2010/07/1721_7.jpg" medium="image">
			<media:title type="html">1721_7</media:title>
		</media:content>

		<media:content url="http://dbperf.files.wordpress.com/2010/07/1721_8.jpg" medium="image">
			<media:title type="html">1721_8</media:title>
		</media:content>

		<media:content url="http://dbperf.files.wordpress.com/2010/07/1721_9.jpg" medium="image">
			<media:title type="html">1721_9</media:title>
		</media:content>

		<media:content url="http://dbperf.files.wordpress.com/2010/07/1721_10.jpg" medium="image">
			<media:title type="html">1721_10</media:title>
		</media:content>

		<media:content url="http://dbperf.files.wordpress.com/2010/07/1721_11.jpg" medium="image">
			<media:title type="html">1721_11</media:title>
		</media:content>
	</item>
		<item>
		<title>RHEL LVS setup for MySQL DB Nodes</title>
		<link>http://dbperf.wordpress.com/2010/07/08/rhel-lvs-setup-for-mysql-db-nodes/</link>
		<comments>http://dbperf.wordpress.com/2010/07/08/rhel-lvs-setup-for-mysql-db-nodes/#comments</comments>
		<pubDate>Thu, 08 Jul 2010 11:59:10 +0000</pubDate>
		<dc:creator>Death</dc:creator>
				<category><![CDATA[Database Configurations]]></category>
		<category><![CDATA[Configuration steps for LVS]]></category>
		<category><![CDATA[RHEL LVS Setup for MySQL]]></category>
		<category><![CDATA[Step to configure LVS]]></category>

		<guid isPermaLink="false">http://dbperf.wordpress.com/?p=132</guid>
		<description><![CDATA[I was configuring MySQL Cluster where the application servers use a properties file to connect to the MySQL Data/Storage node (I configured both Data and Storage nodes on same physical server). I want the application to use a single IP address, to access the DB servers in cluster. Since if any of the nodes fail, <a href="http://dbperf.wordpress.com/2010/07/08/rhel-lvs-setup-for-mysql-db-nodes/" class="excerpt-more-link">[&#8230;]</a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dbperf.wordpress.com&amp;blog=12761657&amp;post=132&amp;subd=dbperf&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I was configuring MySQL Cluster where the application servers use a properties file to connect to the MySQL Data/Storage node (I configured both Data and Storage nodes on same physical server).<br />
I want the application to use a single IP address, to access the DB servers in cluster. Since if any of the nodes fail, the application servers should still be able to query the databases.<br />
Hence I thought of using LVS so that multiple application servers can access the DB servers through VIP. To achieve the same I have configured LVS, thought of sharing the same.</p>
<p>RHEL Linux LVS setup:<br />
=====================</p>
<p>Pre-Requisites:<br />
===============</p>
<p>REDHAT Linux Cluster Packages<br />
VIRTUAL IP</p>
<p>Configuration for LB server:<br />
============================</p>
<p>Configure packet forwarding on LB server</p>
<p>vi /etc/sysctl.conf</p>
<p>net.ipv4.ip_forward = 1        # change to 1,</p>
<p>Install piranha package from redhat cluster group</p>
<p>Once installed, configure the password:</p>
<p># piranha-passwd</p>
<p>for autostart the LVS services, below are the commands</p>
<p># chkconfig pulse on<br />
# chkconfig piranha-gui on<br />
# chkconfig httpd on</p>
<p>Start the http and piranha services</p>
<p># service httpd start<br />
# service piranha-gui start</p>
<p>Open http://localhost:3636 in a Web browser to access the Piranha Configuration Tool.<br />
Click on the Login button and enter piranha for the Username and the administrative password you created in the Password field.</p>
<p>OR</p>
<p>Configure file to set up LVS</p>
<p>vi /etc/sysconfig/ha/lvs.cf        # Sample configuration file for 11.1 and 11.4</p>
<p>serial_no = 47<br />
primary = 172.16.11.1<br />
service = lvs<br />
backup_active = 1<br />
backup = 172.16.11.4<br />
heartbeat = 1<br />
heartbeat_port = 539<br />
keepalive = 3<br />
deadtime = 6<br />
network = direct<br />
debug_level = NONE<br />
monitor_links = 0<br />
syncdaemon = 0<br />
virtual MySQL {<br />
active = 1<br />
address = 172.16.11.10 bond0:1<br />
vip_nmask = 255.255.255.255<br />
port = 3306<br />
expect = &#8220;UP&#8221;<br />
use_regex = 1<br />
send_program = &#8220;/root/mysql_mon.sh %h&#8221;<br />
load_monitor = none<br />
scheduler = wlc<br />
protocol = tcp<br />
timeout = 5<br />
reentry = 3<br />
quiesce_server = 0<br />
server Server1 {<br />
address = 172.16.11.2<br />
active = 1<br />
weight = 1<br />
}<br />
server Server2 {<br />
address = 172.16.11.3<br />
active = 1<br />
weight = 1<br />
}<br />
}</p>
<p>Restart the pulse services on the LVS Routers</p>
<p># service pulse restart</p>
<p>Verify the LVS. Check the ipvsadm entries:</p>
<p>[root@ServerLB|172.16.11.1~]~ # ipvsadm</p>
<p>IP Virtual Server version 1.2.1 (size=4096)<br />
Prot LocalAddress:Port Scheduler Flags<br />
-&gt; RemoteAddress:Port           Forward Weight ActiveConn InActConn<br />
TCP  172.16.11.10:mysql wlc<br />
-&gt; Server1  :mysql              Route   1      0          0<br />
-&gt; Server2  :mysql              Route   1      0          0</p>
<p>MySQL Real Servers configuration:<br />
=================================</p>
<p>Run below commands on both the MySQL nodes</p>
<p>echo 1 &gt; /proc/sys/net/ipv4/conf/lo/arp_ignore<br />
echo 2 &gt; /proc/sys/net/ipv4/conf/lo/arp_announce</p>
<p>Configure loopback on both the MySQL nodes</p>
<p>ifconfig lo:0 172.16.11.10 netmask 255.255.255.255 up</p>
<p>OR (Permanent changes)</p>
<p>vi /etc/sysconfig/network-scripts/ifcfg-lo:0</p>
<p>DEVICE=lo:0<br />
IPADDR=172.16.11.10<br />
NETMASK=255.255.255.255<br />
NETWORK=172.16.11.0<br />
BROADCAST=172.16.11.255<br />
ONBOOT=yes<br />
NAME=loopback</p>
<p>To bring up the IP alias the ifup command is used:<br />
/sbin/ifup lo</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/dbperf.wordpress.com/132/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/dbperf.wordpress.com/132/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/dbperf.wordpress.com/132/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/dbperf.wordpress.com/132/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/dbperf.wordpress.com/132/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/dbperf.wordpress.com/132/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/dbperf.wordpress.com/132/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/dbperf.wordpress.com/132/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/dbperf.wordpress.com/132/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/dbperf.wordpress.com/132/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/dbperf.wordpress.com/132/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/dbperf.wordpress.com/132/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/dbperf.wordpress.com/132/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/dbperf.wordpress.com/132/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dbperf.wordpress.com&amp;blog=12761657&amp;post=132&amp;subd=dbperf&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://dbperf.wordpress.com/2010/07/08/rhel-lvs-setup-for-mysql-db-nodes/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/6a90fbc3d87686a798af840105a1625b?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Death</media:title>
		</media:content>
	</item>
		<item>
		<title>Automate MySQL Dumps using Linux CRON Job</title>
		<link>http://dbperf.wordpress.com/2010/06/11/automate-mysql-dumps-using-linux-cron-job/</link>
		<comments>http://dbperf.wordpress.com/2010/06/11/automate-mysql-dumps-using-linux-cron-job/#comments</comments>
		<pubDate>Fri, 11 Jun 2010 14:30:29 +0000</pubDate>
		<dc:creator>Death</dc:creator>
				<category><![CDATA[Database Configurations]]></category>
		<category><![CDATA[Automate MySQL Dumps]]></category>
		<category><![CDATA[MySQL dumps using cron job]]></category>
		<category><![CDATA[Schedule MySQL dumps]]></category>

		<guid isPermaLink="false">http://dbperf.wordpress.com/?p=121</guid>
		<description><![CDATA[MySQL Dump Using Linux CRON Job If you are a database administrator who would like to automate you tasks. Here is a simple and very basic task that can be automated, MySQL Database Dumps are the very basic task every administrator does, no matter how simple it sounds, it is most useful in failure scenarios. <a href="http://dbperf.wordpress.com/2010/06/11/automate-mysql-dumps-using-linux-cron-job/" class="excerpt-more-link">[&#8230;]</a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dbperf.wordpress.com&amp;blog=12761657&amp;post=121&amp;subd=dbperf&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><strong>MySQL Dump Using Linux CRON Job</strong></p>
<p>If you are a database administrator who would like to automate you tasks. Here is a simple and very basic task that can be automated,<br />
MySQL Database Dumps are the very basic task every administrator does, no matter how simple it sounds, it is most useful in failure scenarios. Hence you would have to perform this task very often.</p>
<p>It is very likely to miss on taking dumps on daily routine, hence you can come up with an alternative to dump your databases by scheduling it to run automatically. This will let you concentrate on your other task which might need more attention.</p>
<p>There are several ways to dump a database, you have many utilities and tools to do so. Also many tools give you the option to schedule the dumps through a GUI.</p>
<p>Follow the below steps to automate your MySQL dump.</p>
<p>Firstly, you need create a .sh file with these entries,</p>
<p><strong>&gt;vi MySQLdump.sh</strong></p>
<p><em>mysqldump -u root -pmysql123 &#8211;all-databases &#8211;routines| gzip &gt; /root/MySQLDB_`date &#8216;+%m-%d-%Y&#8217;`.sql.gz<br />
mysqldump -h 172.16.21.3 -u root -pmysql123 &#8211;all-databases &#8211;routines | gzip &gt; /root/MySQLDB.3_`date &#8216;+%m-%d-%Y&#8217;`.sql.gz</em></p>
<p>In above two lines, I&#8217;m scheduling the cron job to dump my database on the same machine, also the second line is dumping a databsase from a remote host.<br />
You need to provide access to the local system on the remote host to perform the task.</p>
<p>Secondly, create a CRON job to schedule the dumps.</p>
<p><strong>&gt;crontab -e</strong></p>
<p><em>30 15 * * * /root/MySQLdump.sh 2&gt;&amp;1&gt;&gt; /root/MySQLdump.log</em></p>
<p>The above will dump the database every day at 15:30.</p>
<p>You can schedule it your way.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/dbperf.wordpress.com/121/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/dbperf.wordpress.com/121/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/dbperf.wordpress.com/121/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/dbperf.wordpress.com/121/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/dbperf.wordpress.com/121/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/dbperf.wordpress.com/121/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/dbperf.wordpress.com/121/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/dbperf.wordpress.com/121/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/dbperf.wordpress.com/121/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/dbperf.wordpress.com/121/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/dbperf.wordpress.com/121/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/dbperf.wordpress.com/121/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/dbperf.wordpress.com/121/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/dbperf.wordpress.com/121/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dbperf.wordpress.com&amp;blog=12761657&amp;post=121&amp;subd=dbperf&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://dbperf.wordpress.com/2010/06/11/automate-mysql-dumps-using-linux-cron-job/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/6a90fbc3d87686a798af840105a1625b?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Death</media:title>
		</media:content>
	</item>
		<item>
		<title>NDB ENGINE</title>
		<link>http://dbperf.wordpress.com/2010/05/27/ndb-engine-limitations/</link>
		<comments>http://dbperf.wordpress.com/2010/05/27/ndb-engine-limitations/#comments</comments>
		<pubDate>Thu, 27 May 2010 16:15:04 +0000</pubDate>
		<dc:creator>Death</dc:creator>
				<category><![CDATA[Database Configurations]]></category>
		<category><![CDATA[NDB Limitations]]></category>
		<category><![CDATA[NDB Storage Engine]]></category>

		<guid isPermaLink="false">http://dbperf.wordpress.com/?p=114</guid>
		<description><![CDATA[NDB Storage engine limitations.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dbperf.wordpress.com&amp;blog=12761657&amp;post=114&amp;subd=dbperf&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<h4>For latest developments and updates on cluster visit below.</h4>
<p>Many limitations of previous versions addressed.</p>
<p><a href="http://dev.mysql.com/doc/refman/5.1/en/mysql-cluster-development-5-1-ndb-7-1.html">http://dev.mysql.com/doc/refman/5.1/en/mysql-cluster-development-5-1-ndb-7-1.html</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/dbperf.wordpress.com/114/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/dbperf.wordpress.com/114/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/dbperf.wordpress.com/114/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/dbperf.wordpress.com/114/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/dbperf.wordpress.com/114/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/dbperf.wordpress.com/114/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/dbperf.wordpress.com/114/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/dbperf.wordpress.com/114/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/dbperf.wordpress.com/114/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/dbperf.wordpress.com/114/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/dbperf.wordpress.com/114/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/dbperf.wordpress.com/114/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/dbperf.wordpress.com/114/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/dbperf.wordpress.com/114/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dbperf.wordpress.com&amp;blog=12761657&amp;post=114&amp;subd=dbperf&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://dbperf.wordpress.com/2010/05/27/ndb-engine-limitations/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/6a90fbc3d87686a798af840105a1625b?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Death</media:title>
		</media:content>
	</item>
		<item>
		<title>Start MySQL at bootup</title>
		<link>http://dbperf.wordpress.com/2010/04/29/start-mysql-at-bootup/</link>
		<comments>http://dbperf.wordpress.com/2010/04/29/start-mysql-at-bootup/#comments</comments>
		<pubDate>Thu, 29 Apr 2010 11:27:20 +0000</pubDate>
		<dc:creator>Death</dc:creator>
				<category><![CDATA[Database Configurations]]></category>
		<category><![CDATA[Auto startup]]></category>
		<category><![CDATA[Starting MySQL at boot up]]></category>

		<guid isPermaLink="false">http://dbperf.wordpress.com/2010/04/29/start-mysql-at-bootup/</guid>
		<description><![CDATA[At the time of Server failure, you would want your MySQL to start at the boot. To achieve the same follow the below steps at the prompt. &#62;cd /etc/rc.d/rc3.d &#62;ln -s /etc/rc.d/init.d/mysql S98mysql The second line will create a symlink in the above directory. By doing this you are asking your server to run it <a href="http://dbperf.wordpress.com/2010/04/29/start-mysql-at-bootup/" class="excerpt-more-link">[&#8230;]</a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dbperf.wordpress.com&amp;blog=12761657&amp;post=105&amp;subd=dbperf&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>At the time of Server failure, you would want your MySQL to start at the boot. </p>
<p>To achieve the same follow the below steps at the prompt.</p>
<p>&gt;cd /etc/rc.d/rc3.d<br />
&gt;ln -s /etc/rc.d/init.d/mysql S98mysql</p>
<p>The second line will create a symlink in the above directory. By doing this you are asking your server to run it  during level 3 start up.</p>
<p>However you can also run the below commands manually post startup.</p>
<p>Using files in /etc/rc.d/init.d directly, for example:</p>
<p>/etc/rc.d/init.d/mysql start<br />
/etc/rc.d/init.d/mysql stop</p>
<p>-Death</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/dbperf.wordpress.com/105/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/dbperf.wordpress.com/105/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/dbperf.wordpress.com/105/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/dbperf.wordpress.com/105/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/dbperf.wordpress.com/105/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/dbperf.wordpress.com/105/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/dbperf.wordpress.com/105/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/dbperf.wordpress.com/105/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/dbperf.wordpress.com/105/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/dbperf.wordpress.com/105/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/dbperf.wordpress.com/105/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/dbperf.wordpress.com/105/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/dbperf.wordpress.com/105/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/dbperf.wordpress.com/105/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dbperf.wordpress.com&amp;blog=12761657&amp;post=105&amp;subd=dbperf&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://dbperf.wordpress.com/2010/04/29/start-mysql-at-bootup/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/6a90fbc3d87686a798af840105a1625b?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Death</media:title>
		</media:content>
	</item>
	</channel>
</rss>
