exp遷移測試庫10 2 0 5

2022-06-15 11:36:11 字數 3944 閱讀 4222

目的:

將一套10.2.0.5的up-unix系統的資料,遷移到一台windows環境下。

遷移方案:由於不同的作業系統,為了方便遷移,只是測試,使用exp/imp方式。

遷移流程:

一.源端匯出

1)確定資料庫大小

sql>select round(sum(bytes)/1024/1024/1024,2) from dba_segments;

2)確定資料庫版本,及字符集

sql>select * from nls_database_parameters;

nls_characterset               us7ascii            資料庫字符集

nls_nchar_characterset  al16utf16          國家字符集

nls_rdbms_version             10.2.0.4.0             資料庫版本

3)遷移的使用者數量

sql> select 'create user '||a.username||' identified by values '''||b.password||''';' from dba_users a,user$ b where

b.name=a.username and a.username not like '%sys%' and a.account_status='open';

4)資料匯出

$imp system/oracle file=/u01/dump/exp_full_20190325.dmp log=/u01/dump/exp_full_20190325.log full=y

5)  dump檔案傳輸

選擇二進位制方式,使用ftp傳輸不要選擇預設方式,否則預設轉換後dump檔案損壞

· ascii -   設定檔案傳輸型別為ascii,預設型別

· binary -   設定檔案傳輸型別為binary(二進位制傳輸) 

ftp> binary         --傳輸前進行修改傳輸型別,選擇binary方式

200 switching to binary mode.

傳輸後,通過ls -lrt 等方式對比位元組數量,確認無誤.

imp-00010 during import using a transferred file (文件 id 157954.1)

changes

copied export dump file from windows to solaris.

cause

export file was copied/transferred as ascii file instead of binary.

solution

copy/transfer the export dump file as binary not ascii.

二、目標端匯入前準備

1)資料庫版本與源端一致。

2)建立永久、臨時表空間

select tablespace_name,sum(bytes)/1024/1024/1024 g,sum(maxbytes)/1024/1024/1024 maxg from dba_data_files group by tablespace_name;

select tablespace_name,sum(bytes)/1024/1024/1024 g,sum(maxbytes)/1024/1024/1024 maxg from dba_temp_files group by tablespace_name;

3)遷移使用者

3.1備份

新庫,匯入前,備份系統使用者名稱:

select username from dba_users;

3.2建立批量刪除使用者指令碼:

select 'drop user '||username||' cascade;' from dba_users where username not in('a','b');

3.2建立使用者

sql> select 'create user '||a.username||' identified by values '''||b.password||''';' from dba_users a,user$ b where

b.name=a.username and a.username not like '%sys%' and a.account_status='open';

對使用者修改預設表空間

sql> select 'alter user '||username||' default tablespace '||default_tablespace||';' from dba_users where account_status='open' and username not like '%sys%';

4)使用者授權【備選方案,實際操作中imp匯入自動進行】

源端test4需要檢查是否存在非預設角色

sql> select 'grant '||granted_role||' to '||grantee||';' from dba_role_privs;

sql> select 'grant '||privilege||' to '||grantee||';' from dba_sys_privs;

5)引數修改

5.1.引數值備份

show parameter workarea_size_policy

show parameter sort_area_size

show parameter db_file_multiblock_read_count

show parameter "_sort_multiblock_read_count"

5.2.引數修改

alter system set workarea_size_policy = manual;

alter system set sort_area_size=1024000000 scope=spfile;

alter system set db_file_multiblock_read_count= 128;

6).匯入操作

imp user/pwd  file=/u01/dump/exp_full_20190325.dmp log=/u01/dump/imp_full_20190325.log full=y

commit=y feedback=10000 buffer=10240000 ignore=y

7)資料對比

sql> select object_type,count(*) from dba_objects group by object_type order by 2;

sql> select object_type,count(*) from dba_objects where owner='sys' group by object_type order by 2;

sql>select round(sum(bytes)/1024/1024/1024,2) from dba_segments;

sql> select tablespace_name,count(*) from dba_segments group by tablespace_name;

sql> select segment_type,count(*) from dba_segments where tablespace_name='users' group by segment_type;

7)引數回退

sql>  alter system set workarea_size_policy =auto;

sql> alter system set sort_area_size=65536 scope=spfile;

sql> alter system set db_file_multiblock_read_count= 16;

8)失效物件重新編譯

編譯失效物件:

sql>@$oracle_home/rdbms/admin/utlrp.sql

exp單個使用者方案遷移

1 匯出的資料 一 匯出指定使用者 方案 的資料 exp system system owner username file home file data.dmp 如果使用該使用者自己匯出自己的方案,可以先給該使用者賦予匯出許可權 sql grant export full database to ...

oracle使用exp與imp對資料遷移備份的方法

使用exp和imp命令是oracle對資料進行遷移備份的一種最簡單最常用的一種方式。在此記錄下使用的方法步驟,以備後用。首先,在老庫上使用命令 exp userid username password database owner file dmp log log 其中 後面的database是資料...

資料遷移測試

在這幾年的測試工作中,往往會涉及到資料遷移的測試,總結一下資料遷移測試的關注點 1 遷移資料的完整性,主要是資料條數,該遷移的是否都前移到了新的資料庫。2 遷移資料在新的資料庫中的正確性,主要注意點 1 舊資料非必輸字段,在新資料庫中必輸,這種資料的處理是否正確。2 對於單選或多選字段,舊資料與新資...