當前位置:首頁 » 數據倉庫 » oracle不同資料庫數據遷移
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

oracle不同資料庫數據遷移

發布時間: 2023-06-10 06:22:05

1. 如何將正在運行的 Oracle 資料庫遷移到另一個系統

1、安裝 Oracle Solaris 操作系統

新的 SPARC 伺服器上預先安裝了 Oracle Solaris。對於這些系統,應確保安裝了相應的 Oracle Solaris 版本,並驗證打了所需的補丁。

2、安裝 Oracle VM Server for SPARC 軟體

新的 SPARC 伺服器上也預先安裝了 Oracle VM Server for SPARC 軟體。對於這些系統,應確保安裝了相應的 Oracle VM Server for SPARC 版本,並驗證打了所有需要的補丁。

3、配置存儲陣列

Sun Storage 2540-M2 存儲陣列連接到控制域,控制域將兩個 LUN(LUN 0 和 LUN 1)作為虛擬磁碟導出到來賓域。

4、配置控制域

安裝 Oracle VM Server for SPARC 軟體之後,重新配置當前系統使其成為控制域。

5、配置來賓域

配置控制域之後,創建來賓域以用作 Oracle 資料庫節點。在作為源計算機的物理伺服器上,僅創建一個來賓域。另一台物理伺服器最終將成為目標計算機。

6、准備目標伺服器

按如下方式准備目標伺服器。

  • 執行以下各節中所述的步驟來准備目標計算機:

  • 安裝 Oracle VM Server for SPARC 軟體

  • 配置控制域

  • 確保在目標伺服器上提供了供待遷移域使用的所有虛擬 I/O 服務。

  • 確保目標伺服器有權訪問同一存儲中的 LUN 0 和 LUN 1。

  • 確保待遷移域中的每個虛擬網路設備在目標計算機上都有一個對應的虛擬網路交換機。

2. Oracle資料庫遷移的幾種方式

數據量小的話一般直接用數據泵或者exp/imp就OK了,也可以用RMAN備份,這些都是比較常規的,偏門點的可以用傳輸表空間,dblink直接復制等,反正看情況。

3. 解決oracle兩個的資料庫之間數據遷移方法

1.exp/imp:可針對整個資料庫對象、用戶對象、指定表等進行。(需控制重復對象,數據錶停用狀態下進行)
2.sqlldr:對某個或幾個表的特定資料導出為文本文件,再用sqlldr導入。(文本格式要正確,控制較復雜,效率低)
3.建立兩個資料庫間鏈接,直接用insert或語句遷移,也是針對少數表進行。(可在資料庫使用狀態下進行)

4. 如何將ORACLE資料庫數據文件遷移到其它目錄

您好,很高興為您解答。

源資料庫數據文件位置:/u01/oradata/orcl

實驗中想把數據文件遷移到的位置:/u01/oradata/orcl_test

源資料庫數據文件位置:
sys@ORCL> select file_name from dba_data_files;
FILE_NAME
----------------------------------------
/u01/oradata/orcl/system01.dbf
/u01/oradata/orcl/undotbs01.dbf
/u01/oradata/orcl/sysaux01.dbf
/u01/oradata/orcl/users01.dbf
sys@ORCL> select file_name from dba_temp_files;
FILE_NAME
----------------------------------------
/u01/oradata/orcl/temp01.dbf

sys@ORCL> col member for a30
sys@ORCL> select member from v$logfile ;
MEMBER
------------------------------
/u01/oradata/orcl/redo01.log
/u01/oradata/orcl/redo02.log
/u01/oradata/orcl/redo03.log

需要移動所有的數據文件,採用alter database 方法
1、關閉資料庫
sys@ORCL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
2、移動數據文件到/u01/oradata/orcl_test目錄
[oracle@ora10gserv orcl]$ pwd
/u01/oradata/orcl
[oracle@ora10gserv orcl]$ mv * /u01/oradata/orcl_test/
[oracle@ora10gserv orcl]$ ls
[oracle@ora10gserv orcl]$ cd /u01/oradata/orcl_test/
[oracle@ora10gserv orcl_test]$ ls
control01.ctl control03.ctl redo02.log sysaux01.dbf temp01.dbf users01.dbf
control02.ctl redo01.log redo03.log system01.dbf undotbs01.dbf
3、修改控制文件位置
[oracle@ora10gserv /]$ sqlplus /nolog
SQL*Plus: Release 10.2.0.1.0 - Proction on Tue Aug 2 00:05:27 2011
Copyright (c) 1982, 2005, Oracle. All rights reserved.
SQL> conn /as sysdba
Connected to an idle instance.
SQL> startup nomount
ORACLE instance started.
Total System Global Area 465567744 bytes
Fixed Size 1220024 bytes
Variable Size 146801224 bytes
Database Buffers 314572800 bytes
Redo Buffers 2973696 bytes
SQL> create pfile='/u01/initorcl.ora' from spfile;
File created.
SQL> host vi /u01/initorcl.ora
orcl.__db_cache_size=314572800
orcl.__java_pool_size=4194304
orcl.__large_pool_size=4194304
orcl.__shared_pool_size=138412032
orcl.__streams_pool_size=0
*.audit_file_dest='/dba/admin/orcl/amp'
*.background_mp_dest='/dba/admin/orcl/bmp'
*.compatible='10.2.0.1.0'
*.control_file_record_keep_time=14
*.control_files='/u01/oradata/orcl_test/control01.ctl','/u01/oradata/orcl_test/control02.ctl','/u01/oradata/orcl_test/control03.ctl'
*.core_mp_dest='/dba/admin/orcl/cmp'
*.db_block_size=8192
*.db_domain='lsf.com.cn'
*.db_file_multiblock_read_count=16
*.db_name='orcl'
*.db_recovery_file_dest='/dba/flash_recovery_area'
*.db_recovery_file_dest_size=2147483648
*.dispatchers='(PROTOCOL=TCP) (SERVICE=orclXDB)'
*.job_queue_processes=10
*.log_archive_dest_1='location=/u01/arch_orcl'
*.open_cursors=300
*.pga_aggregate_target=154140672
*.processes=1000
*.remote_login_passwordfile='EXCLUSIVE'
*.sessions=2000
*.sga_target=463470592
*.undo_management='AUTO'
*.undo_retention=10800
*.undo_tablespace='UNDOTBS1'
*.user_mp_dest='/dba/admin/orcl/ump'
SQL> shutdown immediate
ORA-01507: database not mounted

ORACLE instance shut down.
SQL> create spfile from pfile='/u01/initorcl.ora';
File created.
4、啟動資料庫到mount狀態,更改數據文件位置
idle> startup mount
ORACLE instance started.
Total System Global Area 465567744 bytes
Fixed Size 1220024 bytes
Variable Size 146801224 bytes
Database Buffers 314572800 bytes
Redo Buffers 2973696 bytes
Database mounted.
idle> alter database rename file '/u01/oradata/orcl/system01.dbf' to '/u01/oradata/orcl_test/system01.dbf';
Database altered.
idle> alter database rename file '/u01/oradata/orcl/undotbs01.dbf' to '/u01/oradata/orcl_test/undotbs01.dbf';
Database altered.
idle> alter database rename file '/u01/oradata/orcl/sysaux01.dbf' to '/u01/oradata/orcl_test/sysaux01.dbf';
Database altered.
idle> alter database rename file '/u01/oradata/orcl/users01.dbf' to '/u01/oradata/orcl_test/users01.dbf';
Database altered.

5、繼續接著第4步,更改聯機日誌文件位置
idle> alter database rename file '/u01/oradata/orcl/redo01.log' to '/u01/oradata/orcl_test/redo01.log';
Database altered.
idle> alter database rename file '/u01/oradata/orcl/redo02.log' to '/u01/oradata/orcl_test/redo02.log';
Database altered.
idle> alter database rename file '/u01/oradata/orcl/redo03.log' to '/u01/oradata/orcl_test/redo03.log';
Database altered.

6、打開資料庫
idle> alter database open;
Database altered.
idle> conn /as sysdba
Connected.
sys@ORCL> select file_name from dba_data_files;
FILE_NAME
----------------------------------------
/u01/oradata/orcl_test/system01.dbf
/u01/oradata/orcl_test/undotbs01.dbf
/u01/oradata/orcl_test/sysaux01.dbf
/u01/oradata/orcl_test/users01.dbf
sys@ORCL> select file_name from dba_temp_files;
FILE_NAME
----------------------------------------
/u01/oradata/orcl/temp01.dbf
sys@ORCL> col member for a40
sys@ORCL> select member from v$logfile;
MEMBER
----------------------------------------
/u01/oradata/orcl_test/redo01.log
/u01/oradata/orcl_test/redo02.log
/u01/oradata/orcl_test/redo03.log

sys@ORCL> col name for a50
sys@ORCL> select name from v$controlfile;
NAME
--------------------------------------------------
/u01/oradata/orcl_test/control01.ctl
/u01/oradata/orcl_test/control02.ctl
/u01/oradata/orcl_test/control03.ctl
7、臨時文件的處理
由於控制文件不記錄臨時文件的信息,所以不能使用alter database rename file 命令完成,只能刪除掉原來的再創建一個
sys@ORCL> create temporary tablespace temp02 tempfile '/u01/oradata/orcl_test/temp02.dbf' size 200m autoextend on extent management local uniform size 1m;
Tablespace created.
sys@ORCL> alter database default temporary tablespace temp02;
Database altered.
sys@ORCL> drop tablespace temp including contents and datafiles;
Tablespace dropped.
sys@ORCL> select file_name from dba_temp_files;
FILE_NAME
----------------------------------------
/u01/oradata/orcl_test/temp02.dbf

[oracle@ora10gserv orcl_test]$ ls -l
total 1427572
-rw-r----- 1 oracle oinstall 7061504 Aug 2 00:20 control01.ctl
-rw-r----- 1 oracle oinstall 7061504 Aug 2 00:20 control02.ctl
-rw-r----- 1 oracle oinstall 7061504 Aug 2 00:20 control03.ctl
-rw-r----- 1 oracle oinstall 52429312 Aug 2 00:20 redo01.log
-rw-r----- 1 oracle oinstall 52429312 Aug 2 00:15 redo02.log
-rw-r----- 1 oracle oinstall 52429312 Aug 2 00:15 redo03.log
-rw-r----- 1 oracle oinstall 251666432 Aug 2 00:20 sysaux01.dbf
-rw-r----- 1 oracle oinstall 503324672 Aug 2 00:20 system01.dbf
-rw-r----- 1 oracle oinstall 209723392 Jul 21 22:00 temp01.dbf
-rw-r----- 1 oracle oinstall 209723392 Aug 2 00:20 temp02.dbf
-rw-r----- 1 oracle oinstall 419438592 Aug 2 00:20 undotbs01.dbf
-rw-r----- 1 oracle oinstall 104865792 Aug 2 00:15 users01.dbf
[oracle@ora10gserv orcl_test]$ rm -rf temp01.dbf
sys@ORCL> select username,temporary_tablespace from dba_users;
USERNAME TEMPORARY_TABLESPACE
------------------------------ ------------------------------
MGMT_VIEW TEMP02
SYS TEMP02
SYSTEM TEMP02
DBSNMP TEMP02
SYSMAN TEMP02
OUTLN TEMP02
MDSYS TEMP02
ORDSYS TEMP02
CTXSYS TEMP02
ANONYMOUS TEMP02
EXFSYS TEMP02
DMSYS TEMP02
WMSYS TEMP02
XDB TEMP02
ORDPLUGINS TEMP02
SI_INFORMTN_SCHEMA TEMP02
OLAPSYS TEMP02
MDDATA TEMP02
DIP TEMP02
TSMSYS TEMP02
20 rows selected.

如若滿意,請點擊右側【採納答案】,如若還有問題,請點擊【追問】

希望我的回答對您有所幫助,望採納!

~ O(∩_∩)O~

5. oracle資料庫遷移到另一個oracle資料庫

這個就簡單了,備份庫1,還原到庫2即可;或者將庫1的表結構和insert語句分別導出,放到庫2執行一次就行了,或者藉助三方工具,比如kettle