[ undo segment 할당 원리 ] undo tablespace안에 undo segment가 할당되어 있는 구조. segment에 할당되지 않은 사용자가 신규로 접속해서 DML을 수행할 경우, 해당 사용자의 서버 프로세스는 트랜잭션이 완료된 세그먼트가 있을 경우 그 undo segment를 덮어쓴다. 모든 사용자가 트랜잭션 완료 전이라면 새로운 undo segment 생성하여 기록한다. 이렇게 undo segment가 데이터파일의 저장공간이 허용하는 범위까지 늘어나다가 만약 데이터 파일에 더 공간이 없으면, 하나의 세그먼트에 두 개 세션 이상의 undo data를 기록한다. 그런 다음에도 공간이 없을 경우 해당 트랜잭션은 에러가 발생한다. undo tablespace는 크기가 증가하고 줄어들지는 않..
-- target에 이미 존재하는 스키마를 import하기 -- table_exists_action에서 skipp관련 에러 발생 ORA-31684 에러는 받을 스키마가 이미 존재해서 발생하는 에러라 무시하고 진행해도 무방하다. 가장 하단의 EXCLUDE 파라미터를 이용해 없앨 수 있다. impdp hr5 directory=dpump_dir2 dumpfile=dpump_dir1:exp_hr_schema_20220216_01.dmp remap_schema=hr4:hr5 logfile=imp_hr_schema_20220216_02.log Import: Release 19.0.0.0.0 - Production on Wed Feb 16 11:42:54 2022 Version 19.3.0.0.0 Copyright ..
[문제] impdp할때 expdp directory와 dumpfile 일치해야 하는지??? [답] 서로 다른 디렉토리에서 백업받고 로드가능하다. 확인 사항: directory 파라미터 expdp에 로드한 값이랑 동일 여부 / dumpfile 파라미터 서로 다른 디렉토리에서 받을 경우 dumpfile=[directory_name:]dump_file로 지정 / remap_schema=source_schema:target_schema 형식으로 설정 / logfile 파라미터에서는 %t, %U등 대체 변수 사용 불가 사전에 dpump_dir1, dpump_dir2 hr4유저로 생성 0. exp_full_database 및 imp_full_database 롤에 어떤 시스템 권한 들어있는지 확인 --> create..
요약: - 디렉토리 관련 딕셔너리 뷰 - ALL_DIRECTORIES - 유저의 시스템 권한 조회 뷰 - DBA_SYS_PRIVS - 디렉토리(오브젝트) 권한 조회 뷰 - DBA_TAB_PRIVS - CREATE ANY DIRECTORY 권한 가진 유저로 디렉토리 생성시 본인(유저)은 자동으로 디렉토리에 대한 READ, WRITE 권한 부여받는다. 또한 해당 디렉토리에 대한 READ, WRITE등 오브젝트 권한을 다른 유저에게 줄 수도 있다. - GRANT CREATE ANY DIRECTORY로 권한 부여했으면, REVOKE도 마찬가지로 REVOKE CREATE ANY DIRECTORY로 권한 회수해야 한다. 디렉토리 리스트 조회 SQL> set line 200 SQL> col table_name for..
-- 1번 데이터베이스(orcl hr) --> 2번 데이터베이스(orcl02 scott)으로 expdp -- 현재 인스턴스 확인 및 export할 table, index의 tablespace 확인 SQL> select instance_name, status from v$instance; SQL> select table_name, tablespace_name from all_tables where owner='HR'; SQL> select index_name, tablespace_name from all_indexes where owner='HR'; SQL> CONN / AS SYSDBA SQL> CREATE OR REPLACE DIRECTORY test_dir AS '/u01/app/oracle/orad..
-- NLS_INSTANCE_PARAMETERS는 데이터베이스가 시작된 순간 데이터베이스의 init.ora / spfile에 있는 설정입니다. -- init.ora에서 변경할 수 있으며 spfile을 사용하는 경우 ALTER SYSTEM을 사용합니다. -- NLS_LANG는 init.ora 매개변수가 아니며 NLS_LANGUAGE 및 NLS_TERRITORY는 매개변수입니다. 따라서 NLS_LANGUAGE와 NLS_TERRITORY를 구분하여 설정해야 합니다. SQL> select * from NLS_INSTANCE_PARAMETERS; PARAMETER VALUE ------------------------- -------------------------- NLS_LANGUAGE KOREAN NLS_T..
해당 파라미터는 데이터베이스 생성 시 사용되는 NLS 설정입니다. 데이터베이스 생성 중에 init.ora에 매개변수가 설정되어 있으면 여기에서 볼 수 있습니다. 데이터베이스 생성 시간(!) 동안 init.ora에 명시적으로 설정된 매개변수가 없는 경우 항상 AMERICAN AMERICA로 기본값이 설정됩니다. 데이터베이스 생성 후에는 변경할 수 있는 방법이 없습니다(NLS_(NCHAR)_CHARACTERSET 제외). 이 값을 변경하기 위해 시스템 테이블을 업데이트하지 마십시오! 이러한 설정은 INSTANCE 및 SESSION 매개변수가 설정되지 않은 경우 데이터베이스에 기본값을 제공하는 데 사용됩니다. NLS_INSTANCE_PARAMETERS 및 NLS_SESSION_PARAMETERS가 우선하므로 ..
-- 히스토리에서 프로세스 카운트 확인 SELECT rl.snap_id, s.begin_interval_time, s.end_interval_time, rl.instance_number, rl.resource_name, rl.current_utilization, rl.max_utilization FROM dba_hist_resource_limit rl, dba_hist_snapshot s WHERE s.snap_id = rl.snap_id and s.instance_number = rl.instance_number AND rl.resource_name = 'processes' and S.BEGIN_INTERVAL_TIME>=sysdate-1 and S.END_INTERVAL_TIME