不使用exp或expdp的简单oracle备份

不使用exp或expdp的简单oracle备份,oracle,backup,Oracle,Backup,我已将Oracle 10g安装在Windows上的C:\Oracle中。如果我停止所有Oracle服务,只需复制整个目录(例如,复制到C:\Oracle\u bak)就可以安全地进行备份,还是使用expdp会明显更好 指向文档/网站的指针非常受欢迎,我无法用谷歌搜索任何相关内容。但是,您可以复制数据文件(确保您也获得了控制文件,并确保您测试了备份)。您可能应该使用RMAN 这将是一个很好的起点。一个非常简单的备份方法是使用exp工具导出相关的架构。例如,如果您的所有表都存在于模式MY_应用程序(

我已将Oracle 10g安装在Windows上的C:\Oracle中。如果我停止所有Oracle服务,只需复制整个目录(例如,复制到C:\Oracle\u bak)就可以安全地进行备份,还是使用expdp会明显更好


指向文档/网站的指针非常受欢迎,我无法用谷歌搜索任何相关内容。

但是,您可以复制数据文件(确保您也获得了控制文件,并确保您测试了备份)。您可能应该使用RMAN


这将是一个很好的起点。

一个非常简单的备份方法是使用exp工具导出相关的架构。例如,如果您的所有表都存在于模式MY_应用程序(mysql用户读取数据库)中,则可以将其所有表转储到一个文件中

exp userid=MY_APP file=dumpfile.dmp log=logfile.txt consistent=y statistics=none buffer=1024000
将转储文件恢复到第二个数据库的工作方式如下

imp userid=system fromuser=MY_APP touser=MY_APP file=dumpfile.dmp commit=y buffer=102400 
或者,您可以将表从MY_APP还原到同一数据库中的另一个架构

imp userid=system fromuser=MY_APP touser=MY_BACKUP file=dumpfile.dmp commit=y buffer=102400
只需在导入之前创建一个新的模式MY_BACKUP

create user MY_BACKUP identified by SECRET default tablespace USERS temporary tablespace temp;
grant connect, resource to MY_BACKUP;

如果您的数据库未在存档日志模式下运行,则答案为“是”。下面是我用来备份和恢复数据库的一些脚本

---备份.bat---

----shutdown.sql

shutdown immediate
exit;
----startup.sql

startup
exit;

还原脚本与此类似。只需将文件复制到另一个方向即可

复制/粘贴确实有效,但您不应该简单地复制/粘贴整个Oracle home。这比需要付出的努力多得多

您首先需要执行日志切换,即

SET ORACLE_SID=mydb
sqlplus /nolog
Connect / as sysdba
Alter system switch logfile;
将所有表空间置于备份模式,即

CONNECT / AS SYSDBA
ALTER TABLESPACE mytablespace BEGIN BACKUP;
(您可以通过查询DBA_表空间视图来获取表空间)

然后将所有数据文件和重做日志文件复制到备份位置


至于此方法是否安全,则取决于您如何保留数据文件和日志文件。当然,我应该提到,RMAN是Oracle经验证和推荐的备份模式。

这似乎给我带来了巨大的问题—请小心。试图通过将文件复制回oradata目录进行恢复不起作用-抱怨控制文件。
CONNECT / AS SYSDBA
ALTER TABLESPACE mytablespace BEGIN BACKUP;