Oracle备份如何到异机还原

 我来答
懂视生活
2023-07-27 · 百度认证:湖南福仁科技有限公司官方账号
懂视生活
向TA提问
展开全部

有朋友问,MS SQL SERVER将数据库备份还原到其它机器很方便,基本就是傻瓜式操作,oracle有控制文件、参数文件一堆东西,觉得还原



情景描述:

有朋友问,MS SQL SERVER将数据库备份还原到其它机器很方便,基本就是傻瓜式操作,Oracle有控制文件、参数文件一堆东西,觉得还原很复杂;其实不然,我抽出了点时间,简单演示下案例,朋友们,参考下!为了简单快速,,我采用RMAN备份和还原。

--说明: (1).RMAN备份到异机恢复的时候,db_name需要相同。

如果说要想改成其他的实例名,可以在恢复成功后,用nid 命令修改。 实例名的信息会记录到控制文件里,所以如果在恢复的时候,如果实例名不一致,恢复的时候会报错。

(2).恢复的路径和源库不一致时,就需要在restore命令中使用set 命令指定新位置,并且使用switch datafile all将变更信息更新的到控制文件中。

测试环境:

源数据库服务器A,安装在E,备份目录已在E盘; 源数据库服务器B,安装在F盘.

------------------------------------

一、源数据库准备工作

------------------------------------

--1. 查询DBID

SQL> select name,dbid from v$database;

NAME DBID --------- ---------- ORCL 1320546556

--2. 备份源数据DB

run { configure retention policy to recovery window of 14 days; configure controlfile autobackup on; --自动开启控制文件备份 configure controlfile autobackup format for device type disk to 'E:\backup\controlfile\bak_%F'; allocate channel c1 device type disk format 'E:\backup\data\bak_%u'; allocate channel c2 device type disk format 'E:\backup\data\bak_%u'; sql 'alter system archive log current'; backup incremental level=0 database skip inaccessible plus archivelog filesperset 20 delete all input; release channel c1; release channel c2; } allocate channel for maintenance device type disk; crosscheck backupset; delete noprompt obsolete;

--或

run { configure retention policy to recovery window of 14 days; allocate channel c1 device type disk format 'E:\backup\data\bak_%u'; allocate channel c2 device type disk format 'E:\backup\data\bak_%u'; sql 'alter system archive log current'; backup incremental level=0 database skip inaccessible plus archivelog filesperset 20 delete all input; --手动直接指明备份文件名和路径 backup current controlfile tag='bak_ctrollfile' format='E:\backup\controlfile\bak_ctl_file_%U_%T'; backup spfile tag='bak_spfile' format='E:\backup\controlfile\bak_spfile_%U_%T'; release channel c1; release channel c2; } allocate channel for maintenance device type disk; crosscheck backupset; delete noprompt obsolete;

--3.手动备份spfile

create pfile='E:\backup\inittest.ora' from spfile;

------------------------------------

二、目标库准备工作:

------------------------------------

---步骤1. 创建口令文件

--如果有就不需要新建.

orapwd file=F:\app\Administrator\product\11.2.0\dbhome_1\database\PWDorcl.ora password=password

--步骤2.恢复参数文件

--方法1.源数据库spfile并拷贝到B数据库服务器

\\192.168.2.25\e$\backup\inittest.ORA 复制到 E:\bk\inittest.ORA

--步骤3.编辑参数文件中的文件路径

如路径和原来一样,则不需修改

eg: - *_DUMP_DEST - LOG_ARCHIVE_DEST* - CONTROL_FILES

---实例:

orcl.__db_cache_size=939524096 orcl.__java_pool_size=16777216 orcl.__large_pool_size=16777216 orcl.__oracle_base='F:\app\Administrator'#修改路径 orcl.__pga_aggregate_target=855638016 orcl.__sga_target=2550136832 orcl.__shared_io_pool_size=0 orcl.__shared_pool_size=1526726656 orcl.__streams_pool_size=16777216 *.audit_file_dest='F:\app\Administrator\admin\orcl\adump' #修改路径 *.audit_trail='db' *.compatible='11.2.0.0.0' #修改路径 *.control_files='F:\app\Administrator\oradata\orcl\control01.ctl','F:\app\Administrator\oradata\orcl\control02.ctl','F:\app\Administrator\oradata\orcl\control03.ctl' *.db_block_size=8192 *.db_domain='' *.db_name='orcl' *.db_recovery_file_dest='F:\arch' #修改路径 *.db_recovery_file_dest_size=6442450944 *.diagnostic_dest='F:\app\Administrator' #修改路径 *.dispatchers='(PROTOCOL=TCP) (SERVICE=orclXDB)' *.log_archive_dest_1='location=f:\arch' #修改路径 *.nls_date_format='yyyy-mm-dd hh:mi:ss' *.open_cursors=300 *.optimizer_capture_sql_plan_baselines=TRUE *.pga_aggregate_target=845152256 *.processes=150 *.remote_login_passwordfile='EXCLUSIVE' *.sga_target=2536505344 *.skip_unusable_indexes=TRUE *.undo_tablespace='UNDOTBS1'

--步骤4.重启实例,使用已编辑好的参数文件

将用pfile将B数据库服务器启动到nomout 状态

rman target /

startup nomount pfile='e:\bk\inittest.ora'

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式