|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
目前的方案是用mysqlbinlog工具,增加一个Flashback参数,输出结果为一个新的binlog文件――姑且叫做flashbacklog,这个flashbacklog顺序执行,可制定某张表和执行到哪个pos,来实现数据库的闪回。
第一步:EXP原US7ASCII数据库中的SCOTT用户。
第二步:EXP原US7ASCII数据库中的ZHAOBOYI用户。
第三步:CREATENEWDATABASE(CHARACTERSETSIMPLIFIEDCHINESE_CHINA.ZHS16GBK),
一切的路径与原
数据库不异。
第四步:将ZHS16GBK中的INIT。ORACOPYINIT。ORA。BAK。
第五步:将US7ASCII中的INIT。ORACOPYZHS16GBK修正响应参数。
第六步:天生ZHS16GBK中的SCOTT用户,受权,EXPZHS16GBK中的SCOTT用户。
第七步:天生ZHS16GBK中的ZHAOBOYI用户,EXPZHS16GBK中的ZHAOBOYI用户。
第八步:用ULTRAEDIT分离翻开(US7ASCII)和(ZHS16GBK)SCOTT用户,将前5行中的U
S7ASCII分歧处改失落。
第九步:响应的做ZHAOBOYI用户。
第十步:在ZHS16GBK中,实行SYS用户的OWALOAD。SQL,对HTP。P受权。
第十一步:做IMP,把原本的数据库倒进到新的数据库。
第十二步:办理年夜字段成绩。
起首在原数据库中实行存储历程fwrite_clob_NIU,将含有年夜字段的表天生到文件中,接着
,在新数据库中编译实行fupdate_clob_text,
将年夜字段倒回到新数据库中。
附录:
1。存储历程:FWRITE――CLOB――NIU
procedurefwrite_clob_NIUas
CURSORc_ltIS
SELECTc.text,c.info_id
FROMinfo_ctextc
whereinfo_id<=120
--change7.16WHEREinfo_id<=100
orderbyinfo_idasc;
/*
1000-1100F
1100-1600OK
1600-1630OK
1629-1640OK
1640-1660F
1660-1668OK
1669F
1670-1750OK
*/
StrVARCHAR2(32767):=Null;
PositionINTEGER:=1;
New_PositionINTEGER:=1;
Patvarchar2(80):=d:writeclob;
--change716Patvarchar2(80):=/export/home0/ora8i/doc/ch;
Save_Fileutl_file.file_type;
ResultBOOLEAN:=FALSE;
Dir_DelimiterVARCHAR2(200):=;
--change7.16Dir_DelimiterVARCHAR2(200):=/;--NOTE:UseforWin
dowsNT
p_FilenameVARCHAR2(200);
v_offsetinteger;
v_amountinteger;
v_buffervarchar2(30240);
BEGIN
v_amount:=30240;
IFSUBSTR(Pat,LENGTH(Pat),1)!=Dir_DelimiterTHEN
Pat:=Pat||Dir_Delimiter;ENDIF;
BEGIN
FORrINc_lt
LOOP
IFr.textisnotnullthen
p_Filename:=r.info_id||.dat;
New_Position:=1;
Position:=1;
Save_File:=utl_file.fopen(Pat,p_Filename,w);
ifDBMS_LOB.INSTR(r.text,CHR(10),Position)=0then
begin
V_OFFSET:=1;
v_buffer:=;
loop
dbms_lob.read(r.text,v_amount,v_offset,v_buffer);
v_offset:=v_offset+v_amount;
utl_file.put(Save_File,v_buffer);
--htp.p(v_buffer);
--htp.p(jjjj);
endloop;
exception
whenno_data_foundthen
null;
end;
--htp.p(111);
--Str:=DBMS_LOB.SUBSTR(r.text,1)||CHR(10);
--HTP.P(STR);
endif;
WHILE(New_Position!=0)
LOOP
New_Position:=DBMS_LOB.INSTR(r.text,CHR(10),Position);
Str:=DBMS_LOB.SUBSTR(r.text,New_Position-Position,Position);
--HTP.P(STR=);
--HTP.P(STR);
Position:=New_Position+1;
--change7.17IFNew_Position!=0THEN
utl_file.put_line(Save_File,REPLACE(Str,CHR(10),Null));
--else
--utl_file.put_line(Save_File,Str);
--change7.17
--htp.p(new_position);
--ENDIF;
ENDLOOP;
UTL_FILE.FCLOSE(Save_File);
htp.p(<center><h2>Thefile||p_Filename||generated!</h2></center>);
endif;
ENDLOOP;
EXCEPTION
WHENNO_DATA_FOUNDTHEN
htp.p(<center><h2>Thefile||p_Filename||Failed!</h2></center>);
end;
ENDfwrite_clob_niu;
附录二:存储历程fupdate_clob_text
procedurefupdate_clob_textas
CURSORc_ltIS
SELECTc.text,c.info_id
FROMinfo_ctextc
--whereinfo_id=112
where((info_id>=1andinfo_id<=30)or
(info_id>=30andinfo_id<=60)or
(info_id>=60andinfo_id<=90)or
(info_id>=90andinfo_id<=120))
/*--CHANGE716WHEREtypenotin(B,C,V,A,E)and((info_id>=10000
andinfo_id<20000)or
(info_id>=1100andinfo_id<1601)or
(info_id>=1600andinfo_id<1630)or
(info_id>=1660andinfo_id<1668)or
info_id>=1670or
(info_id>=0andinfo_id<501))
*/
orderbyinfo_idasc;
/*
1000-1100F
1100-1600OK
1600-1630OK
1629-1640OK
1640-1660F
1660-1668OK
1669F
1670-1750OK
*/
TmpCLOB;
Patvarchar2(80):=d:writeclob;
--CHANGE7.16Patvarchar2(80):=/export/home0/ora8i/doc/ch;
Save_Fileutl_file.file_type;
ResultBOOLEAN:=FALSE;
Dir_DelimiterVARCHAR2(200):=;
--change7.16Dir_DelimiterVARCHAR2(200):=/;--NOTE:UseforW
indowsNT
p_FilenameVARCHAR2(200);
BEGIN
htp.p(我们);
IFSUBSTR(Pat,LENGTH(Pat),1)!=Dir_DelimiterTHEN
Pat:=Pat||Dir_Delimiter;ENDIF;
FORrINc_lt
LOOP
begin
p_Filename:=to_char(r.info_id)||.dat;
UPDATEinfo_ctextSETtext=
WHEREinfo_id=r.info_id;
COMMIT;
SELECTtextINTOTmpFROMinfo_ctext
WHEREinfo_id=r.info_idFORUPDATE;
--DBMS_LOB.TRIM(Tmp,0);
Result:=Load_File(Pat,p_Filename,Tmp);
IFResultTHEN
UPDATEinfo_ctextSETtext=Tmp
WHEREinfo_id=r.info_id;
COMMIT;
ENDIF;
end;
ENDLOOP;
EXCEPTION
WHENNO_DATA_FOUNDTHEN
htp.p(<center><h2>Thefile||p_Filename||Failed!</h2></center>);
ENDfupdate_clob_text;
附录三:新数据库字符集
NLS――LANG
SIMPLIFIEDCHINESE_CHINA.ZHS16GBK
原数据库字符集
AMERICAN_AMERICA.US7ASCII.
______________________________________
===================================================================
新浪收费电子邮箱(http://mail.sina.com.cn)
定阅手机短信头条旧事,每天奖多款时髦手机!(http://dailynews.sina.com.cn/c/272235.html)
定阅手机短信顶级旧事天天得新款手机年夜奖!(http://dailynews.sina.com.cn/c/266499.html)
InnoDB数据表的索引,与InnoDB数据表相比,在InnoDB数据表上,索引对InnoDB数据表的重要性要大得多。在InnoDB数据表上,索引不仅会在搜索数据记录时发挥作用,还是数据行级锁定机制的苊、基础。 |
|