Set fso = CreateObject("Scripting.FileSystemObject") fso.DeleteFolder (path)
Set fso = nothingEnd Sub '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ' CreateDirectory ' 目的: ' 创建指定目录。'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' Sub CreateDirectory(path) Dim fso
Set fso = CreateObject("Scripting.FileSystemObject") fso.CreateFolder (path) Set fso = nothing End Subexp.txt文件userid=admin/user_is_crm@crmdb tables=khjlda,clwxda,khhfda,clzbdanew INDEXES=y rows=y constraints=y compress=Y direct=ybat文件 Oracle_bakup.vbs以上是我备份的一个例子.下面是详细解释:
1、在你机器的c盘根目录建立一个文件:a.bat
2、用ue打开a.bat,然后写入如下命令:
exp user1/pass1@servername1 file=c:\a.dmp
exp user2/pass2@servername2 file=c:\b.dmp
这里的语句是你想导出几个数据库文件就写几个语句。
3、在windows下找到 控制面板\任务计划\添加新任务
(我的系统是xp,就用我的做实验,2000类似)
点击 添加新任务,出现任务向导界面,然后点击 下一步,出现选择存在可运行程序的界面,这里会有一个 浏览 的按钮,点击,找到在上面刚刚建立的a.bat文件,选择执行这个任务的周期(我选择的是每天),然后 下一步,出现时间设置的界面,输入这个任务执行的时间(我输入的是10:50),然后下一步,出现让你数据用户名的口令界面,输入你当前操作系统的用户口令,点击下一步,完成。这样,每天这个时间,系统就会自动去执行你的导出工作,而不用人为的去输入命令。如果有什么不明白的,接着法帖询问即可。
你连服务器1,你就在bat文件中写:
exp user1/pass1@servername1 file=c:\a.dmp
如果你连服务器2,你就在bat文件中加一条:
exp user2/pass2@servername2 file=c:\b.dmp
不就可以了吗!这又什么难的啊!
关于user,pass,servername,这些就是参数阿,这个只有你知道阿
不知道你所说的 连接参数是什么
晕!
照着这个格式写一下就好了。
可以看帮助,exp help=y
M-mail:[email protected]
%TIME%
%DATE% 就是系统时间了dir > "kk%DATE%".txt就生成了一个以kk开头的,系统当前时间结尾的txt文件.
星期三 2005-07-13
Option Explicit'On Error Resume NextDim fileName, cmd, iweek, folder
Dim WshShellSet WshShell = CreateObject("WScript.Shell")
fileName =Date
folder=fileName
'WScript.Echo "folder = " & floder' 删除上周当天的备份,目录结尾不能有"\"
'DeleteDirectory(folder)
' 重新创建星期目录
CreateDirectory(folder)cmd = "exp log=" & fileName & "\admin.log file=" & fileName & "\admin.dmp parfile=exp.txt"'MsgBox cmdWshShell.run cmdSet WshShell = Nothing
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' DeleteDirectory
' 目的:
' 清理指定目录。''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Sub DeleteDirectory(path) Dim fso
Set fso = CreateObject("Scripting.FileSystemObject") fso.DeleteFolder (path)
Set fso = nothingEnd Sub
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' CreateDirectory
' 目的:
' 创建指定目录。''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Sub CreateDirectory(path) Dim fso
Set fso = CreateObject("Scripting.FileSystemObject") fso.CreateFolder (path) Set fso = nothing
End Subexp.txt文件userid=admin/user_is_crm@crmdb
tables=khjlda,clwxda,khhfda,clzbdanew
INDEXES=y
rows=y
constraints=y
compress=Y
direct=ybat文件
Oracle_bakup.vbs以上是我备份的一个例子.下面是详细解释:
exp
将数据库内的各对象以二进制方式下载成dmp文件,方便数据迁移。
buffer:下载数据缓冲区,以字节为单位,缺省依赖操作系统
consistent:下载期间所涉及的数据保持read only,缺省为n
direct:使用直通方式 ,缺省为n
feeback:显示处理记录条数,缺省为0,即不显示
file:输出文件,缺省为expdat.dmp
filesize:输出文件大小,缺省为操作系统最大值
indexes:是否下载索引,缺省为n,这是指索引的定义而非数据,exp不下载索引数据
log:log文件,缺省为无,在标准输出显示
owner:指明下载的用户名
query:选择记录的一个子集
rows:是否下载表记录
tables:输出的表名列表
导出整个实例
exp dbuser/oracle file=oradb.dmp log=oradb.log full=y consistent=y direct=y
user应具有dba权限
导出某个用户所有对象
exp dbuser/oracle file=dbuser.dmp log=dbuser.log owner=dbuser buffer=4096000 feedback=10000
导出一张或几张表
exp dbuser/oracle file=dbuser.dmp log=dbuser.log tables=table1,table2 buffer=4096000 feedback=10000
导出某张表的部分数据
exp dbuser/oracle file=dbuser.dmp log=dbuser.log tables=table1 buffer=4096000 feedback=10000 query=\”where col1=\’…\’ and col2 \<…\”
不可用于嵌套表
以多个固定大小文件方式导出某张表
exp dbuser/oracle file=1.dmp,2.dmp,3.dmp,… filesize=1000m tables=emp buffer=4096000 feedback=10000
这种做法通常用在:表数据量较大,单个dump文件可能会超出文件系统的限制
直通路径方式
direct=y,取代buffer选项,query选项不可用
有利于提高下载速度
consistent选项
自export启动后,consistent=y冻结来自其它会话的对export操作的数据对象的更新,这样可以保证dump结果的一致性。但这个过程不能太长,以免回滚段和联机日志消耗完
imp
将exp下载的dmp文件上载到数据库内。
buffer:上载数据缓冲区,以字节为单位,缺省依赖操作系统
commit:上载数据缓冲区中的记录上载后是否执行提交
feeback:显示处理记录条数,缺省为0,即不显示
file:输入文件,缺省为expdat.dmp
filesize:输入文件大小,缺省为操作系统最大值
fromuser:指明来源用户方
ignore:是否忽略对象创建错误,缺省为n,在上载前对象已被建立往往是一个正常现象,所以此选项建议设为y
indexes:是否上载索引,缺省为n,这是指索引的定义而非数据,如果上载时索引已建立,此选项即使为n也无效,imp自动更新索引数据
log:log文件,缺省为无,在标准输出显示
rows:是否上载表记录
tables:输入的表名列表
touser:指明目的用户方
导入整个实例
imp dbuser/oracle file=oradb.dmp log=oradb.log full=y buffer=4096000 commit=y ignore=y feedback=10000
导入某个用户所有对象
imp dbuser/oracle file=dbuser.dmp log=dbuser.log fromuser=dbuser touser=dbuser2 buffer=2048000 commit=y ignore=y feedback=10000
导入一张或几张表
imp dbuser2/oracle file=user.dmp log=user.log tables=table1,table2 fromuser=dbuser touser=dbuser2 buffer=2048000 commit=y ignore=y feedback=10000
以多个固定大小文件方式导入某张表
imp dbuser/oracle file=\(1.dmp,2.dmp,3.dmp,…\) filesize=1000m tables=emp fromuser=dbuser touser=dbuser2 buffer=4096000 commit=y ignore=y feedback=10000