Oracle DB 인스턴스의 RDS_X$ 뷰 관리
SYS
를 통해서만 액세스할 수 있는 SYS.X$
고정 테이블에 액세스해야 할 수도 있습니다. 대상이 되는 X$
표에 SYS.RDS_X$
뷰를 만들려면 rdsadmin.rdsadmin_util
패키지의 프로시저를 사용합니다. 마스터 사용자에게 RDS_X$
뷰에 대한 SELECT … WITH GRANT OPTION
권한이 자동으로 부여됩니다.
rdsadmin.rdsadmin_util
프로시저는 다음 데이터베이스 엔진 버전에서 사용할 수 있습니다.
-
Oracle Database 21c 버전
21.0.0.0.ru-2023-10.rur-2023-10.r1
이상 -
Oracle Database 19c 버전
19.0.0.0.ru-2023-10.rur-2023-10.r1
이상
중요
rdsadmin.rdsadmin_util
패키지는 내부적으로 X$
표에 뷰를 생성합니다. X$
표는 Oracle Database 설명서에 설명되어 있지 않은 내부 시스템 객체입니다. 비 프로덕션 데이터베이스에서 특정 뷰를 테스트하고 Oracle Support의 안내에 따라 프로덕션 데이터베이스에서만 뷰를 생성하는 것이 좋습니다.
RDS_X$ 뷰에서 사용할 수 있는 X$ 고정 표 나열
RDS_X$
뷰에 사용할 수 있는 X$ 표를 나열하려면 RDS 프로시저 rdsadmin.rdsadmin_util.list_allowed_sys_x$_views
를 사용합니다. 이 프로시저는 파라미터를 받지 않습니다. 다음 문에는 해당하는 모든 X$
표가 나열되어 있습니다(샘플 출력 포함).
SQL> SET SERVEROUTPUT ON SQL> SELECT * FROM TABLE(rdsadmin.rdsadmin_util.list_allowed_sys_x$_views); 'X$BH' 'X$K2GTE' 'X$KCBWBPD' 'X$KCBWDS' 'X$KGLLK' 'X$KGLOB' 'X$KGLPN' 'X$KSLHOT' 'X$KSMSP' 'X$KSPPCV' 'X$KSPPI' 'X$KSPPSV' 'X$KSQEQ' 'X$KSQRS' 'X$KTUXE' 'X$KQRFP'
대상 X$
표 목록은 시간이 지남에 따라 변경될 수 있습니다. 대상 X$
고정 표 목록을 최신으로 유지하려면 주기적으로 list_allowed_sys_x$_views
를 다시 실행하세요.
SYS.RDS_X$ 뷰 생성
대상이 되는 X$
표에 RDS_X$
뷰를 만들려면 RDS 프로시저 rdsadmin.rdsadmin_util.create_sys_x$_view
를 사용합니다. rdsadmin.rdsadmin_util.list_allowed_sys_x$_views
의 출력에 나열된 표에 대한 뷰만 생성할 수 있습니다. create_sys_x$_view
프로시저는 다음 파라미터를 수용합니다.
파라미터 이름 | 데이터 형식 | 기본값 | 필수 | 설명 |
---|---|---|---|---|
|
varchar2 |
Null |
예 |
유효한 |
|
불린(Boolean) |
FALSE |
아니요 |
|
다음 예제에서는 X$KGLOB
표에 SYS.RDS_X$KGLOB
뷰를 생성합니다. 뷰 이름 형식은 RDS_
입니다.X$tablename
SQL> SET SERVEROUTPUT ON SQL> EXEC rdsadmin.rdsadmin_util.create_sys_x$_view('X$KGLOB'); PL/SQL procedure successfully completed.
다음 데이터 사전 쿼리는 SYS.RDS_X$KGLOB
뷰를 나열하고 상태를 보여줍니다. 마스터 사용자에게 이 뷰에 대한 SELECT ... WITH GRANT OPTION
권한이 자동으로 부여됩니다.
SQL> SET SERVEROUTPUT ON SQL> COL OWNER FORMAT A30 SQL> COL OBJECT_NAME FORMAT A30 SQL> COL STATUS FORMAT A30 SQL> SET LINESIZE 200 SQL> SELECT OWNER, OBJECT_NAME, STATUS FROM DBA_OBJECTS WHERE OWNER = 'SYS' AND OBJECT_NAME = 'RDS_X$KGLOB'; OWNER OBJECT_NAME STATUS ------------------------------ ------------------------------ ------------------------------ SYS RDS_X$KGLOB VALID
중요
업그레이드 전과 후에 X$
표가 동일하게 유지된다고 보장할 수는 없습니다. RDS for Oracle은 엔진 업그레이드 중에 X$
표에서 RDS_X$
뷰를 삭제하고 다시 생성합니다. 그런 다음 마스터 사용자에게 SELECT
... WITH GRANT OPTION
권한을 부여합니다. 업그레이드 후에는 해당 RDS_X$
뷰에서 필요에 따라 데이터베이스 사용자에게 권한을 부여합니다.
SYS.RDS_X$ 뷰 목록
기존 RDS_X$
뷰를 나열하려면 RDS 프로시저 rdsadmin.rdsadmin_util.list_created_sys_x$_views
를 사용합니다. 프로시저에는 create_sys_x$_view
프로시저로 만든 뷰만 나열됩니다. 다음 예제에서는 해당하는 RDS_X$
뷰(샘플 출력 포함)가 있는 X$
표를 나열합니다.
SQL> SET SERVEROUTPUT ON SQL> COL XD_TBL_NAME FORMAT A30 SQL> COL STATUS FORMAT A30 SQL> SET LINESIZE 200 SQL> SELECT * FROM TABLE(rdsadmin.rdsadmin_util.list_created_sys_x$_views); XD_TBL_NAME STATUS ------------------------------ ------------------------------ X$BH VALID X$K2GTE VALID X$KCBWBPD VALID 3 rows selected.
RDS_X$ 뷰 삭제
SYS.RDS_X$
뷰를 삭제하려면 RDS 프로시저 rdsadmin.rdsadmin_util.drop_sys_x$_view
를 사용합니다. rdsadmin.rdsadmin_util.list_allowed_sys_x$_views
의 출력에 나열된 뷰만 삭제할 수 있습니다. drop_sys_x$_view
프로시저는 다음 파라미터를 받습니다.
파라미터 이름 | 데이터 형식 | 기본값 | 필수 | 설명 |
---|---|---|---|---|
|
varchar2 |
Null |
예 |
유효한 |
다음 예제에서는 X$KGLOB
표에 만든 RDS_X$KGLOB
뷰를 삭제합니다.
SQL> SET SERVEROUTPUT ON SQL> EXEC rdsadmin.rdsadmin_util.drop_sys_x$_view('X$KGLOB'); PL/SQL procedure successfully completed.
다음 예제에서는 SYS.RDS_X$KGLOB
뷰가 삭제되었음을 보여줍니다(샘플 출력 포함).
SQL> SET SERVEROUTPUT ON SQL> COL OWNER FORMAT A30 SQL> COL OBJECT_NAME FORMAT A30 SQL> COL STATUS FORMAT A30 SQL> SET LINESIZE 200 SQL> SELECT OWNER, OBJECT_NAME, STATUS FROM DBA_OBJECTS WHERE OWNER = 'SYS' AND OBJECT_NAME = 'RDS_X$KGLOB'; no rows selected