设为首页 加入收藏

TOP

sqlite数据库迁移(恢复数据库)(一)
2014-11-24 01:03:18 来源: 作者: 【 】 浏览:19
Tags:sqlite 数据库 迁移 恢复
sqlite 数据库迁移(恢复数据库)
方法一:使用sqlite3.exe工具
在DOS命令下,进入相应目录,执行(执行前先装要恢复的数据库
复制到sqlite3.exe相同目录下:storeDatabase.db3)
1.获取信息
sqlite storeDatabase.db3
sqlite>PRAGMA integrity_check;
获得提示
"*** in database main ***
Page 2455: btreeInitPage() returns error code 11
On tree page 4086 cell 122: Child page depth differs
On tree page 4086 cell 123: Child page depth differs"
可以尝试通过简单的导出导入方式对损坏的库文件作回复。
2.导出数据 www.2cto.com
sqlite3 my.sqlite3
sqlite>.output tmp.sql
sqlite>.dump
sqlite>.quit
3.再倒入到一个新库中
sqlite3 mynew.sqlite3
sqlite>.read tmp.sql
sqlite>.quit
4.总结:此方法操作很简单,但如果遇到较大的数据库时会花费很长时间.
方法二:
1.获取信息
sqlite storeDatabase.db3
sqlite>PRAGMA integrity_check;
www.2cto.com
获得提示
*** in database main ***
Page 1518: btreeInitPage() returns error code 11
On tree page 1566 cell 2: Child page depth differs
On tree page 1566 cell 3: Child page depth differs
SQL error: database disk image is malformed
可以尝试通过简单的导出导入方式对损坏的库文件作回复。
2.导出数据
sqlite3 my.sqlite3
sqlite>.output tmp.sql
sqlite>.dump
sqlite>.quit
3.创建一个新的数据库,并创建表(所有表与现有数据库相同)
创建数据库可以用SQLite Expert Personal(简称SQLEP)工具创建
(或直接创建一个文件(后缀名为.db3))
创建所有表:从第2步导出的数据查找到所有创建表的语句,然后在SQLEP中执行即可.
4.如果原storeDatabase数据库是格式为"UTF-16",如果要导数据到新的数据库,
必须确保此属性相同
PRAGMA encoding = "UTF-16";
5.附加原来的数据库
ATTACH 'D:/storeDatabase3.db3' AS database1
6.复制原数据库中没有问题的数据表到新数据库中(速度快)
insert into T_ProductSize(C_ProductID,C_Sizeva lue,C_SizeName,C_SizeProperty1,
C_SizeProperty2,C_SizeProperty3,C_SizeProperty4,C_SizeProperty5, www.2cto.com
C_SizeProperty6,C_SizeProperty7,C_SizeProperty8,C_SizeProperty9,C_SizeProperty10)
select C_ProductID,C_Sizeva lue,C_SizeName,C_SizeProperty1,C_SizeProperty2,C_SizeProperty3,
C_SizeProperty4,C_SizeProperty5,
C_SizeProperty6,C_SizeProperty7,C_SizeProperty8,C_SizeProperty9,C_SizeProperty10 from database1.T_ProductSize
7.复制错误数据表
1)先通过tmp.sql语句找到可以访问的数据序列值(或日期)
执行sql创建新表语句
2)再通过查询语句插入大部分数据
insert into [pages] (
[id],[C_BRAND],[C_PageName],[C_Title],[C_Wares],
[C_MainSort],[C_IsShowLogo],
[C_IsMarketStat],[C_ShowPic],[C_AccountBookID]
,[C_Keywords],[C_WareKeys],[C_WareTypes],[C_OrderType],
[C_WareBrands],[C_Colors],
[C_Prices],[C_Sex],[C_IsNews] www.2cto.com
,[C_IsSpecials],[C_LenStyles],[C_Styles],[C_CreateTime],
[C_IsHide],[C_HideTime],
[C_IsCstHot],[C_NeckLines],[C_Colours]
,'C_IsChangeColor1', 'C_IsChangeColor2', 'C_OrderAllows',
'C_OrderMadeAllows', 'C_TryZheng', 'C_TryFan')
select [id],[C_BRAND],[C_PageName],[C_Title],[C_Wares],
[C_MainSort],[C_IsShowLogo],[C_IsMarketStat],[C_ShowPic],[C_AccountBookID]
,[C_Keywords],[C_WareKeys],[C_WareTypes],[C_OrderType],[C_WareBrands],
[C_Colors],[C_Prices],[C_Sex],[C_IsNews]
,[C_IsSpecials],[C_LenStyles],[C_Styles],[C_CreateTime],[C_IsHide],
[C_HideTime],[C_IsCstHot],[C_NeckLines],[C_Colours] www.2cto.com
,'C_IsChangeColor1', 'C_IsChangeColor2', 'C_OrderAllows',
'C_OrderMadeAllows', 'C_TryZheng', 'C_TryFan' from
database3.Pages where id<3040
首页 上一页 1 2 下一页 尾页 1/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇从USERS表空间分离表数据和索引 下一篇连接数对db系统的影响

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: