一、SQL

1.解决SQL Server 2000 错误15023:当前数据库中已存在用户或角色

  原因:sql server中“登录”与“用户”的区别,“登录”用于用户身份验证,而数据库“用户”帐户用于数据库访问和权限验证。登录通过安全识别符 (SID) 与用户关联。将数据库恢复到其他服务器时,数据库中包含一组用户和权限,但可能没有相应的登录或者登录所关联的用户可能不是相同的用户。这种情况被称为存在“孤立用户”。此时是不能通过新建登录或者是对同名登录授予对应数据库的“用户”权限来解决登录问题,因为SQL Server会报出“错误15023:当前数据库中已存在用户或角色”.

  解决办法:

Use netzs

go
sp_change_users_login 'update_one', 'yjsy312', 'yjsy312'

        其中netzs为存在孤立用户的数据库,update_one是存储过程的参数,表示只处理一个用户,前一个yjsy312是“用户”,后一个yjsy312是“登录”,以上这个SQL表示将服务器登录“yjsy312”与 netzs 数据库用户“yjsy312”重新连接起来。这样就可以正常使用数据库了.

2.SQL Server 2005 Express附加数据库为"只读"的解决方法

  原因:启动SQL Server 的默认的启动帐号“网络服务”对所附加(Attach)的数据库文件的权限不够。

  解决办法:打开 SQL Server Configuration Manager, 右键SQL Server SQLEXPRESS 的属性,内置帐号处,把“网络服务”改成“本地系统”,重新启动SQL Server 2005 Express 后,再附加数据库一切正常。

2. 备份集中的数据库备份与现有的数据库不同
      解决办法:SQL2005资源管理器-数据库右键——还原数据库——源设备选择文件,目标数据库选择已创建的数据库,然后在选项里选择覆盖现有数据库,点击确定即可。

3. 创建 对于 登录“blue"用户失败。 (Microsoft.SqlServer.Smo)  

  其他信息:  
  执行 Transact-SQL 语句或批处理时发生了异常。 (Microsoft.SqlServer.ConnectionInfo)  
  此版本的 Microsoft Windows 不支持 MUST_CHANGE 选项。 (Microsoft SQL Server,错误: 15195)  
 出现此问题,那么只要在 常规选项中不要选择敢消强制密码过期选项 就可以了。

二、Oracle

1. ORA-12154 无法解析指定的连接标识符

 解决办法:

 (1)  一开始遇到这个问题时,在网上搜了好多解决办法,但是都不起作用。后来实在没办法只能重装oracle,在重装oracle时,提示了

      正在检查网络配置需求...
  检查完成。此次检查的总体结果为: 未执行 <<<<
  建议案: orcle支持在具有 DHCP 分配的 IP 地址的系统上进行安装。但在安装之前,
  必须将 Microsoft LoopBack Adapter 配置为系统的主网络适配器。
  有关在配置有 DHCP 的系统上安装软件的详细信息, 请参阅 Installation Guide。

  看到这个警告时我忽然想,ORA-12154错误会不会与这个警告有关。后来才知道,ORA-12514确实是网络配置不对,按网上介绍的那样添加Microsoft LoopBack Adapter,然后通过oracle客户端连接客户端,就不会出现ORA-12514错误了。

(2) 如果装了Microsoft LoopBack Adapter之后,还会出现这样的问题,那就得一步一步排查了。

      首先把LISTENER.ORA文件改为:

      SID_LIST_LISTENER =  

       (SID_LIST =   

           (SID_DESC=     

             (GLOBAL_DBNAME= ORCL)     

             (ORACLE_HOME = C:\oracle\product\10.2.0\db_1)     

             (SID_NAME=ORCL)    

           )

          (SID_DESC =     

            (SID_NAME = PLSExtProc)     

            (ORACLE_HOME = C:\oracle\product\10.2.0\db_1)     

            (PROGRAM = extproc)   

          )

       )

       之后可能会出现:

        ORA-01034: ORACLE not available

        ora-27101 shared memory realm does not exist 错误

        这是因为你的Oracle实例没启动。

        打开命令行工具,sqlplus /nolog 

        SQL->connect /as sysdba   如果提示"已连接到空闲例程",就说明你的Oracle实例没启动。

        SQL->startup

        最后提示:

        数据库装载完毕

        数据库已经打开

        这时,再登陆Oracle数据库应该就没问题了。

 (3)如果操作系统是64位,而Oracle客户端是32位,也会出现这个问题。因为64位操作系统下,32位程序默认安装在“C:/Program Files (x86)”目录下,目录名称中包含“)”。运行的32位应用程序进程的全路径名称中如果包含“)”,则连接ORALCE数据库会报错:“ORA-12154: TNS: 无法解析指定的连接标识符”。解决办法:将程序目录移出有x86的文件夹,重新在注册表注册路径。

 

 



posted on 2010-11-29 22:11  bluecountry  阅读(2789)  评论(2编辑  收藏  举报