"由意外断电导致oracle11g启动不起来的问题解决"

2013-11-09(Saturday) 00:00
  • 平台: 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下的重名文件即可。

Category: oracle Tagged: oracle


ORA-1222:TNS:no such protocol adapter 问题解决

2012-12-03(Monday) 00:00

机器上安装的是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即可以正常连接数据库;

Category: oracle Tagged: ora-1222

Read More

使用VPD对数据进行隔离

2012-06-28(Thursday) 00:00

项目需求:系统数据表删除操作是直接物理删除,不利于维护历史记录,需要变更为逻辑删除模式。

解决方案:

对表增加删除标记字段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 …

Category: oracle Tagged: VPD

Read More

oracle 11g 数据库安装后改计算机名出现无法连接的问题解决

2011-07-15(Friday) 00:00

在局域网内一台机器上安装完oracle11g之后,本地测试OK 可以访问orcl。用局域网内另一台机器连接的时候不行。
两台机器可以PING通。
修改tnsname.ora 把默认的localhost 都改成了本机IP 试试还是不行。
然后改了下计算机名,各种测试,打开EM还是只看到实例正常,监听程序为状态为不可用,实例的代理连接状态为不可用。
很是蛋疼,手贱不应该改计算机名啊。。。
想想多有可能要改的都改好了。。。怎么还是连不上?
是不是刚改好的还没有生效?
lsnrctl stop
lsnrctl start
各种重启服务之后,终于见到了全绿~~~

Category: oracle Tagged: oracle

Read More
Page 1 of 1