오래된 데이터베이스가있어서 FireBird 2.5로 변환하려고합니다. 잘 알고있는 문제에 방울 텍스트 필드가 들어 테이블의 데이터를 복원 할 때 문제가 발생합니다 "오류 : 잘못된 문자열 GBAK : GBAK를 잘못된 데이터가 감지"gbak 및 fix_fss_data를 사용하는 FireBird 2.5 데이터베이스 복원은 잘못된 형식의 문자열을 반환합니다.
단계를 수행 :
1) gfix -user SYSDBA -password masterkey f : \ dbb.db -shut -force 0
2) gfix -v -full -user SYSDBA - 암호 masterkey f : \ dbb.db
3) gbak -v -t -g -ig -user SYSDBA - YF : \ backup.log -password "masterkey"f : \ dbb.db F : \ dbb1.db
4) gbak -r -v -o -p 16384 -YF : \ log.txt -user SYSDBA - 암호 masterkey "f : \ dbb1.db" "f : \ new.db"-fix_fss_data win1251 -rep
문자 집합을 win1252, utf8 또는 unicode_fss로 바꾸어도 문제가 해결되지 않습니다.
또한 InterBase Data Pump 버전 3.4를 사용하여 데이터를 마이그레이션하려고 시도했습니다.
단계 : 1) 백업 메타 테이블
2) 새 데이터베이스
3) "잘못된 문자열"발생 인터베이스 데이터 펌프
오류를 사용하여 데이터를 마이그레이션에 대한 메타 테이블을 복원합니다.
모든 테이블이있는 오류 유형의 필드가 발생 "BLOB의 SUB_TYPE 1 세그먼트 크기를 80"
내가 처음에 데이터베이스가 문자 세트 WIN1252을 한 것으로 생각한다. 그 후 누군가가 charset을 UTF8로 변경하고 charset의 모든 필드 정의를 변경하고 WIN1252에서 UTF8로 대조합니다. 그렇지 않으면 나는 왜이 잘못된 형식의 문자열 오류가 발생하는지 이해하지 못합니다. 또한,이 문제는 파이어 버드 2.0에서 파이어 버드 2.5 로의 마이그레이션에 공통적이라고 이해했습니다.
아무도이 문제를 해결하는 방법에 대한 아이디어가 있습니까?
무료 유틸리티 FDBCONVERT http://gsbelarus.com/gs/fdbconvert/index.html을 사용하지 않는 이유는 무엇입니까? –
with FDBConvert - Microsoft Visual C++ 런타임 라이브러리 --------------------------- 런타임 오류! 프로그램 : F : \ a \ FDBConvertPortable \ FDBConvert.EXE R6025 - 순수 가상 함수 호출 오전 10시 44분 57초 : 조작 된 문자열 검색 잘못된 데이터 : 데이터베이스 동안 메시지 복구가 발생했습니다. -FIX_FSS_DATA 옵션 – RBA