"由意外断电导致oracle11g启动不起来的问题解决"
-
平台: linux + oracle 11g
-
故障: 意外断电之后,监听启动不了
解决方法
执行lsnrctrl start
命令时报错误代码如下:
TNS-12537
TNS-12560
TNS-00507
Linux Error:29
-
检查/etc/hosts文件,没有发现异常。
-
- 因为未改动任何配置文件,所以基本可以确定是断电造成文件损坏而引起。于是使用
relink all
看看能否解决该问题。
- {% codeblock lang:java %}
- # cd $ORACLE_HOME/bin
- # relink all
- {% endcodeblock %}
- 执行
relink all
命令之后,再执行lsnrctrl start
时,发现不报之前的错误了,出现了新的错误:
- {% codeblock lang:java %}
- symbol lookup error: $ORACLE_HOME/lib/libclntsh.so.11.1
- undefined symbol: nnftboot
-
看来是这个libclntsh.so.11.1出了问题,于是尝试去下载该文件替换掉。
-
从RPM search网站上下载到oracle-instance-client的RPM文件到本地。
-
使用rpm2cpio命令抽取出里面的libclntsh.so.11.1
{% codeblock lang:java %}
rpm2cpio oracle-instance-client-xxx.rpm | cpio -div
{% endcodeblock %}
- 将得到的libclntsh.so.11.1文件替换掉$ORACLE_HOME/lib下的重名文件即可。
ORA-1222:TNS:no such protocol adapter 问题解决
机器上安装的是instantOracleclient-basic-win32-11.2.0.1.0客户端,本来使用PLSQL developer是可以正常连接数据库的;
后来开发需求装上了Form6i,发现连接数据库时弹出来ORA-1222:TNS:no such protocol adapter这个错误;
解决方案:
1.配置PL/SQL Developer -> Preferences ,OracleHome设置为Form6i的路径;
2.我的电脑 -> 用户变量 设置ORACLE_HOME 为Form6i路径
或者可以直接编辑注册表,修改oracle_home的值为[Form安装的HOME文件夹]/[oracle客户端文件夹];
如果需要切换按以上步骤修改oracle_home再重启PLSQL Developer即可以正常连接数据库;
Read More
使用VPD对数据进行隔离
项目需求:系统数据表删除操作是直接物理删除,不利于维护历史记录,需要变更为逻辑删除模式。
解决方案:
对表增加删除标记字段DEL_FLAG varchar2(1) default ‘0’;
用户执行“删除”操作时,并不执行物理删除操作,而是将DEL_FLAG值设置为‘1’;
针对数据展示时,删除标记为’1’的数据使用VPD技术屏蔽访问;
1.需要修改的基表[T]新增删除字段:
alter table T add (DEL_FLAG varchar2(1) default '0');--缺省为0,逻辑删除改为1
2.创建VPD需要的函数:f_limited_query_t
CREATE OR REPLACE FUNCTION f_limited_query_t (s_schema IN VARCHAR2,
s_object IN VARCHAR2)
RETURN …
Read More
oracle 11g 数据库安装后改计算机名出现无法连接的问题解决
在局域网内一台机器上安装完oracle11g之后,本地测试OK 可以访问orcl。用局域网内另一台机器连接的时候不行。
两台机器可以PING通。
修改tnsname.ora 把默认的localhost 都改成了本机IP 试试还是不行。
然后改了下计算机名,各种测试,打开EM还是只看到实例正常,监听程序为状态为不可用,实例的代理连接状态为不可用。
很是蛋疼,手贱不应该改计算机名啊。。。
想想多有可能要改的都改好了。。。怎么还是连不上?
是不是刚改好的还没有生效?
lsnrctl stop
lsnrctl start
各种重启服务之后,终于见到了全绿~~~
Read More