>sessionrequired/lib/security/pam_limits.so
EOF
8、 环境变量:
如果按照上面流程进行安装的话,下面的环境变量完全复制过去就可以用了,该环境变量配置文件包含了时间格式、汉字编码格式、libxml。
#.bash_profile
#Getthealiasesandfunctions
if[-f~/.bashrc];then
.~/.bashrc
fi
#Userspecificenvironmentandstartupprograms
PATH=$PATH:
$HOME/bin
exportPATH
#OracleSettings
TMP=/tmp;exportTMP
TMPDIR=$TMP;exportTMPDIR
ORACLE_BASE=/u01/app/oracle;exportORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1;exportORACLE_HOME
ORACLE_SID=orcl;exportORACLE_SID
ORACLE_TERM=xterm;exportORACLE_TERM
PATH=/usr/sbin:
$PATH;exportPATH
PATH=$ORACLE_HOME/bin:
$PATH;exportPATH
LD_LIBRARY_PATH=$ORACLE_HOME/lib:
/lib:
/usr/lib;exportLD_LIBRARY_PATH
CLASSPATH=$ORACLE_HOME/JRE:
$ORACLE_HOME/jlib:
$ORACLE_HOME/rdbms/jlib;exportCLASSPATH
if[$USER="oracle"];then
if[$SHELL="/bin/ksh"];then
ulimit-p16384
ulimit-n65536
else
ulimit-u16384-n65536
fi
fi#exportC_ALL=C
exportNLS_LANG="AMERICAN_AMERICA.UTF8"
exportNLS_DATE_FORMAT='YYYY-MM-DDHH24:
MI:
SS'
#exportLANG=zh_CN.GB2312
exportLANGUAGE=zh_CN.GB2312:
zh_CN.GB2312:
zh_CN
exportSUPPORTED=zh_CN.GB2312:
zh_CN:
zh:
zh_TW.Big5:
zh_TW:
zh:
en_US.UTF-8:
en_US:
en
9、 如果你的LINUX系统是redhat-5版本的话,请进入/etc/redhat-release打开,将RedHatEnterpriseLinuxServerrelease5(Tikanga)替换成redhat-4。
在此目录下找到此文件
/etc/selinux/config,找到这段:
#ThisfilecontrolsthestateofSELinuxonthesystem.
#SELINUX=cantakeoneofthesethreevalues:
#enforcing-SELinuxsecuritypolicyisenforced.
#permissive-SELinuxprintswarningsinsteadofenforcing.
#disabled-SELinuxisfullydisabled.
SELINUX=enforcing
把SELINUX=enforcing注释掉:
#SELINUX=enforcing,然后新加一行为:
SELINUX=disabled
保存,关闭。
编辑/etc/sysconfig/selinux,找到:
#ThisfilecontrolsthestateofSELinuxonthesystem.
#SELINUX=cantakeoneofthesethreevalues:
#enforcing-SELinuxsecuritypolicyisenforced.
#permissive-SELinuxprintswarningsinsteadofenforcing.
#disabled-SELinuxisfullydisabled.
SELINUX=enforcing
如果SELINUX已经是SELINUX=disabled,那么就不用改了,否则就把SELINUX=enforcing注释掉,新加一行:
SELINUX=disabled
保存,退出。
{
如果你碰到其他类似提示:
cannotrestoresegmentprotafterreloc:
Permissiondenied
哪应该是SELinux的问题,可以考虑把它关闭。
-------------------------------------------------------------------------------------
郁闷的是.我把SELinux关闭后还是不行.于是到google上search.发现这个很有用.
在你保证SElinux被disable后.还执行下
chcon-ttexrel_shlib_t
如:
chcon-ttexrel_shlib_t/路径/路径/名字.so (这个文件视具体执行文件.)
}
在/etc/ld.so.conf中加入
/u01/app/oracle/product/10.2.0/db_1/lib
/usr/local/lib
这两行。
然后执行#/sbin/ldconfig–v。
到此,配置基本结束了,接下来就是安装了。
10、 将安装程序拷进/u02/oradata,进行解压,如果是10201_client_linux_x86_64.cpio这样的cpio压缩文件,用这的解压方法#cpio-idmv<文件名.cpio进行解压。
完成之后重启系统,进入ORACLE账户下(注:
安装ORACLE必须要在ORACLE账户下)
11、 到oradata目录下会发现一个client的文件夹,$cd/u02/oradata/client,然后运行$./runInstaller回车,默认安装。
接下来都是下一步了。
安装完了之后输入$netca进行网络配置。
如果是服务器端安装流程和配置完全一样,结束之后输入$sqlplus,然后输入system/manager@orcl,进去再查询ORACLE默认的表select*fromuser_tables,会发现很多的数据。
如果重启之后,有可能数据库没有启动起来,则输入$isqlplusctlstart.
附录:
1、LINUX安装序列号:
a56eb0c3a4e54ab0
2、用OCI执行一个简单的SQL查询语句完整代码(注意:
查询的字段为一个)
#include
#include
#include
#include
#include
#include
#include
#include
intocisql(charsql[]);
intCheckErr(OCIError*pErr,swordlStatus);
intocisql(charsql[])
{
//数据库服务名
staticchar*dbname=(char*)"gpsdb";
//用户及密码
staticchar*username=(char*)"gpsuser";
staticchar*password=(char*)"xxzxgpsserver";
OCIEnv*envhp;//环境句柄
OCIServer*srvhp;//服务器句柄
OCIError*errhp;//错误句柄
OCIError*errhp1;//错误句柄
OCIError*errhp2;//错误句柄
OCISession*usrhp;//用户会话句柄
OCISvcCtx*svchp;//服务上下文句柄
OCIStmt*stmthp;//语句句柄
//三个定义句柄,用于定义输出结果
OCIDefine*defhp1=(OCIDefine*)0;
//OCIDefine*defhp2;
//OCIDefine*defhp3;
//OCIDefine*defhp4;
//输出变量
p_sli3=(char*)malloc(200);
memset(p_sli3,0,200);
//使用线程和对象模式来创建环境句柄
OCIEnvCreate(&envhp,OCI_THREADED|OCI_OBJECT,(dvoid*)0,
0,0,0,(size_t)0,(dvoid**)0);
//分配服务器句柄
OCIHandleAlloc((dvoid*)envhp,(dvoid**)&srvhp,
OCI_HTYPE_SERVER,0,(dvoid**)0);
//分配错误句柄
OCIHandleAlloc((dvoid*)envhp,(dvoid**)&errhp,
OCI_HTYPE_ERROR,0,(dvoid**)0);
OCIHandleAlloc((dvoid*)envhp,(dvoid**)&errhp1,
OCI_HTYPE_ERROR,0,(dvoid**)0);
OCIHandleAlloc((dvoid*)envhp,(dvoid**)&errhp2,
OCI_HTYPE_ERROR,0,(dvoid**)0);
//创建服务器上下文句柄,"orcl"为建立连接的数据库名
if(OCIServerAttach(srvhp,errhp,(char*)dbname,
strlen((char*)dbname),OCI_DEFAULT)==OCI_SUCCESS)
printf("\nconnectsuccessfull\n");
else//终止程序
{
printf("\n数据库名字不对,连接数据库失败!
\n");
return-1;
}
//分配服务器上下文句柄
OCIHandleAlloc((dvoid*)envhp,(dvoid**)&svchp,
OCI_HTYPE_SVCCTX,0,(dvoid**)0);
//设置服务器上下文句柄的服务器句柄属性
OCIAttrSet((dvoid*)svchp,OCI_HTYPE_SVCCTX,
(dvoid*)srvhp,(ub4)0,OCI_ATTR_SERVER,errhp);
//分配用户会话句柄
OCIHandleAlloc((dvoid*)envhp,(dvoid**)&usrhp,
OCI_HTYPE_SESSION,0,(dvoid**)0);
//为用户会话句柄设置用户名和密码属性
OCIAttrSet((dvoid*)usrhp,OCI_HTYPE_SESSION,
(dvoid*)username,(ub4)strlen((char*)username),
OCI_ATTR_USERNAME,errhp);
OCIAttrSet((dvoid*)usrhp,OCI_HTYPE_SESSION,
(dvoid*)password,(ub4)strlen((char*)password),
OCI_ATTR_PASSWORD,errhp);
if(OCISessionBegin(svchp,errhp,usrhp,
OCI_CRED_RDBMS,OCI_DEFAULT)==OCI_SUCCESS)
{
printf("sessionsuccessful!
\n");
}
else
{
printf("建立用户会话失败!
\n");
return-1;
}
//在服务器上下文环境中设置用户会话属性
OCIAttrSet((dvoid*)svchp,OCI_HTYPE_SVCCTX,
(dvoid*)usrhp,(ub4)0,OCI_ATTR_SESSION,errhp);
//分配语句句柄
CheckErr(errhp,OCIHandleAlloc(envhp,(void**)&stmthp,OCI_HTYPE_STMT,0,0));
//准备SQL语句
CheckErr(errhp,OCIStmtPrepare(stmthp,errhp,sql,strlen((char*)sql),
OCI_NTV_SYNTAX,OCI_DEFAULT));
//定义输出
// CheckErr(errhp,OCIDefineByPos(stmth