Oracle备份还原操作方法

1
#region /*备份还原操作*/
        
/// <summary>
        
/// 备份
        
/// </summary>
        
/// <param name="username">用户名</param>
        
/// <param name="pwd">密码</param>
        
/// <param name="dbServer">数据库</param>
        
/// <param name="pathName">路径</param>
        
/// <param name="databaseFileName">备份的文件名</param>
        
/// <param name="appendCommand">备用参数</param>
        
/// <param name="logName">日志文件名</param>
        
/// <returns></returns>
        public bool BackupORACLEDatabase(string username, string pwd, string dbServer, string pathName, string databaseFileName, string appendCommand, string logName, string sqlTextConfig)
        {
            
this.SQLTextFileName = pathName+"\\"+sqlTextConfig;
            
#region /*XMLSQL角本生成*/
            
if (File.Exists(SQLTextFileName))
            {
                File.Delete(SQLTextFileName);
            }
            
//备份库信息
            DBEntity dbentity = new DBEntity();
            dbentity.DBServer 
= dbServer;
            dbentity.UserName 
= username;
            dbentity.Pwd 
= pwd;
            WriteXMLUserSpaceConfig(dbentity);
            
#endregion
            
//exp userid=system/zhice@jc full=y INDEXES=n grants=y rows=y compress=N file=d:\demo.dmp log=d:\demo.log
            string loginString = string.Format("userid={0}/{1}@{2}", username, pwd, dbServer);
            
string fileName = "EXP";
            
string arguments = string.Format("{0} full=y file={1} log={2} ", loginString, pathName + "\\" + databaseFileName, pathName + "\\" + logName);
            
string backupCommand = string.Format("{0} {1}", fileName, arguments);
            
try
            {
                System.Diagnostics.Process bakupProcess 
= new System.Diagnostics.Process();
                bakupProcess.StartInfo.FileName 
= fileName;
                bakupProcess.StartInfo.Arguments 
= arguments;
                bakupProcess.Start();
                
return true;
            }
            
catch (Exception ex)
            {
                System.Diagnostics.Debug.WriteLine(ex);
                
return false;
            }
        }
        
/// <summary>
        
/// 还原
        
/// </summary>
        
/// <param name="username">用户名</param>
        
/// <param name="pwd">密码</param>
        
/// <param name="dbServer">数据库</param>
        
/// <param name="pathName">路径</param>
        
/// <param name="databaseFileName">备份的文件名</param>
        
/// <param name="appendCommand">备用参数</param>
        
/// <param name="logName">日志文件名</param>
        
/// <returns></returns>
        public bool ImpORACLEDatabase(string username, string pwd, string dbServer, string pathName, string databaseFileName, string appendCommand, string logName, string sqlTextConfig)
        {
            
this.SQLTextFileName = sqlTextConfig;
            
#region /*XMLSQL角本执行*/
            
//备份库信息
            DBEntity dbentity = new DBEntity();
            dbentity.DBServer 
= dbServer;
            dbentity.UserName 
= username;
            dbentity.Pwd 
= pwd;
            
if (File.Exists(SQLTextFileName) && SQLTextFileName!=string.Empty)
            {
                ExeUserSpaceSQL(dbentity);
            }
            
#endregion
            
//imp userid=system/zhice@jc ignore=y rows=y indexes=n full=y file=d:\demo.dmp log=d:\demo.log
            string loginString = string.Format("userid={0}/{1}@{2}", username, pwd, dbServer);
            
string fileName = "IMP";
            
string arguments = string.Format("{0} full=y file={1} log={2} ", loginString, pathName + "\\" + databaseFileName, pathName + "\\" + logName);
            
string backupCommand = string.Format("{0} {1}", fileName, arguments);
            
try
            {
                System.Diagnostics.Process bakupProcess 
= new System.Diagnostics.Process();
                bakupProcess.StartInfo.FileName 
= fileName;
                bakupProcess.StartInfo.Arguments 
= arguments;
                bakupProcess.Start();
                
return true;
            }
            
catch (Exception ex)
            {
                System.Diagnostics.Debug.WriteLine(ex);
                
return false;
            }
        }

        
#endregion
原文地址:https://www.cnblogs.com/skyblue/p/941306.html