(通過檔案直接複製方法)
最近學習了一下Oracle資料庫啟動原理,於是,就把在Windows建立起來做測試的資料庫
移植到Linux下使用,前幾天把Linux移植到Windows成功,但Windows移植到Linux碰到問題會多,
在Windows用習慣人會不區分大小寫,但在Linux是區分的,這點務必請大家注意,下面讓我們一起去這過程吧!
還是和上面講的一樣,我直接通過檔案複製,把原來在Windows下使用的資料庫移植到Linux下,
而不需要通過其他工具。
雖然此移植在實際生產用途不大,但對一個剛oracle來說,確實能從中學到很多東西,所以寫
下此文以供大家參考,歡迎提出寶貴介意。
系統內容:Linux 下是32 位平台,Linux記憶體,CPU等硬體條件和Windows是一樣。
如果硬體條件不一至,下面講的資料移轉可能會碰到其他問題。
軟體環境:Linux平台和Windows平台裝的oracle軟體版本是
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prod
都是以企業版安裝。
如果兩邊版本不一至,還沒有實驗過。
我粗略講一下過程,把Windows下的資料檔案,控制檔案,重做日誌組檔案,
參數檔案,複到到Linux下,然後把參數檔案裡的控制檔案改成Linux目錄
下結構,同時使資料重建控制檔案。詳細步驟如下:
Linux平台下的資料庫配製如下
資料庫是以檔案系統管理
執行個體名:orcl
資料庫名:orcl
ORACLE_BASE=/u01/app/oracle/
ORACLE_HOME=/u01/app/oracle/product/10.2.0/db_1
資料庫檔案存放位置:/u02/oradata/orcl
Windows平台下的資料庫配製如下
資料庫是以檔案系統管理
執行個體名:orcl
資料庫名:orcl 由於資料庫是從Windows檔案直接複製過來,所以資料庫名是不能更改的
ORACLE_BASE=D:\oracle
ORACLE_HOME=D:\oracle\product\10.2.0\db_1
ORACLE_SID=orcl
資料庫檔案存放位置:D:\oracle\oradata\orcl
步驟如下:
--登入到Windows下資料庫
c:\>sqlplus / as sysdba
SQL*Plus: Release 10.2.0.1.0 - Production on 星期二 7月 1 14:53:23 2008
Copyright (c) 1982, 2005, Oracle. All rights reserved.
串連到:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
--建立參數pfile檔案
SQL> create pfile='initorcl.ora' from spfile;
檔案已建立。
--關畢資料庫
SQL> shutdown immediate;
資料庫已經關閉。
已經卸載資料庫。
ORACLE 常式已經關閉。
Linux平台如輸入如下建立檔案夾
mkdir -o /u02/oradata/orcl
複製參數檔案,控制檔案,資料檔案,重做日誌組檔案到Linux平台下的目錄,
我這裡是在Linux開了一個samba服務,然後把/u02/oradata/orcl檔案夾共用
也可以在Linux開個FTP,通過FTP把檔案傳到Linux機器上
Windows平台資料檔案,,重做日誌組檔案和控制檔案放在 D:\oracle\oradata\orcl
Linux平台下的資料檔案 /u02/oradata/orcl
Linux平台下的執行個體參數檔案window平台下的 D:\oracle\product\10.2.0\db_1\database\initorcl.ora
複製到Linux平台下的目錄
/u01/app/oracle/product/10.2.0/db_1/dbs/initorcl.ora
注意這裡的檔案名稱,Linux下檔案名稱是區分大小寫,所以把全部改成小寫
以下是Linux平台輸入如下命令來建立檔案夾:
mkdir -p /u01/app/oracle/admin/orcl/adump
mkdir -p /u01/app/oracle/admin/orcl/bdump
mkdir -p /u01/app/oracle/admin/orcl/cdump
mkdir -p /u01/app/oracle/admin/orcl/dpdump
mkdir -p /u01/app/oracle/admin/orcl/pfile
mkdir -p /u01/app/oracle/admin/orcl/udump
如果/u01/app/oracle/flash_recovery_area也不存在,也建立
mkdir -p /u01/app/oracle/flash_recovery_area
設計環境變數
set ORACLE_SID=Linux
或者更改oracle使用者下的.bash_profile檔案
ORACLE_SID=orcl; export ORACLE_SID
把ORACLE_SID改成orcl
用vi開啟檔案/u01/app/oracle/product/10.2.0/db_1/dbs/initorcl.ora
把Windows下的目錄結構改成Linux下的目錄結構。
注意下,在Linux下檔案名稱和檔案夾都是區分大小寫,請確保下面參數實際檔案名稱大小寫一至,否則就起動不了資料庫。
下面檔案是我的參數檔案資訊。供參考:
orcl.__db_cache_size=75497472
orcl.__java_pool_size=4194304
orcl.__large_pool_size=4194304
orcl.__shared_pool_size=75497472
orcl.__streams_pool_size=4194304
*.audit_file_dest='/u01/app/oracle/admin/orcl/adump'
*.audit_trail='DB'
*.background_dump_dest='/u01/app/oracle/admin/orcl/bdump'
*.compatible='10.2.0.1.0'
*.control_files='/u02/oradata/orcl/CONTROL01.CTL','/u02/oradata/orcl/CONTROL02.CTL','/u02/oradata/orcl/CONTROL03.CTL'
*.core_dump_dest='/u01/app/oracle/admin/orcl/cdump'
*.db_block_size=8192
*.db_domain=''
*.db_file_multiblock_read_count=16
*.db_name='orcl'
*.db_recovery_file_dest='/u01/app/oracle/flash_recovery_area'
*.db_recovery_file_dest_size=2147483648
*.dispatchers='(PROTOCOL=TCP) (SERVICE=orclXDB)'
*.job_queue_processes=10
*.open_cursors=300
*.pga_aggregate_target=16777216
*.processes=150
*.remote_login_passwordfile='EXCLUSIVE'
*.sga_target=167772160
*.undo_management='AUTO'
*.undo_tablespace='UNDOTBS1'
*.user_dump_dest='/u01/app/oracle/admin/orcl/udump'
建立密碼檔案
orapwd file=/u01/app/oracle/product/10.2.0/db_1/dbs/orapworcl password=<密碼>
Linux下登入資料庫
[oracle@localhost ~]$ sqlplus / as sysdba
SQL*Plus: Release 10.2.0.1.0 - Production on Mon Jul 7 13:24:38 2008
Copyright (c) 1982, 2005, Oracle. All rights reserved.
Connected to an idle instance.
SQL>
--啟動到mount下
SQL> startup mount pfile=/u01/app/oracle/product/10.2.0/db_1/dbs/initorcl.ora;
ORACLE instance started.
Total System Global Area 167772160 bytes
Fixed Size 1218316 bytes
Variable Size 88082676 bytes
Database Buffers 75497472 bytes
Redo Buffers 2973696 bytes
Database mounted.
--建立一個spfile檔案,下次以spfile檔案啟動
SQL> create spfile='spfileorcl.ora' from pfile;
File created