
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数据库等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)