忘记了oracle 9i的所有密码,所有的用户sys   system   sysman   scott等等,以及网上说的很多方法,如3.sqlplus / as sysdba;
4.alter user sys identified by 123; 5.alter user system identified by 123; 等等都没有用!我忘记了所有的用户密码,进SQL*PLUS都不能进
,幸好还可以通过命令行进去,但是进去了也没用,不知道用哪个用户连接??谁能告诉我该怎么办啊。

解决方案 »

  1.   

    可以重新创建密码文件
    在使用Oracle Instance Manager创建一数据库实例的时侯,在ORACLE_HOME\DATABASE目录下还自动创建了一个与之对应的密码文件,文件名为 PWDSID.ORA,其中SID代表相应的Oracle数据库系统标识符。此密码文件是进行初始数据库管理工作的基矗在此之后,管理员也可以根据需要,使用工具ORAPWD.EXE手工创建密码文件,命令格式如下:C:\ >ORAPWDFILE=< FILENAME >PASSWORD =< PASSWORD > ENTRIES=< MAX_USERS >各命令参数的含义为:FILENAME:密码文件名;PASSWORD:设置INTERNAL/SYS帐号的口令;MAX_USERS:密码文件中可以存放的最大用户数,对应于允许以SYSDBA/SYSOPER权限登录数据库的最大用户数。由于在以后的维护中,若用户数超出了此限制,则需要重建密码文件,所以此参数可以根据需要设置得大一些。 
      

  2.   

    按此方法键入。命令行无返回信息,跳回初始的状态。补充下,我在C盘没找到PWDSID.ORA这个文件,是不是有问题呢?  我用网上说的最多的方法alter user sys identified by 123,按回车后,返回2,不知道什么意思!怎么别人都说这个系统认证方法可行,我就不行啊··
      

  3.   

    不好意思,现在命令行执行成功了!但是企业管理器和SQL*PLUS用我刚刚设置的密码仍然不能登录!显示:VTK-1000:无法连接到managerment   server   winder。请验证您已输入oracle   managerment   server的正确主机名和状态。
      

  4.   

    幸好还可以通过命令行进去,但是进去了也没用,不知道用哪个用户连接??谁能告诉我该怎么办啊。显示当前用户命令:
    show user;
      

  5.   

    如果你还没忘记安装数据库服务器系统的密码就祝贺了,
    如下操作可以自己修改密码。
    (数据库本机系统用户登录,可以不输入密码登录数据库,sql下语句以";"结尾,如果提示2行号或其他行号,而你又不要输入内容,可以输入“/” 符号,以执行以上语句内容。)Microsoft Windows [版本 5.2.3790]
    (C) 版权所有 1985-2003 Microsoft Corp.C:\Documents and Settings\Administrator>sqlplus /nologSQL*Plus: Release 9.2.0.8.0 - Production on 星期三 10月 28 09:21:40 2009Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.SQL> conn /as sysdba
    已连接。
    SQL>alter user sys identified by 123;
      

  6.   


    楼主生成的文件放到什么目录下了? 要放到$ORACLE_HOME\database 目录下面
    orapwd file=D:\oracle\ora92\database\PWDorcl.ora password=admin entries=5; windows下oracle默认的位置是db_1/database目录,默认的文件名是pwdSID.ora,对于别的文件名是不认的。linux下oracle默认的位置是$ORACLE_HOME/dbs目录,默认的文件名是orapwSID,对于别的文件名是不认的。 
    其中参数entries的含义是表示口令文件中可以存放的最大用户数,对应于允许以SYSDBA/SYSOPER权限登录数据库的最大用户数,如果用户数超过这个值只能重建口令文件,增大entries。 
      

  7.   

    http://www.inthirties.com/thread-371-1-1.html
      

  8.   

    我现在的情况是这样的呢···
    cmd:sqlplus /nolog
    SQL>
    SQL>conn /as sysdba
    SQL>Connected.
    SQL>Show user
    USER is "SYS"
    SQL>alter user liap identified by liap;User altered.SQL>grant sysdba to liap;*
    ERROR at line 1:
    ORA-01994:GRANT failed:connot add users to public password file搜索不到密码文件pwdSID.ora·····折腾了这么久,我也有点点理解,如果是在本机上,可以使用系统认证的方法修改用户密码,类似我刚刚操作的;但是如果是远程的,可以使用重建密码文件方法。不知道我说的对不对,但是我两种方法都行不通。登录不了ORACLE Enterprise manager console(非独立启动,而是登陆到服务器)
      

  9.   

    引用你的方法
    系统认证还是原来的问题,在命令行里可以CONNECTED,但是到ORACLE Enterprise manager console就登录不聊,提示:VTK-1000:无法连接到managerment server zcb。请验证您已输入oracle  managerment  server的正确主机名和状态。
    密码文件认证提示以下错误:OPW:00001 unable to open password file。
      

  10.   

    http://blog.csdn.net/ppp_10001/archive/2009/10/17/4688434.aspx
      

  11.   

    忘记了oracle 9i的所有密码,所有的用户sys  system  sysman  scott等等,以及网上说的很多方法,如3.sqlplus / as sysdba; 
    4.alter user sys identified by 123; 5.alter user system identified by 123; 等等都没有用!我忘记了所有的用户密码,进SQL*PLUS都不能进 
    ,幸好还可以通过命令行进去,但是进去了也没用,不知道用哪个用户连接??谁能告诉我该怎么办啊。
    用sqlplus / as sysdba;这样的方式登录数据库是不涉及到sys用户的密码文件的,该方式是用操作系统认证的方式登录数据库。只要你登录服务器的用户属于osdba组,就能够通过sqlplus / as sysdba;进入数据库的。然后在进行alter user sys identified by 123;操作,即可。
      

  12.   


    import java.io.BufferedReader;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.InputStreamReader;
    import java.io.PrintWriter;
    import java.net.HttpURLConnection;
    import java.net.URL;
    import java.util.HashMap;
    import java.util.Map;
    import java.util.concurrent.ExecutorService;
    import java.util.concurrent.Executors;
    import java.util.concurrent.Semaphore;public class ConcurrentTest { private static int thread_num = 200;
    private static int client_num = 460;
    private static Map keywordMap = new HashMap(); static {
    try {
    InputStreamReader isr = new InputStreamReader(new FileInputStream(
    new File("clicks.txt")), "GBK");
    BufferedReader buffer = new BufferedReader(isr);
    String line = "";
    while ((line = buffer.readLine()) != null) {
    keywordMap.put(line.substring(0, line.lastIndexOf(":")), "");
    }
    } catch (Exception e) {
    e.printStackTrace();
    } } /*
     * 
     * @param args
     * 
     * @BuildDate:2010-1-19
     * 
     * @Version
     */
    public static void main(String[] args) { int size = keywordMap.size(); // TODO Auto-generated method stub
    ExecutorService exec = Executors.newCachedThreadPool();
    // 50个线程可以同时访问
    final Semaphore semp = new Semaphore(thread_num);
    // 模拟2000个客户端访问
    for (int index = 0; index < client_num; index++) {
    final int NO = index;
    Runnable run = new Runnable() {
    public void run() {
    try {
    // 获取许可
    semp.acquire();
    System.out.println("Thread:" + NO);
    String host = "http://10.99.23.42:7001/KMQueryCenter/query.do?";
    String para = "method=getQueryResult&pageNum=1&pageSize=5&"
    + "queryKeyWord="
     + getRandomSearchKey(NO)
    + "&questionID=-1&questionIdPath=-1&searchType=1"
    + "&proLine=&proSeries=&proType=" + NO;
    System.out.println(host + para);
    URL url = new URL(host);// 此处填写供测试的url
    HttpURLConnection connection = (HttpURLConnection) url
    .openConnection();
    // connection.setRequestMethod("POST");
    // connection.setRequestProperty("Proxy-Connection",
    // "Keep-Alive");
    connection.setDoOutput(true);
    connection.setDoInput(true); PrintWriter out = new PrintWriter(connection
    .getOutputStream());
    out.print(para);
    out.flush();
    out.close(); BufferedReader in = new BufferedReader(
    new InputStreamReader(connection
    .getInputStream())); String line = "";
    String result = "";
    while ((line = in.readLine()) != null) {
    result += line;
    } // System.out.println(result);
    // Thread.sleep((long) (Math.random()) * 1000);
    // 释放
    System.out.println("第:" + NO + " 个");
    semp.release();
    } catch (Exception e) {
    e.printStackTrace();
    }
    }
    };
    exec.execute(run);
    }
    // 退出线程池
    exec.shutdown();
    } private static String getRandomSearchKey(final int no) {
    String ret = "";
    int size = keywordMap.size();
    // int wanna = (int) (Math.random()) * (size - 1);
    ret = (keywordMap.entrySet().toArray())[no].toString();
    ret = ret.substring(0, ret.lastIndexOf("="));
    System.out.println("\t" + ret);
    return ret;
    }
    }