<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[『AskWan』]]></title> 
<link>http://www.askwan.com/index.php</link> 
<description><![CDATA[<!-- Related Work【Unix,Linux,Mysql,PostgreSQL,Oracle】-->]]></description> 
<language>en-US</language> 
<copyright><![CDATA[『AskWan』]]></copyright>
<item>
<link>http://www.askwan.com/zhou_xiang_gong_he_sun_zhong_shan/</link>
<title><![CDATA[“革命尚未成功 同志仍需努力”]]></title> 
<author>askwan &lt;askwan@yahoo.cn&gt;</author>
<category><![CDATA[My Diary]]></category>
<pubDate>Sun, 14 Mar 2010 14:07:08 +0000</pubDate> 
<guid>http://www.askwan.com/zhou_xiang_gong_he_sun_zhong_shan/</guid> 
<description>
<![CDATA[ 
	今年的“两会”就要开完了，再听听国父的讲话……<br/><embed src="http://player.youku.com/player.php/sid/XMzM4ODM3Mjg=/v.swf" quality="high" width="480" height="400" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash"></embed><br/><br/>“革命尚未成功 同志仍需努力”<br/>“Revolution does not succeed yet,&nbsp;&nbsp;comrades still need to struggle！”<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ------国父 孙中山
]]>
</description>
</item><item>
<link>http://www.askwan.com/configuration_oracle_data_guard_for_testing/</link>
<title><![CDATA[configuration oracle data guard for testing]]></title> 
<author>askwan &lt;askwan@yahoo.cn&gt;</author>
<category><![CDATA[DataBase]]></category>
<pubDate>Thu, 11 Mar 2010 06:39:41 +0000</pubDate> 
<guid>http://www.askwan.com/configuration_oracle_data_guard_for_testing/</guid> 
<description>
<![CDATA[ 
	OS: CentOS 5.4 x86_64 <br/>Oracle: Oracle 10.2.0.1 64bit for linux <br/>&nbsp;&nbsp;<br/>题外话：有些东西长时间不接触，而理解又不深刻的话，慢慢就淡忘了。。。<br/>这个笔记是边参考文档oracle 10g《Data Guard Concepts and Administration》，边验证记录下的<br/>仅供参考<br/><br/>单机环境配置oracle 10g dataguard (physical standby) <br/>IP：192.168.0.21<br/>预期规划如下：<br/><br/>主库：<br/>db_name=dg1<br/>sid=dg1&nbsp;&nbsp;<br/>db_unique_name=primary&nbsp;&nbsp;<br/>network_service_name=primary_21<br/><br/>ORACLE_BASE=/u01/oracle<br/>ORACLE_HOME=/u01/oracle/product/10.2.0/db_1<br/>数据文件路径=/u01/oracle/oradata/dg1<br/>归档日志路径=/u01/oracle/oradata/dg1/archive<br/>警告跟踪等日志文件路径=/u01/oracle/admin/dg1/<br/><br/>从库：<br/>dg_name=dg1<br/>sid=standby&nbsp;&nbsp;<br/>db_unique_name=standby&nbsp;&nbsp;<br/>network_service_name=standby_21<br/><br/>ORACLE_BASE=/u01/oracle<br/>ORACLE_HOME=/u01/oracle/product/10.2.0/db_1<br/>数据文件路径=/u01/oracle/oradata/standby<br/>归档日志路径=/u01/oracle/oradata/standby/archive<br/>警告跟踪等日志文件路径=/u01/oracle/admin/standby<br/><br/><br/><br/>1 准备工作<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;安装完oracle软件后，创建主库<br/><br/> 1.1 登录主库，将主库置于归档模式下：<br/><div class="code"><br/><br/>SQL&gt; select * from v$version;<br/><br/>BANNER<br/>----------------------------------------------------------------<br/>Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bi<br/>PL/SQL Release 10.2.0.1.0 - Production<br/>CORE&nbsp;&nbsp;&nbsp;&nbsp;10.2.0.1.0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Production<br/>TNS for Linux: Version 10.2.0.1.0 - Production<br/>NLSRTL Version 10.2.0.1.0 - Production<br/><br/>SQL&gt; archive log list;<br/>Database log mode&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Archive Mode<br/>Automatic archival&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Enabled<br/>Archive destination&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/u01/oracle/oradata/dg1/archive<br/>Oldest online log sequence&nbsp;&nbsp;&nbsp;&nbsp; 1<br/>Next log sequence to archive&nbsp;&nbsp; 2<br/>Current log sequence&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2</div><br/><br/><br/>打开force logging<br/><div class="code"><br/>SQL&gt;alter database force logging;<br/><br/>SQL&gt;select dbid,log_mode,force_logging from v$database;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DBID LOG_MODE&nbsp;&nbsp;&nbsp;&nbsp; FOR<br/>---------- ------------ ---<br/>1694483490 ARCHIVELOG&nbsp;&nbsp; YES<br/></div><br/><br/>1.2 建立密码文件<br/><div class="code"><br/>$ orapwd file=/u01/oracle/product/10.2.0/db_1/dbs/orapwdg1 password=askwan.com entries=8 <br/>$ orapwd file=/u01/oracle/product/10.2.0/db_1/dbs/orapwstandby password=askwan.com entries=8 <br/></div><br/><br/>1.3 为从库建立相应目录<br/><div class="code">$ mkdir /u01/oracle/oradata/standby<br/>$ mkdir /u01/oracle/admin/standby/<br/>$ mkdir /u01/oracle/admin/standby/&#123;a,b,c,dp,u&#125;dump <br/>$ mkdir /u01/oracle/admin/standby/pfile<br/></div><br/><br/>1.4 配置standby redo log<br/><div class="code"><br/>SQL&gt; alter database add standby logfile<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;group 4 (&#039;/u01/oracle/oradata/dg1/standby_redo04.log&#039;) size 50m,<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;group 5 (&#039;/u01/oracle/oradata/dg1/standby_redo05.log&#039;) size 50m,<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;group 6 (&#039;/u01/oracle/oradata/dg1/standby_redo06.log&#039;) size 50m,<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;group 7 (&#039;/u01/oracle/oradata/dg1/standby_redo07.log&#039;) size 50m;<br/><br/>Database altered.<br/></div><br/><br/><br/>2&nbsp;&nbsp;配置监听LISTENER和网络服务名NETWORK SERVICE NAME <br/><br/>&nbsp;&nbsp; 2.1 配置 listener.ora <br/><div class="code">#Network Configuration File: #/u01/oracle/product/10.2.0/db_1/network/admin/listener.ora<br/># Generated by Oracle configuration tools.<br/><br/>SID_LIST_LISTENER =<br/>&nbsp;&nbsp;(SID_LIST =<br/>&nbsp;&nbsp;&nbsp;&nbsp;(SID_DESC =<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(SID_NAME = PLSExtProc)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(ORACLE_HOME = /u01/oracle/product/10.2.0/db_1)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(PROGRAM = extproc)<br/>&nbsp;&nbsp;&nbsp;&nbsp;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;(SID_DESC =<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(SID_NAME = dg1)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(ORACLE_HOME = /u01/oracle/product/10.2.0/db_1)<br/>&nbsp;&nbsp;&nbsp;&nbsp;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;(SID_DESC =<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(SID_NAME = standby)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(ORACLE_HOME = /u01/oracle/product/10.2.0/db_1)<br/>&nbsp;&nbsp;&nbsp;&nbsp;)<br/>&nbsp;&nbsp;)<br/><br/>LISTENER =<br/>&nbsp;&nbsp;(DESCRIPTION_LIST =<br/>&nbsp;&nbsp;&nbsp;&nbsp;(DESCRIPTION =<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.21)(PORT = 1521))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))<br/>&nbsp;&nbsp;&nbsp;&nbsp;)<br/>&nbsp;&nbsp;)<br/></div><br/><br/><br/> 2.2 配置网络服务器名<br/><div class="code"># tnsnames.ora Network Configuration File: /u01/oracle/product/10.2.0/db_1/network/admin/tnsnames.ora<br/># Generated by Oracle configuration tools.<br/><br/>PRIMARY_21 =<br/>&nbsp;&nbsp;(DESCRIPTION =<br/>&nbsp;&nbsp;&nbsp;&nbsp;(ADDRESS_LIST =<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.21)(PORT = 1521))<br/>&nbsp;&nbsp;&nbsp;&nbsp;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;(CONNECT_DATA =<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(SERVICE_NAME = primary)<br/>&nbsp;&nbsp;&nbsp;&nbsp;)<br/>&nbsp;&nbsp;)<br/><br/><br/>STANDBY_21 =<br/>&nbsp;&nbsp;(DESCRIPTION =<br/>&nbsp;&nbsp;&nbsp;&nbsp;(ADDRESS_LIST =<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.21)(PORT = 1521))<br/>&nbsp;&nbsp;&nbsp;&nbsp;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;(CONNECT_DATA =<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(SERVICE_NAME = standby)<br/>&nbsp;&nbsp;&nbsp;&nbsp;)<br/>&nbsp;&nbsp;)<br/>EXTPROC_CONNECTION_DATA =<br/>&nbsp;&nbsp;(DESCRIPTION =<br/>&nbsp;&nbsp;&nbsp;&nbsp;(ADDRESS_LIST =<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))<br/>&nbsp;&nbsp;&nbsp;&nbsp;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;(CONNECT_DATA =<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(SID = PLSExtProc)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(PRESENTATION = RO)<br/>&nbsp;&nbsp;&nbsp;&nbsp;)<br/>&nbsp;&nbsp;)<br/></div><br/><br/>2.3 启动监听<br/><div class="code">$ lsnrctl start<br/><br/>LSNRCTL for Linux: Version 10.2.0.1.0 - Production on 10-MAR-2010 11:10:27<br/><br/>Copyright (c) 1991, 2005, Oracle.&nbsp;&nbsp;All rights reserved.<br/><br/>Starting /u01/oracle/product/10.2.0/db_1/bin/tnslsnr: please wait...<br/><br/>TNSLSNR for Linux: Version 10.2.0.1.0 - Production<br/>System parameter file is /u01/oracle/product/10.2.0/db_1/network/admin/listener.ora<br/>Log messages written to /u01/oracle/product/10.2.0/db_1/network/log/listener.log<br/>Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.0.21)(PORT=1521)))<br/>Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC0)))<br/><br/>Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.0.21)(PORT=1521)))<br/>STATUS of the LISTENER<br/>------------------------<br/>Alias&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; LISTENER<br/>Version&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TNSLSNR for Linux: Version 10.2.0.1.0 - Production<br/>Start Date&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;10-MAR-2010 11:10:27<br/>Uptime&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0 days 0 hr. 0 min. 0 sec<br/>Trace Level&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; off<br/>Security&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ON: Local OS Authentication<br/>SNMP&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OFF<br/>Listener Parameter File&nbsp;&nbsp; /u01/oracle/product/10.2.0/db_1/network/admin/listener.ora<br/>Listener Log File&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /u01/oracle/product/10.2.0/db_1/network/log/listener.log<br/>Listening Endpoints Summary...<br/>&nbsp;&nbsp;(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.0.21)(PORT=1521)))<br/>&nbsp;&nbsp;(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC0)))<br/>Services Summary...<br/>Service &quot;PLSExtProc&quot; has 1 instance(s).<br/>&nbsp;&nbsp;Instance &quot;PLSExtProc&quot;, status UNKNOWN, has 1 handler(s) for this service...<br/>Service &quot;dg1&quot; has 1 instance(s).<br/>&nbsp;&nbsp;Instance &quot;dg1&quot;, status UNKNOWN, has 1 handler(s) for this service...<br/>Service &quot;standby&quot; has 1 instance(s).<br/>&nbsp;&nbsp;Instance &quot;standby&quot;, status UNKNOWN, has 1 handler(s) for this service...<br/>The command completed successfully<br/></div><br/><br/>3 配置主库初始化参数文件<br/><div class="code">SQL&gt; create pfile from spfile;<br/><br/>File created.<br/></div><br/>在/u01/oracle/product/10.2.0/db_1/dbs路径下编辑主库刚生成的pfile文件initdg1.ora<br/><br/>3.1 配置主库参数文件initdg1.ora<br/> 未编辑前：<br/><div class="code"><br/>dg1.__db_cache_size=134217728<br/>dg1.__java_pool_size=4194304<br/>dg1.__large_pool_size=4194304<br/>dg1.__shared_pool_size=67108864<br/>dg1.__streams_pool_size=0<br/>*.audit_file_dest=&#039;/u01/oracle/admin/dg1/adump&#039;<br/>*.background_dump_dest=&#039;/u01/oracle/admin/dg1/bdump&#039;<br/>*.compatible=&#039;10.2.0.1.0&#039;<br/>*.control_files=&#039;/u01/oracle/oradata/dg1/control01.ctl&#039;,&#039;/u01/oracle/oradata/dg1/control02.ctl&#039;,&#039;/u01/oracle/oradata/dg1/control03.c<br/>tl&#039;<br/>*.core_dump_dest=&#039;/u01/oracle/admin/dg1/cdump&#039;<br/>*.db_block_size=8192<br/>*.db_domain=&#039;&#039;<br/>*.db_file_multiblock_read_count=16<br/>*.db_name=&#039;dg1&#039;<br/>*.dispatchers=&#039;(PROTOCOL=TCP) (SERVICE=dg1XDB)&#039;<br/>*.job_queue_processes=10<br/>*.log_archive_dest_1=&#039;LOCATION=/u01/oracle/oradata/dg1/archive&#039;<br/>*.log_archive_format=&#039;%t_%s_%r.dbf&#039;<br/>*.open_cursors=300<br/>*.pga_aggregate_target=70254592<br/>*.processes=150<br/>*.remote_login_passwordfile=&#039;EXCLUSIVE&#039;<br/>*.sga_target=211812352<br/>*.undo_management=&#039;AUTO&#039;<br/>*.undo_tablespace=&#039;UNDOTBS1&#039;<br/>*.user_dump_dest=&#039;/u01/oracle/admin/dg1/udump&#039;<br/></div><br/><br/>编辑后：<br/><div class="code"><br/>dg1.__db_cache_size=134217728<br/>dg1.__java_pool_size=4194304<br/>dg1.__large_pool_size=4194304<br/>dg1.__shared_pool_size=67108864<br/>dg1.__streams_pool_size=0<br/>*.audit_file_dest=&#039;/u01/oracle/admin/dg1/adump&#039;<br/>*.background_dump_dest=&#039;/u01/oracle/admin/dg1/bdump&#039;<br/>*.compatible=&#039;10.2.0.1.0&#039;<br/>*.control_files=&#039;/u01/oracle/oradata/dg1/control01.ctl&#039;,&#039;/u01/oracle/oradata/dg1/control02.ctl&#039;,&#039;/u01/oracle/oradata/dg1/control03.c<br/>tl&#039;<br/>*.core_dump_dest=&#039;/u01/oracle/admin/dg1/cdump&#039;<br/>*.db_block_size=8192<br/>*.db_domain=&#039;&#039;<br/>*.db_file_multiblock_read_count=16<br/>*.db_name=&#039;dg1&#039;<br/>*.dispatchers=&#039;(PROTOCOL=TCP) (SERVICE=dg1XDB)&#039;<br/>*.job_queue_processes=10<br/>*.log_archive_format=&#039;%t_%s_%r.dbf&#039;<br/>*.open_cursors=300<br/>*.pga_aggregate_target=70254592<br/>*.processes=150<br/>*.remote_login_passwordfile=&#039;EXCLUSIVE&#039;<br/>*.sga_target=211812352<br/>*.undo_management=&#039;AUTO&#039;<br/>*.undo_tablespace=&#039;UNDOTBS1&#039;<br/>*.user_dump_dest=&#039;/u01/oracle/admin/dg1/udump&#039;<br/>DB_UNIQUE_NAME=primary<br/>LOG_ARCHIVE_CONFIG=&#039;DG_CONFIG=(primary,standby)&#039;<br/>DB_FILE_NAME_CONVERT=&#039;standby&#039;,&#039;dg1&#039;<br/>LOG_FILE_NAME_CONVERT=&#039;standby&#039;,&#039;dg1&#039;<br/>LOG_ARCHIVE_DEST_1=&#039;LOCATION=/u01/oracle/oradata/dg1/archive VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=primary&#039;<br/>LOG_ARCHIVE_DEST_2=&#039;SERVICE=standby_21 LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=standby&#039;<br/>LOG_ARCHIVE_DEST_STATE_1=ENABLE<br/>LOG_ARCHIVE_DEST_STATE_2=ENABLE<br/>STANDBY_FILE_MANAGEMENT=AUTO<br/>FAL_SERVER=standby_21<br/>FAL_CLIENT=primary_21<br/> </div><br/><br/>3.2 配置从库初始化参数文件initstandby.ora<br/>&nbsp;&nbsp;从库文件则依据主库文件修改，修改后：<br/><div class="code"><br/>standby.__db_cache_size=134217728<br/>standby.__java_pool_size=4194304<br/>standby.__large_pool_size=4194304<br/>standby.__shared_pool_size=67108864<br/>standby.__streams_pool_size=0<br/>*.audit_file_dest=&#039;/u01/oracle/admin/standby/adump&#039;<br/>*.background_dump_dest=&#039;/u01/oracle/admin/standby/bdump&#039;<br/>*.compatible=&#039;10.2.0.1.0&#039;<br/>*.control_files=&#039;/u01/oracle/oradata/standby/control01.ctl&#039;,&#039;/u01/oracle/oradata/standby/control02.ctl&#039;,&#039;/u01/oracle/oradata/standby/control03.ctl&#039;<br/>*.core_dump_dest=&#039;/u01/oracle/admin/standby/cdump&#039;<br/>*.db_block_size=8192<br/>*.db_domain=&#039;&#039;<br/>*.db_file_multiblock_read_count=16<br/>*.db_name=&#039;dg1&#039;<br/>*.dispatchers=&#039;(PROTOCOL=TCP) (SERVICE=dg1XDB)&#039;<br/>*.job_queue_processes=10<br/>*.log_archive_format=&#039;%t_%s_%r.dbf&#039;<br/>*.open_cursors=300<br/>*.pga_aggregate_target=70254592<br/>*.processes=150<br/>*.remote_login_passwordfile=&#039;EXCLUSIVE&#039;<br/>*.sga_target=211812352<br/>*.undo_management=&#039;AUTO&#039;<br/>*.undo_tablespace=&#039;UNDOTBS1&#039;<br/>*.user_dump_dest=&#039;/u01/oracle/admin/standby/udump&#039;<br/>DB_UNIQUE_NAME=standby<br/>LOG_ARCHIVE_CONFIG=&#039;DG_CONFIG=(primary,standby)&#039;<br/>DB_FILE_NAME_CONVERT=&#039;dg1&#039;,&#039;standby&#039;<br/>LOG_FILE_NAME_CONVERT=&#039;dg1&#039;,&#039;standby&#039;<br/>LOG_ARCHIVE_DEST_1=&#039;LOCATION=/u01/oracle/oradata/standby/archive VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=standby&#039;<br/>LOG_ARCHIVE_DEST_2=&#039;SERVICE=primary_21 LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=primary&#039;<br/>LOG_ARCHIVE_DEST_STATE_1=ENABLE<br/>LOG_ARCHIVE_DEST_STATE_2=ENABLE<br/>STANDBY_FILE_MANAGEMENT=AUTO<br/>FAL_CLIENT=standby_21<br/>FAL_SERVER=primary_21<br/></div><br/><br/>4 备份主库数据文件到从库<br/><div class="code">SQL&gt; alter database begin backup;<br/><br/>Database altered.<br/></div><br/><div class="code"><br/>$ cp -frp /u01/oracle/oradata/dg1/* /u01/oracle/oradata/standby/ <br/>$ rm -fr /u01/oracle/oradata/standby/control0*.ctl <br/></div><br/>建立从库控制文件<br/><div class="code">SQL&gt; alter database create standby controlfile as &#039;/u01/oracle/oradata/standby/control01.ctl&#039;; <br/><br/>Database altered.<br/></div><br/><div class="code"><br/>SQL&gt; alter database end backup;<br/><br/>Database altered.<br/></div><br/><br/><div class="code">$ cp /u01/oracle/oradata/standby/control01.ctl /u01/oracle/oradata/standby/control02.ctl<br/><br/>$ cp /u01/oracle/oradata/standby/control01.ctl /u01/oracle/oradata/standby/control03.ctl<br/></div><br/><br/><div class="code"><br/>SQL&gt; shutdown immediate <br/>Database closed.<br/>Database dismounted.<br/>ORACLE instance shut down.<br/><br/>SQL&gt; create spfile from pfile;<br/><br/>File created.<br/><br/>SQL&gt; startup <br/>ORACLE instance started.<br/><br/>Total System Global Area&nbsp;&nbsp;213909504 bytes<br/>Fixed Size&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2019672 bytes<br/>Variable Size&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;75501224 bytes<br/>Database Buffers&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;134217728 bytes<br/>Redo Buffers&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2170880 bytes<br/>Database mounted.<br/>Database opened.<br/></div><br/><br/>5 数据库启动 <br/>5.1 从库打开redo apply<br/><div class="code"><br/>$ export ORACLE_SID=standby<br/></div><br/><br/><div class="code">SQL&gt;startup pfile=&#039;/u01/oracle/product/10.2.0/db_1/dbs/initstandby.ora&#039; nomount<br/>ORACLE instance started.<br/><br/>Total System Global Area&nbsp;&nbsp;213909504 bytes<br/>Fixed Size&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2019672 bytes<br/>Variable Size&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;75501224 bytes<br/>Database Buffers&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;134217728 bytes<br/>Redo Buffers&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2170880 bytes<br/>Database mounted.<br/><br/>SQL&gt;alter database mount standby database<br/><br/>SQL&gt; alter database recover managed standby database disconnect from session;</div><br/><br/>主库：<br/><div class="code"><br/>SQL&gt; select max(sequence#) from v$archived_Log;<br/><br/>MAX(SEQUENCE#)<br/>--------------<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 4<br/></div><br/>从库：<br/><br/><div class="code">SQL&gt; select max(sequence#) from v$archived_Log;<br/><br/>MAX(SEQUENCE#)<br/>--------------<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 4<br/></div><br/>切换操作不做了<br/><br/>参考文档:《Data Guard Concepts and Administration》<br/>Tags - <a href="http://www.askwan.com/tags/oracle/" rel="tag">oracle</a> , <a href="http://www.askwan.com/tags/dataguard/" rel="tag">dataguard</a>
]]>
</description>
</item><item>
<link>http://www.askwan.com/Linux_server_ext3_filesystem_readonly/</link>
<title><![CDATA[A friend companys Linux server ext3 filesystem becomes read only]]></title> 
<author>askwan &lt;askwan@yahoo.cn&gt;</author>
<category><![CDATA[Oprating System ]]></category>
<pubDate>Mon, 08 Mar 2010 03:12:35 +0000</pubDate> 
<guid>http://www.askwan.com/Linux_server_ext3_filesystem_readonly/</guid> 
<description>
<![CDATA[ 
	System has been restarted everything seemed normal, the application starts normally! View the system boot log, there is no exception, the specific reasons for this situation also unknown now! It seems&nbsp;&nbsp;need to continue to observe.<br/><br/>However, open system, found that swap partition 0<br/><div class="code">Swap:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0k total,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0k used,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0k free,&nbsp;&nbsp; 300496k cached</div><br/>Is it did not installed the system swap partition?<br/><div class="code"> &#91;root@youke2 log&#93;# cat /proc/swaps</div><br/>output Nothing, there is no swap partition indeed !<br/>this System has 4G mem, so additional 8G swap space manually<br/><div class="code">&#91;root@youke2 log&#93;# dd if=/dev/zero of=/tmp/swapfree bs=1024K count=8192 <br/>8192+0 records in 8192+0 records out 8589934592 bytes (8.6 GB) copied, 111.247 seconds, 77.2 MB/s</div><br/><div class="code"><br/>&#91;root@youke2 log&#93;# mkswap /tmp/swapfree <br/>Setting up swapspace version 1, size = 8589930 kB<br/></div><br/><div class="code">&#91;root@youke2 log&#93;# swapon /tmp/swapfree </div><br/>Re-examine swap partition:<br/><div class="code"><br/>&#91;root@youke2 log&#93;# cat /proc/swaps <br/>Filename&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Type&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Size&nbsp;&nbsp;&nbsp;&nbsp;Used&nbsp;&nbsp;&nbsp;&nbsp;Priority<br/>/tmp/swapfree&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; file&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;8388600 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -1<br/></div><br/>USE top TO CHECK&nbsp;&nbsp;<br/><div class="code">Tasks: 145 total,&nbsp;&nbsp; 1 running, 144 sleeping,&nbsp;&nbsp; 0 stopped,&nbsp;&nbsp; 0 zombie<br/>Cpu(s):&nbsp;&nbsp;0.1%us,&nbsp;&nbsp;0.2%sy,&nbsp;&nbsp;0.0%ni, 94.4%id,&nbsp;&nbsp;5.3%wa,&nbsp;&nbsp;0.0%hi,&nbsp;&nbsp;0.0%si,&nbsp;&nbsp;0.0%st<br/>Mem:&nbsp;&nbsp; 4138172k total,&nbsp;&nbsp;3834908k used,&nbsp;&nbsp; 303264k free,&nbsp;&nbsp;&nbsp;&nbsp;28220k buffers<br/>Swap:&nbsp;&nbsp;8388600k total,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0k used,&nbsp;&nbsp;8388600k free,&nbsp;&nbsp;3605544k cached</div><br/>OK! write this to fstab file,so it can valid at system start time !<br/><div class="code">/tmp/swapfree&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; swap&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;swap&nbsp;&nbsp;&nbsp;&nbsp;defaults&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0 0</div>
]]>
</description>
</item><item>
<link>http://www.askwan.com/a_simple_oracle_rman_backup_script/</link>
<title><![CDATA[a simple oracle rman backup script ]]></title> 
<author>askwan &lt;askwan@yahoo.cn&gt;</author>
<category><![CDATA[DataBase]]></category>
<pubDate>Fri, 05 Mar 2010 08:17:22 +0000</pubDate> 
<guid>http://www.askwan.com/a_simple_oracle_rman_backup_script/</guid> 
<description>
<![CDATA[ 
	<strong>Note:this backup script is suitable for db size < 200G,<br/>and for backup file safety ,may be you should use an independent disk to store backup files</strong><br/><br/><br/>1&nbsp;&nbsp;configuration target database to<a href="http://www.askwan.com/configuration_oracle_10g_archive_log_mode/" target="_blank"> archive log mode</a> <br/><br/>2 configuration or check <a href="http://www.askwan.com/log_archive_dest_and_db_recovery_file_dest/" target="_blank">log_archive_dest and db_recovery_file_dest or log_archive_dest_n </a><br/><br/>3 write a&nbsp;&nbsp;rman script&nbsp;&nbsp;<br/><br/>oracle@dbtest:~$ vim backup.rman <br/><br/><div class="code">run&#123;<br/>CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 15 DAYS;<br/>CONFIGURE RETENTION POLICY TO REDUNDANCY 2;<br/>CONFIGURE CONTROLFILE AUTOBACKUP ON;<br/>CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO &#039;/opt/oracle/orabak/ctfile_%F&#039;;<br/>ALLOCATE CHANNEL C1 DEVICE TYPE DISK FORMAT &#039;/opt/oracle/orabak/DBFULL_%U&#039;;<br/>BACKUP DATABASE SKIP INACCESSIBLE PLUS ARCHIVELOG FILESPERSET 20 DELETE ALL INPUT;<br/>RELEASE CHANNEL C1;<br/>&#125;</div><br/><br/>4 write backup shell script <br/><br/>oracle@dbtest:~$ vim backup.sh<br/><div class="code">#!/bin/bash <br/>export ORACLE_BASE=/opt/oracle<br/>export ORACLE_SID=capitalv<br/>export ORACLE_HOME=$ORACLE_BASE/oracle/product/10.2.0/db_1<br/>PATH=/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/bin:/sbin:$PATH;<br/>export PATH=$ORACLE_HOME/bin:$PATH<br/>rman TARGET /&nbsp;&nbsp;log=&#039;/opt/oracle/orabak/rman.log&#039; cmdfile=&#039;/opt/oracle/backup.rman&#039;</div><br/><br/><br/>5 set cronjob for user oracle <br/><br/><div class="code">30 02 * * 0,3&nbsp;&nbsp;bash /opt/oracle/backup.sh </div><br/>Tags - <a href="http://www.askwan.com/tags/oracle/" rel="tag">oracle</a> , <a href="http://www.askwan.com/tags/rman/" rel="tag">rman</a> , <a href="http://www.askwan.com/tags/backup/" rel="tag">backup</a>
]]>
</description>
</item><item>
<link>http://www.askwan.com/post/219/</link>
<title><![CDATA[《蚁族》]]></title> 
<author>askwan &lt;askwan@yahoo.cn&gt;</author>
<category><![CDATA[My Diary]]></category>
<pubDate>Thu, 04 Mar 2010 06:27:07 +0000</pubDate> 
<guid>http://www.askwan.com/post/219/</guid> 
<description>
<![CDATA[ 
	<embed src="http://player.youku.com/player.php/sid/XMTU1NTU2ODUy/v.swf" quality="high" width="480" height="400" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash"></embed>
]]>
</description>
</item><item>
<link>http://www.askwan.com/create_rman_catalog_how_to/</link>
<title><![CDATA[how to create a rman catalog ]]></title> 
<author>askwan &lt;askwan@yahoo.cn&gt;</author>
<category><![CDATA[DataBase]]></category>
<pubDate>Tue, 02 Mar 2010 04:07:06 +0000</pubDate> 
<guid>http://www.askwan.com/create_rman_catalog_how_to/</guid> 
<description>
<![CDATA[ 
	<div class="code"><br/>SQL&gt; create tablespace rmantest datafile &#039;/u01/oracle/oradata/askwan/rmantest01.dbf&#039; size 100M autoextend on ; <br/><br/>Tablespace created.<br/><br/>SQL&gt; create user rman identified by rman;<br/><br/>User created.<br/><br/>SQL&gt; alter user rman default tablespace rmantest temporary tablespace temp;<br/><br/>User altered.<br/><br/>SQL&gt; alter user rman quota unlimited on rmantest;<br/><br/>User altered.<br/><br/>SQL&gt; grant recovery_catalog_owner,connect,resource to rman;<br/><br/>Grant succeeded.<br/>SQL&gt; exit<br/>Disconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production<br/>With the Partitioning, OLAP and Data Mining options</div><br/><br/>login with user rman to create catalog <br/><br/><div class="code">&#91;oracle@oracle ~&#93;$ rman catalog rman/rman <br/><br/>Recovery Manager: Release 10.2.0.1.0 - Production on Tue Mar 2 12:10:44 2010<br/><br/>Copyright (c) 1982, 2005, Oracle.&nbsp;&nbsp;All rights reserved.<br/><br/>connected to recovery catalog database<br/><br/>RMAN&gt; <br/>RMAN&gt; create catalog tablespace rmantest;<br/><br/>recovery catalog created</div><br/><br/>create rman catalog done!<br/>Tags - <a href="http://www.askwan.com/tags/rman/" rel="tag">rman</a> , <a href="http://www.askwan.com/tags/catalog/" rel="tag">catalog</a>
]]>
</description>
</item><item>
<link>http://www.askwan.com/log_archive_dest_and_db_recovery_file_dest/</link>
<title><![CDATA[log_archive_dest and db_recovery_file_dest]]></title> 
<author>askwan &lt;askwan@yahoo.cn&gt;</author>
<category><![CDATA[DataBase]]></category>
<pubDate>Tue, 02 Mar 2010 03:45:34 +0000</pubDate> 
<guid>http://www.askwan.com/log_archive_dest_and_db_recovery_file_dest/</guid> 
<description>
<![CDATA[ 
	默认安装情况下，oracle归档路径可能只有一个，即$ORACLE_HOME/flash_recovery_area这个位置：<br/><br/>SQL> show parameter db_recovery_file_dest<br/><br/>NAME&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TYPE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;VALUE<br/>------------------------------------ ----------- ------------------------------<br/>db_recovery_file_dest&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;string&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/opt/oracle/oracle/product/10.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2.0/db_1/flash_recovery_area<br/>db_recovery_file_dest_size&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; big integer 2G<br/><br/>而其他归档日志参数默认值都为空：<br/>SQL> show parameter log_archive<br/><br/>NAME&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TYPE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;VALUE<br/>------------------------------------ ----------- ------------------------------<br/>log_archive_config&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string<br/>log_archive_dest&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string<br/>log_archive_dest_1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string<br/>log_archive_dest_10&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;string<br/>log_archive_dest_2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string<br/>log_archive_dest_3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string<br/>log_archive_dest_4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string<br/>log_archive_dest_5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string<br/>log_archive_dest_6&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string<br/>log_archive_dest_7&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string<br/>log_archive_dest_8&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string<br/><br/>NAME&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TYPE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;VALUE<br/>------------------------------------ ----------- ------------------------------<br/>log_archive_dest_9&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string<br/>log_archive_dest_state_1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;enable<br/>log_archive_dest_state_10&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;string&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;enable<br/>log_archive_dest_state_2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;enable<br/>log_archive_dest_state_3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;enable<br/>log_archive_dest_state_4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;enable<br/>log_archive_dest_state_5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;enable<br/>log_archive_dest_state_6&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;enable<br/>log_archive_dest_state_7&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;enable<br/>log_archive_dest_state_8&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;enable<br/>log_archive_dest_state_9&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;enable<br/><br/>NAME&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TYPE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;VALUE<br/>------------------------------------ ----------- ------------------------------<br/>log_archive_duplex_dest&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;string<br/>log_archive_format&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;%t_%s_%r.dbf<br/>log_archive_local_first&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;boolean&nbsp;&nbsp;&nbsp;&nbsp; TRUE<br/>log_archive_max_processes&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;integer&nbsp;&nbsp;&nbsp;&nbsp; 2<br/>log_archive_min_succeed_dest&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; integer&nbsp;&nbsp;&nbsp;&nbsp; 1<br/>log_archive_start&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;boolean&nbsp;&nbsp;&nbsp;&nbsp; FALSE<br/>log_archive_trace&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;integer&nbsp;&nbsp;&nbsp;&nbsp; 0<br/><br/><br/>使用参数 log_archive_dest 修改归档日志路径<br/>SQL> alter system set log_archive_dest='/opt/oracle/archive' scope=both;<br/>alter system set log_archive_dest='/opt/oracle/archive' scope=both<br/>*<br/>ERROR at line 1:<br/>ORA-02097: parameter cannot be modified because specified value is invalid<br/>ORA-16018: cannot use LOG_ARCHIVE_DEST with LOG_ARCHIVE_DEST_n or<br/>DB_RECOVERY_FILE_DEST<br/><br/>报db_recovery_file_dest参数不能和LOG_ARCHIVE_DEST还有 LOG_ARCHIVE_DEST_N同时使用，先将<br/>db_recovery_file_dest参数置空：<br/><br/>SQL> alter system set db_recovery_file_dest='' scope=both;<br/><br/>System altered.<br/><br/><br/>SQL> alter system set log_archive_dest='/opt/oracle/archive' scope=both;<br/><br/>System altered.<br/><br/>归档日志参数的格式：<br/>SQL> show parameter log_archive_format;<br/><br/>NAME&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TYPE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;VALUE<br/>------------------------------------ ----------- ------------------------------<br/>log_archive_format&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;%t_%s_%r.dbf<br/><br/>SQL> alter system switch logfile;<br/><br/>System altered.<br/><br/>查看归档日志：<br/>SQL> host ls -al /opt/oracle/archive/<br/>total 1156<br/>drwxr-xr-x&nbsp;&nbsp;2 oracle oinstall&nbsp;&nbsp;&nbsp;&nbsp;4096 2010-03-02 11:28 .<br/>drwxrwxr-x 25 oracle oinstall&nbsp;&nbsp;&nbsp;&nbsp;4096 2010-03-02 11:14 ..<br/>-rw-r-----&nbsp;&nbsp;1 oracle oinstall 1170432 2010-03-02 11:28 1_34_708277817.dbf<br/><br/>oracle建议归档日志使用log_archive_dest_n代替log_archive_dest,故一般将log_archive_dest和db_recovery_file_dest置空，然后设置log_archive_dest_n .
]]>
</description>
</item><item>
<link>http://www.askwan.com/post/215/</link>
<title><![CDATA[恭祝2010年新春快乐]]></title> 
<author>askwan &lt;askwan@yahoo.cn&gt;</author>
<category><![CDATA[My Diary]]></category>
<pubDate>Tue, 09 Feb 2010 01:40:46 +0000</pubDate> 
<guid>http://www.askwan.com/post/215/</guid> 
<description>
<![CDATA[ 
	春节即将到来，提前预祝大家 <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 春节好！
]]>
</description>
</item><item>
<link>http://www.askwan.com/configuration_oracle_10g_archive_log_mode/</link>
<title><![CDATA[configuration oracle 10g archive log mode ]]></title> 
<author>askwan &lt;askwan@yahoo.cn&gt;</author>
<category><![CDATA[DataBase]]></category>
<pubDate>Fri, 15 Jan 2010 07:18:45 +0000</pubDate> 
<guid>http://www.askwan.com/configuration_oracle_10g_archive_log_mode/</guid> 
<description>
<![CDATA[ 
	VERSION:<br/><br/><div class="code"><br/>SQL&gt; select * from v$version;<br/><br/>BANNER<br/>----------------------------------------------------------------<br/>Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit<br/>PL/SQL Release 10.2.0.4.0 - Production<br/>CORE&nbsp;&nbsp;&nbsp;&nbsp;10.2.0.4.0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Production<br/>TNS for Linux: Version 10.2.0.4.0 - Production<br/>NLSRTL Version 10.2.0.4.0 - Production</div><br/><br/>Check current database archive log mode <br/><br/><div class="code">SQL&gt; select dbid,name,log_mode from v$database;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DBID NAME&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LOG_MODE<br/>---------- --------- ------------<br/>2406511032 CAPITALV&nbsp;&nbsp;NOARCHIVELOG<br/><br/><br/>SQL&gt; archive log list;<br/>Database log mode&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;No Archive Mode<br/>Automatic archival&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Disabled<br/>Archive destination&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;USE_DB_RECOVERY_FILE_DEST<br/>Oldest online log sequence&nbsp;&nbsp;&nbsp;&nbsp; 32<br/>Current log sequence&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 34</div><br/><br/>shutdown database clear<br/><br/><div class="code">SQL&gt; shutdown immediate<br/>Database closed.<br/>Database dismounted.<br/>ORACLE instance shut down.</div><br/><br/>startup database to mount status:<br/><div class="code">SQL&gt; startup mount;<br/>ORACLE instance started.<br/><br/>Total System Global Area&nbsp;&nbsp;285212672 bytes<br/>Fixed Size&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2083368 bytes<br/>Variable Size&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 142607832 bytes<br/>Database Buffers&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;134217728 bytes<br/>Redo Buffers&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;6303744 bytes<br/>Database mounted.</div><br/><br/><br/>open database archive log mode :<br/><br/><div class="code">SQL&gt; alter database archivelog;<br/><br/>Database altered.<br/><br/>SQL&gt; alter database open;<br/><br/>Database altered.<br/><br/>SQL&gt; archive log list;<br/>Database log mode&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Archive Mode<br/>Automatic archival&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Enabled<br/>Archive destination&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;USE_DB_RECOVERY_FILE_DEST<br/>Oldest online log sequence&nbsp;&nbsp;&nbsp;&nbsp; 32<br/>Next log sequence to archive&nbsp;&nbsp; 34<br/>Current log sequence&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 34</div><br/><br/>stop archive log mode :<br/><br/><div class="code">SQL&gt; shutdown immediate ;<br/>Database closed.<br/>Database dismounted.<br/>ORACLE instance shut down.<br/> <br/>SQL&gt; startup mount;<br/>ORACLE instance started.<br/><br/>Total System Global Area&nbsp;&nbsp;285212672 bytes<br/>Fixed Size&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2083368 bytes<br/>Variable Size&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 142607832 bytes<br/>Database Buffers&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;134217728 bytes<br/>Redo Buffers&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;6303744 bytes<br/>Database mounted.<br/>SQL&gt; alter database noarchivelog;<br/><br/>Database altered.<br/><br/>SQL&gt; alter database open;<br/><br/>Database altered.<br/><br/>SQL&gt; archive log list;<br/>Database log mode&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;No Archive Mode<br/>Automatic archival&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Disabled<br/>Archive destination&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;USE_DB_RECOVERY_FILE_DEST<br/>Oldest online log sequence&nbsp;&nbsp;&nbsp;&nbsp; 32<br/>Current log sequence&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 34</div><br/><br/><br/>Tags - <a href="http://www.askwan.com/tags/oracle/" rel="tag">oracle</a> , <a href="http://www.askwan.com/tags/archive/" rel="tag">archive</a> , <a href="http://www.askwan.com/tags/archivelog/" rel="tag">archivelog</a> , <a href="http://www.askwan.com/tags/mode/" rel="tag">mode</a>
]]>
</description>
</item><item>
<link>http://www.askwan.com/post/212/</link>
<title><![CDATA[oracle 10g em and isqlplus unrecognizable chinese characters on debian lenny   ]]></title> 
<author>askwan &lt;askwan@yahoo.cn&gt;</author>
<category><![CDATA[DataBase]]></category>
<pubDate>Mon, 28 Dec 2009 04:26:27 +0000</pubDate> 
<guid>http://www.askwan.com/post/212/</guid> 
<description>
<![CDATA[ 
	OS:Debian Lenny 503 amd64<br/>Oracle 10g R2 <br/><br/><div class="code">emctl stop dbconsole<br/>isqlplusctl stop</div><br/><br/><div class="quote"><div class="quote-title">Quotation</div><div class="quote-content">cd $ORACLE_HOME/jdk/jre/lib <br/>mv font.properties font.properties_bak20091229<br/>cp -frp font.properties.zh_CN.Redhat font.properties</div></div><br/><br/>vim font.properties<br/>in the last line :<br/>change <br/><div class="quote"><div class="quote-title">Quotation</div><div class="quote-content">filename.-misc-zysong18030-medium-r-normal--*-%d-*-*-c-*-iso10646-1=/usr/share/fonts/zh_CN/TrueType/zysong.ttf<br/></div></div><br/>to <br/><div class="quote"><div class="quote-title">Quotation</div><div class="quote-content">filename.-misc-zysong18030-medium-r-normal--*-%d-*-*-c-*-iso10646-1=/usr/share/fonts/zh_CN/TrueType/simhei.ttf</div></div><br/><br/>simhei.ttf copied from windows (C:&#92;WINDOWS&#92;Fonts ) <br/><br/><div class="quote"><div class="quote-title">Quotation</div><div class="quote-content">cp -f font.properties $ORACLE_HOME/jre/1.4.2/lib<br/>cp -f font.properties $ORACLE_HOME/javavm/lib/ojvmfonts</div></div><br/><br/><div class="quote"><div class="quote-title">Quotation</div><div class="quote-content">rm -fr $ORACLE_HOME/oc4j/j2ee/oc4j_applications/applications/em/em/cabo/images/cache/zhs/*.gif <br/>rm -fr $ORACLE_HOME/oc4j/j2ee/oc4j_applications/applications/isqlplus/isqlplus/cabo/images/cache/*.gif </div></div><br/><br/><div class="code">emctl start dbconsole<br/>isqlplusctl start</div><br/><br/>-------EOF--------
]]>
</description>
</item><item>
<link>http://www.askwan.com/use_Pgpool-II_and_heartbeat_realize_high_availability_of_postgresql/</link>
<title><![CDATA[use Pgpool-II and HeartBeat realize high availability of postgresql ]]></title> 
<author>askwan &lt;askwan@yahoo.cn&gt;</author>
<category><![CDATA[Architecture &amp; HA]]></category>
<pubDate>Fri, 04 Dec 2009 01:42:15 +0000</pubDate> 
<guid>http://www.askwan.com/use_Pgpool-II_and_heartbeat_realize_high_availability_of_postgresql/</guid> 
<description>
<![CDATA[ 
	Pgpool-II:<br/>pgpool-II is a middleware that works between PostgreSQL servers and a PostgreSQL database client.<br/><a href="http://pgpool.projects.postgresql.org/" target="_blank">http://pgpool.projects.postgresql.org/</a><br/>it can used for Connection Pooling,Replication,Load Balance,Limiting Exceeding Connections and Parallel Query<br/><br/>that&nbsp;&nbsp;Heartbeat is a daemon that provides cluster infrastructure (communication and membership) services to its clients.<br/><a href="http://www.linux-ha.org/" target="_blank">http://www.linux-ha.org/</a><br/><br/>I have archived this :<br/><a href="http://www.askwan.com/attachment.php?fid=197" target="_blank"><img src="http://www.askwan.com/attachment.php?fid=197" class="insertimage" alt="Open in new window" title="Open in new window" border="0"/></a><br/><br/>May be I have to do more testing :)<br/>Tags - <a href="http://www.askwan.com/tags/pgpool-ii/" rel="tag">pgpool-ii</a> , <a href="http://www.askwan.com/tags/heartbeat/" rel="tag">heartbeat</a> , <a href="http://www.askwan.com/tags/realize/" rel="tag">realize</a> , <a href="http://www.askwan.com/tags/high/" rel="tag">high</a> , <a href="http://www.askwan.com/tags/availability/" rel="tag">availability</a> , <a href="http://www.askwan.com/tags/postgresql/" rel="tag">postgresql</a> , <a href="http://www.askwan.com/tags/pgpool2/" rel="tag">pgpool2</a>
]]>
</description>
</item><item>
<link>http://www.askwan.com/Postgresql_Warm_Standby_point_in_time_recovery/</link>
<title><![CDATA[Postgresql Warm Standby Testing]]></title> 
<author>askwan &lt;askwan@yahoo.cn&gt;</author>
<category><![CDATA[DataBase]]></category>
<pubDate>Thu, 03 Dec 2009 03:24:12 +0000</pubDate> 
<guid>http://www.askwan.com/Postgresql_Warm_Standby_point_in_time_recovery/</guid> 
<description>
<![CDATA[ 
	OS: Debian5.0&nbsp;&nbsp;lenny x86_64<br/>Postgresql:8.3.8 <br/>Master :192.168.0.121<br/>Warm&nbsp;&nbsp;Standby:192.168.0.122<br/><br/> <a href="http://www.askwan.com/attachment.php?fid=196" target="_blank"><img src="http://www.askwan.com/attachment.php?fid=196" class="insertimage" alt="Open in new window" title="Open in new window" border="0"/></a><br/>1.&nbsp;&nbsp;install postgresql on both master and warm standby server.<br/><div class="code">#cd /usr/local/src/postgresql-8.3.8/<br/>#./configure –prefix=/usr/local/pgsql<br/>#make <br/>#make install<br/>#mkdir /usr/local/pgsql/data<br/>#chown postgres /usr/local/pgsql/data<br/>#su - postgres<br/>$/usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data</div><br/><br/><br/>2.&nbsp;&nbsp;Config passwordless ssh authentication use user postgres <br/>Please refer to <a href="http://www.petefreitag.com/item/532.cfm" target="_blank">http://www.petefreitag.com/item/532.cfm</a><br/><br/>3.&nbsp;&nbsp;Install pg_standby on both both master and warm standby server.<br/><br/><div class="code"><br/>#cd /usr/local/src/postgresql-8.3.8/contrib/pg_standby<br/>#make <br/>#make install <br/></div><br/><br/>4.&nbsp;&nbsp;Config postgresql&nbsp;&nbsp;<br/><br/>In master&nbsp;&nbsp;server :<br/><div class="quote"><div class="quote-title">Quotation</div><div class="quote-content">archive_mode = on<br/>archive_command = 'rsync -arv %p postgres@192.168.0.122:/wal_archives/%f'<br/>archive_timeout = 1200</div></div><br/><br/>in warm standby server :<br/><div class="code">#mkdir /wal_archives<br/>#chown postgres /wal_archives/</div><br/><br/>start&nbsp;&nbsp;master server :<br/><div class="code">pg_ctl -D /usr/local/pgsql/data/ start -l /usr/local/pgsql/data/logfile</div><br/><br/><br/><br/>5.&nbsp;&nbsp;Dump all production data to master server&nbsp;&nbsp;.<br/><br/>You can check the warm standby server ‘s /wal_archives directory , whether there is archive logs&nbsp;&nbsp;from master server located on .<br/><br/>6.&nbsp;&nbsp;Login to master&nbsp;&nbsp;server as postgres user.<br/>Create a script to do a base backup:<br/><div class="quote"><div class="quote-title">Quotation</div><div class="quote-content">#!/bin/bash<br/>PGDATA=/usr/local/pgsql/data<br/>psql -c "CHECKPOINT;"<br/>psql -c "SELECT pg_start_backup('BASEBACKUP');"<br/>tar -C /usr/local/pgsql/ -zcf - data &#124;ssh 192.168.0.122 "tar -C /usr/local/pgsql/ -zxf -"<br/>psql -c "select pg_stop_backup();"<br/>echo "BASEBACKUP compete!"</div></div><br/>7.&nbsp;&nbsp;Login to warm standby server as postgresql user.<br/>Create a script to do some clean and configuration<br/><br/><div class="quote"><div class="quote-title">Quotation</div><div class="quote-content">#!/bin/bash<br/>PG_HOME=/usr/local/pgsql<br/>PGDATA=/usr/local/pgsql/data<br/>trigger_file=/tmp/pgsql.trigger<br/>pg_standby=$PG_HOME/bin/pg_standby<br/>PG_ARCHIVES=/wal_archives<br/>&nbsp;&nbsp;rm -f $PGDATA/recovery.*<br/>&nbsp;&nbsp;rm -f $PGDATA/logfile<br/>&nbsp;&nbsp;rm -f $PGDATA/postmaster.pid<br/>&nbsp;&nbsp;rm -f $PGDATA/pg_xlog/0*<br/>&nbsp;&nbsp;rm -f $PGDATA/pg_xlog/archive_status/0*<br/>&nbsp;&nbsp;sed -i '/^archive_/s/^/#/g' $PGDATA/postgresql.conf<br/>&nbsp;&nbsp;echo "restore_command = '$pg_standby -l -d -s 2 -t $trigger_file $PG_ARCHIVES %f %p %r 2>>/tmp/standby.log'" > $PGDATA/recovery.co<br/>nf<br/>&nbsp;&nbsp;chown postgres.postgres $PGDATA/recovery.conf<br/>&nbsp;&nbsp;echo "Init completed! now start warm standby server."</div></div><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>Note:PostgreSQL 8.4 provides the recovery_end_command option.so,in recovery.conf add recovery_end_command=’rm –f /tmp/pgsql.trigger ’<br/><br/>pg_standby supports creation of a "warm standby" database server. It is designed to be a production-ready program, as well as a customizable template should you require specific modifications.<br/>More about pg_standby,refer to <a href="http://www.postgresql.org/docs/current/static/pgstandby.html" target="_blank">http://www.postgresql.org/docs/current/static/pgstandby.html</a><br/><a href="http://www.enterprisedb.com/docs/en/8.4/pg/pgstandby.html" target="_blank">http://www.enterprisedb.com/docs/en/8.4/pg/pgstandby.html</a><br/><br/><br/><br/>8.&nbsp;&nbsp;Start&nbsp;&nbsp;warm standby server <br/><div class="code">pg_ctl -D /usr/local/pgsql/data start -l /usr/local/pgsql/data/logfile</div><br/><br/>9.&nbsp;&nbsp;check&nbsp;&nbsp;warm standby postgresql&nbsp;&nbsp;logfile:<br/><div class="quote"><div class="quote-title">Quotation</div><div class="quote-content">LOG:&nbsp;&nbsp;database system was interrupted; last known up at 2009-12-03 11:44:37 CST<br/>LOG:&nbsp;&nbsp;starting archive recovery<br/>LOG:&nbsp;&nbsp;restore_command = '/usr/local/pgsql/bin/pg_standby -l -d -s 2 -t /tmp/pgsql.trigger /wal_archives %f %p %r 2>>/tmp/standby.log<br/>'<br/>LOG:&nbsp;&nbsp;restored log file "000000010000000000000014.00000020.backup" from archive<br/>LOG:&nbsp;&nbsp;restored log file "000000010000000000000014" from archive<br/>LOG:&nbsp;&nbsp;automatic recovery in progress<br/>LOG:&nbsp;&nbsp;redo starts at 0/14000068<br/>FATAL:&nbsp;&nbsp;the database system is starting up<br/>LOG:&nbsp;&nbsp;restored log file "000000010000000000000015" from archive<br/>LOG:&nbsp;&nbsp;restored log file "000000010000000000000016" from archive<br/>LOG:&nbsp;&nbsp;restored log file "000000010000000000000017" from archive<br/>LOG:&nbsp;&nbsp;restored log file "000000010000000000000018" from archive<br/>LOG:&nbsp;&nbsp;restored log file "000000010000000000000019" from archive<br/>LOG:&nbsp;&nbsp;restored log file "00000001000000000000001A" from archive<br/>LOG:&nbsp;&nbsp;restored log file "00000001000000000000001B" from archive<br/>LOG:&nbsp;&nbsp;restored log file "00000001000000000000001C" from archive<br/>LOG:&nbsp;&nbsp;restored log file "00000001000000000000001D" from archive<br/>LOG:&nbsp;&nbsp;restored log file "00000001000000000000001E" from archive<br/>LOG:&nbsp;&nbsp;restored log file "00000001000000000000001F" from archive<br/>LOG:&nbsp;&nbsp;restored log file "000000010000000000000020" from archive<br/>LOG:&nbsp;&nbsp;restored log file "000000010000000000000021" from archive<br/>……</div></div><br/><br/>Check standby logfile:<br/><div class="quote"><div class="quote-title">Quotation</div><div class="quote-content">Trigger file&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;: /tmp/pgsql.trigger<br/>Waiting for WAL file&nbsp;&nbsp;&nbsp;&nbsp;: 00000001.history<br/>WAL file path&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : /wal_archives/00000001.history<br/>Restoring to...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : pg_xlog/RECOVERYHISTORY<br/>Sleep interval&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;: 2 seconds<br/>Max wait interval&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : 0 forever<br/>Command for restore&nbsp;&nbsp;&nbsp;&nbsp; : ln -s -f "/wal_archives/00000001.history" "pg_xlog/RECOVERYHISTORY"<br/>Keep archive history&nbsp;&nbsp;&nbsp;&nbsp;: 000000000000000000000000 and later<br/>running restore&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : OK<br/>Trigger file&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;: /tmp/pgsql.trigger<br/>Waiting for WAL file&nbsp;&nbsp;&nbsp;&nbsp;: 000000010000000000000014.00000020.backup<br/>WAL file path&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : /wal_archives/000000010000000000000014.00000020.backup<br/>Restoring to...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : pg_xlog/RECOVERYHISTORY<br/>Sleep interval&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;: 2 seconds<br/>Max wait interval&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : 0 forever<br/>Command for restore&nbsp;&nbsp;&nbsp;&nbsp; : ln -s -f "/wal_archives/000000010000000000000014.00000020.backup" "pg_xlog/RECOVERYHISTORY"<br/>Keep archive history&nbsp;&nbsp;&nbsp;&nbsp;: 000000000000000000000000 and later<br/>running restore&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : OK<br/>Trigger file&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;: /tmp/pgsql.trigger<br/>Waiting for WAL file&nbsp;&nbsp;&nbsp;&nbsp;: 000000010000000000000014<br/>WAL file path&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : /wal_archives/000000010000000000000014<br/>Restoring to...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : pg_xlog/RECOVERYXLOG<br/>Sleep interval&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;: 2 seconds<br/>Max wait interval&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : 0 forever<br/>Command for restore&nbsp;&nbsp;&nbsp;&nbsp; : ln -s -f "/wal_archives/000000010000000000000014" "pg_xlog/RECOVERYXLOG"<br/>Keep archive history&nbsp;&nbsp;&nbsp;&nbsp;: 000000000000000000000000 and later<br/>running restore&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : OK<br/><br/>Trigger file&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;: /tmp/pgsql.trigger<br/>Waiting for WAL file&nbsp;&nbsp;&nbsp;&nbsp;: 000000010000000000000015<br/>WAL file path&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : /wal_archives/000000010000000000000015<br/>Restoring to...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : pg_xlog/RECOVERYXLOG<br/>Sleep interval&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;: 2 seconds<br/>Max wait interval&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : 0 forever<br/>Command for restore&nbsp;&nbsp;&nbsp;&nbsp; : ln -s -f "/wal_archives/000000010000000000000015" "pg_xlog/RECOVERYXLOG"<br/>Keep archive history&nbsp;&nbsp;&nbsp;&nbsp;: 000000010000000000000014 and later<br/>WAL file not present yet. Checking for trigger file...<br/>WAL file not present yet. Checking for trigger file...<br/>WAL file not present yet. Checking for trigger file...<br/>Trigger file&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;: /tmp/pgsql.trigger<br/>Waiting for WAL file&nbsp;&nbsp;&nbsp;&nbsp;: 000000010000000000000016<br/>WAL file path&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : /wal_archives/000000010000000000000016<br/>Restoring to...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : pg_xlog/RECOVERYXLOG<br/>Sleep interval&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;: 2 seconds<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>Restoring to...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : pg_xlog/RECOVERYXLOG<br/>Sleep interval&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;: 2 seconds<br/>Max wait interval&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : 0 forever<br/>Command for restore&nbsp;&nbsp;&nbsp;&nbsp; : ln -s -f "/wal_archives/000000010000000000000016" "pg_xlog/RECOVERYXLOG"<br/>Keep archive history&nbsp;&nbsp;&nbsp;&nbsp;: 000000010000000000000014 and later<br/>running restore&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : OK<br/>......<br/>WAL file not present yet. Checking for trigger file...<br/>WAL file not present yet. Checking for trigger file...<br/>......<br/><br/></div></div><br/>10.&nbsp;&nbsp;failover <br/>In warm standby server <br/>touch&nbsp;&nbsp;/tmp/ pgsql.trigger<br/>Tags - <a href="http://www.askwan.com/tags/postgresql/" rel="tag">postgresql</a> , <a href="http://www.askwan.com/tags/warm/" rel="tag">warm</a> , <a href="http://www.askwan.com/tags/standby/" rel="tag">standby</a> , <a href="http://www.askwan.com/tags/pitr/" rel="tag">pitr</a>
]]>
</description>
</item><item>
<link>http://www.askwan.com/use_pgFouine_analyse_postgresql_slow_queries/</link>
<title><![CDATA[use pgFouine analyse postgresql slow queries]]></title> 
<author>askwan &lt;askwan@yahoo.cn&gt;</author>
<category><![CDATA[DataBase]]></category>
<pubDate>Wed, 25 Nov 2009 01:55:55 +0000</pubDate> 
<guid>http://www.askwan.com/use_pgFouine_analyse_postgresql_slow_queries/</guid> 
<description>
<![CDATA[ 
	"pgFouine is a PostgreSQL log analyzer used to generate detailed reports from a PostgreSQL log file. pgFouine can help you to determine which queries you should optimize to speed up your PostgreSQL based application."<br/><br/>you can use syslog or stderr <br/><br/>for example :use syslog<br/><br/>1. edit your /etc/syslog.conf<br/><div class="quote"><div class="quote-title">Quotation</div><div class="quote-content">&nbsp;&nbsp;local0.*&nbsp;&nbsp;&nbsp;&nbsp;-/var/log/pgsql</div></div><br/><div class="quote"><div class="quote-title">Quotation</div><div class="quote-content"><br/>*.info;mail.none;authpriv.none;cron.none;local0.none&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/var/log/messages</div></div><br/><br/><br/>2. edit postgresl.conf<br/><div class="quote"><div class="quote-title">Quotation</div><div class="quote-content">log_destination = 'syslog'<br/>silent_mode = on<br/><br/>log_min_duration_statement = 0 <br/>#set to 0&nbsp;&nbsp;log all <br/>#set to -1 ,disable query logging<br/>#set to X(positive integral) ,means to log queries slower than X milliseconds: <br/><br/>log_duration = off<br/>log_statement = 'all'</div></div><br/><br/>3.download pgFouine <br/><a href="http://pgfouine.projects.postgresql.org/index.html" target="_blank">http://pgfouine.projects.postgresql.org/index.html</a><br/><br/>than restart syslogd and postgresql <br/><br/>4. analyse log <br/>./pgfouine.php -file /var/log/postgresql/pgsql > askwan.com.html<br/><br/><a href="http://www.askwan.com/attachment.php?fid=195" target="_blank"><img src="http://www.askwan.com/attachment.php?fid=195" class="insertimage" alt="Open in new window" title="Open in new window" border="0"/></a><br/><br/>use stderr please refer to <a href="http://gkoenig.wordpress.com/2009/02/19/pgfouine-dive-into-postgres-log/" target="_blank">http://gkoenig.wordpress.com/2009/02/19/pgfouine-dive-into-postgres-log/</a><br/>Tags - <a href="http://www.askwan.com/tags/use/" rel="tag">use</a> , <a href="http://www.askwan.com/tags/pgfouine/" rel="tag">pgfouine</a> , <a href="http://www.askwan.com/tags/analyse/" rel="tag">analyse</a> , <a href="http://www.askwan.com/tags/postgresql/" rel="tag">postgresql</a> , <a href="http://www.askwan.com/tags/slow/" rel="tag">slow</a> , <a href="http://www.askwan.com/tags/queries/" rel="tag">queries</a>
]]>
</description>
</item><item>
<link>http://www.askwan.com/use_perl_to_get_timestamp_localtime_strftime/</link>
<title><![CDATA[use perl to get timestamp]]></title> 
<author>askwan &lt;askwan@yahoo.cn&gt;</author>
<category><![CDATA[Scripts]]></category>
<pubDate>Fri, 30 Oct 2009 00:48:08 +0000</pubDate> 
<guid>http://www.askwan.com/use_perl_to_get_timestamp_localtime_strftime/</guid> 
<description>
<![CDATA[ 
	in different&nbsp;&nbsp;context have different value <br/>eg:<br/>saclar context<br/>print scalar (localtime);<br/><br/>then output :<br/>Thu Oct 29 18:50:01 2009<br/><br/>but in list context ;<br/>($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) =localtime(time);<br/>$sec&nbsp;&nbsp;&nbsp;&nbsp;0 ~ 59<br/>$min&nbsp;&nbsp;&nbsp;&nbsp;0 ~ 59<br/>$hour&nbsp;&nbsp;0 ~ 23<br/>$mday&nbsp;&nbsp; 1~31<br/>$mon&nbsp;&nbsp;&nbsp;&nbsp; 0 ~ 11<br/>$year&nbsp;&nbsp; after 1900,it passed years<br/>$wday&nbsp;&nbsp;&nbsp;&nbsp;0 ~ 6<br/>$yday&nbsp;&nbsp;&nbsp;&nbsp;0 ~365<br/>$isdst&nbsp;&nbsp; insignificant for me <br/><br/>can use this to get timestamp<br/><textarea name="code" class="php" rows="15" cols="100">#!/usr/bin/perl -w
my ($sec,$min,$hour,$mday,$mon,$year)=(localtime)[0..5];
my ($sec,$min,$hour,$mday,$mon,$year)=($sec,$min,$hour,$mday,$mon+1,$year+1900);
$timestamp=$year."-".$mon."-".$mday." ".$hour.":".$min.":".$sec;
print $timestamp."&#92;n";</textarea><br/>output:<br/>2009-10-29 19:2:40<br/><br/>have some defect ablove,use this <br/><textarea name="code" class="php" rows="15" cols="100">#!/usr/bin/perl -w
my&nbsp;&nbsp;($sec,$min,$hour,$mday,$mon,$year) = (localtime)[0..5];
($sec,$min,$hour,$mday,$mon,$year) = (
&nbsp;&nbsp;&nbsp;&nbsp;sprintf("%02d", $sec),
&nbsp;&nbsp;&nbsp;&nbsp;sprintf("%02d", $min),
&nbsp;&nbsp;&nbsp;&nbsp;sprintf("%02d", $hour),
&nbsp;&nbsp;&nbsp;&nbsp;sprintf("%02d", $mday),
&nbsp;&nbsp;&nbsp;&nbsp;sprintf("%02d", $mon + 1),
&nbsp;&nbsp;&nbsp;&nbsp;$year + 1900);
$timestamp=$year."-".$mon."-".$mday." ".$hour.":".$min.":".$sec;
print $timestamp."&#92;n";</textarea><br/>output:<br/>2009-10-29 19:02:45<br/><br/>you can also use POSIX functions:<br/>eg<br/><textarea name="code" class="php" rows="15" cols="100">#!/usr/bin/perl -w
use POSIX qw(strftime);
$timestamp1= strftime "%Y-%m-%d %H:%M:%S", gmtime;#GMT Zone
$timestamp2 = strftime "%Y-%m-%d %H:%M:%S", localtime;</textarea><br/><br/>output:<br/>2009-10-29 11:10:44<br/>2009-10-29 19:10:44
]]>
</description>
</item><item>
<link>http://www.askwan.com/use_DBD_Pg_to_connect_PostgreSQL_database/</link>
<title><![CDATA[use DBD::Pg to connect PostgreSQL database]]></title> 
<author>askwan &lt;askwan@yahoo.cn&gt;</author>
<category><![CDATA[Scripts]]></category>
<pubDate>Tue, 20 Oct 2009 02:01:50 +0000</pubDate> 
<guid>http://www.askwan.com/use_DBD_Pg_to_connect_PostgreSQL_database/</guid> 
<description>
<![CDATA[ 
	first, install&nbsp;&nbsp;DBI and DBD::Pg module<br/><br/>come next two example I have writen for testing:<br/><br/>example one:<br/><textarea name="code" class="php" rows="15" cols="100">#!/usr/bin/perl -w
#this is an example writen by askwan to insert into somedata to a table 
use DBI;


my $dbh = DBI->connect("DBI:Pg:dbname="askwan.com";host=localhost", "postgres", "postgres", &#123;AutoCommit => 0,'RaiseError' => 1,PrintError => 1&#125;);
# The AutoCommit attribute should always be explicitly set



for(my $i=0;$i<100;$i++)&#123;
# execute INSERT query
my $rows = $dbh->do("INSERT INTO test(id, name) VALUES ('id_$i', 'name_$i')");
print "$i row(s) inserted &#92;n";
&#125;

my $sth = $dbh->prepare("SELECT id, name FROM test");
$sth->execute();

while(my $ref = $sth->fetchrow_hashref()) &#123;
&nbsp;&nbsp;&nbsp;&nbsp;print "$ref->&#123;'id'&#125; is a $ref->&#123;'name'&#125;&#92;n";
&#125;

$dbh->disconnect();</textarea><br/><br/>example two:<br/><textarea name="code" class="php" rows="15" cols="100">#!/usr/bin/perl -w
#this is an example writen by askwan to query some info from PostgreSql
use DBI;

$dbname="askwan";
$host="localhost";
$port="5432";
$username="postgres";
$password="postgres";

$dbh = DBI->connect("dbi:Pg:dbname=$dbname;host=$host;port=$port;",
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$username,
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$password,
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#123;AutoCommit => 0, RaiseError => 1, PrintError => 0&#125;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; );
$sth=$dbh->prepare('select datname,blks_read,blks_hit from pg_stat_database');

$sth->execute();

print sprintf("%-20s%-20s%-20s","datname","blks_read","blks_hit"),"&#92;n";
print "-" x 60 ."&#92;n";

my @data;
my ($datname,$blk_read,$blks_hit);

while(@data=$sth->fetchrow_array()) &#123;
&nbsp;&nbsp;&nbsp;&nbsp; ($datname,$blk_read,$blks_hit)=@data;
&nbsp;&nbsp;&nbsp;&nbsp; print sprintf("%-20s%-20s%-20s","$datname","$blk_read","$blks_hit"),"&#92;n";

&#125;
$dbh->disconnect();</textarea>output :<br/><pre>datname&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; blks_read&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; blks_hit&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>------------------------------------------------------------<br/>template1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/>template0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/>postgres&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;136&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 5955&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>askwan&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;124&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 7396</pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/>Tags - <a href="http://www.askwan.com/tags/%2526%2523039%253B/" rel="tag">&#039;</a> , <a href="http://www.askwan.com/tags/dbd%253Apg%2526%2523039%253Bpostgresql/" rel="tag">dbd:pg&#039;postgresql</a>
]]>
</description>
</item>
</channel>
</rss>