bcp导出数据库死锁

bcp导出数据库死锁,第1张

题主是否想询问“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数据库表格中等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10142019.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存