About X About Y

About X About Y

XY,一个奇妙的组合……

About X About Y RSS Feed
 
 
 
 

多数据库实例环境创建STATSPACK

经济危机可真厉害,不但影响了股市、楼市,还把项目上的数据库给搞的不稳定了!(开玩笑,:P)

由于工作原因,本人对ORACLE有一点接触,了解一些皮毛知识。准备在库里创建个快照,拿给专业人士分析分析。看了eygle的文章,在自己电脑上实验成功。可到了生产环境,问题来了。安装过程中报错,对日志内容困惑不已。

 SQL> @spcreate
…………
…………
SQL> –  Build the tables and synonyms
SQL> connect perfstat/&&perfstat_password
ERROR:
ORA-01017: invalid username/password; logon denied
警告: 您不再连接到 ORACLE。
SQL> @@spctab
SQL> Rem
SQL> Rem $Header: spctab.sql 31-may-2005.14:05:43 cdgreen Exp $
SQL> Rem
SQL> Rem spctab.sql
…………
…………
Using perfstat tablespace to store Statspack objects

… Creating STATS$SNAPSHOT_ID Sequence
SP2-0640: 未连接
SP2-0640: 未连接
… Creating STATS$… tables
SP2-0640: 未连接
SP2-0640: 未连接

怎么会报用户名密码错误呢?绝对没有输错呀。查看spcreate.sql脚本,搜索,恍然大悟。原来服务器上安装有多个数据库实例,脚本里“connect perfstat/&&perfstat_password”的写法并没有说明要连接哪一个数据库。这时候,sqlplus会读取注册表里的值,连接注册表中记录的SID,所以导致报错。

 [HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_OraDb10g_home1]
“ORACLE_SID”=”oracle_sample”

解决这个问题,可以用下面几个方法: 

  1. 修改注册表,将ORACLE_SID的值修改为你要连接的数据库;
  2. 修改spcreate脚本,在密码后边加上所连的数据库SID,如:connect perfstat/&&perfstat_password@YOURSID;
  3. 修改环境变量,在CMD命令行中,先执行SET ORACLE_SID=YOURSID的命令,再登录sqlplus。

第三种最简单,且仅对本窗口有效,不用担心有什么影响。

最后,说一下环境

ORACLE 10G 10.2.0.2版本

快照脚本的路径存储于“oracle\product\10.2.0\db_1\RDBMS\ADMIN”

我花了半个多小时用于搜索,没有找到详细的、合适的说明。只查到了设置数据库环境变量的信息。也许是关键词用的不对,呵呵。仅以此文献给数据库白痴们:)

Leave a Reply

AD IS FORBIDDEN.禁止广告!