背景:

使用常规方法搬迁oracle数据库失败,故使用物理文件搬迁的方法进行数据库的搬迁,此方法为非正规方法,慎用!!!方法适用于dbf文件存在的数据库恢复。

需求分析:

数据库A搬迁至数据库B,常规方法不能导出数据库进行迁移和备份活动,数据库A可正常运行或只存在dbf文件和相关用户信息。

前期准备:

需要根据数据库A的版本在新虚拟机中建立数据库B,且数据库版本及相关配置尽量相同。

实际操作:

一、源数据库操作

1.备份源数据库控制文件

(1)登录数据库

使用dba身份登录

sqlplus / as sysdba

在这里插入图片描述

(2)备份控制文件到trace文件

alter database backup controlfile to trace;

在这里插入图片描述

(3)找到刚才备份的控制文件并进行备份

找到oracle的安装目录,如:D:\app\Administrator,一般位于D:\app\chadmini\diag\rdbms\orcl\orcl\trace内,按照时间降序即可,名称一般为(orcl1_ora_xxx.trc)。或者可以在安装目录,按修改时间降序,找到最近的trace文件。
在这里插入图片描述在这里插入图片描述

2.备份数据库实例文件

(1)停止数据库

shutdown immediate 停止数据库实例。
在这里插入图片描述

(2)备份文件

备份一般位于目录下的D:\app\chadmini\oradata\orcl中的数据库实例文件夹,注意需要整个文件夹进行备份拷贝。
在这里插入图片描述
在这里插入图片描述

3.最终成果

在这里插入图片描述

二、新数据库操作

1.重建前准备

(1)重建源数据库的用户及表空间。

使用dba账户连接到orcl实例,创建表空间及用户,对用户授权。

sqlplus / as sysdba

在这里插入图片描述
创建源数据库同名用户及其表空间。因为源数据库的实例文件中,表空间名称为WXSL.DBF,用户为WXSL,故此处以此为例。

创建表空间

CREATE TABLESPACE WXSL
DATAFILE 'D:\app\Administrator\oradata\orcl\WXSL.DBF'
SIZE 1024M    
AUTOEXTEND ON    
NEXT 50M MAXSIZE 20480M
EXTENT MANAGEMENT LOCAL;

创建用户并绑定表空间

CREATE USER WXSL IDENTIFIED BY password
DEFAULT TABLESPACE WXSL; 

在这里插入图片描述

(2)替换数据库实例文件

shutdown immediate 停止数据库实例
在这里插入图片描述
删除原有实例并把需要恢复的dbf拷贝到原目录下。
在这里插入图片描述

2.恢复数据库实例

(1)启动数据库,重建控制文件

启动数据库到nomount状态

startup nomount

打开数据库备份的控制文件,复制其中的CREATE CONTROLFILE部分语句来重建控制文件:
在这里插入图片描述

此处需要进行对应的修改,
1.NORESETLOGS NOARCHIVELOG改为 NORESETLOGS ARCHIVELOG
2.所有对应路径需要改为当前系统的实例路径。
更改完成后为:

CREATE CONTROLFILE REUSE DATABASE "orcl" NORESETLOGS  ARCHIVELOG
    MAXLOGFILES 16
    MAXLOGMEMBERS 2
    MAXDATAFILES 100
    MAXINSTANCES 2
    MAXLOGHISTORY 584
LOGFILE
  GROUP 1 'D:\app\Administrator\oradata\orcl\REDO01.LOG'  SIZE 50M BLOCKSIZE 512,
  GROUP 2 'D:\app\Administrator\oradata\orcl\REDO02.LOG'  SIZE 50M BLOCKSIZE 512,
  GROUP 3 'D:\app\Administrator\oradata\orcl\REDO03.LOG'  SIZE 50M BLOCKSIZE 512
-- STANDBY LOGFILE
DATAFILE
  'D:\app\Administrator\oradata\orcl\SYSTEM01.DBF',
  'D:\app\Administrator\oradata\orcl\SYSAUX01.DBF',
  'D:\app\Administrator\oradata\orcl\UNDOTBS01.DBF',
  'D:\app\Administrator\oradata\orcl\USERS01.DBF',
  'D:\app\Administrator\oradata\orcl\WXSL.DBF'
CHARACTER SET ZHS16GBK
;

在这里插入图片描述

(2)恢复数据库

此处执行会有两个报错,可以忽略。

recover database
alter database open;

在这里插入图片描述

(3)重新配置监听

按照步骤一步一步配置即可。可以按照正常步骤重新配置,详情参考相关文章。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

(4)新建临时表空间

查看当前表空间状态

select tablespace_name,file_name from dba_temp_files;

在这里插入图片描述
创建表空间

alter database default temporary tablespace temp;

增加临时表空间物理文件

alter tablespace TEMP add tempfile 'D:\app\Administrator\oradata\orcl\TEMP.DBF' size 200m autoextend on;

查询临时表空间物理文件是否创建成功

select tablespace_name,file_name from dba_temp_files;

在这里插入图片描述

恢复完成!!!

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐