题主是否想询问“bcp导出数据库死锁是怎么回事”?系统资源不足,进程运行推进的顺序不合适等。在使用bcp导出数据库的时候,出现死锁是由于系统资源不足,进程运行推进的顺序不合适等所导致的,需要保证系统资源充足,让推进顺序与速度合适等就能解决。数据库是结构化信息或数据的有序集合,以电子形式存储在计算机系统中。
默认应该是在C:\Windows\SysWOW64,我的是windows2008系统,不过你也应该找你的C盘,而不是D盘。
建议,导出的路径自己写,不要用默认的路径,如:
EXEC masterxp_cmdshell 'bcp databaseTestdbotest out D:\abctxt -c -T -U''sa'' -P''password'''
补充一下,如果是32位系统,应该是在C:\WINDOWS\system32
导出数据库命令: mysqldump -u root -p mydb2 > e:\mydbsql 把数据库mydb2导出到e盘的mydbsql 注意:在dos下进入mysql安装的bin目录下,但是不要登陆。 导入数据库命令: mysqldump -u root -p mydb2 < e:\mydbsql 把数据库e盘的mydbsql导
declare @userid int
set @userid = 1
declare @bcp varchar(8000)
set @bcp = 'bcp "SELECT FROM employee where emp_no = ' + rtrim(@userid) + ' " queryout "C:\ ' + rtrim(@userid) + 'txt " -c -t -S "win2ksvr " -U "lich " -P "123 " '
EXEC masterxp_cmdshell @bcp
以下是Server端程序
using System;
using SystemCollectionsGeneric;
using SystemText;
using SystemNet;
using SystemNetSockets;
namespace Server
{
class Program
{
static void Main(string[] args)
{
IPAddress ipAd = IPAddressParse("103128240"); // 把IP地址转换为IPAddress的实例
// 初始化监听器, 端口为8888
TcpListener myList = new TcpListener(ipAd, 8888);
// 开始监听服务器端口
myListStart();
// 输出服务器启动信息
ConsoleWriteLine("在8888端口启动服务");
ConsoleWriteLine("本地节点为:" + myListLocalEndpoint);
ConsoleWriteLine("等待连接");
// 等待处理接入连接请求
// 新建立的连接用套接字s表示
Socket s = myListAcceptSocket();
ConsoleWriteLine("连接来自 " + sRemoteEndPoint);
//发送命令
while(sConnected)
{
ASCIIEncoding asen = new ASCIIEncoding();
ConsoleWriteLine("请输入指令:\n");
sSend(asenGetBytes(ConsoleReadLine()));
//接收返回信息
byte[] b = new byte[100];
int k = sReceive(b);
for (int i = 0; i < k; i++)
{
ConsoleWrite(ConvertToChar(b[i]));
}
ConsoleWriteLine("\n已发送命令");
}
}
}
}
以下是Client端程序
using System;
using SystemCollectionsGeneric;
using SystemText;
using SystemNet;
using SystemNetSockets;
using SystemIO;
namespace Client
{
class Program
{
static void Main(string[] args)
{
// 新建客户端套接字
TcpClient tcpclnt = new TcpClient();
ConsoleWriteLine("连接");
// 连接服务器
tcpclntConnect("103128240", 8888);
ConsoleWriteLine("已连接");
// 得到客户端的流
Stream stm = tcpclntGetStream();
// 接收从服务器返回的信息
while (tcpclntConnected)
{
byte[] bb = new byte[100];
int k = stmRead(bb, 0, 100);
string a = null;
for (int i = 0; i < k; i++)
{
a += ConvertToChar(bb[i]);
}
switch (a)
{
case "time":
ASCIIEncoding asen= new ASCIIEncoding();
byte[] ba=asenGetBytes(DateTimeNowTimeOfDayToString());
stmWrite(ba, 0, baLength);
break;
default:
break;
}
}
这段代码运行后 我们在Server端输入 time 就可以得到对方的系统时间
当然你可以在
switch (a)
{
case "time":
ASCIIEncoding asen= new ASCIIEncoding();
byte[] ba=asenGetBytes(DateTimeNowTimeOfDayToString());
stmWrite(ba, 0, baLength);
break;
default:
break;
}
这里多加些case来处理不同的命令来做更多的事 比如 关闭计算机 得到当前的进程列表什么的
当然你也可以通过修改注册表来实现client 的开机自启动
或者让client自己想多个地方复制,比如U盘什么的,就有了自动传播的功能
很多功能只要去研究,都可以实现的
在不同平台上导数据时,只能用BCP命令,但是BCP命令不能导出数据库表结构,所以需进行数据库表结构的导出。
在sybase125版本以上,可以用如下方式导出表结构:
ddlgen –Usa –Pxxx –Ddb_name –Sxxx:port –Ooutput_file
其中db_name指所要导出的数据库名。
以上就是关于bcp导出数据库死锁全部的内容,包括:bcp导出数据库死锁、sql server2005数据库 使用EXEC master..xp_cmdshell 'bcp ……导出数据成功 但是找不到 脚本文件 为什么、如何将.bcp文件中的数据导入到Oracle数据库表格中等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)