ORACLE資料庫切換和遷移方案
前言:
環境與要求:兩個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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle資料庫(DataGuard)遷移方案(上)Oracle資料庫
- Oracle資料庫(DataGuard)遷移方案(中)Oracle資料庫
- Oracle資料庫(DataGuard)遷移方案(下)Oracle資料庫
- Oracle資料庫(資料泵)遷移方案(上)Oracle資料庫
- Oracle資料庫(資料泵)遷移方案(下)Oracle資料庫
- OGG資料庫遷移方案(一)資料庫
- OGG資料庫遷移方案(二)資料庫
- OGG資料庫遷移方案(三)資料庫
- OGG資料庫遷移方案(四)資料庫
- 資料庫邏輯遷移方案資料庫
- oracle RAC 更換儲存遷移資料Oracle
- 無外網Oracle資料庫遷移Oracle資料庫
- 異構資料庫資料遷移 oracle to mysql之oracle sqlloader和mysql load data資料庫OracleMySql
- Oracle 19c adg全庫遷移資料Oracle
- 資料庫遷移資料庫
- Oracle資料庫歸檔模式的切換ELOracle資料庫模式
- Fastdfs資料遷移方案AST
- Oracle資料庫中資料行遷移與行連結Oracle資料庫
- 資料庫平滑遷移方案與實踐分享資料庫
- AWS RDS Oracle資料遷移Oracle
- Oracle資料庫升級或資料遷移的方法探討Oracle資料庫
- redis資料庫遷移Redis資料庫
- 資料庫遷移 :理解資料庫
- laravel資料庫遷移Laravel資料庫
- 資料遷移方案選擇
- Laravel資料庫遷移和填充(支援中文)Laravel資料庫
- SQL Server 資料庫最小當機遷移方案GESQLServer資料庫
- SpringBoot資料庫管理 - 用Liquibase對資料庫管理和遷移?Spring Boot資料庫UI
- linux mysql資料庫遷移LinuxMySql資料庫
- django資料庫遷移-15Django資料庫
- 用rman遷移資料庫資料庫
- 資料庫遷移手記資料庫
- 遷移MySQL 5.7資料庫MySql資料庫
- 資料庫遷移神器——Flyway資料庫
- dm資料庫遷移命令資料庫
- SQL Server資料庫遷移SQLServer資料庫
- redis叢集 資料遷移方案Redis
- Oracle RAC 遷移替換 OCR 盤Oracle
- Django切換MySQL資料庫DjangoMySql資料庫