﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-flyonok-文章分类-oracle</title><link>http://www.cppblog.com/flyonok/category/6250.html</link><description /><language>zh-cn</language><lastBuildDate>Tue, 20 May 2008 15:50:28 GMT</lastBuildDate><pubDate>Tue, 20 May 2008 15:50:28 GMT</pubDate><ttl>60</ttl><item><title>oracle apache php的安装</title><link>http://www.cppblog.com/flyonok/articles/44410.html</link><dc:creator>flyonok</dc:creator><author>flyonok</author><pubDate>Thu, 13 Mar 2008 14:48:00 GMT</pubDate><guid>http://www.cppblog.com/flyonok/articles/44410.html</guid><wfw:comment>http://www.cppblog.com/flyonok/comments/44410.html</wfw:comment><comments>http://www.cppblog.com/flyonok/articles/44410.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/flyonok/comments/commentRss/44410.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/flyonok/services/trackbacks/44410.html</trackback:ping><description><![CDATA[<h2>基本介绍</h2>
<p>2004年7月13日，<acronym title="PHP: Hypertext Preprocessor">PHP</acronym><a  href="http://www.php.net/"> 官方站点</a>正式发布了 <acronym title="PHP: Hypertext Preprocessor">PHP</acronym> 5。Oracle 在 2004 年 8 月宣布将在拳头产品 Application　Server 中提供对 <acronym title="PHP: Hypertext Preprocessor">PHP</acronym> 的支持。先是在Oracle Application Server 10g (9.0.4) 提供 mod_php 模块，继而在Oracle Application Server 10g Release 2 (10.1.2) 中提供了 <acronym title="PHP: Hypertext Preprocessor">PHP</acronym> 4.3的版本,接着Oracle JDeveloper 10g 也将提供对 <acronym title="PHP: Hypertext Preprocessor">PHP</acronym> 扩展能力。相信，不久Oracle将正式支持 <acronym title="PHP: Hypertext Preprocessor">PHP</acronym> 5。而随着 Oracle 技术社区的大力推广，也将有更多的开发人员利用 <acronym title="PHP: Hypertext Preprocessor">PHP</acronym> 进行大型数据库应用程序的开发。</p>
<p>在 <a  href="http://otn.oracle.com/">OTN</a> 上已经有文档描述如何进行 10g / <acronym title="HyperText Transfer Protocol Daemon">HTTPD</acronym> 1.3/ <acronym title="PHP: Hypertext Preprocessor">PHP</acronym> 4 的整合。所以这篇文档将描述如何整合 Oracle 10g、Apache (httpd 2)、<acronym title="PHP: Hypertext Preprocessor">PHP</acronym> 5。便于快速的组建一个开发环境。如果您想对 <acronym title="PHP: Hypertext Preprocessor">PHP</acronym> 的一些新功能(比如<acronym title="PHP 5 Data Object">PDO</acronym>)进行一下体验，那么本文可以作为一个开端。</p>
<p>Oracle、Apache、<acronym title="PHP: Hypertext Preprocessor">PHP</acronym>三者之间的关系不妨借用一下这张示意图(<a  href="http://www.oracle.com/technology/oramag/webcolumns/2003/opinion/ramakrishnan_php.html">原图地址</a>)：</p>
<p align="center"><img  src="http://unix-cd.com/unixcd12/eWebEditor/UploadFile/2007123163119811.gif" alt="Oracle apache php relation" border="0"> </p>
<p>本文假定您的 Oracle 10g (服务器或者客户端)已经安装完毕。如果没有安装，请参考<a  href="http://www.dbanotes.net/Oracle/Install-Oracle10g-RHEL3.htm">这篇文档</a>：</p>
<blockquote>http://www.dbanotes.net/Oracle/Install-Oracle10g-RHEL3.htm </blockquote>
<p>确定自己的 Oracle 处于可用状态。</p>
<p>本文所用的操作系统为 Fedora Core 3 Linux，Oracle 版本为10 R1 (10.1.0.2)。</p>
<h2>下载所需文件：HTTPD 和 <acronym title="PHP: Hypertext Preprocessor">PHP</acronym> 5</h2>
<blockquote><a  href="http://httpd.apache.org/">HTTPD</a> - http://httpd.apache.org (目前的版本是 2.0.52) <br><a  href="http://www.php.net/"><acronym title="PHP: Hypertext Preprocessor">PHP</acronym> 5</a> - http://www.php.net (最新版本是 5.0.2) </blockquote>
<h2>安装HTTPD</h2>
<p>需要说明的是，现在 Apache 社区不推荐把 Apache 2.0 用在产品环境中．</p>
<blockquote>
<pre>[root@FC3 software]# tar -zxvf httpd-2.0.52.tar.gz<br>[root@FC3 software]# cd httpd-2.0.52<br>[root@FC3 httpd-2.0.52]# ./configure --prefix=/usr/local/apache --enable-module=so<br>[root@FC3 httpd-2.0.52]# make clean<br>[root@FC3 httpd-2.0.52]# make<br>[root@FC3 httpd-2.0.52]# make install<br>[root@FC3 httpd-2.0.52]# /usr/local/apache/bin/apachectl start                                  <br>[root@FC3 httpd-2.0.52]# /usr/local/apache/bin/apachectl stop    <br></pre>
</blockquote>
<p>安装说明：第三行指定 Apache 的架构独立的文件安装位置。同时指定将用模块的形式。</p>
<p>如果为了方便的话，可以创建两个脚本控制 Apache 的启动与关闭。</p>
<blockquote>
<pre>[root@FC3 ~]# vi /bin/startapache<br></pre>
</blockquote>添加如下内容：
<blockquote>
<pre>#!/bin/sh<br>ORACLE_HOME=/u01/app/oracle/product/10.1.0/db_1<br>ORACLE_SID=TEST<br>export ORACLE_HOME ORACLE_SID<br>echo Starting Apache <br>/usr/local/apache/bin/apachectl start</pre>
</blockquote>
<p>创建关闭 apache 的脚本：</p>
<blockquote>
<pre>[root@FC3 ~]# vi /bin/stopapache</pre>
</blockquote>添加如下内容：
<blockquote>
<pre>#!/bin/sh<br>ORACLE_HOME=/u01/app/oracle/product/10.1.0/db_1<br>ORACLE_SID=TEST<br>export ORACLE_HOME ORACLE_SID<br>echo Starting Apache <br>/usr/local/apache/bin/apachectl stop</pre>
</blockquote>修改文件权限：
<blockquote>
<pre>[root@FC3 ~] chmod +x /bin/startapache /bin/stopapache<br></pre>
</blockquote>
<h2>安装 <acronym title="PHP: Hypertext Preprocessor">PHP</acronym> 5</h2>
<blockquote>
<pre>[root@FC3 software]# tar -xjf php-5.0.2.tar.bz2                                             <br>[root@FC3 software]# cd php-5.0.2             <br>[root@FC3 php-5.0.2]# export ORACLE_BASE=/u01/app/oracle<br>[root@FC3 php-5.0.2]# export ORACLE_HOME=$ORACLE_BASE/product/10.1.0/db_1 <br>[root@FC3 php-5.0.2]# export ORACLE_SID=TEST<br>[root@FC3 php-5.0.2]# export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin <br>[root@FC3 php-5.0.2]# export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib                       <br>[root@FC3 php-5.0.2]# ./configure --with-apxs2=/usr/local/apache/bin/apxs \ <br>                      --with-oci8=$ORACLE_HOME<br>[root@FC3 php-5.0.2]# make clean<br>[root@FC3 php-5.0.2]# make<br>[root@FC3 php-5.0.2]# make install <br>[root@FC3 php-5.0.2]# cp php.ini-dist /usr/local/lib/php.ini<br></pre>
</blockquote>
<p>安装说明：第三到七行其实有些罗嗦了，其目的是控制 root 用户的环境变量，其实也可以直接在 root
用户的.bash_profile文件中制定环境变量。当然了，也可以用 oracle 用户来进行 configure 与 make 。第八行中的
--with-oci8=$ORACLE_HOME 激活 oci8 支持。</p>
<p>接下来需要修改httpd.conf 文件的内容：</p>
<blockquote>
<pre>[root@FC3 php-5.0.2]# vi /usr/local/apache/conf/httpd.conf</pre>
</blockquote>
<p>添加如下内容：</p>
<blockquote>
<pre>LoadModule php5_module modules/libphp5.so<br>&lt;IfModule mod_php5.c&gt;<br>     AddType application/x-httpd-php .php<br>&lt;/IfModule&gt;<br></pre>
</blockquote>
<p>重新启动 apache:</p>
<blockquote>
<pre>[root@FC3 ]# /bin/stopapache <br>[root@FC3 ]# /bin/startapache</pre>
</blockquote>
<h2>测试 <acronym title="PHP: Hypertext Preprocessor">PHP</acronym> 模块</h2>
<p>测试 <acronym title="PHP: Hypertext Preprocessor">PHP</acronym> 模块是否已经可用。当然是标准办法，写一个包含如下内容的<acronym title="PHP: Hypertext Preprocessor">PHP</acronym>页面 info.php:</p>
<blockquote>
<pre>&lt;?php phpinfo(); ?&gt;<br></pre>
</blockquote>
<p>从浏览器中查看该页面输出内容。</p>
<p>注意，该页面中的内容 Configure Command 那一行中的内容是否包括如下内容：</p>
<blockquote>
<pre>'--with-apxs2=/usr/local/apache/bin/apxs'<br>'--with-oci8=/u01/app/oracle/product/10.1.0/db_1'<br></pre>
</blockquote>
<p><strong>注意</strong>：在测试之后，出于安全的考虑，请把该文件删除</p>
<h2>测试 <acronym title="PHP (Personal Home Pages) Hypertext Preprocessor">PHP</acronym> 的 oci</h2>
<p>写一个简单的页面测试 oci 是否可用 (Just a copy sample from OTN)：</p>
<blockquote>
<pre>&lt;?php<br>$db_conn = ocilogon( "scott", "tiger","TEST" );<br>$cmdstr = "select ename, sal from emp";<br>$parsed = ociparse($db_conn, $cmdstr);<br>ociexecute($parsed);<br>$nrows = ocifetchstatement($parsed, $results);<br><br>
<p>echo "&lt;html&gt;&lt;head&gt;&lt;title&gt;Oracle <acronym title="PHP (Personal Home Pages) Hypertext Preprocessor">PHP</acronym> Test&lt;/title&gt;&lt;/head&gt;&lt;body&gt;";<br><br>echo "&lt;center&gt;&lt;h2&gt;Oracle <acronym title="PHP (Personal Home Pages) Hypertext Preprocessor">PHP</acronym> Test&lt;/h2&gt;&lt;br&gt;";<br><br>echo "&lt;table border=1 cellspacing='0' width='50%'&gt;\n\&lt;tr&gt;\n";<br><br>echo "&lt;td&gt;&lt;b&gt;Name&lt;/b&gt;&lt;/td&gt;\n&lt;td&gt;&lt;b&gt;Salary&lt;/b&gt;&lt;/td&gt;\n&lt;/tr&gt;\n";<br><br>for ($i = 0; $i &lt; $nrows; $i++ ) <br><br>{<br><br>    echo "&lt;tr&gt;\n";<br><br>    echo "&lt;td&gt;" . $results["ENAME"][$i] . "&lt;/td&gt;";<br><br>    echo "&lt;td&gt;$ " . number_format($results["SAL"][$i],   2). "&lt;/td&gt;";<br><br>    echo "&lt;/tr&gt;\n";</p>
<br><br>
<p>}<br><br>echo "&lt;tr&gt;&lt;td colspan='2'&gt; Number of Rows: $nrows&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;";<br><br>echo "&lt;br&gt;&lt;em&gt;If you see data, then it works!&lt;/em&gt;&lt;br&gt;&lt;/center&gt;&lt;/body&gt;&lt;/html&gt;\n";<br><br>?&gt;<br><br></p>
</pre>
</blockquote><br>
<p>说明：上例中，scott/tiger分别为数据库的用户名字和密码，TEST为数据库连接串名字。</p>
<br>
<h2>参考文档</h2>
<p><a  href="http://www.oracle.com/technology/tech/opensource/php/apache/inst_php_apache_linux.html">Installing Oracle, PHP, and Apache on Linux</a> by Robert Clevenger <br></p>
<p><a  href="http://www.php.net/manual/en/install.unix.apache2.php">PHP:Apache 2.0 on Unix systems </a>- http://www.php.net/manual/en/install.unix.apache2.php</p>
<br>
<h2>更多信息</h2>
<br>
<p><a  href="http://www.oracle.com/technology/tech/opensource/index.html">Oracle Open Source Developer Center </a>- http://www.oracle.com/technology/tech/opensource/index.html</p><img src ="http://www.cppblog.com/flyonok/aggbug/44410.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/flyonok/" target="_blank">flyonok</a> 2008-03-13 22:48 <a href="http://www.cppblog.com/flyonok/articles/44410.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>oracle backup &amp; restore</title><link>http://www.cppblog.com/flyonok/articles/43860.html</link><dc:creator>flyonok</dc:creator><author>flyonok</author><pubDate>Thu, 06 Mar 2008 14:49:00 GMT</pubDate><guid>http://www.cppblog.com/flyonok/articles/43860.html</guid><wfw:comment>http://www.cppblog.com/flyonok/comments/43860.html</wfw:comment><comments>http://www.cppblog.com/flyonok/articles/43860.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/flyonok/comments/commentRss/43860.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/flyonok/services/trackbacks/43860.html</trackback:ping><description><![CDATA[<span class="pg" id="xydwtext">
1、切换服务器归档模式，如果已经是归档模式可跳过此步：<br>
<br>
%sqlplus /nolog (启动sqlplus)<br>
<br>
SQL&gt; conn / as sysdba (以DBA身份连接数据库)<br>
<br>
SQL&gt; shutdown immediate; (立即关闭数据库)<br>
<br>
SQL&gt; startup mount (启动实例并加载数据库，但不打开)<br>
<br>
SQL&gt; alter database archivelog; (更改数据库为归档模式)<br>
<br>
SQL&gt; alter database open; (打开数据库)<br>
<br>
SQL&gt; alter system archive log start; (启用自动归档)<br>
<br>
SQL&gt; exit (退出)<br>
<br>
2、连接：<br>
<br>
%rman target=rman/rman@mydb (启动恢复管理器)<br>
<br>
3、基本设置：<br>
<br>
RMAN&gt; configure default device type to disk; (设置默认的备份设备为磁盘)<br>
<br>
RMAN&gt; configure device type disk parallelism 2; (设置备份的并行级别，通道数)<br>
<br>
RMAN&gt; configure channel 1 device type disk fromat '/backup1/backup_%U'; (设置备份的文件格式，只适用于磁盘设备)<br>
<br>
RMAN&gt; configure channel 2 device type disk fromat '/backup2/backup_%U'; (设置备份的文件格式，只适用于磁盘设备)<br>
<br>
RMAN&gt; configure controlfile autobackup on; (打开控制文件与服务器参数文件的自动备份)<br>
<br>
RMAN&gt; configure controlfile autobackup format for device type disk to '/backup1/ctl_%F'; (设置控制文件与服务器参数文件自动备份的文件格式)<br>
<br>
4、查看所有设置：<br>
<br>
RMAN&gt; show all<br>
<br>
5、查看数据库方案报表：<br>
<br>
RMAN&gt; report schema;<br>
<br>
6、备份全库：<br>
<br>
RMAN&gt; backup database plus archivelog delete input; (备份全库及控制文件、服务器参数文件与所有归档的重做日志，并删除旧的归档日志)<br>
<br>
7、备份表空间：<br>
<br>
RMAN&gt; backup tablespace system plus archivelog delete input; (备份指定表空间及归档的重做日志，并删除旧的归档日志)<br>
<br>
8、备份归档日志：<br>
<br>
RMAN&gt; backup archivelog all delete input;<br>
<br>
9、复制数据文件：<br>
<br>
RMAN&gt; copy datafile 1 to '/oracle/dbs/system.copy';<br>
<br>
10、查看备份和文件复本：<br>
<br>
RMAN&gt; list backup;<br>
<br>
11、验证备份：<br>
<br>
RMAN&gt; validate backupset 3;<br>
<br>
12、从自动备份中恢复服务器参数文件：<br>
<br>
RMAN&gt; shutdown immediate; (立即关闭数据库)<br>
<br>
RMAN&gt; startup nomount; (启动实例)<br>
<br>
RMAN&gt; restore spfile to pfile '/backup1/mydb.ora' from autobackup; (从自动备份中恢复服务器参数文件)<br>
<br>
13、从自动备份中恢复控制文件：<br>
<br>
RMAN&gt; shutdown immediate; (立即关闭数据库)<br>
<br>
RMAN&gt; startup nomount; (启动实例)<br>
<br>
RMAN&gt; restore controlfile to '/backup1' from autobackup; (从自动备份中恢复控制文件)<br>
<br>
13、恢复和复原全数据库：<br>
<br>
RMAN&gt; shutdown immediate; (立即关闭数据库)<br>
<br>
RMAN&gt; exit (退出)<br>
<br>
%mv /oracle/dbs/tbs_12.f /oracle/dbs/tbs_12.bak (将数据文件重命名)<br>
<br>
%mv /oracle/dbs/tbs_13.f /oracle/dbs/tbs_13.bak (将数据文件重命名)<br>
<br>
%mv /oracle/dbs/tbs_14.f /oracle/dbs/tbs_14.bak (将数据文件重命名)<br>
<br>
%mv /oracle/dbs/tbs_15.f /oracle/dbs/tbs_15.bak (将数据文件重命名)<br>
<br>
%rman target=rman/rman@mydb (启动恢复管理器)<br>
<br>
RMAN&gt; startup pfile=/oracle/admin/mydb/pfile/initmydb.ora (指定初始化参数文件启动数据库)<br>
<br>
RMAN&gt; restore database; (还原数据库)<br>
<br>
RMAN&gt; recover database; (恢复数据库)<br>
<br>
RMAN&gt; alter database open; (打开数据库)<br>
<br>
14、恢复和复原表空间：<br>
<br>
RMAN&gt; sql 'alter tablespace users offline immediate'; (将表空间脱机)<br>
<br>
RMAN&gt; exit (退出恢复管理器)<br>
<br>
%mv /oracle/dbs/users01.dbf /oracle/dbs/users01.bak (将表空间重命名)<br>
<br>
%rman target=rman/rman@mydb (启动恢复管理器)<br>
<br>
RMAN&gt; restore tablespace users; (还原表空间)<br>
<br>
RMAN&gt; recover tablespace users; (恢复表空间)<br>
<br>
RMAN&gt; sql 'alter tablespace users online'; (将表空间联机)<br>
<br>
15、增量备份与恢复：<br>
<br>
第一天的增量基本备份：<br>
<br>
RMAN&gt; backup incremental level=0 database plus archivelog delete input;<br>
<br>
第二天的增量差异备份：<br>
<br>
RMAN&gt; backup incremental level=2 database plus archivelog delete input;<br>
<br>
第三天的增量差异备份：<br>
<br>
RMAN&gt; backup incremental level=2 database plus archivelog delete input;<br>
<br>
第四天的增量差异备份：<br>
<br>
RMAN&gt; backup incremental level=1 database plus archivelog delete input;<br>
<br>
第五天的增量差异备份：<br>
<br>
RMAN&gt; backup incremental level=2 database plus archivelog delete input;<br>
<br>
第六天的增量差异备份：<br>
<br>
RMAN&gt; backup incremental level=2 database plus archivelog delete input;<br>
<br>
第七天的增量差异备份：<br>
<br>
RMAN&gt; backup incremental level=0 database plus archivelog delete input;<br>
<br>
增量恢复：<br>
<br>
RMAN&gt; shutdown immediate;<br>
<br>
RMAN&gt; exit<br>
<br>
%mv /oracle/dbs/tbs_12.f /oracle/dbs/tbs_12.bak<br>
<br>
%mv /oracle/dbs/tbs_13.f /oracle/dbs/tbs_13.bak<br>
<br>
%mv /oracle/dbs/tbs_14.f /oracle/dbs/tbs_14.bak<br>
<br>
%mv /oracle/dbs/tbs_15.f /oracle/dbs/tbs_15.bak<br>
<br>
%rman target=rman/rman@mydb<br>
<br>
RMAN&gt; startup pfile=/oracle/admin/mydb/pfile/initmydb.ora<br>
<br>
RMAN&gt; restore database;<br>
<br>
RMAN&gt; recover database;<br>
<br>
RMAN&gt; alter database open. <br></span><img src ="http://www.cppblog.com/flyonok/aggbug/43860.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/flyonok/" target="_blank">flyonok</a> 2008-03-06 22:49 <a href="http://www.cppblog.com/flyonok/articles/43860.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>