单实例到RAC数据迁移
测试过程如下:
(1) 在单实例数据库上统计数据文件,对象数量等
(2) 单实例服务器中创建directory ,供导出数据使用
(3) 打开监控
(4) 使用SYSTEM用户导出SHEMA数据
(5) 到导出目录“/home/oracle/dump”检查备份文件
(6) 拷贝数据文件到RAC服务器上
(7) RAC创建一致的表空间名称,具体文件可以不一,保证表空间一致性
(8) RAC服务器中创建directory :imp_dir
(9) 导入数据
验证字符集和国家字符集
SQL> select * from nls_database_parameters where parameter in ('NLS_CHARACTERSET','NLS_NCHAR_CHARACTERSET');
PARAMETER VALUE
NLS_CHARACTERSET AL32UTF8
NLS_NCHAR_CHARACTERSET UTF8
一. 统计对象数量
SQL> select m.FILE_NAME,user_bytes/1024/1024/1024 "USE(GM)" from dba_data_files M;
FILE_NAME USE(GB)
1 /ora_data/MESPROD/MESPROD/system01.dbf 1.9912109375
2 /ora_data/MESPROD/MESPROD/sysaux01.dbf 0.6630859375
3 /ora_data/MESPROD/MESPROD/undotbs01.dbf 0.2041015625
4 /ora_data/MESPROD/MESPROD/users01.dbf 0.00390625
5 /ora_data/MESPROD/MESPROD/insite01.dbf 3.96331787109375
6 /ora_data/MESPROD/MESPROD/insite02.dbf 3.935546875
7 /ora_data/MESPROD/MESPROD/insite03.dbf 3.91705322265625
8 /ora_data/MESPROD/MESPROD/insite04.dbf 3.9210205078125
已选择8行。
-- 对象统计
select M.OBJECT_TYPE,count(1) from user_objects M group by M.OBJECT_TYPE
1 | SEQUENCE | 6 |
2 | PROCEDURE | 28 |
3 | LOB | 42 |
4 | PACKAGE BODY | 3 |
5 | PACKAGE | 5 |
6 | TYPE BODY | 2 |
7 | TRIGGER | 6 |
8 | TABLE | 1242 |
9 | INDEX | 2453 |
10 | VIEW | 31 |
11 | FUNCTION | 14 |
12 | TYPE | 24 |
select M.OBJECT_NAME,M.OBJECT_TYPE,M.status,M.TEMPORARY from user_objects M where STATUS <> 'VALID'
-- 无效对象统计
1 | D_SCDATE | PROCEDURE | INVALID | N |
2 | CSICREATEINDEXES | PROCEDURE | INVALID | N |
3 | CSI24HRFACTPERFSUMSTVIEW | VIEW | INVALID | N |
4 | CSIFACTPERFSUMSTVIEW | VIEW | INVALID | N |
5 | CSIYIELDSTVIEW | VIEW | INVALID | N |
6 | CSIGETISSUEDHIERARCHY_BO | PROCEDURE | INVALID | N |
7 | CSIGETISSUEDHIERARCHY | PROCEDURE | INVALID | N |
8 | CSI_QUALITY_OBJECT_INQUIRY | PACKAGE BODY | INVALID | N |
9 | EVENT_CAPA_V | VIEW | INVALID | N |
10 | CSIGETEVENTLOTSTATUS | FUNCTION | INVALID | N |
11 | CSIEVENTVIEW | VIEW | INVALID | N |
12 | CSIAPPROVALCYCLEVIEW | VIEW | INVALID | N |
13 | EQUIPMENTDISPATCH | PACKAGE BODY | INVALID | N |
14 | CSIRBACCREATEPERMISSIONSFORQRY | PROCEDURE | INVALID | N |
二. 创建directory ,供导出数据使用
SQL> sqlplus / as sysdba
SQL> create or replace directory exp_dir as '/home/oracle/dump'
三 打开监控
Tail -1000f alert_MES1.log;
四 使用SYSTEM用户导出SHEMA所有数据
[oracle@localhost ~]$ expdp system/ANAN@MESPROD SCHEMAS=INSITE directory=exp_dir DUMPFILE=InSite_20141105.DMP LOGFILE=InSite_20141115.log reuse_dumpfiles=y
******************************************************************************
Dump file set for SYSTEM.SYS_EXPORT_SCHEMA_01 is:
/ora_bkup/exp_dir/InSite_20141105.DMP
Job "SYSTEM"."SYS_EXPORT_SCHEMA_01" successfully completed at 14:26:25
五 . 到导出目录“/home/oracle/dump”检查备份文件
[oracle@fps-mes-data01 exp_dir]$ ls -hl
total 13G
-rw-r-----. 1 oracle dba 12G Nov 5 14:26 InSite_20141105.DMP
4.2 在RAC服务器上创建导入directory,
注:完全可以不一致,文件夹名称,具体OS路径均可不一致
SQL> create or replace directory exp_dir as '/home/oracle/dump'
Directory created.
SQL> select directory_name,directory_path from dba_directories;
DIRECTORY_NAME DIRECTORY_PATH
------------------------------ ------------------------------------------------------------
EXP_DIR /home/oracle/dump
六.拷贝数据文件到RAC服务器上
[oracle@fps-mes-data01exp_dir]$
scp InSite_20141105.DMP oracle@192.168.224.71:/home/oracle/dump
oracle@192.168.224.71's password:
InSite_20141105.DMP 100% 11GB 41.5MB/s 04:33
七. 创建一致的表空间名称,具体文件可以不一,保证表空间一致性
:一定要保证表空间单点服务器,导出的服务器是一致的!
八 创建文件夹 imp_dir
九 导入数据
[oracle@rac1 MES1]$ export ORACLE_SID=MES1
[oracle@rac1 MES1]$ impdp system/ANAN DIRECTORY=imp_dir DUMPFILE=InSite_20141105.DMP logfile=20141105imp.log REMAP_SCHEMA=INSITE:INSITE