备份脚本问题,请高手指点(在线等待)

xuqi1981 2003-08-11 07:25:17
最近刚开始学习一些脚本(关于备份的)
1, remark set sql*plus variables to manipulate output
2, set feedback off heading off verify off trimspool off
3, set pagesize 0 linesize 200
4, remark set sql*plus user variables used in this script
5, define dir = 'd:\oracle\oradata\practice\backup\ch04'
6, define fil = 'd:\tmp\closed_backup_commands.sql'
7, prompt *** spooling to &fil
8, remark create a command file with file backup commands
9, spool &fil
10,select 'host cp '|| name ||' &dir' from v$datafile order by 1;
11;select 'host cp '|| member ||' $dir' from v$logfile order by 1;
12,select 'host cp '|| name ||' &dir' from v$controlfile order by 1;
13,select 'host cp '|| name ||' &dir' from v$tempfile order by 1;
14,spool off;
15,remark shutdown the databse cleanly
16;shutdown immediate;
17,remark run the copy file commands from the operating system
18,@fil
19,remark start te database again
20,startup;
以上脚本是在WIN2000下,数据库实例名:practice,
第5,第6行,我硬盘里面D:盘里面有个TMP目录,有个ORACLE目录
在SQL&PLUS里面一直运行的都很正常,
到18行时,就提示:不能运行FIL脚本??不知道是哪里出错了?
而且第15行的意思是什么?好象并没有清空数据库?
...全文
36 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
gladness 2003-08-12
  • 打赏
  • 举报
回复
host是执行操作系统命令。
cp 是unix下的拷贝命令,windows下应该换成copy。

冷备时要把数据文件、控制文件、redo文件全部拷贝,没有redo文件也是可以的,但控制文件是不能少的。
LGQDUCKY 2003-08-12
  • 打赏
  • 举报
回复
up
xuqi1981 2003-08-12
  • 打赏
  • 举报
回复
还是不行,提示10,select 'host cp '|| name ||' &dir' from v$datafile order by 1;
11;select 'host cp '|| member ||' $dir' from v$logfile order by 1;
12,select 'host cp '|| name ||' &dir' from v$controlfile order by 1;
13,select 'host cp '|| name ||' &dir' from v$tempfile order by 1;
有问题,这段代码应该有错误,但我不太懂它。

我昨天晚上运行不了后,shutdown immediate后,试着把D:\oracle\oradata里面的数据文件全部都复制到E:盘,然后删除;最后我再把E盘里面的数据复制回D:\oracle\oradata。
在试图用SQL&PLUS连接时,竟然连接不上去了,提示错误,打不开数据库!不是说可以拷贝文件进行冷备份吗?被玩死了
gladness 2003-08-12
  • 打赏
  • 举报
回复
不好意思,飘兄说得对
LGQDUCKY 2003-08-12
  • 打赏
  • 举报
回复
上面那些代码,已经有关闭数据库的命令了。
shutdown immediate;
照着gladness(gladness) 兄:说的把 CP 该为COPY
gladness 2003-08-12
  • 打赏
  • 举报
回复
冷备要先shutdown数据库,不能用shutdown abort。shutdown之后再拷贝,否则是没用的。

cp改成copy是可以运行的,但是不可用。因为冷备必须在shutdown以后进行。如果热备的话,必须要在复制数据文件之前,用alter tablespace 表空间名 begin backup;复制完成,再alter tablespace 表空间名 end backup;
xuqi1981 2003-08-12
  • 打赏
  • 举报
回复
我昨天晚上真的是把oradata里面的的文件全部拷贝过来了,包刮数据文件,控制文件,
REDO文件,但后来我操作时,就显示无法连接数据库了,在OEM里面也无法打开,
昏了~~~我看得资料说这样做没事,(昨天我是手动拷贝的,然后删除原来的,试着连不上去,
然后我再把资料拷贝回来,结果竟然也连不上去了,重新启动也没用。

楼上的,你好!我那段代码如果要正常运行,是不是只要把CP改成COPY就OK了?
你能帮我仔细看看吗?
RomanticProgrammer 2003-08-11
  • 打赏
  • 举报
回复
学习。
xuqi1981 2003-08-11
  • 打赏
  • 举报
回复
感谢楼上,我等下实际运行一下,成功了就结贴!
zexunlee 2003-08-11
  • 打赏
  • 举报
回复
十五行表示注释,没有任何语法意义。
zexunlee 2003-08-11
  • 打赏
  • 举报
回复
或将@fil改成@'&fil'也可以。
zexunlee 2003-08-11
  • 打赏
  • 举报
回复
将18行@file改成@d:\tmp\closed_backup_commands.sql,应该就可以了。

3,499

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 高级技术相关讨论专区
社区管理员
  • 高级技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧