appb_hp.htm
来自「Debian中文参考手册,系统介绍了Debian系统」· HTM 代码 · 共 472 行 · 第 1/2 页
HTM
472 行
Implementing Asynchronous I/O
</font>
</h3>
<p>If you want to use asynchronous I/O on HP, you must use raw partitions for database files. Use the System Administrator Management (SAM) utility to configure the asynchronous disk driver into the HP kernel.
</p>
<p>To add the asynchronous disk driver and configure the kernel using the SAM utility:
</p>
<ol type="1" start="1">
<li>
<p>Enter the following command as the <code>root</code> user:
</p>
<pre># sam
</pre>
</li>
<li>
<p>Choose the Kernel Configuration area.
</p>
</li>
<li>
<p>Choose the Drivers area.
</p>
</li>
<li>
<p>Choose the asynchronous disk driver (<code>asyncdsk</code>).
</p>
</li>
<li>
<p>Select Actions>Add Driver to Kernel.
</p>
</li>
<li>
<p>Select List>Configurable Parameters.
</p>
</li>
<li>
<p>Choose the MAX_ASYNC_PORTS parameter.
</p>
</li>
<li>
<p>Select Action>Modify Configurable Parameter.
</p>
</li>
<li>
<p>Specify a new value for the parameter, then choose OK.
</p>
<p>The MAX_ASYNC_PORTS parameter is a configurable HP kernel parameter that controls the maximum number of processes that can open the <code>/dev/async</code> file simultaneously.
</p>
<p>The system displays an error when a process tries to open the <code>/dev/async</code> file after the maximum number of processes have opened the file. This error can reduce performance on systems with a large number of shadow processes or many parallel query slaves performing asynchronous I/O. This error is not recorded. To avoid this error, estimate the highest likely number of processes that can access the <code>/dev/async</code> file and set the MAX_ASYNC_PORTS parameter to this value.
</p>
</li>
<li>
<p>Choose Actions>Process a New Kernel.
</p>
</li>
<li>
<p>Select one of the following options, then choose OK:
</p>
<ul>
<li type="disc">
<p>Move Kernel Into Place and Shutdown System/Reboot Now
</p>
</li>
<li type="disc">
<p>Do Not Move Kernel Into Place: Do Not Shutdown/Reboot Now
</p>
</li>
</ul>
<p>If you choose the second option, the new kernel, <code>vmunix_test</code>, and the <code>system.SAM</code> configuration file used to create it, are both created in the <code>/stand/build</code> directory.
</p>
</li>
</ol>
<p>To use the new kernel:
</p>
<ol type="1" start="1">
<li>
<p>Enter the following command to move the new kernel into place:
</p>
<pre># /usr/sbin/kmupdate
</pre>
</li>
<li>
<p>Enter the following command to reboot the system:
</p>
<pre># shutdown -r
</pre>
</li>
</ol>
<p>To enable asynchronous I/O operations using the HP asynchronous device driver:
</p>
<ol type="1" start="1">
<li>
<p>Log in as the <code>root</code> user.
</p>
</li>
<li>
<p>Enter the following command to create a new device file:
</p>
<pre># /sbin/mknod /dev/async c 101 0x0
</pre>
</li>
<li>
<p>Enter the following command to verify that the <code>/dev/async</code> device file exists and has the major number 101:
</p>
<pre># ls -l /dev/async
</pre>
<p>The output of this command should look similar to the following:
</p>
<pre>crw------- 1 orcle oracle 101 0x000000 Oct 28 10:32 /dev/async
</pre>
</li>
<li>
<p>If necessary, give the device file the UNIX owner and permissions consistent with those of the Oracle software owner.
</p>
<p>If the Oracle software owner is <code>oracle</code>, enter the following commands:
</p>
<pre># /usr/bin/chown oracle:dba /dev/async
# /usr/bin/chmod 660 /dev/async
</pre>
</li>
</ol>
</div class="sect2">
<div class="sect2">
<!--
infolevel=all
infotype=general
--><a id="sthref679" name="sthref679"></a>
<h3>
<font face="arial, helvetica, sans-serif" color="#330099">
Verifying Asynchronous I/O
</font>
</h3>
<p>To verify that asynchronous I/O is working:
</p>
<ol type="1" start="1">
<li>
<p>Set the DISK_ASYNCH_IO initialization parameter to TRUE.
</p>
</li>
<li>
<p>Start the Oracle database.
</p>
</li>
<li>
<p>Enter the following command to start the GlancePlus/UX utility:
</p>
<pre>$ gpm
</pre>
</li>
<li>
<p>In the main window, choose Reports>Process List.
</p>
</li>
<li>
<p>In the Process List window, select the database writer process and choose Reports>Process Open Files.
</p>
<p>The list of files currently opened by the database writer process appears.
</p>
</li>
<li>
<p>Look for the <code>/dev/async</code> file or the mode 101 0x000000 in the list of open files.
</p>
<p>If either the <code>/dev/async</code> file or the mode 101 0x000000 is in the list, the <code>/dev/async</code> file has been opened by the database writer process. This means that the database writer process is executing I/O through the HP asynchronous device driver and is working properly.
</p>
</li>
</ol>
</div class="sect2">
<div class="sect2">
<!--
infolevel=all
infotype=general
--><a id="sthref680" name="sthref680"></a>
<h3>
<font face="arial, helvetica, sans-serif" color="#330099">
<a id="sthref681" name="sthref681"></a>Asynchronous Flag in SGA
</font>
</h3>
<p>Oracle9<em>i</em> on HP uses a non-blocking polling facility provided by the HP asynchronous driver to check the status of I/O operations. This polling is performed by checking a flag that is updated by the asynchronous driver based on the status of the I/O operations submitted. HP requires that this flag be in shared memory.
</p>
<p>Oracle9<em>i</em> configures an asynchronous flag in the SGA for each Oracle process. Oracle9<em>i</em> on HP has a true asynchronous I/O mechanism where I/O requests can be issued even though some previously issued I/O operations are not complete. This helps to enhance performance and ensures good scalability of parallel I/O processes.
</p>
<p>Before Oracle8<em>i</em> release 8.1.7, the Oracle server was able to execute I/O operations only from shared memory using the HP asynchronous driver. Oracle8<em>i</em> release 8.1.7 executes I/O operations from both shared memory and process-private regions using the new HP asynchronous driver. However, I/O operations through the asynchronous driver are not asynchronous in nature. This is because Oracle8<em>i</em> must perform a blocking wait to check the status of I/O operations submitted to the asynchronous driver. Doing this causes some Oracle processes, for example the database writer process, to essentially execute synchronous I/O.
</p>
</div class="sect2">
</div class="sect1">
</p>
</div>
<!-- Start Footer -->
<div>
<hr />
<table cellspacing="0" cellpadding="0" width="100%">
<tr>
<td valign="bottom" width="33%">
<table cellspacing="0" cellpadding="0">
<tr>
<td align="center">
<a href="appa_aix.htm">
<img src="../Support/gifs/larrow.gif" alt="Previous" border="0" height="30" width="30"></a>
</td>
<td align="center">
<a href="appc_ln.htm">
<img src="../Support/gifs/rarrow.gif" alt="Next" border="0" height="30" width="30"></a>
</td>
</tr>
</table>
</td>
<td align="center" width="34%">
<a href="../Support/html/cpyr.htm">
<img src="../Support/gifs/oracle.gif" alt="Oracle Logo" border="0"><br />
<font size="-2">Copyright © 1996, 2002 Oracle Corporation</font></a>
<br />
<font size="-2">All rights reserved</font>
</td>
<td valign="bottom" align="right" width="33%">
<table cellspacing="0" cellpadding="0" width="144">
</tr>
<td align="center" valign="top" width="25%"><a href="toc.htm"><img src="../Support/gifs/conticon.gif" alt="Go To Table Of Contents" border="0" height="30" width="30"><br /><font size="-2">Contents</font></a></td>
<td align="center" valign="top" width="25%"><a href="index.htm"><img src="../Support/gifs/indxicon.gif" alt="Go To Index" border="0" height="30" width="30"><br /><font size="-2">Index</font></a></td>
</tr>
</table>
</td>
</tr>
</table>
</div>
</body>
</html>
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?