前言:
环境与要求:两个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;
附:建立dblink在sys下建立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/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/25116248/viewspace-2122522/