sql server及数据库处理问题四个
一、sql server在还原数据库时出现: 无法执行 BACKUP LOG,因为当前没有数据库备份
1、错误描述
System.Data.SqlClient.SqlError: 无法执行 BACKUP LOG,因为当前没有数据库备份。 (Microsoft.SqlServer.SmoExtended)
2、错误原因
在还原数据库时选择了结尾日志备份,没有找到BACKUP LOG文件,所以会出现报错的情况。
3、解决办法
还原数据库时,不要勾选还原前进行结尾日志备份。

二、SQL Server 2022 导入大数据(10G以上)的方法
偶然机会,获得一个18G的SQL文件,想要导入数据库建立查询平台。
方法如下:
一、查看格式
使用打开超大文本文件的powershell命令行。
get-content .bigdata.sql | out-gridview
确认为此SQL文件为MSSQL的备份文件,内有建表、插入数据等命令行,由于文件太大,虽然是纯文本文档,但达到惊人的18G。使用了Notepad 打开非常困难,由于电脑内存不够“望洋兴叹”。

二、常规导入
安装SQL Server 2022(64bit)服务端,设置保存文件夹在D盘,并安装SQL Server Management Studio(SSMS)管理工具。
登录管理工具,建立数据库bigdata,新建查询,打开此SQL文件无法加载。
在cmd命令提示符下,使用以下命令导入:
sqlcmd -S . -U sa -P password -d BigData -i E:数据原文件bigdata.sql
发现运行几分钟后会出错卡死。使用Navicat导入,情况一样。
三、切割文本
由于文件为文本,于是寻找方法将文件进行按行切割。
找了几个工具非常不称手,后来找到EmEditor成功解决。
使用EmEditor打开bigdata.sql,几分钟后成功加载。加载完成后,打开“工具”——“分割文件”,按指定行数1000000行,一直下一步,直到开始分割。
经过分割,在bigdata_split_1文件夹内成功生成68个bigdata_1.sql——至bigdata_68.sql的文件。
打开bigdata_1.sql文件,将建表SQL代码剪切出来,放到SQL查询里完成建表操作。
四、批处理
建立bigdata.cmd批处理文件在切割好的文件夹内。
按照以下格式输入命令:
sqlcmd -S . -U sa -P password -d BigData -i E:数据原文件bigdata_split_1bigdata_1.sql
sqlcmd -S . -U sa -P password -d BigData -i E:数据原文件bigdata_split_1bigdata_2.sql
……
sqlcmd -S . -U sa -P password -d BigData -i E:数据原文件bigdata_split_1bigdata_68.sql
然后保存。
五、大功告成
在CMD命令提示符下,运行:
bigdata.cmd
运行结束,大功告成。
三、使用sqlcmd命令行执行.sql文件
用微软自带的sqlcmd命令行工具,可以执行导入。以SQL Server 2016版本为例:
第一步:Win R 键入:cmd 命令,开启命令行工具;
第二步:键入:sqlcmd -S . -U sa -P sa -d database -i d:data.sql
参数说明:-S 服务器地址 -U 用户名 -P 密码 -d 数据库名称 -i 脚本文件路径
需要注意的是:所有地方都直接输入就行,不用加引号,以空格为分界点
举例:
sqlcmd -S 192.168.1.111 -U sa -P 123456 -d outlela -i G:safrestall.sql
分析:
服务器为“192.168.9.111”,用户名为“sa”,密码为“123456”,数据库为“outlela”,要执行的文件路径为“G:safrestall.sql”
总结:
此方法可以执行GB级的数据库文件,在从高版本数据库导入数据到低版本时可以这样操作,但是执行速度很慢,实测1gb文件要执行近40分钟(数据库为2008R2),而且看不到进度,只能放在那儿不管。。。。。
::echo off ::
@echo off
SET dbhost=120.203.30.149
SET dbuser=2group
SET dbpasswd=2group
set dbName=hdj_rsxt_1029_ce
echo 开始执行数据库脚本...
for %%i in (all_sql*.sql) do (
echo 正在执行 %%i 请稍后...
sqlcmd -S %dbhost% -U %dbuser% -P %dbpasswd% -d %dbName% -i %%i
)
echo 所有脚本执行完毕。
pause

四、sqlyog导入Excel表数据,出现找不到Microsoft office64驱动
当我们使用mysql导入外部数据时(如Excel表),有时会出现如下的错误问题,即找不到64位access驱动。为了解决这个问题,我们需要下载相应的驱动,通过下图中的点击此链接即可进入下载页面(https://www.microsoft.com/en-us/download/details.aspx?id=13255)。


点击下载,下载64位Access。运行下载好的文件,安装驱动即可。如果出现“装64为office Access驱动的时候,无法安装64位版本的Office,因为在您的PC上找到了以下32位程序”的问题,可以通过以下方式进行解决。
1)首先把AccessDatabaseEngine_X64.exe解压缩,里面会有一个AceRedist.msi安装文件;
2)然后用Orca打开;Orca下载可以通过网上进行,也可以在我的博客的下载里直接获取;
3)接下来右键下图的这一行,将其删除保存即可;
4)最后运行AceRedist.msi,逐步完成安装即可。

编辑后的AceRedist.msi安装包:
链接:https://pan.baidu.com/s/148gNupUr7RfUPC_3bWrn8g
提取码:fx3h
本网站资源来自互联网收集,仅供用于学习和交流,请勿用于商业用途。原创内容除特殊说明外,转载本站文章请注明出处。
如有侵权、不妥之处,联系删除。 Email:master@gzza.com