티스토리 뷰
1. CSSCAN(Database Character Set Scanner)이란?
CSSCAN은 데이터베이스 캐릭터셋 변경의 영향을 확인하거나 잘못된 데이터베이스 NLS_CHARACTERSET 설정을 수정할 수 있는 Scan 툴입니다.
클라이언트에서 CSSCAN을 실행할 수 있지만, 이 클라이언트는 데이터베이스 홈과 동일한 기본버전이어야 합니다.
CSSCAN은 10.1 이상의 모든 서버 또는 클라이언트 설치에 기본적으로 포함되며 $ORACLE_HOME/bin에 있습니다..
2. 사전 준비 사항
- Oracle Database 10g 또는 11g가 설치되어 있어야 합니다.
- DBA 권한을 가진 계정이 필요합니다.
- 명령 프롬프트(CLI) 사용이 필요합니다.
3. 설치 방법
CSSCAN은 실행할 때 내부 Data를 데이터베이스에 저장하며 CSSCAN Table에 대한 스키마는 CSMIG라고 하며 $ORACLE_HOME/rdbms/admin에 있는 csminst.sql 스크립트를 사용하여 생성합니다.
기본 테이블스페이스는 SYSTEM입니다. 빅 데이터베이스에 대해 CSSCAN을 실행할 계획인 경우 별도의 테이블스페이스를 생성하고, 이 테이블스페이스를 사용하도록 $ORACLE_HOME/rdbms/admin/csminst.sql 스크립트를 변경하는 것이 좋습니다.
csminst.sql에서 다음 명령문을 수정하여 선호하는 테이블스페이스를 SYSTEM 대신 CSMIG에 지정하십시오.
sql) alter user csmig default tablespace SYSTEM quota unlimited on SYSTEM;
※ scan한 결과 정보들을 저장하기 위한 공간이니 가급적이면 별도의 Tablespace를 생성 및 지정하는것을 권장합니다.
필요한 공간의 양은 주로 발견된 예외 사항(변환 가능 또는 Lossy 데이터)의 양에 따라 달라지며 미리 예측할 수 없습니다.
CSSCAN을 처음 실행할 때 디스크 공간 문제를 방지하기 위해 크기가 제한된 테이블스페이스를 사용하는 것이 유용합니다.
csminst.sql 파일을 백업 또는 복사하고 Csminst.sql을 수정합니다.
그리고 서버의 ORACLE_HOME의 sqlplus를 사용해 csminst.sql을 실행합니다.
(클라이언트에서 실행하는 경우, 서버와 클라이언트의 버전은 같은 것을 사용합니다.)
set oracle_sid=<your SID> sqlplus /nolog SQL> conn / as sysdba SQL> set TERMOUT ON SQL> set ECHO ON SQL> spool csminst.log SQL> -- note the drop user SQL> drop user csmig cascade; SQL> @?/rdbms/admin/csminst.sql |
csminst.log에서 오류를 확인합니다. CSMIG 사용자는 기본적으로 잠겨 있습니다.
. CSSCAN이 제대로 작동 중인지 확인
CSSCAN이 제대로 설치되었는지 확인하기 위해 테스트 Scan을 실행합니다.
csscan TABLE='(SYS.SQL_VERSION$)' FROMCHAR=US7ASCII TOCHAR=US7ASCII LOG=instchkc CAPTURE=N PROCESS=1 ARRAY=1024000
- TABLE: 검사할 테이블 지정
- FROMCHAR / TOCHAR: 문자셋 지정
- LOG: 로그 파일명 지정
- CAPTURE: 데이터 캡처 여부
- PROCESS: 병렬 처리 수
- ARRAY: 데이터 처리 크기
아래 메시지가 출력되면 설치가 정상적으로 완료된 것입니다.
Scanner terminated successfully.
생성된 로그 파일(instchkc.txt 및 instchkc.out)을 검토하여 문제 여부를 확인할 수 있습니다.
CSSCAN 실행하면, 출력은 아래와 비슷해야 합니다. 버전 정보는 BOLD로 표시됩니다
"Scanner terminated successfully." 메시지가 표시되면 생성된 instchkc.txt 및 instchkc.out을 삭제합니다.
이제 CSSCAN을 사용할 준비가 됩니다.
4. 데이터베이스 문자셋 변환 영향 진단하기
CSSCAN을 활용해 데이터베이스 문자셋 변환 영향을 사전에 진단하는 방법을 아래와 같이 수행할 수 있습니다.
A. 데이터베이스 전체 스캔
전체 데이터베이스를 스캔하여 변환 영향을 진단합니다.
csscan FULL=Y FROMCHAR=WE8ISO8859P1 TOCHAR=AL32UTF8 LOG=fullscan CAPTURE=Y PROCESS=4 ARRAY=1024000
- FULL=Y: 전체 데이터베이스 스캔
- FROMCHAR / TOCHAR: 현재 문자셋과 목표 문자셋 지정
- LOG: 로그 파일 이름 설정
- CAPTURE=Y: 변환 가능 데이터를 캡처
- PROCESS=4: 4개의 프로세스를 사용해 병렬 처리
B. 특정 테이블 스캔
특정 테이블만 선택해 영향을 진단할 수 있습니다.
csscan USER=SCOTT TABLE='(EMP,DEPT)' FROMCHAR=WE8ISO8859P1 TOCHAR=AL32UTF8 LOG=empdeptscan CAPTURE=Y PROCESS=2 ARRAY=1024000
- USER: 사용자 스키마 지정
- TABLE: 스캔할 테이블 목록
C. 보고서 확인
스캔 완료 후 생성된 보고서 파일(.txt, .out, .err)을 검토합니다.
- .txt: 전체 보고서 요약
- .out: 변환 결과 요약
- .err: 변환 시 오류 발생 데이터
5. 문제 해결
- CSS-00107: Character set migration utility schema not installed
- CSMIG 스키마가 설치되지 않은 경우입니다. csminst.sql을 실행 후 다시 시도합니다.
- ORA-00904: invalid identifier
- CSSCAN 버전이 데이터베이스 버전과 일치하지 않을 수 있습니다. ORACLE_HOME 설정을 확인합니다.
6. CSSCAN Parameters
7. 마무리
이제 CSSCAN이 정상적으로 설치되었으며, 데이터베이스 문자셋 변경 전 점검을 수행할 수 있습니다.
문제가 발생하면 오라클 공식 문서나 하기 참고 문서정보를 추가로 확인해보시기 바랍니다.
BUG:9647470 - CSSCAN ALWAYS BE TERMINATED WITH NO TRYING TO CONNECT TO INSTANCE
NOTE:444701.1 - Csscan Output Explained
BUG:9433479 - CSALTER FAILED TO CONVERT EVEN CSSCAN REPORTS NO ERROR
NOTE:245285.1 - CSSCAN fails with error "failed to scan table"
NOTE:762911.1 - Csscan Shows Inconsistent Results for Lossy CLob Data
NOTE:818173.1 - Csscan Fails With CSS-08888 And ORA-00904
NOTE:737155.1 - Not Be Able To Patch 6460895 Error oracle.rdbms.csmig
BUG:9823990 - CSSCAN FAILS TO GENERATE .ERR FILE
NOTE:181410.1 - Oracle Quoting/Order Capture Order Feedback Queue FAQ
NOTE:458122.1 - Installing and Configuring Csscan in 8i and 9i (Database Character Set Scanner)
NOTE:284670.1 - error : /USR/LIB/PA20_64/DLD.SL: UNABLE TO FIND LIBRARY 'LIBCLNTSH.SL.9.0'
BUG:9658653 - CSSCAN GIVES INCORRECT LOSSY FOR XDB.XDB$COMPLEX_TYPE
WHEN USING FROMCHAR=TOCHAR
BUG:4414296 - CSSCAN REPORT ORA-01455 ERRROR
NOTE:1105724.1 - Csscan gives some incorrect lossy for BIG5 charactersets
(ZHT16MSWIN950 , ZHT16HKSCS, ZHT16BIG5)
NOTE:363908.1 - running csscan from a 10.2 installation on Solaris fails with ld.so.1: csscan: fatal
NOTE:225912.1 - Changing Or Choosing the Database Character Set ( NLS_CHARACTERSET )
NOTE:1364607.1 - ORA-1445 or ORA-1446 Referencing ROWID from a View with Subquery
추가) Oracle 19c에서는 csminst.sql 파일이 경로에 존재하지 않을 수 있습니다.
해당 내용은 하기에 첨부된 내용을 확인해주세요.
Oracle 19c 환경에서 CSSCAN 설치 방법
Oracle 19c 환경에서 CSSCAN(Character Set Scanner)을 사용하려면, 관련 스크립트 파일인 csminst.sql을 실행해야 합니다. 하지만, 이 파일이 기본적으로 ORACLE_HOME/rdbms/admin 경로에 존재하지 않는 경우가 있습
sagejay.tistory.com
'코드레시피' 카테고리의 다른 글
Oracle DMU(Database Migration Assistant for Unicode)가 뭘까? (4) | 2025.04.01 |
---|---|
Oracle 19c 환경에서 CSSCAN 설치 방법 (0) | 2025.04.01 |
[ORA-38153] Software edition is incompatible with SQL plan management (0) | 2025.03.13 |
[Oracle 19c Bug] SYS.DBMS_BACKUP_RESTORE Version is Not Current (0) | 2025.03.13 |
Oracle DUMP 함수 활용 방법 (0) | 2025.03.13 |
- Total
- Today
- Yesterday
- dmu
- 코르티솔
- 탈모예방
- 두피마사지
- 다이어트 식단
- GLP-1
- 다이어트
- 구읍뱃터 맛집
- 위고비
- 수면 다원검사
- 잇몸퇴축
- 내돈내산
- 양압기
- 비만치료제
- 여름건강관리
- 심장 건강
- 홈카페
- 세마글루타이드
- 저속노화
- 건강 디저트
- oracle19c
- 난임치료
- deepseek
- oracle 19c
- 마운자로
- csscan
- 뱃살제거
- RMAN
- 건강관리
- 건강한식단
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |