远程备份oracle9数据库报错EXP-00056 ORA-12560

远程备份oracle9数据库报错EXP-00056 ORA-12560,第1张

EXP-00056和ORA-12560错误都与Oracle数据库连接相关,可能是由于连接配置不正确或数据库实例无法访问导致的。以下是一些可能的解决方法:

确保TNS名称解析正确:请检查TNSNAMESORA文件中的连接配置是否正确,确保TNS别名和实例名称匹配。可以使用tnsping命令测试TNS别名是否能够正确解析到数据库实例。

2 检查Oracle监听器是否正常:可以使用lsnrctl命令来检查Oracle监听器的状态。如果监听器未启动,请使用命令“lsnrctl start”启动监听器。

3 检查Oracle服务是否正在运行:在Windows系统上,可以使用服务管理器(servicesmsc)检查Oracle服务是否正在运行。在Linux/Unix系统上,可以使用ps命令来检查Oracle进程是否正在运行。

4 检查Oracle账号和密码是否正确:请确保使用的Oracle账号和密码是正确的,可以使用sqlplus命令测试账号和密码是否能够正确登录到数据库。

5 检查防火墙和网络连接:如果Oracle数据库和备份服务器不在同一个网络中,可能需要在防火墙中打开相关端口。此外,网络连接也可能存在问题,可以使用ping命令测试数据库和备份服务器之间的网络连通性。

希望这些解决方法能够帮助你解决问题。如果问题仍然存在,请提供更多的详细信息,以便我能够提供更精确的建议。

望采纳~

谢谢!

首先你得知道远程MSSQLIP用户名密码,步骤如下:

1、在本地MSSQL企业管器里新注册远程数据库(新建一个sqlserver注册)

2、在本地新建一数据库,在新建数据库中执行新生成的SQL脚本,注意脚本中的所属用户一般全部替换为[dbo]然后全部执行。

3、然后在新建数据库中点右键所有任务导入数据,先填源数据库,也就是远程数据库,后填目的数据库,也就是新数据库最后确定。

另外无法通过映射远程磁盘到本地,进行数据库的备份,因为不管是文件备份还是设备备份,备份的时候都无法找到映射的磁盘

注:除了本地备份外保证数据不丢失,还可以用“多备份”这样的工具把SQL数据库备份到多个云盘,满足异地容灾备份需要

手头上只有C#的代码,不知道对你有没有帮助

远程备份要注意权限的问题,普通的访问帐户没有备份和还原的权限,最好用sa的帐户,并且程序访问的帐户必须添加到远程机器的系统内

你说的远程备份到本地是不可能的,你只有开放远程某个文件夹加入你的特殊访问帐户权限

最好直接用远程桌面,这样最方便

方法一(不使用SQLDMO):

///

///备份方法

///

SqlConnection conn = new SqlConnection("Server=;Database=master;User ID=sa;Password=sa;");

SqlCommand cmdBK = new SqlCommand();

cmdBKCommandType = CommandTypeText;

cmdBKConnection = conn;

cmdBKCommandText = @"backup database test to disk='C:\ba' with init";

try

{

connOpen();

cmdBKExecuteNonQuery();

MessageBoxShow("Backup successed");

}

catch(Exception ex)

{

MessageBoxShow(exMessage);

}

finally

{

connClose();

connDispose();

}

///

///还原方法

///

SqlConnection conn = new SqlConnection("Server=;Database=master;User ID=sa;Password=sa;Trusted_Connection=False");

connOpen();

//KILL DataBase Process

SqlCommand cmd = new SqlCommand("SELECTspidFROMsysprocesses ,sysdatabases WHEREsysprocessesdbid=sysdatabasesdbid AND sysdatabasesName='test'", conn);

SqlDataReader dr;

dr = cmdExecuteReader();

ArrayList list = new ArrayList();

while(drRead())

{

listAdd(drGetInt16(0));

}

drClose();

for(int i = 0; i < listCount; i++)

{

cmd = new SqlCommand(stringFormat("KILL {0}", list[i]), conn);

cmdExecuteNonQuery();

}

SqlCommand cmdRT = new SqlCommand();

cmdRTCommandType = CommandTypeText;

cmdRTConnection = conn;

cmdRTCommandText = @"restore database test fromdisk='C:\ba'";

try

{

cmdRTExecuteNonQuery();

MessageBoxShow("Restore successed");

}

catch(Exception ex)

{

MessageBoxShow(exMessage);

}

finally

{

connClose();

}

方法二(使用SQLDMO):

///

///备份方法

///

SQLDMOBackup backup = new SQLDMOBackupClass();

SQLDMOSQLServer server = new SQLDMOSQLServerClass();

//显示进度条

SQLDMOBackupSink_PercentCompleteEventHandler progress = new SQLDMOBackupSink_PercentCompleteEventHandler(Step);

backupPercentComplete += progress;

try

{

serverLoginSecure = false;

serverConnect("", "sa", "sa");

backupAction = SQLDMOSQLDMO_BACKUP_TYPESQLDMOBackup_Database;

backupDatabase = "test";

backupFiles = @"D:\test\myProg\backupTest";

backupBackupSetName = "test";

backupBackupSetDescription = "Backup the database of test";

backupInitialize = true;

backupSQLBackup(server);

MessageBoxShow("Backup successed");

}

catch(Exception ex)

{

MessageBoxShow(exMessage);

}

finally

{

serverDisConnect();

}

thispbDBValue = 0;

///

///还原方法

///

SQLDMORestore restore = new SQLDMORestoreClass();

SQLDMOSQLServer server = new SQLDMOSQLServerClass();

//显示进度条

SQLDMORestoreSink_PercentCompleteEventHandler progress = new SQLDMORestoreSink_PercentCompleteEventHandler(Step);

restorePercentComplete += progress;

//KILL DataBase Process

SqlConnection conn = new SqlConnection("Server=;Database=master;User ID=sa;Password=sa;Trusted_Connection=False");

connOpen();

SqlCommand cmd = new SqlCommand("SELECTspid FROMsysprocesses ,sysdatabases WHEREsysprocessesdbid=sysdatabasesdbid AND sysdatabasesName='test'", conn);

SqlDataReader dr;

dr = cmdExecuteReader();

ArrayList list = new ArrayList();

while(drRead())

{

listAdd(drGetInt16(0));

}

drClose();

for(int i = 0; i < listCount; i++)

{

cmd = new SqlCommand(stringFormat("KILL {0}", list[i]), conn);

cmdExecuteNonQuery();

}

connClose();

try

{

serverLoginSecure = false;

serverConnect("", "sa", "sa");

restoreAction = SQLDMOSQLDMO_RESTORE_TYPESQLDMORestore_Database;

restoreDatabase = "test";

restoreFiles = @"D:\test\myProg\backupTest";

restoreFileNumber = 1;

restoreReplaceDatabase = true;

restoreSQLRestore(server);

MessageBoxShow("Restore successed");

}

catch(Exception ex)

{

MessageBoxShow(exMessage);

}

finally

{

serverDisConnect();

}

thispbDBValue = 0;

以上就是关于远程备份oracle9数据库报错EXP-00056 ORA-12560全部的内容,包括:远程备份oracle9数据库报错EXP-00056 ORA-12560、如何对远程sql数据库进行本地备份、如何远程备份SQL SERVER数据库等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址:https://54852.com/sjk/9495303.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存