First, you need to run the orapwd utility to create the password file. I can create the password file with the following:
orapwd file=orapworcl password=sys_pass entries=20
It is important that the password file's name be of the form "orapw"+ORACLE_SID. In my case, the ORACLE_SID is "orcl." The password parameter needs to be given the SYS password. The entries parameter defines the maximum number of users that will need this password file. These users are only those that need to be granted the SYSDBA or SYSOPER privileges, not every user in the database. So the total number of users should be relatively small.
Once the password file is created, you need to instruct Oracle to use this password file. If your Oracle 9i database is using a SPFILE for its parameters, run the following in SQL*Plus:
ALTER SYSTEM SET remote_login_passwordfile=EXCLUSIVE SCOPE=SPFILE;
If your database is using the old PFILE, add the parameter to the PFILE with any text editor. Once this parameter is set, bounce your database and it will be using a password file.
This was first published in July 2007