ORACLE資料庫切換和遷移方案

wangyiou1988發表於2016-07-25

前言:
環境與要求:兩個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/,如需轉載,請註明出處,否則將追究法律責任。

相關文章