怎么样快速预览一个 SQL Server 的 bak 文件

今天拿到一个 sql server 的 bak 文件,然而文件比较大,有 7G 多,而我手边又没有现成的 SQL Server 可以导入,而且,我眼下的需求也只是快速的预览一下文件的内容,确定一下真实性和正确性而已,就算有 Server,导入估计也要花上好几个小时吧。

在这种背景下,开始寻找一种简单的方式,可以让我快速的预览一个 sql Server 的 bak 文件,由于是在 Windows 平台,所以以下的故事都没用 linux 上的那一套。

首先想到的自然是 python,其实我也是通过 python 才知道这个文件是 sql server 的文件的,不然根据文件名还真没法判断。

但是只可惜 python 的作用也就仅仅到这一步,在交互的终端下,f = open(‘path/to/file’) 然后调用几次 f.readline() 除了看到一些 sql server 的版权信息之外,其余的都是乱码,python 的库么,没去尝试和考虑。

于是上网一阵搜,看到这里,http://stackoverflow.com/quest…,虽然有一些讨论,但是其实没多大帮助,继续自己鼓捣。

那么试试 winhex?由于 winhex 只解码 ascii,所以对于 bak 文件中的中文,依然是一片乱码,但是,我们细心点观察,可以发现其中有类似这样的片段:

QQ截图20131014203408

 

看到那个「ID3770」啥啥啥然后「X」结尾的,看到后面对应的「19」啥啥啥然后「704」,嗯,可以反应过来,这个文件是明文的,嘿嘿,那就好说了,其实,想想也可以理解,这么大的文件,要是加密的话,计算量还不小的。

那么就把这段字节拷出来,用 winhex 新建一个文件,扔进去,保存,百来个字节,剩下的问题就是他的编码方式了,考虑到 notepad++ 的编码自动判断还不错,拿 notepad++ 开来看,咦,悲催了,还是乱码。

那改一下后缀,改成 html,丢给 google chrome 试试?chrome 还真不赖,自动识别虽然没有把编码识别出来,不过手工尝试过几个编码之后很快就找到是 unicode UTF16-LE 了,嗯,到此 human readable 的字符就出来了,大概看了看,没啥问题,于是我们本节的旅程就愉快的结束了。

2 thoughts on “怎么样快速预览一个 SQL Server 的 bak 文件

Leave a Reply

Your email address will not be published. Required fields are marked *