Oracle备份还原操作方法

本文介绍了一个用于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/archive/2007/10/29/941306.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值