用sqlserver的sqlcmd、osql、isql的备份与还原

用sqlserver的sqlcmd、osql、isql的备份与还原


--sqlcmd ,sql2005新加工具
1、备份
"C:/Program Files/Microsoft SQL Server/90/Tools/Binn/SQLCMD.EXE" -S ./sqlexpress -U sa -P 000000 -d master -Q"BACKUP DATABASE test to disk='c:/aa/aaa.bak'"

已为数据库 'test',文件 'test' (位于文件 2 上)处理了 176 页。
已为数据库 'test',文件 'test_log' (位于文件 2 上)处理了 1 页。
BACKUP DATABASE 成功处理了 177 页,花费 1.207 秒(1.201 MB/秒)。


2、还原
"C:/Program Files/Microsoft SQL Server/90/Tools/Binn/SQLCMD.EXE" -S ./sqlexpress -U sa -P 000000 -d master -Q"RESTORE DATABASE test from disk='c:/aa/aaa.bak'"

3、帮助
C:/Documents and Settings/xuysh>"C:/Program Files/Microsoft SQL Server/90/Tools/
Binn/SQLCMD.EXE" -?
Microsoft (R) SQL Server 命令行工具
版本 9.00.1399.06 NT INTEL X86
版权所有 (c) Microsoft Corporation。保留所有权利。

用法: Sqlcmd [-U 登录 ID] [-P 密码]
[-S 服务器] [-H 主机名] [-E 可信连接]
[-d 使用数据库名称] [-l 登录超时值] [-t 查询超时值]
[-h 标题] [-s 列分隔符] [-w 屏幕宽度]
[-a 数据包大小] [-e 回显输入] [-I 允许带引号的标识符]
[-c 命令结束] [-L[c] 列出服务器[清除输出]]
[-q "命令行查询"] [-Q "命令行查询" 并退出]
[-m 错误级别] [-V 严重级别] [-W 删除尾随空格]
[-u unicode 输出] [-r[0|1] 发送到 stderr 的消息]
[-i 输入文件] [-o 输出文件] [-z 新密码]
[-f <代码页> | i:<代码页>[,o:<代码页>]] [-Z 新建密码并退出]
[-k[1|2] 删除[替换]控制字符]
[-y 可变长度类型显示宽度]
[-Y 固定长度类型显示宽度]
[-p[1] 打印统计信息[冒号格式]]
[-R 使用客户端区域设置]
[-b 出错时中止批处理]
[-v 变量 = "值"...] [-A 专用管理连接]
[-X[1] 禁用命令、启动脚本、环境变量[并退出]]
[-x 禁用变量情况]
[-? 显示语法摘要]

--Osql sql2000和sql2005都有
--1、备份
"C:/Program Files/Microsoft SQL Server/90/Tools/Binn/Osql.EXE" -S ./sqlexpress -U sa -P 000000 -d master -Q"BACKUP DATABASE test to disk='c:/aa/aaa.bak'"

已为数据库 'test',文件 'test' (位于文件 3 上)处理了 176 页。
已为数据库 'test',文件 'test_log' (位于文件 3 上)处理了 1 页。
BACKUP DATABASE 成功处理了 177 页,花费 0.531 秒(2.730 MB/秒)。


2、还原
"C:/Program Files/Microsoft SQL Server/90/Tools/Binn/Osql.EXE" -S ./sqlexpress -U sa -P 000000 -d master -Q"RESTORE DATABASE test from disk='c:/aa/aaa.bak'"

已为数据库 'test',文件 'test' (位于文件 1 上)处理了 176 页。
已为数据库 'test',文件 'test_log' (位于文件 1 上)处理了 2 页。
RESTORE DATABASE 成功处理了 178 页,花费 0.200 秒(7.255 MB/秒)。


3、帮助
C:/Documents and Settings/xuysh>"C:/Program Files/Microsoft SQL Server/90/Tools/
Binn/Osql.EXE" /?
Microsoft (R) SQL Server 命令行工具
版本 9.00.1399.06 NT INTEL X86
版权所有 (c) Microsoft Corporation。保留所有权利。

注意: osql 并不支持 SQL Server 2005的所有功能。
请使用 sqlcmd。有关详细信息,请参阅 SQL Server 联机丛书。

用法: osql [-U 登录 ID] [-P 密码]
[-S 服务器] [-H 主机名] [-E 可信连接]
[-d 使用数据库名称] [-l 登录超时值] [-t 查询超时值]
[-h 标题] [-s 列分隔符] [-w 列宽]
[-a 数据包大小] [-e 回显输入] [-I 允许带引号的标识符]
[-L 列出服务器] [-c 命令结束] [-D ODBC DSN 名称]
[-q "命令行查询"] [-Q "命令行查询" 并退出]
[-n 删除编号方式] [-m 错误级别]
[-r 发送到 stderr 的消息] [-V 严重级别]
[-i 输入文件] [-o 输出文件]
[-p 打印统计信息] [-b 出错时中止批处理]
[-X[1] 禁用命令,[退出的同时显示警告]]
[-O 使用旧 ISQL 行为禁用下列项]
<EOF> 批处理
自动调整控制台宽度
宽消息
默认错误级别为 -1 和 1
[-? 显示语法摘要]


--Isql ,sql2000工具,2005中没有
--1、备份
"C:/Program Files/Microsoft SQL Server/80/Tools/Binn/Isql.EXE" -S ./sqlexpress -U sa -P 000000 -d master -Q"BACKUP DATABASE test to disk='c:/aa/aaa.bak'"

已为数据库 'test',文件 'test' (位于文件 3 上)处理了 176 页。
已为数据库 'test',文件 'test_log' (位于文件 3 上)处理了 1 页。
BACKUP DATABASE 成功处理了 177 页,花费 0.531 秒(2.730 MB/秒)。


2、还原
"C:/Program Files/Microsoft SQL Server/80/Tools/Binn/Isql.EXE" -S ./sqlexpress -U sa -P 000000 -d master -Q"RESTORE DATABASE test from disk='c:/aa/aaa.bak'"

已为数据库 'test',文件 'test' (位于文件 1 上)处理了 176 页。
已为数据库 'test',文件 'test_log' (位于文件 1 上)处理了 2 页。
RESTORE DATABASE 成功处理了 178 页,花费 0.200 秒(7.255 MB/秒)。

3、帮助
Microsoft Windows XP [版本 5.1.2600]
(C) 版权所有 1985-2001 Microsoft Corp.

C:/Documents and Settings/xuysh>"C:/Program Files/Microsoft SQL Server/80/Tools/
Binn/Isql.EXE"/?
isql: unknown option ?
usage: isql [-U login id] [-P password]
[-S server] [-H hostname] [-E trusted connection]
[-d use database name] [-l login timeout] [-t query timeout]
[-h headers] [-s colseparator] [-w columnwidth]
[-a packetsize] [-e echo input] [-x max text size]
[-L list servers] [-c cmdend]
[-q "cmdline query"] [-Q "cmdline query" and exit]
[-n remove numbering] [-m errorlevel]
[-r msgs to stderr]
[-i inputfile] [-o outputfile]
[-p print statistics] [-b On error batch abort]
[-O use Old ISQL behavior disables the following]
<EOF> batch processing
Auto console width scaling
Wide messages
default errorlevel is -1 vs 1
[-? show syntax summary (this screen)]

 
 
解决使用sqlcmd无法连接数据库
 
C:\Documents and Settings\Administrator>sqlcmd

命名管道提供程序: 无法打开与 SQL Server 的连接 [2].Sqlcmd: 错误: Microsoft SQL Native Client : 建立到服务器的连接时发生错误。连接到 SQL Server 2005 时,默认设置 SQL Server 不允许远程连接这个事实可能会导致失败。

Sqlcmd: 错误: Microsoft SQL Native Client : 登录超时已过期。

解决办法:
1.查看端口,发现没有1433(SQL server的缺省端口)
C:\Documents and Settings\Administrator>netstat -ano

2.进入SQL Server Configuration Manager,查看配置
SQL Server 配置管理器(本地)
->SQL Server 2005 网络配置
->HLHEBSQL 的协议
-> TCP/IP
右键->属性
发现服务器地址IP1,未启用,端口使用的是动态端口。
按如下更改后,重新启用SQL Server服务。
注意:一定要IPALL的TCP动态端口删除,TCP端口改为1433,只改IP1不好用。
 
Named Pipes 禁用

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章