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

<channel>
	<title>Remote DBA Experts &#187; DBA Help</title>
	<atom:link href="http://www.remotedbaexperts.com/Blog/tag/dba-help/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.remotedbaexperts.com/Blog</link>
	<description>Remote DBA Experts Blog</description>
	<lastBuildDate>Mon, 26 Sep 2011 12:48:02 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Database Corruption: Detecting Disk Sub-System Errors Early</title>
		<link>http://www.remotedbaexperts.com/Blog/2011/01/database-corruption-detecting-disk-sub-system-errors-early/</link>
		<comments>http://www.remotedbaexperts.com/Blog/2011/01/database-corruption-detecting-disk-sub-system-errors-early/#comments</comments>
		<pubDate>Thu, 27 Jan 2011 16:00:27 +0000</pubDate>
		<dc:creator>Scott Caldwell</dc:creator>
				<category><![CDATA[DBA Tips]]></category>
		<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[Database Corruption]]></category>
		<category><![CDATA[DBA Advice]]></category>
		<category><![CDATA[DBA Best Practices]]></category>
		<category><![CDATA[DBA Help]]></category>
		<category><![CDATA[DBA tips]]></category>
		<category><![CDATA[Disk Sub-System Errors]]></category>

		<guid isPermaLink="false">http://www.remotedbaexperts.com/Blog/?p=1603</guid>
		<description><![CDATA[The very thought of database corruption makes my skin crawl. Unfortunately, it’s something that all Database Administrators will eventually experience and need to correct. I’m not going to discuss how to recover from this lurking problem. Instead, I’m going to give you some simple strategies to ensure you are aware of the issue as soon [...]]]></description>
			<content:encoded><![CDATA[<p>The very thought of database corruption makes my skin crawl. Unfortunately, it’s something that all Database Administrators will eventually experience and need to correct. I’m not going to discuss how to recover from this lurking problem. Instead, I’m going to give you some simple strategies to ensure you are aware of the issue as soon as possible. Early detection can save you downtime, data loss and even your job.</p>
<p><strong>The Usual Suspect </strong></p>
<p>Generally speaking, the majority of database corruption is caused by hardware errors in the disk sub-system. Our database files are sitting on our SAN, or DAS, and are happily going about their lives without any problem until something goes awry. You may not even know there is a problem until it’s too late and a database is marked suspect.</p>
<p>The most important thing to can do, outside of monitoring for these problems, is to keep your storage system’s firmware and drivers up to date and consistent within the system. Sign-up for notifications with your vendor so you will receive these notices, and when you received them, read the little text file that explains what has changed and what will happen if you don’t update. I can’t tell you how often I’ve read through these and run across verbiage like, “previous version can cause data loss.”</p>
<p>These systems aren’t perfect. Stay on top of your firmware and driver updates or you may be turned down when you make that middle of the night support call and need their help.</p>
<p><strong>Automate the Eights</strong></p>
<p>I’ve got a bag of alerts that I like to implement on each SQL Server that I administer. Three of these alerts are for errors 823, 824 &amp; 825.</p>
<p><span style="text-decoration: underline;">Error 823</span></p>
<p>Sometimes referred to as a hard I/O error, this is alerting SQL Server, and you, that a read or write error has occurred. In the case of a read error, Windows has already attempted a retry four times before sending the message. This error can also be captured by alerting on errors with a severity of 24.</p>
<p>This error will be accompanied by the following entry in the SQL Server error log and Windows event log:</p>
<p><em>“The operating system returned error 823 to SQL Server during a &lt;&lt;MESSAGE&gt;&gt; at offset &lt;&lt;PHYSICAL OFFSET&gt;&gt; in file &lt;&lt;FILE NAME&gt;&gt;. Additional messages in the SQL Server error log and system event log may provide more detail. This is a severe system-level error condition that threatens database integrity and must be corrected immediately. Complete a full database consistency check (DBCC CHECKDB). This error can be caused by many factors; for more information, see SQL Server Books Online”.</em></p>
<p><span style="text-decoration: underline;">Error 824</span></p>
<p>Sometimes referred to as a logical consistency error, or soft I/O error, this indicates that Windows was able to read the page from disk but SQL Server has discovered that the page has a problem. This error can be caused when SQL Server determines that there was a checksum error or a torn bits error when it read the page from disk. This is dependent on the page verification option your database is using. This error can also be captured by alerting on errors with a severity of 24.</p>
<p>No matter which occurred, there’s a problem with the page and the following error message will be reported in the SQL Server error log and the Windows event log:</p>
<p><em>“SQL Server detected a logical consistency-based I/O error: &lt;&lt;ERROR TYPE DESCRIPTION&gt;&gt;. It occurred during a </em><em>&lt;&lt;Read/Write&gt;&gt; </em><em>of page </em><em>&lt;&lt;PAGEID&gt;&gt; </em><em>in database ID </em><em>&lt;&lt;DBID&gt;&gt; </em><em>at offset </em><em>&lt;&lt;PHYSICAL OFFSET&gt;&gt; </em><em>in file </em><em>&lt;&lt;FILE NAME&gt;&gt;</em><em>. Additional messages in the SQL Server error log or system event log may provide more detail. This is a severe error condition that threatens database integrity and must be corrected immediately. Complete a full database consistency check (DBCC CHECKDB). This error can be caused by many factors; for more information, see SQL Server Books Online.”</em></p>
<p><span style="text-decoration: underline;">Error 825</span></p>
<p>This error also falls in the hard I/O error category. When this error is received, it indicates that Windows requested a read and the read failed at least one time. Oftentimes, this is the first indication that there’s trouble brewing in the disk sub-system. This error can also be captured by alerting on errors with a severity of 10.</p>
<p>You’ll find the following error message in the SQL Server error log and Windows event log:</p>
<p><em>“A read of the file &lt;&lt;FILE NAME&gt;&gt; at offset &lt;&lt;PHYSICAL OFFSET&gt;&gt; succeeded after failing&lt;&lt;FAILURE COUNT&gt;&gt; time(s) with error: &lt;&lt;MESSAGE&gt;&gt;. Additional messages in the SQL Server error log and system event log may provide more detail. This error condition threatens database integrity and must be corrected. Complete a full database consistency check (DBCC CHECKDB). This error can be caused by many factors; for more information, see SQL Server Books Online.”</em></p>
<p><strong>Conclusion</strong></p>
<p>You’re going to receive one, or more, of these errors during your career as a Database Administrator. No one is immune. Bad things happen to hardware, and most of the time there’s not a lot you can do to prevent it. However, you can be prepared to respond.</p>
<p>If you receive one of these errors, don’t wait around before you investigate. You’re response is critical to the health of the data you’re sworn to protect. These types of problems don’t go away on their own. Don’t make the mistake of thinking that they will.</p>
<p>So, keep your storage system firmware and drivers up to date, implement these alerts and systematically plan your response. These actions will give you the best chance of a speedy recovery when database corruption strikes.</p>
<p><strong>Scott Caldwell, SQL Server DBA</strong></p>
<p><strong><span style="font-weight: normal;"><img style="border: 0px initial initial;" title="RDBAELOGO" src="http://www.remotedbaexperts.com/Blog/wp-content/uploads/2009/07/RDBAELOGO.gif" alt="RDBAELOGO" width="205" height="44" /></span></strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.remotedbaexperts.com/Blog/2011/01/database-corruption-detecting-disk-sub-system-errors-early/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Art of Being a Successful DBA &#8211; Application Design Review Meetings, Part 2</title>
		<link>http://www.remotedbaexperts.com/Blog/2009/08/the-non-technical-art-of-being-a-successful-dba-application-design-review-meetings-part-two/</link>
		<comments>http://www.remotedbaexperts.com/Blog/2009/08/the-non-technical-art-of-being-a-successful-dba-application-design-review-meetings-part-two/#comments</comments>
		<pubDate>Wed, 26 Aug 2009 16:00:17 +0000</pubDate>
		<dc:creator>Chris Foot</dc:creator>
				<category><![CDATA[Tips from the Oracle Ace]]></category>
		<category><![CDATA[Application Design Review]]></category>
		<category><![CDATA[Application Development]]></category>
		<category><![CDATA[Data Modeling]]></category>
		<category><![CDATA[database monitoring]]></category>
		<category><![CDATA[database performance]]></category>
		<category><![CDATA[DBA Advice]]></category>
		<category><![CDATA[DBA Best Practices]]></category>
		<category><![CDATA[DBA Help]]></category>
		<category><![CDATA[DBA procedures]]></category>
		<category><![CDATA[Oracle Ace]]></category>
		<category><![CDATA[The Art of Being a Successful DBA]]></category>

		<guid isPermaLink="false">http://www.remotedbaexperts.com/Blog/?p=140</guid>
		<description><![CDATA[Setting up a Successful Test System in Oracle This meeting is held as soon as the application developers are ready to begin the actual coding process. The ultimate goal of this meeting is for application developers to have a firm understanding of what is required to create and maintain a successful Oracle test environment. Discussions [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Setting up a Successful Test System in Oracle</strong></p>
<p>This meeting is held as soon as the application developers are ready to begin the actual coding process. The ultimate goal of this meeting is for application developers to have a firm understanding of what is required to create and maintain a successful Oracle test environment. Discussions on Oracle utilities, SQL statements, procedural code, Oracle security, batch script testing, benchmarking, testing and monitoring are of prime importance at this time. The DBA must make it clear to all involved that the DBA unit is always available to answer questions and troubleshoot poorly performing SQL throughout the entire application development life cycle. It is imperative that the DBA make every effort to find and correct problems during this stage of the development process. Maintaining a proactive stance instead of a reactive one will always prove to be beneficial when it comes to correcting design problems. There are always enough potential problems lurking in the system for the DBA to solve without adding any additional ones through faulty application design. Topics to be discussed in this meeting include:</p>
<ul>
<li>Division of duties between DBA, systems, application development and business units</li>
<li>Test hardware platform, O/S installation, configuration and administration</li>
<li>Data feeds required from other architectures</li>
<li>Data load and update processing and scheduling</li>
<li>SQL Loader control cards</li>
<li>Test system availability requirements</li>
<li>Test system backup and recovery requirements</li>
<li>Oracle security authorization</li>
<li>Tools to aid in application development</li>
<li>Oracle GRID toolset monitoring capabilities</li>
<li>In-house monitoring tools</li>
<li>Third-party vendor products</li>
<li>Benchmarking and performance measurements</li>
</ul>
<p><strong>Monitoring Performance During Testing</strong></p>
<p>Because this meeting and the previously discussed Setting Up a Successful Test System are closely related, they may be discussed together to save time and provide greater clarity. The DBA and developers need to have an understanding of what information is required to effectively monitor the performance of the Oracle application throughout the entire testing process. The DBA can offer to show developers how to use the various toolsets provided by Oracle (Oracle GRID AWR reports, SQL Trace, explain plan, autotrace, Oracle traces, V$ tables and my old favorite &#8211; Statspack) so that developers can play an active role in performance measurement. Suggested discussion topics are as follows:</p>
<ul>
<li>Names of all SQL Loader control cards and batch scripts</li>
<li>Performance measurement goals and expectations</li>
<li>Determine the test load volume (data volume, concurrent users) required to accurately predict production performance</li>
<li>Comparison of test system load to estimated production load</li>
<li>Oracle performance measurement tools. Suggested tools include:
<ul>
<li>Explain</li>
<li>SQL*Plus autotrace</li>
<li>Oracle SQL trace</li>
<li>Statspack</li>
<li>Oracle GRID monitoring components</li>
<li> V$ performance tables</li>
<li>Index utilization monitoring via ALTER INDEX MONITORING statement</li>
<li>Third party performance monitoring tools</li>
<li>LAN performance monitoring tools</li>
<li>Operating system performance monitoring tools</li>
</ul>
</li>
</ul>
<p><strong>Performance Design Reviews</strong></p>
<p>Information collected from the various performance monitoring tools is discussed at this time. One meeting may be sufficient, but large application development efforts usually require several discussions. If the DBA has maintained good communications throughout the initial stages of application design, there should be few surprises when these meetings are held. SQL tuning and tweaking recommendations are covered in this meeting. Depending on the length of the development process, follow-up meetings can be held to ensure that the application is performing as expected. Some suggested topics include:</p>
<ul>
<li>Load testing assessment: Is the load being placed on the test system large enough to accurately predict production performance?</li>
<li>Review performance statistics collected during the testing process</li>
<li>Assess SQL coding techniques by reviewing explain plan output for performance critical transactions
<ul>
<li>Index usage</li>
<li>Local/join predicates</li>
<li>Join methods</li>
<li>Subselects</li>
<li>View materialization</li>
<li>Determine if additional Oracle objects need to be created to enhance SQL performance
<ul>
<li>B-Tree Indexes</li>
<li>Bitmap Indexes</li>
<li>Function-Based indexes</li>
<li>Materialized views</li>
<li>Index organized tables</li>
<li>External tables</li>
</ul>
</li>
</ul>
</li>
</ul>
<p><strong>Preparation for Production Turnover</strong></p>
<p>This meeting is held to determine if there are any last-minute questions and to make certain that everyone knows what is expected of them during the final turnover process. All units that have participated in the application design or application design review process are invited to attend. To ensure that all steps necessary for a successful migration to production are executed, the use of a standardized Oracle migration checklist is highly recommended. This document will allow the DBAs and developers to concern themselves with topics that are related to this specific turnover rather than spending time on the more mundane turnover tasks that are just as important, but easily forgotten. Having a complete, well thought-out migration checklist produces a less stressful and less error prone production migration process. Topics include:</p>
<ul>
<li>Division of duties between DBA, systems, application development and business units</li>
<li>Production hardware platform, O/S installation, configuration and operation</li>
<li>Data feeds required from other architectures</li>
<li>Data load and update processing and scheduling</li>
<li>SQL Loader control cards</li>
<li>Backup and recovery</li>
<li>Oracle security authorization</li>
<li>DBA forms and turnover procedures</li>
<li>Contact information and escalation procedures</li>
<li>Post-production monitoring tools to be used</li>
</ul>
<p><strong>Post-production Turnover</strong></p>
<p>This final set of meetings is held after the production turnover is complete. Application logic errors and performance problem resolution are the prime topics of discussion. A comparison of the actual performance to the anticipated performance of the application is also discussed. The review and correction process, by its nature, is iterative. The problems are identified, a plan of attack to solve them is agreed upon and additional meetings are scheduled to review the results. As additional problems are identified, they are added to the list of problems to be solved. This iterative process continues until all major performance issues and application logic errors are addressed. The post production turnover meetings should include discussions on:</p>
<ul>
<li>Review performance statistics collected (Oracle GRID, SQL Trace, explain plan, autotrace, Oracle traces, V$ tables and Statspack)</li>
<li>Assess SQL coding techniques by reviewing explain plan output for transactions experiencing performance problems</li>
<li>Index usage</li>
<li>Local/join predicates</li>
<li>Join methods</li>
<li>Subselects</li>
<li>View materialization</li>
<li>Determine if additional Oracle objects need to be created to enhance SQL performance</li>
</ul>
<p><strong>Oracle Database Design Review Meetings &#8211; Conclusion</strong></p>
<p>These recommendations are not intended to coerce readers into using the Oracle application design review meeting examples verbatim but to emphasize the importance of a structured approach to the design review process. The seemingly endless combinations of application architectures and software products used for application development may require the creation of a fully customized design review process for each application development project. The overall goal of design review meetings is to ensure the involvement of technical support units during the application’s design and implementation. When Oracle design issues are addressed early in the development lifecycle, problems are minimized and the migration from test to production is more easily accomplished.</p>
<p>Check out <a href="http://www.remotedbaexperts.com/Blog/2009/08/the-non-technical-art-of-being-a-successful-dba-application-design-review-meetings-part-one" target="_blank">The Art of Being a Successful DBA &#8211; Application Design Review Meetings, Part 1</a>.</p>
<p>Thanks for reading,</p>
<p><strong>Chris Foot<br />
Oracle Ace<img title="ace_2" src="http://www.remotedbaexperts.com/Blog/wp-content/uploads/2009/07/ace_2.gif" alt="ace_2" width="12" height="12" /><br />
Director Of Service Delivery</strong><br />
<img title="RDBAELOGO" src="http://www.remotedbaexperts.com/Blog/wp-content/uploads/2009/07/RDBAELOGO.gif" alt="RDBAELOGO" width="205" height="44" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.remotedbaexperts.com/Blog/2009/08/the-non-technical-art-of-being-a-successful-dba-application-design-review-meetings-part-two/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Art of Being a Successful DBA &#8211; Application Design Review Meetings, Part 1</title>
		<link>http://www.remotedbaexperts.com/Blog/2009/08/the-non-technical-art-of-being-a-successful-dba-application-design-review-meetings-part-one/</link>
		<comments>http://www.remotedbaexperts.com/Blog/2009/08/the-non-technical-art-of-being-a-successful-dba-application-design-review-meetings-part-one/#comments</comments>
		<pubDate>Wed, 19 Aug 2009 16:00:01 +0000</pubDate>
		<dc:creator>Chris Foot</dc:creator>
				<category><![CDATA[Tips from the Oracle Ace]]></category>
		<category><![CDATA[Application Design Review]]></category>
		<category><![CDATA[Application Development]]></category>
		<category><![CDATA[Data Modeling]]></category>
		<category><![CDATA[database monitoring]]></category>
		<category><![CDATA[database performance]]></category>
		<category><![CDATA[DBA Advice]]></category>
		<category><![CDATA[DBA Best Practices]]></category>
		<category><![CDATA[DBA Help]]></category>
		<category><![CDATA[DBA procedures]]></category>
		<category><![CDATA[Oracle Ace]]></category>
		<category><![CDATA[The Art of Being a Successful DBA]]></category>

		<guid isPermaLink="false">http://www.remotedbaexperts.com/Blog/?p=135</guid>
		<description><![CDATA[Let&#8217;s continue our discussion on the Art of Being a Successful DBA. The intent of this blog is to help administrators design and standardize on a formalized design review process. The goal of the design review process is to identify and address application design, process flow, program logic and SQL statement problems early in the [...]]]></description>
			<content:encoded><![CDATA[<p>Let&#8217;s continue our discussion on the Art of Being a Successful DBA. The intent of this blog is to help administrators design and standardize on a formalized design review process. The goal of the design review process is to identify and address application design, process flow, program logic and SQL statement problems early in the development lifecycle. Identifying these issues early in the development life cycle allows them to be more easily addressed than if they were to be identified during later stages.  That last statement bears repeating.   Like any other issue you face, no matter what it is (personal, professional, whatever), the sooner you identify it, the easier it is to correct.</p>
<p>One of the overlooked duties of an Oracle DBA is to inform, educate and assist the application development staff during the application development process. Although these responsibilities may not be formally assigned to the DBA, the DBA unit often finds that they are providing these services by default. The DBA is often considered to be a seasoned veteran who spends most of their time learning the subtle eccentricities of the database management system.</p>
<p>It is the DBA’s responsibility to ensure that the overall design and implementation of the new application is proceeding according to expectations. Although application developers may be experts in SQL, procedural languages (Java, PL/SQL, C variations, TSQL, etc.), they still turn to the DBA for help with standards, procedures, performance design, error recovery and complex SQL.</p>
<p>A continuous and effective dialogue between the DBA unit, system support personnel and application developers is of utmost importance throughout the entire application design and implementation process. One method to foster effective communications is for the DBA unit to create a series of new application design review meetings. These meetings can be organized in a manner that promotes efficient application usage of the Oracle database environment. The design review meetings can be scheduled during logical break points between the different stages of the application development process.</p>
<p>The database administration team should invite representatives from the development and business units to assist in the creation (and enforcement) of the standardized review process. Application development teams will be able to help tailor the design review process to satisfy their specific design and implementation needs. Business users who will be impacted by the production turnover will provide valuable input on implementing new applications for their specific business areas. Customized checklists are created to ensure that all application and business specific issues are addressed during each meeting of the design review process.</p>
<p>It is recommended that the database administration team then communicate to all application development and business areas that any internal applications created without following the standardized review process will not be migrated to production. Having the application teams and business units participate during the creation of the standardized review process allows the DBA team to enforce the policy without being viewed as dictatorial or making rules in a vacuum. In addition, every effort should be made to “sell” the standardized design review process in all communications to application development teams and business units.</p>
<p>The following list of meetings can be used as a starting point in the creation of a structured application design review process:</p>
<p><strong>Initial Overview of Proposed System</strong></p>
<p>The kickoff meeting is held with datacenter operations support managers, operating system administrators, application team leaders, system analysts, end-user management and data administrators to discuss the application’s general purpose and function. This information will allow support technicians to determine the impact the new application will have on existing systems and allow them to begin planning the application design implementation process. The following information should be covered in this meeting:</p>
<ul>
<li>General description of purpose and function</li>
<li>Application scope (enterprise wide application that affects all business units, intra-departmental that affects several business units or departmental)</li>
<li>General application size (estimated number of programs, data objects)</li>
<li>Criticalness of the application (mission critical, application critical, non-critical)</li>
<li>Application availability requirements and downtime windows</li>
<li>Application type (decision support, business intelligence, data warehouse, data mart, online transaction processing)</li>
<li>Architecture design (web server, application server, N-tier, distributed database environment)</li>
<li>Advanced features required (replication, advanced queuing)</li>
<li>Data feeds required from other architectures</li>
<li>Load processing</li>
<li>Batch processing</li>
<li>Online transaction processing</li>
<li>Development tools used to build front-end application screens</li>
<li>Third-party tools used to provide Ad-Hoc query access</li>
<li>Procedural language used to build business logic (Java, PL/SQL)</li>
<li>Application development methodology to be used (Agile, Waterfall, RAD)</li>
<li>Number of concurrent users</li>
<li>Disk storage and data growth estimates</li>
<li>Highly available architecture discussion (RAC, Oracle Fail Safe, Data Guard, hardware vendor clustering and failover)</li>
<li>Performance expectations</li>
<li>Criteria used to judge performance</li>
<li>Security and auditing requirements</li>
<li>Hardware platform, O/S preferences/selection and sizing discussion</li>
<li>Hardware platform, O/S installation, operation and administration</li>
<li>Division of duties between the DBA, application development and business units</li>
</ul>
<p><strong>Logical Data Model Review</strong></p>
<p>This meeting is convened as soon as the logical data modeling effort is finished. The major emphasis of this meeting is to determine if the logical data model is complete and correct. The application’s process model (if one is available) can also be verified at this time. Volume statistics, object growth rates, purge criteria, referential integrity needs and application-naming conventions are also discussed. Knowing your data before hand is essential to designing processes to manipulate that data. The following topics are covered in this meeting:</p>
<ul>
<li>Determine if the data model is fully documented (entities, attributes, relationships)</li>
<li>Attributes have correct datatype, length, NULL status, default values</li>
<li>General discussion of business rules that are to be enforced by database level constraints</li>
<li>Not null constraints</li>
<li>Check constraints</li>
<li>Unique constraints</li>
<li>Primary key constraints</li>
<li>Foreign key constraints</li>
<li>Business rules to be enforced by triggers and procedures</li>
<li>Business rules to be enforced by application code</li>
<li>Logical/process model comparison</li>
<li>Volume statistics</li>
<li>Growth rates and purge criteria</li>
</ul>
<p><strong>Designing for Performance</strong></p>
<p>This meeting is held with the application development units before any physical DDL is generated by the DBA. Proper transaction design and efficient SQL coding results in less performance-oriented database alterations made during the latter stages of the design and implementation process. Determining predicate usage will allow the DBA to create additional database objects (indexes, materialized views, index organized tables) to increase SQL, and subsequently, application performance. The following information is discussed:</p>
<ul>
<li>Normalization vs denormalization or “lets collapse those 49 tables into one big one for fast read access”</li>
<li>Table access requirements and predicate usage</li>
<li>Database objects used to increase SQL performance including:
<ul>
<li>B-Tree Indexes</li>
<li>Bitmap Indexes</li>
<li>Function-Based indexes</li>
<li>Materialized views</li>
<li>Index organized tables</li>
<li>External tables</li>
<li>Data partitioning algorithms (range, hash, list, etc.)</li>
</ul>
</li>
<li>Process parallelism (parallel query, parallel DML, parallel load)</li>
<li>Transaction modeling</li>
<li>Oracle SQL performance features</li>
<li>Full table scan vs index access</li>
<li>Hash joins</li>
<li>Star joins</li>
<li>Index skip scans</li>
<li>Index fast full scans</li>
<li>Cursor sharing (SQL statement reuse and soft parse vs hard parse)</li>
<li>Bind variables</li>
<li>Reinforcement of effective SQL coding techniques</li>
</ul>
<p>Read <a href="http://www.remotedbaexperts.com/Blog/2009/08/the-non-technical-art-of-being-a-successful-dba-application-design-review-meetings-part-two" target="_blank">The Art of Being a Successful DBA &#8211; Application Design Review Meetings, Part 2</a>.</p>
<p>Thanks for Reading,</p>
<p><strong>Chris Foot<br />
Oracle Ace<img title="ace_2" src="http://www.remotedbaexperts.com/Blog/wp-content/uploads/2009/07/ace_2.gif" alt="ace_2" width="12" height="12" /><br />
Director Of Service Delivery</strong><br />
<img title="RDBAELOGO" src="http://www.remotedbaexperts.com/Blog/wp-content/uploads/2009/07/RDBAELOGO.gif" alt="RDBAELOGO" width="205" height="44" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.remotedbaexperts.com/Blog/2009/08/the-non-technical-art-of-being-a-successful-dba-application-design-review-meetings-part-one/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Art of Being a Successful DBA &#8211; Naming Conventions</title>
		<link>http://www.remotedbaexperts.com/Blog/2009/08/the-non-technical-art-of-being-a-successful-dba-naming-conventions/</link>
		<comments>http://www.remotedbaexperts.com/Blog/2009/08/the-non-technical-art-of-being-a-successful-dba-naming-conventions/#comments</comments>
		<pubDate>Wed, 05 Aug 2009 16:00:20 +0000</pubDate>
		<dc:creator>Chris Foot</dc:creator>
				<category><![CDATA[Tips from the Oracle Ace]]></category>
		<category><![CDATA[DBA Advice]]></category>
		<category><![CDATA[DBA Best Practices]]></category>
		<category><![CDATA[DBA Help]]></category>
		<category><![CDATA[DBA procedures]]></category>
		<category><![CDATA[DBA tips]]></category>
		<category><![CDATA[Naming conventions]]></category>
		<category><![CDATA[naming scripts]]></category>
		<category><![CDATA[Optimal Flexible Architecture]]></category>
		<category><![CDATA[Oracle Ace]]></category>
		<category><![CDATA[The Art of Being a Successful DBA]]></category>

		<guid isPermaLink="false">http://www.remotedbaexperts.com/Blog/?p=104</guid>
		<description><![CDATA[Ever fumble around at 2 AM looking for that SQL statement you wrote a while back? You know, that one special script that will give you just the information you need to solve the problem and go back to bed? I must admit, I have done my fair share of moonlight script hunting. This blog [...]]]></description>
			<content:encoded><![CDATA[<p>Ever fumble around at 2 AM looking for that SQL statement you wrote a while back? You know, that one special script that will give you just the information you need to solve the problem and go back to bed? I must admit, I have done my fair share of moonlight script hunting. This blog will provide you with a few recommendations on naming convention best practices.</p>
<p>Following proper naming conventions is absolutely critical to us as a remote DBA services provider. We have dozens of DBAs on staff now that are responsible for supporting hundreds (and hundreds) of different database ecosystems. To ensure DBAs can seamlessly tranfer from one environment to another, we must establish standard naming conventions and document everything in our customer&#8217;s environments.</p>
<p>Each one of our DBAs can go to any platform and quickly navigate to the script and monitoring tool directories, find the script they are looking for and execute it. I feel that this is so important to the quality of support we provide that we have selected a group of technicians that are responsible for creating, adjusting and auditing naming conventions here at RDBAE. These folks, led by Doug Russel, our Proactive Monitoring Center Team Lead, are responsible for laying the groundwork to ensure that our naming conventions and best practices are being followed.</p>
<p>I&#8217;ll continue our discussion on naming conventions by providing you with a few sample recommendations. As always, these recommendations are not intended to be all-inclusive. They are a few examples to help start you in the right direction.</p>
<p><strong>Follow OFA Naming Conventions</strong><br />
OFA stands for Optimal Flexible Architecture. The OFA standard is a set of naming conventions and configuration guidelines that:</p>
<p style="PADDING-LEFT: 30px">• Distributes I/O among different disk drives.<br />
• Facilitates ease of administration by creating naming conventions for mountpoints, directories, file suffixes, database binary directories and database output (i.e, background dump, core dump).<br />
• Improves the DBA&#8217;s ability to manage and administer database growth.</p>
<p>These standard naming conventions and placement guidelines are intended to improve database performance by spreading I/O, protect against drive failures and also allow administrators to more easily assume the responsibility of supporting new database environments. In addition, because OFA standards are well documented by the Oracle Corporation, newly hired DBA and consultants are able to more quickly assume administration responsibilities.  To learn more about OFA, do a Google search on the key words “Optimal Flexible Architecture&#8221;.  You will find all of the documentation you need!</p>
<p><strong>Create and Standardize Monitoring and Administration Scripts</strong><br />
All DBAs have their own set of favorite Oracle administration and monitoring scripts. They find them on the web, get them from third-party books and trade them like bubble-gum cards. They then tune, tweak and tailor them until they fit their own unique style of administration.  It is highly recommended that database administration units create a set of scripts for daily administration/monitoring, hot and cold backups (RMAN or OS), loads, exports/DataPump and common administrative activities. This library of scripts can then be installed on each server administered by the team. Personalizing the scripts should be highly discouraged. Any modifications to the library can be reviewed during team meetings.</p>
<p>Assign a team member the responsibility of being the script library owner. The script library owner will be responsible for keeping track of all script modifications and ensuring a rigorous review and test plan is executed on the new scripts before they are installed on the supported servers.   Monitoring scripts are even more crtical. They are the foundation of the DBA’s support activities. If your monitoring scripts aren’t working, you are failing in your role as “protector of the organization&#8217;s key data assets”.  Here at RDBAE, we have a virtual team that is assigned the responsibility of keeping track of literally dozens, and dozens, of Groundwork monitoring plugins. These technicians use an off-the-shelf code library with full check in/check out features and review capabilities (for approval before release).</p>
<p>All scripts and directories should have names that allow them to be easily recognized. It irks me to no end when I log in to a server, navigate to a script directory and find files named SQL1.SQL, SQL2.SQL, FIXIT.SQL, TUNEIT.SQL… Fix what? Tune what? What the?  Personally, I would prefer to have a SQL file name that is long, but descriptive, as opposed to a name that doesn&#8217;t provide me with any clue on its contents.</p>
<p>It is also important to follow a strict naming convention for your output files. Whether the output is from a SQL, DDL or operating system command, the output file should be placed in the appropriate directory and have a descriptive name. The file name should also contain the date the output was created.</p>
<p style="PADDING-LEFT: 30px">For example:<br />
create_mcfinemp1_table_012609.out would be the output from the DDL statement execution that created the MCFINEMP1 table on January 26, 2009.</p>
<p><strong>Object Naming Conventions</strong><br />
This is the area where having a Data Administrator available is certainly beneficial. These are the folks that are trained in naming convention best practices. If you don&#8217;t have the good fortune of having a DA available, it will be up to you and your application developer counterparts to create a set of naming convention guidelines. It is important to create a naming convention that contains abbreviation guidelines that are used to shorten object names.</p>
<p>Here&#8217;s an example of an index naming convention I have used in the past:</p>
<p style="PADDING-LEFT: 30px"><strong>INDEX</strong><br />
Definition: An index is an object that ensures efficient access to the data by using an ordered set of pointers to the table&#8217;s data rows.  Indexes can also be used as the physical mechansim to ensure key value uniqueness.<br />
Naming Conventions:<br />
Format #1   -   tb_idx_uu<br />
tb &#8211; table name (abbreviated if required)<br />
idx &#8211; constant identifying this object as an index<br />
uu &#8211; ascending numeric or character index identifier (used to identify multiple indexes per base table)<br />
Example: MCFINEMP_IDX_01 would be the first index on the MCFINEMP table.</p>
<p>There are dozens of guidelines available on the web. In addition, many of the books on Data Administration provide suggested naming conventions. We also have our own personal preferences. For example, many DBAs like to include column name abbreviations in their index names.</p>
<p>What the standard naming conventions are is not as important as creating them and adhering to them religiously. That is the key to success.  These recommendations are not intended to coerce readers into using the provided naming convention examples verbatim but to emphasize the importance of a creating a set of standardized naming conventions and then strictly adhering to them.</p>
<p>Thanks for reading,</p>
<p><strong>Chris Foot<br />
Oracle Ace<img title="ace_2" src="http://www.remotedbaexperts.com/Blog/wp-content/uploads/2009/07/ace_2.gif" alt="ace_2" width="12" height="12" /><br />
Director Of Service Delivery</strong><br />
<img title="RDBAELOGO" src="http://www.remotedbaexperts.com/Blog/wp-content/uploads/2009/07/RDBAELOGO.gif" alt="RDBAELOGO" width="205" height="44" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.remotedbaexperts.com/Blog/2009/08/the-non-technical-art-of-being-a-successful-dba-naming-conventions/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Art of Being a Successful DBA – Good Documentation is Essential</title>
		<link>http://www.remotedbaexperts.com/Blog/2009/07/the-non-technical-art-of-being-a-successful-dba-%e2%80%93-good-documentation-is-essential/</link>
		<comments>http://www.remotedbaexperts.com/Blog/2009/07/the-non-technical-art-of-being-a-successful-dba-%e2%80%93-good-documentation-is-essential/#comments</comments>
		<pubDate>Wed, 29 Jul 2009 16:00:53 +0000</pubDate>
		<dc:creator>Chris Foot</dc:creator>
				<category><![CDATA[Tips from the Oracle Ace]]></category>
		<category><![CDATA[DBA Advice]]></category>
		<category><![CDATA[DBA Best Practices]]></category>
		<category><![CDATA[DBA documentation]]></category>
		<category><![CDATA[DBA Help]]></category>
		<category><![CDATA[DBA procedures]]></category>
		<category><![CDATA[Oracle Ace]]></category>
		<category><![CDATA[The Art of Being a Successful DBA]]></category>

		<guid isPermaLink="false">http://www.remotedbaexperts.com/Blog/?p=84</guid>
		<description><![CDATA[Let&#8217;s start our series on Art of Being a Successful DBA by covering the art of good documentation.   Although the importance of a well thought out and detailed documentation library is blatanly obvious, creating documentation is the task most often postponed by an overworked DBA unit. Documenting processes, procedures and best practices is a task [...]]]></description>
			<content:encoded><![CDATA[<p>Let&#8217;s start our series on Art of Being a Successful DBA by covering the art of good documentation.   Although the importance of a well thought out and detailed documentation library is blatanly obvious, creating documentation is the task most often postponed by an overworked DBA unit.</p>
<p>Documenting processes, procedures and best practices is a task that is often considered to be boring and mundane. Most DBAs would rather perform virtually any other activity than sit in front of a screen using a word processor. As a result, creating documentation is often postponed until the DBA has a little free time to kill. Today&#8217;s database administration units are operating with smaller staffs, tighter budgets and ever-increasing workloads. The end result is that the documentation is either never created or created and not kept current.</p>
<p>But a robust detailed documentation library creates an environment that is less complex, less error-prone, reduces the amount of time DBAs spend learning new database environments and reduces the overall time spent on day-to-day support activities. DBAs are able to spend more time administering the environment than finding the objects they are trying to support and the processes and programs used to administer them.</p>
<p>The nature of my business as a remote services provider demands excellent documentation. The majority of environments we administer weren&#8217;t designed by my organization. The only way that we can ensure high quality and high-speed administration of these environments is to document them thoroughly. We document everything, from initial connectivity and customer contact sheets to detailed information on batch job streams and individual program execution. If we need to be aware of it, we have it documented.   We have dozens (and dozens) of internal best practices also documented.   If you are evaluating remote database services providers, you need to ask them for examples.</p>
<p>Documentation is also the foundation of many of the other disciplines I will be discussing in future blogs. Let&#8217;s continue our discussion with a few helpful hints to get you started.</p>
<p><strong>Understanding the Important Role Good Documentation Plays</strong><strong></strong><br />
We all generally understand the benefits that documentation provides. I think that all readers will see the importance I personally place on documentation in upcoming blogs. Virtually every topic that I will discuss, from repeatable processes to paranoid administration best practices, I will be mentioning what to document and the important role that documentation plays.</p>
<p>Let me reaffirm my opinion in this one sentence:</p>
<p>Documentation is one of the foundations for virtually everything I will be discussing in this series on The Non-Technical Art of Being a Successful DBA. Enough said.</p>
<p><strong>Creating an Organizational Environment That Fosters Good Documentation</strong><strong></strong><br />
I have been leading database teams off and on for 15 years now.  It is my responsibility as manager to create an environment that fosters the production of robust and high quality documentation. Let me describe some of the challenges that I have faced in the past and how I have overcome them.</p>
<p>Since I view high quality documentation to be my responsibility as the director of database services here at Remote DBA Experts, I ensure that it becomes part and parcel of every DBA&#8217;s job description.    If we feel that a candidate DBA doesn&#8217;t value the importance of documentation, we don&#8217;t hire them.    It&#8217;s OK if they don&#8217;t like to do it, they just need to express that it is something that is required to create a high-quality support environment.</p>
<p>I will add time for documentation when I estimate the amount of time it will take me to perform an administrative task during project planning meetings. I don&#8217;t settle for &#8220;we can do that after the project is complete&#8221; as an answer from an application project manager.</p>
<p>If I get overruled and lose one battle, I still make sure I document my activities after the project&#8217;s critical path is complete. And I don&#8217;t let a single setback prevent me from telling everyone in the next planning meeting that I need so many hours to document what I have done.</p>
<p>If you continuously sell the importance of documentation sooner or later you will begin to wear your opponent&#8217;s down. Although I prefer to call it &#8220;being relentless&#8221;, I&#8217;m sure that many of the application development managers (and my own managers) viewed it as &#8220;being a ….&#8221; (insert your favorite description here).</p>
<p>Every document I have created that provides a list of activities I , or my unit, needs to perform during a project has documentation included. It helps to integrate it into the fabric and culture of my organization&#8217;s environment.</p>
<p><strong>Making Documentation Second Nature</strong><strong></strong><br />
You also need to ensure that generating documentation becomes a natural part of your daily activities. You must continuously remind yourself that documentation is a primary and integral part of providing high quality support services to your customers.</p>
<p>You must also remind yourself that it makes your job easier and benefits your fellow DBAs. You know what has really irritated me the most during my career? When a fellow DBA needs to be out of the office for a time and asks me to &#8220;help them out&#8221; by performing a complex, application specific administrative activity and then tries to verbally tell me how to perform the 300 steps it takes to do it.</p>
<p>Ever try to refresh an ERP application test environment from production when that test environment doesn&#8217;t have enough space to hold all of production&#8217;s data? 4,000 steps later and you begin to second-guess your choice of professions. That was the exact request from one of my fellow DBAs a few years ago when I worked for a large aluminum producer here in Pittsburgh. Not only did he get me to do the refresh but I also had to document the process for him along the way. Some call that being a good coworker; I would view that as having a big sucker taped to my forehead. Live and learn, I guess.</p>
<p>The moral of this story is: If you don&#8217;t want to be the only one that can perform that 900 step ERP Application production to test refresh, document it! If you don&#8217;t want to be called by the on-call DBA because he doesn&#8217;t know exactly where to add a datafile in an emergency situation (like an application developer forgetting to tell youu that they were loading 10 million additional rows into that 100 row table), document it! The more you document, the easier your life as a DBA becomes.</p>
<p>I&#8217;ve never had a great memory. It makes documentation easy for me. I also like to write and that helps. But I will admit that there are times that I would rather perform virtually any other activity than document.</p>
<p>But it has become easier because I continuously reaffirm to myself the importance of documentation. The more you reinforce that to yourself, the more second nature (and easier) it becomes.</p>
<p><strong>Making Documentation Easy</strong><strong> </strong><strong></strong><br />
I&#8217;m a huge fan of documentation templates. Here at Remote DBA Experts we have, or are in the process of creating, templates for everything we document. We have templates for documenting connections to our customer&#8217;s environments, their backup and recovery environments, their application specific processes to name a few. If it needs to be documented on a regular basis, we have a template for it. We also have generic templates for documenting environments and activities that don&#8217;t fit into other templates.</p>
<p>Microsoft Word document templates provide many features that streamline the documentation process and help to improve the quality of the content they store. I try to take advantage of as many features as I can. I use drop down selection menus, check boxes and radio push buttons to improve the speed and quality of the documentation process. I also take advantage of the help pop-up feature that Microsoft Word provides to create a detailed description of what information is to be entered into that field, check box or radio button.</p>
<p>I created my first template close to 15 years ago. It wasn&#8217;t created to document a process, but to document a change request. I&#8217;ll be covering change management in an upcoming series in this blog. Was the document crude? You bet. But it did the job. It has gone through numerous iterations and migrations from one Word release to the next. I continue to use it at organizations that don&#8217;t have a formalized and documented change management process. And you can&#8217;t believe how many I have come across that don&#8217;t.</p>
<p>There are dozens of software companies that offer content management solutions. Database vendors have also recognized this as a lucrative market. All of the major database vendors now offer advanced content management software, each one trying to outdo the other in the number of bells and whistles that their product&#8217;s offer.</p>
<p>Do a quick search on Google for documentation content management software and you will find out just how many competing products there are.</p>
<p>Content management products offer check-in/check-out features, document versioning, web portal access and advanced workflow capabilities to name just a few of the features desgined to improve content management. The competition in the content management market space is fierce to say the least. Content management vendors know that continuously adding new bells and whistles to their products is not just important for increasing market share; it is critical for their survival. Product costs can range from thousands to tens of thousands of dollars (or more).</p>
<p>If you have the funds and your management understands the benefits that a full-blown content management package provides, by all means begin a content management product analysis. But if you don&#8217;t have the funds, create a shared drive on your network and declare it to be the &#8220;DBA Documentation Portal.&#8221; We will be using a combination of Microsoft Sharepoint and Sales Force as our own DBA Documentation Portal.  Sales Force&#8217;s interaction with our document libraries provides us with a highly secured, highly customizable document storage environment.  It is our &#8220;one stop shop&#8221; for customer information.</p>
<p><strong>What to Document</strong><strong></strong><br />
By all means this is not an all-inclusive list of what can be documented. Consider it as a starter kit to help you begin your quest for &#8220;documentis nirvanas&#8221;. Is some of this overkill for your particular environment? Maybe, but just consider this a general, high-level list.<br />
<strong><br />
Database Environment Documentation</strong></p>
<ul>
<li>Naming conventions</li>
<li>Servers (server names, operating system release, hardware vendor)</li>
<li>Databases (vendor, database version, features enabled)</li>
<li>Directories (everything from Oracle software installations that don&#8217;t follow Oracle standards, application code storage to personal script locations). If you, or a fellow DBA needs to find it, document where it is!</li>
</ul>
<p><strong>Application Specific Documentation</strong><strong></strong></p>
<ul>
<li>Application type (i.e. data warehouse, online transaction processing, decision support, third-party application name and functionality it provides).</li>
<li>Business unit requirements and related information for supported databases</li>
<li>Uptime requirements (i.e. 24 X 7, 8 X 5)</li>
<li>Database downtime windows</li>
<li>Critical job processes</li>
<li>Business unit and application developer contact lists</li>
<li>Turnover windows for database changes</li>
<li>Problem notification and escalation procedures</li>
<li>Security Sensitivity. How sensitive is the data?</li>
</ul>
<p><strong>Process Documentation</strong><strong></strong></p>
<ul>
<li>Repeatable administrative processes (covered in an upcoming blog)</li>
<li>Backups &#8211; Probably the most critical set of documentation you will ever create. Document how it is backed up, what scripts back it up, where the back up is going to, tape retentions and backup message directories. If it is involved with a backup, DOCUMENT IT. Review the document with other units that are involved in the backup and recovery process. It is your responsibility to ensure that you don&#8217;t hear an operator say &#8220;What retention period? Nobody told me we were to have a retention on these tapes.&#8221; when you are in a recovery situation. Remember that Oracle states that human error, including miscommunications, is responsible for over 90% of failed recoveries. If you want to reduce recovery failures DOCUMENT THE PROCESS AND REVIEW IT.</li>
<li>Oracle utilities. Document Oracle Import/Export input and output directories and where the files are that execute the utilities. The same with Oracle&#8217;s load utility. Document the execution scripts and input and output directories. A short note on why you are running it is also required</li>
<li>Anything else you run on a regular basis to support a specific application</li>
<li>Change Management. I&#8217;ll be spending an entire blog, or two, on this</li>
<li>A daily monitoring activity checklist to ensure that no activity is missed. We have daily, weekly and monthly activities that are to be performed for each of our customers</li>
<li>Assuming on-call responsibilities.  You need to make sure you are prepared for the on-call process.   The checklist should include what other DBAs are working on during your on call rotation, customer outages taking place, connecting to environments that are hard to connect to, etc..</li>
<li>Complex administrative activities performed regularly</li>
<li>Test and reporting database refreshes</li>
<li>Data reorganizations</li>
<li>Disaster recovery tests. The processes required to perform the recovery AND the criteria that will be used to evaluate whether it was successful or not</li>
</ul>
<p><strong>Object Documentation</strong><strong></strong></p>
<ul>
<li>DBA specific stored PL/SQL programs</li>
<li>Day-to-day support scripts (where they are and what they do)</li>
<li>Monitoring scripts (where they are and what they do)</li>
<li>Scripts used to perform database administrative changes. I have specific directories that provide output from critical database changes that I have performed and other directories containing the SQL used to make that change</li>
<li>Operating system scripts. Document what the script does in the beginning of each of your scripts. Ever try to determine what a 400 line script does that was created by someone that knows much more about UNIX scripting than you do? We have all been in that position at one time or another during our career. I&#8217;m personally still not good at it. Which is why I never was a great developer (all that IF-THEN-ELSE-OTHERWISE-GOTO-EXIT stuff bored me to tears). Make it easy on your coworkers to understand what the script does by putting comments at the top of the script as well as in the body. Also keep a running history of script changes. What they were and the time they were made</li>
</ul>
<p><strong>Database Administration Unit Organizational Documentation</strong><strong></strong></p>
<ul>
<li>Contact Information</li>
<li>DBA responsibilities. Which databases and tasks they are responsible for</li>
<li>DBA unavailablity. Allows application developers to plan for a DBA not being available</li>
</ul>
<p>It is a good practice to distribute this information to all business units supported by the database administration unit</p>
<p>I hope you enjoyed this blog on documentation and the important role it plays in the Art of Being a Successful DBA.</p>
<p>Thanks for Reading,</p>
<p><strong>Chris Foot<br />
Oracle Ace<img title="ace_2" src="http://www.remotedbaexperts.com/Blog/wp-content/uploads/2009/07/ace_2.gif" alt="ace_2" width="12" height="12" /><br />
Director Of Service Delivery</strong><br />
<img title="RDBAELOGO" src="http://www.remotedbaexperts.com/Blog/wp-content/uploads/2009/07/RDBAELOGO.gif" alt="RDBAELOGO" width="205" height="44" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.remotedbaexperts.com/Blog/2009/07/the-non-technical-art-of-being-a-successful-dba-%e2%80%93-good-documentation-is-essential/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>The Art of Being a Successful DBA</title>
		<link>http://www.remotedbaexperts.com/Blog/2009/07/the-non-technical-art-of-being-a-successful-dba/</link>
		<comments>http://www.remotedbaexperts.com/Blog/2009/07/the-non-technical-art-of-being-a-successful-dba/#comments</comments>
		<pubDate>Wed, 22 Jul 2009 16:00:41 +0000</pubDate>
		<dc:creator>Chris Foot</dc:creator>
				<category><![CDATA[Tips from the Oracle Ace]]></category>
		<category><![CDATA[DBA Best Practices]]></category>
		<category><![CDATA[DBA Help]]></category>
		<category><![CDATA[DBA procedures]]></category>
		<category><![CDATA[DBA Success]]></category>
		<category><![CDATA[DBA tips]]></category>
		<category><![CDATA[Oracle Ace]]></category>
		<category><![CDATA[Oracle help]]></category>
		<category><![CDATA[The Art of Being a Successful DBA]]></category>

		<guid isPermaLink="false">http://www.remotedbaexperts.com/Blog/?p=14</guid>
		<description><![CDATA[One of the benefits of my 20-year career (I think) is that most of the jobs I have held can be described as somewhat “unforgiving”, shall we say… What these jobs taught me is that I needed more than just technical expertise to become successful in my chosen profession. I quickly learned that becoming proficient [...]]]></description>
			<content:encoded><![CDATA[<p>One of the benefits of my 20-year career (I think) is that most of the jobs I have held can be described as somewhat “unforgiving”, shall we say… What these jobs taught me is that I needed more than just technical expertise to become successful in my chosen profession. I quickly learned that becoming proficient at the various disciplines I will be discussing in upcoming blogs was just as challenging to me as honing my technical skill sets.</p>
<p>I’ve been able to learn from my mistakes and make changes in my technical and non-technical approach to database administration to overcome my shortcomings. I’d like to cover some of my personal best practices that have made my life as a DBA more productive and my customers and co-workers happier.</p>
<p>I&#8217;d like to take a minute to describe some of the jobs I&#8217;ve held and how they have taught me to learn the value of becoming proficient at both the technical and non-technical disciplines required to become a successful DBA. I&#8217;ll continue this week&#8217;s discussion with what I think is probably the most beneficial set of recommendations I could provide to you as readers. Some of the information is certainly &#8220;intuitively obvious&#8221; as my old boss used to say but it never hurts to have a refresher. In upcoming blogs, I&#8217;ll remove the personal stuff and get down to the business of providing you with information on The Non-Technical Art of Being a Successful DBA. We will then turn our attention to the wonderful world of Oracle and SQL Server database administration Tips, Tricks and Techniques.</p>
<p>There are numerous jobs where you have to be on top of your game at all times. The medical profession and police work come to mind when I think about folks that have to be &#8220;mistake free&#8221; to keep us all safe and healthy. I often remind myself that the stress I let my job generate for me is nothing compared to what these aforementioned folks must experience.</p>
<p>As Oracle database administration goes, being an Oracle Instructor is about as unforgiving as it gets. You get dropped into a classroom that has twenty PCs running Oracle and twenty students depending upon you to teach them. My first attempts at teaching a dozen years or so ago could be described as &#8220;less than stellar.&#8221; I had a review from my first class state &#8220;this was the most boring person I have ever met.&#8221; I felt bad about that until my senior instructor showed me one of his first reviews. It had in big red letters at the top of the page &#8220;I HATED YOU.&#8221; I felt better after reading that.</p>
<p>I must admit I was a little timid when I started, but those students that attended later classes know that I decided to let my own bombastic personality show through. Let&#8217;s say that none of my subsequent classes were ever boring after that.</p>
<p>After that less than glorious start, I worked hard to become a better instructor, eventually winning one of Oracle&#8217;s top instructor awards with a 95% student approval rating. How I ever ended up in a teaching profession where the students graded the teacher, I&#8217;ll never know. Just as a joke I started one class by stating &#8220;Oracle has instituted a new procedure that will allow me to grade your participation and learning skills and send them to your employers.&#8221; The look on everyone&#8217;s faces was priceless. I still view being asked by Oracle to certify fellow instructors as one the greatest achievements of my career. I took that job very seriously.</p>
<p>I can tell you one thing about Oracle DBA students, they are a rough bunch. I started a DBA I class by blowing up a database create and couldn&#8217;t get it to work correctly after a second attempt. This after doing it successfully hundreds of times. A corrupt drive on my PC was the culprit. After turning around and seeing the &#8220;who is this idiot&#8221; look on my student&#8217;s faces, I suddenly felt like a wounded fish in the middle of a pack of hungry piranha.</p>
<p>Oracle instructors describe that problem with a single phrase &#8220;losing creditability with the class.&#8221; You did that and you were lunchmeat. But I never let that potential loss of creditability prevent me from saying &#8220;I don&#8217;t know, I&#8217;ll get back to you.&#8221; Or I would look up the information for the student on the spot. That provided two benefits: answering the question and showing students the importance of knowing where to look for the answers.</p>
<p>Assisting a class of twenty students through backup and recovery labs certainly helped my debugging skills. If you ever want to find out how bullet proof an Oracle database can be, watch 20 installations being abused by students in a backup and recovery class. I always started my backup and recovery class with this statement &#8220;The fastest way to lose your job in this profession is to lose data for your company. You can be a Tom Kyte and a Jonathan Lewis X 2, but if you can&#8217;t recover a database, you aren&#8217;t of any use to your employer.&#8221; That always seemed to ensure that they paid attention during the remainder of the class. That was one class where I absolutely pounded information and best practices into their collective heads. We were all worn out by Friday.</p>
<p>I enjoyed teaching and became friends with each and every group of students I taught. I always felt sad when we parted and always worried that I missed that one tidbit of information that could help them.</p>
<p>On-site consulting is also a tough profession. The customer brings you into an environment that you know nothing (or little) about and expects you to be productive and solve their problems &#8211; immediately. That is as it should be. They pay a premium and expect good service. It is the consultant&#8217;s fault if that doesn&#8217;t happen. I liked that job because it was very challenging and forced me to continuously refine my skill sets and talents to keep my customers happy.</p>
<p>But I have had my fair share of sweaty palms at many a client site. I didn&#8217;t have the luxury of being an Oracle consultant. They always seemed to have an endless stream of people to draw from for support. I usually ended up in a wiring closet with a manual in one hand and a keyboard in the other. I actually spent three weeks in a wiring closet at one client&#8217;s site.</p>
<p>Remote database administration also requires excellent technical and non-technical skills. You must continuously strive to keep your customers happy, all of which hold you to a very high standard.  You must expect that from all of your customers in this profession.   They have handed the keys to their most critical data assets to your firm.   Trust me when I say we at Remote Database Experts don’t take this responsibility lightly.</p>
<p>If you want to be at the top of your game, become a DBA for a remote database administration firm.  Describing competition in the remote DBA industry as fierce is like describing the Titanic as &#8220;having a small leak.   It is a very challenging job.</p>
<p>You become successful as a remote DBA services company by providing a superior level of support to your customers. As a technician, it&#8217;s a great job! You can be installing a RAC/LINUX environment in the morning and be debugging an Oracle Applications concurrent manager problem in the afternoon. From warehouses to HUGE web databases having thousands of concurrent users and from manufacturing to financials, you work on it all.</p>
<p><strong>The Art of Being a Good DBA</strong><br />
I started off this blog describing some of my jobs not to impress you with my background but to hopefully help you understand how important it is to me to provide you with this first series of non-technical recommendations. These jobs quickly laid bare every hole in both my technical and non-technical approach to database administration. They not only laid them bare but also amplified their negative results. I found that becoming lax in the non-technical areas of database administration and not following my own best practices could create just as much havoc as a technical problem. As I have stated numerous times, some of us are brilliant and some of us are lucky. The rest of us have to be thorough.</p>
<p>To ensure that I did not allow a failure in non-technical areas to complicate my life as a DBA, I needed to learn how to document, communicate and follow my own best practices. I learned the tricks of the trade to reduce the amount of time it took me to administer my environments and ensure I didn&#8217;t get paged at night. I found that I could trust some author&#8217;s information and not others. I learned that by keeping my recovery skills sharp, I reduced my level of anxiety when I got one of those two in the morning &#8220;I think we just formatted one of your Oracle disks by mistake&#8221; calls (actually the caller stated they accidentally formatted the entire array consisting of dozens of disks by mistake). The list goes on and on…</p>
<p>To continue, here&#8217;s a laundry list of what will be covered in upcoming blogs:</p>
<ul>
<li>Why good documentation is so essential and documentation best practices</li>
<li>Naming conventions</li>
<li>The benefits of Data Administration</li>
<li>The key to successful application implementation &#8211; Design Review Meetings</li>
<li>Improving the speed and quality of database administration by keeping your environments organized and uncluttered</li>
<li>Creating and maintaining tips, tricks and problem resolution libraries</li>
<li>Script foraging</li>
<li>Reducing stress and preventing failed recoveries by keeping recovery skills sharp</li>
<li>The benefits of repeatable processes. If it worked that way once, it&#8217;ll probably work that way again</li>
<li>Proceduralizing the change management and production turnover process</li>
<li>Time Management and the art of project and process time estimation</li>
<li>Maintaining good relationships with customers, end-users and fellow technical personnel</li>
<li>The Foot Rule of Thumb</li>
<li>Knowing where to look when you don&#8217;t know the answer (reprise from earlier blog)</li>
<li>Using Service Level Agreements to ensure your internal and external customers know what to expect from you</li>
<li>Monitoring by day so you don&#8217;t get called at night</li>
<li>Monitoring space growth and performance statistics historically</li>
<li>Paranoid administration best practices. Many of which are stolen from probably the most paranoid (and error free) DBA I have ever met. Jeff &#8220;I never met a problem prevention method I didn&#8217;t like&#8221; Kondas.</li>
<li>Preventing errors from reoccurring by creating and following Corrective Action Procedures</li>
</ul>
<p>Some of the topics will require an entire blog to cover while other blogs may group many topics together. The intent of this series of upcoming blogs is to help beginners create an approach to improving in non-technical areas and act as a refresher to those of us that have been in this profession for a while. Some of these recommendations come from problems that have occurred as a result of me not placing the same emphasis on non-technical areas as I did the technical ones. Many of the recommendations come from my experiences working as a mainframe DBA that, as we all know, is a very structured environment that demands rigorous adherence to best practices. The remainder comes from my experiences working as an educator, consultant and services provider.</p>
<p>Thanks for Reading,</p>
<p><strong>Chris Foot<br />
Oracle Ace<img class="alignnone size-full wp-image-15" title="ace_2" src="http://www.remotedbaexperts.com/Blog/wp-content/uploads/2009/07/ace_2.gif" alt="ace_2" width="12" height="12" /><br />
Director Of Service Delivery</strong><br />
<img class="alignnone size-full wp-image-44" title="RDBAELOGO" src="http://www.remotedbaexperts.com/Blog/wp-content/uploads/2009/07/RDBAELOGO.gif" alt="RDBAELOGO" width="205" height="44" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.remotedbaexperts.com/Blog/2009/07/the-non-technical-art-of-being-a-successful-dba/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

