我在C:\ oracle的Windows上安装了Oracle 10g。如果我停止所有的Oracle服务,只需复制整个目录(例如,C:\ oracle_bak)就可以安全地进行备份了,还是我使用expdp更好?不使用exp或expdp的简单oracle备份
指向文档/网站非常受欢迎,我没有能够谷歌上任何相关的东西。
我在C:\ oracle的Windows上安装了Oracle 10g。如果我停止所有的Oracle服务,只需复制整个目录(例如,C:\ oracle_bak)就可以安全地进行备份了,还是我使用expdp更好?不使用exp或expdp的简单oracle备份
指向文档/网站非常受欢迎,我没有能够谷歌上任何相关的东西。
但是,您可以复制数据文件(确保您也获得控制文件,并确保您测试备份)。您应该可能正在使用RMAN。
Oracle® Database Backup and Recovery Quick Start Guide将是一个很好的开始。
一个非常简单的备份方法是使用exp工具导出相关模式。如果例如所有表都存在于模式MY_APP(为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;
如果您的数据库未以归档日志模式运行,则答案为是。以下是我用来备份和恢复数据库的一些脚本。
--- BACKUP.BAT ---
sqlplus "sys/[email protected] as sysdba" @shutdown.sql
xcopy C:\oracle\oradata\database\*.* C:\oracle\oradata\backup_database\*.* /Y
sqlplus "sys/[email protected] as sysdba" @startup.sql
---- shutdown.sql
shutdown immediate
exit;
---- startup.sql
startup
exit;
恢复脚本很相似。只需将文件复制到另一个方向即可。
复制/粘贴不起作用,但不应该简单地复制/粘贴整个Oracle主页。这是比所需要的更多的努力。
您将首先需要进行日志切换,即
SET ORACLE_SID=mydb
sqlplus /nolog
Connect/as sysdba
Alter system switch logfile;
将所有的表空间进入备份模式,即
CONNECT/AS SYSDBA
ALTER TABLESPACE mytablespace BEGIN BACKUP;
(您可以通过查询DBA_TABLESPACES让你的表空间查看)
然后将所有数据文件和重做日志文件复制到备份位置。
关于这种方法是否安全,取决于你如何保留数据文件和日志文件。当然,我应该提到RMAN是Oracle经过验证和推荐的备份模式。
这似乎导致了我很大的问题 - 小心。尝试通过将文件复制回oradata目录进行恢复不起作用 - 抱怨控制文件。 – Ronnie 2013-04-17 13:05:56