如何使用C#代码导出表的“Sql文件”

时间:2018-03-14 15:04:14

标签: c# oracle

我开发了一个学校管理系统,它连接到一个数据库。现在,我想要备份表。

我的想法是生成每个表的SQL文件,稍后将用于备份。我在Oracle SQL Developer中手动实现了这个目标(附加了一个屏幕截图),首先导出SQL文件,然后导入这些文件。现在我想用C#以编程方式执行此操作。我在谷歌上搜索了很多,但没有发现任何有用的东西。

screenshot of oracle sql developer

2 个答案:

答案 0 :(得分:0)

基本上,如果你想进行完整备份,包括表数据,存储过程,视图等,你可以去SQL脚本

BACKUP DATABASE School_Management TO DISK = 'D:\SQL Backup\SchoolManagement\SM_20180314.bak'    WITH FORMAT,  
  MEDIANAME = 'SM_Backups',  
  NAME = 'Full Backup of School_Management';  

您可以从C#代码运行上述脚本,将备份路径作为参数传递。如果您需要更多详细信息,请告诉我们

答案 1 :(得分:0)

虽然是一个正确的备份,但是一个简单的EXP实用程序(是的,原始导出,而不是数据泵)可以正常工作。

为什么原始 EXP?因为您可以在计算机上运行它,它将导出整个用户(表,过程,包,...)并在您的计算机上创建一个文件。 Data Pump,一个现代的 export 实用程序功能更强大,但是 - 为了使用它 - 您必须能够访问数据库服务器(即其目录,它存储已导出关于文档中所有内容的更多信息。)

所以,这是一个小小的演示 - 我将导出我的SCOTT用户:

c:\Temp>exp scott/tiger@xe file=scott.dmp

Export: Release 11.2.0.2.0 - Production on Sri O×u 14 20:13:30 2018

Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.


Connected to: Oracle Database 11g Express Edition Release 11.2.0.2.0 - 64bit Production
Export done in EE8MSWIN1250 character set and AL16UTF16 NCHAR character set
server uses AL32UTF8 character set (possible charset conversion)
. exporting pre-schema procedural objects and actions
. exporting foreign function library names for user SCOTT
. exporting PUBLIC type synonyms
. exporting private type synonyms
. exporting object type definitions for user SCOTT
About to export SCOTT's objects ...
. exporting database links
. exporting sequence numbers
. exporting cluster definitions
. about to export SCOTT's tables via Conventional Path ...
. . exporting table                           DEPT          4 rows exported
. . exporting table                            EMP         12 rows exported

<snip>

. exporting synonyms
. exporting views
. exporting stored procedures
. exporting operators
. exporting referential integrity constraints
. exporting triggers
. exporting indextypes
. exporting bitmap, functional and extensible indexes
. exporting posttables actions
. exporting materialized views
. exporting snapshot logs
. exporting job queues
. exporting refresh groups and children
. exporting dimensions
. exporting post-schema procedural objects and actions
. exporting statistics
Export terminated successfully with warnings.

c:\Temp>

c:\Temp>dir scott.dmp
 Volume in drive C is OSDisk
 Volume Serial Number is 7635-F892

 Directory of c:\Temp

14.03.2018.  20:13         1.310.720 scott.dmp
               1 File(s)      1.310.720 bytes
               0 Dir(s)  346.085.478.400 bytes free

c:\Temp>

生成的.DMP文件现在可以转移到其他一些数据库,导入(使用IMP命令),然后你就可以了。在几分钟内运行(好的,这取决于新数据库中的环境是否友好给您导入的用户 - 例如,您通过以下方式访问的非现有用户数据库链接等可能会破坏快乐,但这是另一个故事。)

除此之外,调查RMAN(Recovery MANager)的使用情况:

  

Recovery Manager(RMAN)是一个执行的Oracle数据库客户端   数据库和自动化上的备份和恢复任务   管理您的备份策略。它大大简化了   备份,还原和恢复数据库文件。

这是备份数据库的正确方法;但是,如果你只是想要保存&#34;可能会有点矫枉过正。一个用户的对象。