기존 orcle에서 새로 SID를 생성한 경우
생성된 user로 로그인은 되는데 ORA-00942가 무한반복 되는 상황만 발생했다.
권한문제인지 확인하기 위해 user에게 권한을 sys로 다 부여했는데도
동일하게 ORA-00942가 발생했다.
#생성한 sid로 설정되있는지 확인
.oraenv
# 시스템 계정으로 접속
[oracle@localhost ~]$ sqlplus / as sysdba
#유저 생성
SQL> CREATE USER 유저 IDENTIFIED BY 패스워드;
# 권한부여
SQL> GRANT CREATE USER TO 유저;
SQL> GRANT RESOURCE, CONNECT, DBA TO 유저;
생성된 계정으로 로그인을 시도해도 동일하게 발생했다.
설치된 oracle 내에 tnsnames.ora파일을 수정해서 user정보가 등록되어있는지 확인 후 없다면 추가 설정이 필요하다.
📑 tnsnames.ora :DB서버의 프로토콜, 포트, 서버IP , 인스턴스 등의 정보를 정의해주는 스크립트
#설치된 서버에 접속해서 oracle 설치된 경로 /network/admin/경로
vi $ORACLE_HOME/network/admin/tnsnames.ora
#확인해보면 생성된 user 정보가 없는 것을 확인할 수 있었다.
이 밑에 추가해주면 된다
scott =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = dbms)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = 서비스명이나 SID명 작성)
)
)
유저 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = dbms)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = 서비스명이나 SID명 작성)
)
)
추가 후 다시 재접속을 시도 하면 되는데 시도하면 새 오류가 발생하는 것을 확인할 수 있다.
ERROR:
ORA-00942: table or view does not exist
Error accessing PRODUCT_USER_PROFILE
Warning: Product user profile information not loaded!
You may need to run PUPBLD.SQL as SYSTEM
#서버 orcle 폴더 접속
cd $ORACLE_HOME/sqlplus/admin
#sys 계정 접속 -> 실행
[oracle@localhost ~]$ sqlplus / as sysdba
SQL> @pupbld.sql
- 오라클에서 파일 실행시에는 @를 붙여 실행시킨다.
실행 후 재접속 후 확인을 시도하면 되는 경우도 있지만 안 되면 5번 에러가 재 발생한다.
오라클 기본 구성 script를 실행을 시켜줘야한다. 총 3가지
📑CATALOG.SQL : 데이터 딕셔너리 뷰와 다이나믹 퍼포먼스 뷰를 생성
📑 CATPROC.SQL : PL/SQL을 사용하는데 필요한 패키지 및 프로시져를 생성
📑PUPBLD.SQL : pupbld.sql 스크립트는 Product User Profile 테이블 및 관련 프로시져를 생성
📑UTLRP.SQL : Invalid Object를 컴파일 해주는 스크립트
catalog.sql과 catproc.sql은 DB생성후 sys소유의 package나 기타 object들을 생성하는 scrip로 처음 생성시나 patchset 설치, upgrade후에 수행이 필요한데 생성 후 실행하지 않은 경우 실행이 필요하다.
위 script를 수행후에는 db를 정상 종료 후,
utlrp.sql을 수행하여 invalid된 procedure나 package를 recompile해줄 수 도 있다고 한다. 후자 작업을 제외하고 3개 script를 실행해도 에러 해결이 가능했다.
#각각 실행하면 되는데 실행되는 시간이 좀 걸리기 때문에 각각 기다려 주면 된다.
@$ORACLE_HOME/sqlplus/rdbms/admin/catalog.sql
@$ORACLE_HOME/sqlplus/rdbms/admin/CATPROC.sql
@$ORACLE_HOME/sqlplus/admin/pupbld.sql