ITPub博客

首页 > 数据库 > Oracle > ORACLE数据库切换和迁移方案

ORACLE数据库切换和迁移方案

原创 Oracle 作者:wangyiou1988 时间:2016-07-25 16:22:33 0 删除 编辑

前言:
环境与要求:两个ORACLE数据库版本必须相同,大版本和小版本都要,大体思路是先安装B机数据库,然后从A机上导出数据库的结构,然后在B机上进行导入,然后从A机上导出历史数据,并导入至B机,但不导入当天数据,
直到当天晚上,在业务停止之后,把A机上的数据库存储的当天数据导入至B机,并且修改机器IP地址,完成切换。

A机为老数据库                  B机为新数据库

1.    一.迁移前的准备工作:

B机上安装数据库软件,实例名和A机一样.

安装结束之后,在B机上进行添加用户和表空间的操作:

(1)      先创建表空间,由A机的元数据得出:

SQL>SELECT DBMS_METADATA.GET_DDL('TABLESPACE', TS.tablespace_name)

FROM DBA_TABLESPACES TS

wheretablespace_name = 'TBS_***'

给表空间添加数据文件,直接给32G

CREATE TABLESPACE "TBS_APTSTA"

DATAFILE 'D:\ORADATA\APTS\TBS_APTSTA01.DBF' SIZE 10G

AUTOEXTEND ON NEXT 1000M MAXSIZE 32767M LOGGING

EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;

CREATETABLESPACE "TBS_APTSTA"

DATAFILE'D:\ORADATA\APTS\TBS_APTSTA01.DBF'SIZE10G

AUTOEXTENDONNEXT1000M MAXSIZE32767M LOGGING

EXTENTMANAGEMENTLOCALSEGMENTSPACEMANAGEMENTAUTO;

CREATETABLESPACE "TBS_APTSTA_ASGN"

DATAFILE'D:\ORADATA\APTS\TBS_APTSTA_ASGN01.DBF'SIZE10G

AUTOEXTENDONNEXT1000M MAXSIZE32767M LOGGING

EXTENTMANAGEMENTLOCALSEGMENTSPACEMANAGEMENTAUTO;

CREATETABLESPACE "TBS_APTSTA_FDIS"

DATAFILE'D:\ORADATA\APTS\TBS_APTSTA_FDIS01.DBF'SIZE10G

AUTOEXTENDONNEXT1000M MAXSIZE32767M LOGGING

EXTENTMANAGEMENTLOCALSEGMENTSPACEMANAGEMENTAUTO;

CREATETABLESPACE "TBS_APTSTA_INDX"

DATAFILE'D:\ORADATA\APTS\TBS_APTSTA_INDX01.DBF'SIZE2G

AUTOEXTENDONNEXT1000M MAXSIZE32767M LOGGING

EXTENTMANAGEMENTLOCALSEGMENTSPACEMANAGEMENTAUTO;

CREATETABLESPACE "TBS_APTSTA_DEVEVENT"

DATAFILE'D:\ORADATA\APTS\TBS_APTSTA_DEVEVENT01.DBF'SIZE10G

AUTOEXTENDONNEXT1000M MAXSIZE32767M LOGGING

EXTENTMANAGEMENTLOCALSEGMENTSPACEMANAGEMENTAUTO;

CREATETABLESPACE "TBS_APTSTA_LOG"

DATAFILE'D:\ORADATA\APTS\TBS_APTSTA_LOG01.DBF'SIZE10G

AUTOEXTENDONNEXT1000M MAXSIZE32767M LOGGING

EXTENTMANAGEMENTLOCALSEGMENTSPACEMANAGEMENTAUTO

CREATETABLESPACE "TBS_APTSTA_BSVC_ARRLFT"

DATAFILE'D:\ORADATA\APTS\TBS_APTSTA_BSVC_ARRLFT01.DBF'SIZE32767M

AUTOEXTENDONNEXT1000M MAXSIZE32767M LOGGING

EXTENTMANAGEMENTLOCALSEGMENTSPACEMANAGEMENTAUTO;

altertablespace“TBS_APTSTA_BSVC” add datafile

'D:\ORADATA\APTS\TBS_APTSTA_BSVC02.DBF'SIZE32767 Mautoextend on

(2)      

创建用户:基本只要创建APTS用户即可。(具体根据每个项目的情况,我们的测试项目中只有一个用户,那就是APTS)

这一步用plsql自带的功能查看创建用户的sql语句,注意:这里需要在语句上加上:

Identified by 密码:

-- Create the user

createuser APTS dentified by APTS

default tablespace TBS_APTSTA

temporary tablespace TEMP

profile DEFAULT

quota unlimitedontbs_aptsta

quota unlimitedontbs_aptsta_asgn

quota unlimitedontbs_aptsta_bsvc

quota unlimitedontbs_aptsta_bsvc_arrlft

quota unlimitedontbs_aptsta_devevent

quota unlimitedontbs_aptsta_fdis

quota unlimitedontbs_aptsta_indx

quota unlimitedontbs_aptsta_log;

-- Grant/Revoke object privileges

grant executeon DBMS_AQ to APTSTA;

grant executeon DBMS_AQADM to APTSTA;

grant executeon DBMS_AQ_BQVIEW to APTSTA;

grant selecton QT52616_BUFFER to APTSTA;

-- Grant/Revoke role privileges

grantconnectto APTSTA;

grantresourceto APTSTA;

-- Grant/Revoke system privileges

grantalteranytableto APTSTA;

grantalteruserto APTSTA;

grantcreatematerializedviewto APTSTA;

grantcreatetableto APTSTA;

grantcreatetablespaceto APTSTA;

grantcreateviewto APTSTA;

grantdebugconnectsessionto APTSTA;

grantdroptablespaceto APTSTA;

grantunlimitedtablespaceto APTSTA;

二:数据导入:

3.       A机上导出数据库的结构,在B机上进行导入。

Exp aptsta/ta file=D:\exp\full.dmp rows=n

impapts ta/ta  file=E:\exp\full.dmp log=E:\exp\logs\imp_objects.log ignore=y

4.   A机的历史数据里导出,在B机上进行导入,但不要导入当天的数据库


三.开始切换

5.       在晚上把aptsta用户修改密码,杀掉A机上所有的session

6.       根据表空间里的表,进行数据的导入,基础表用dblink导入。

7.       待全部数据都导入了,用pl/sql developer 登陆B 机,点击sequence那一栏,把开始号都增加一位1.

8.       切换数据库,注意,在B机上切换之前建议把aptsta用户的密码也设置成其他的。切换之后,一切数据都导入完毕后,再把密码改回来。

注:基础数据的导出:用字符拼接

select'insert into '||table_name||' select * from '||table_name||'@city'fromuser_tableswheretablespace_name='TBS_APTSTA'

按照表的大:

select'insert into '||table_name||' select * from '||table_name||'@city'||';'fromuser_tableswheretablespace_name='TBS_APTSJN'orderby blocks desc;

附:建立dblinksys下建立public dblink,在description上写下如下。

(DESCRIPTION =(ADDRESS_LIST =(ADDRESS =(PROTOCOL = TCP)(HOST = 10.23.1.16)(PORT = 1521)))(CONNECT_DATA =(SERVICE_NAME = apts)))

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/25116248/viewspace-2122522/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2010-12-21

  • 博文量
    91
  • 访问量
    1203748