ITPub博客

首页 > 数据库 > Oracle > TTS 测试笔记

TTS 测试笔记

原创 Oracle 作者:wmlm 时间:2016-01-11 11:47:00 0 删除 编辑
TTS 测试笔记


基本虚拟机测试服务器环境和工作目标
源端
10.3.105.33
oracle 11.2.0.4.0

目标端
10.3.105.26
oracle 11.2.0.4.0 ASM

迁移目标表空间orcl.users

------------------------------------------


计划步骤
1 目标端确认数据库环境,已经可以使用ASM 磁盘组, 添加业务用户,删除users表空间,共享NFS /nfs/mycp
2 源端服务器挂载NFS,确认读写权限,测试传输速度 /nfs/mycp
3 在源数据库上添加directory,指向/nfs/mycp
4 在源库上做传输集一致性检查 脚本完成
conn /as sysdba
exec ww_tts_check
select * from sys.transport_set_violations;
 
5 停止应用程序之后,停止监听器,重启数据库,将表空间置为只读模式
/home/oracle/tbs_readonly.sql 

6 在源库上,编辑导出参数文件,导出表空间的元数据 然后停止数据库
cat /nfs/mycp/exp.par 
expdp system/system parfile=exp.par

sqlplus / as sysdba
shutdown immediate

7 在源库上,使用cp复制数据文件,运行复制脚本
# chown oracle:oinstall /nfs/mycp
$ /nfs/mycp/cp_datafiles.sh   

8 在新库上转换数据文件
/nfs/mycp/convert_datafile.sql 

9 在新库上添加目录,
# chown -R oracle:oinstall /nfs/mycp

sqlplus / as sysdba
CREATE OR REPLACE DIRECTORY mycp AS '/nfs/mycp';
GRANT READ,WRITE ON DIRECTORY mycp TO system;

10 在新库上,导入表空间
cat /nfs/mycp/imp.par 
impdp system/system parfile=imp.par

11 在新库上,将表空间改为读写模式
/nfs/mycp/tbs_readwrite.sql 
------------------------------------------
分步骤脚本内容


1 目标端确认数据库环境,已经可以使用ASM 磁盘组, 添加业务用户,删除users表空间,共享NFS /nfs/mycp
目标端服务器 192.168.56.103


# uname -a
Linux node2 2.6.32-279.el6.x86_64 #1 SMP Wed Jun 13 18:24:36 EDT 2012 x86_64 x86_64 x86_64 GNU/Linux
# cat /etc/issue
Red Hat Enterprise Linux Server release 6.3 (Santiago)
Kernel \r on an \m


共享NFS /nfs/mycp
root@node2 ~]# rpm -qa |grep rpcbind
rpcbind-0.2.0-9.el6.x86_64
# 
# 
# rpm -qa|grep nfs
nfs-utils-1.2.3-26.el6.x86_64
nfs4-acl-tools-0.3.3-6.el6.x86_64
nfs-utils-lib-1.1.5-4.el6.x86_64
# mkdir -p /nfs/mycp
# chown -R oracle:oinstall /nfs


# vi /etc/exports


/nfs *(rw,sync)


# service rpcbind status
rpcbind (pid  1213) is running...
# 
# service nfs status
rpc.svcgssd is stopped
rpc.mountd is stopped
nfsd is stopped
rpc.rquotad is stopped
# service nfs start
Starting NFS services:  [  OK  ]
Starting NFS quotas: [  OK  ]
Starting NFS mountd: [  OK  ]
Stopping RPC idmapd: [  OK  ]
Starting RPC idmapd: [  OK  ]
Starting NFS daemon: [  OK  ]
# 

# exportfs -r
# 
# showmount --export
Export list for node2:
/nfs *
# 


源端服务器 192.168.56.102
# mkdir -p /nfs
# mount 192.168.56.103:/nfs /nfs
# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/vg_node1-lv_root
                       50G   20G   28G  42% /
tmpfs                 939M  100K  939M   1% /dev/shm
/dev/sda1             485M   37M  423M   8% /boot
/dev/mapper/vg_node1-lv_home
                      5.5G  158M  5.1G   3% /home
192.168.56.103:/nfs    50G   25G   23G  53% /nfs
# ls -l /nfs
# su - oracle
$ cd /nfs/mycp
touch 102.log
rm 102.log


源端数据库确认表空间上的用户
sqlplus / as sysdba
conn /as sysdba
select distinct owner from dba_segments where tablespace_name='USERS';
select username ,account_status from dba_users;


目标端数据库,删除users表空间
SQL> drop tablespace users including contents and datafiles;
drop tablespace users including contents and datafiles
*
ERROR at line 1:
ORA-12919: Can not drop the default permanent tablespace




select name from v$datafile;
create tablespace u3 datafile
  '/u01/app/oracle/oradata/orcl/u3.ora' size 10M;
alter database default tablespace u3;
drop tablespace users including contents and datafiles

2 源端服务器挂载NFS,确认读写权限,测试传输速度 /nfs/mycp
$ time cp /u01/app/oracle/oradata/orcl/users01.dbf ./

3 在源数据库上添加directory,指向/nfs/mycp
create directory dmp_dir
  as
 '/nfs/mycp';

grant read,write on directory dmp_dir to public;

4 在源库上做传输集一致性检查 脚本完成
conn /as sysdba
exec ww_tts_check
select * from sys.transport_set_violations;

create or replace procedure ww_tts_check is
begin
  dbms_tts.transport_set_check(
  'USERS',  
  true);
end ww_tts_check;
/




5 停止应用程序之后,停止监听器,重启数据库,将表空间置为只读模式
/home/oracle/tbs_readonly.sql 
ALTER TABLESPACE USERS READ ONLY;

6 在源库上,编辑导出参数文件,导出表空间的元数据 然后停止数据库
cat /nfs/mycp/exp.par 
expdp system/system parfile=exp.par

sqlplus / as sysdba
shutdown immediate

vi exp.par

DUMPFILE=expdat.dmp
DIRECTORY=dmp_dir
TRANSPORT_FULL_CHECK=Y
TRANSPORT_TABLESPACES=
USERS

部分日志内容:
Dump file set for SYS.SYS_EXPORT_TRANSPORTABLE_01 is:
  /nfs/mycp/expdat.dmp
******************************************************************************
Datafiles required for transportable tablespace USERS:
  /u01/app/oracle/oradata/orcl/users01.dbf
Job "SYS"."SYS_EXPORT_TRANSPORTABLE_01" successfully


7 在源库上,使用cp复制数据文件,运行复制脚本
# chown oracle:oinstall /nfs/mycp
$ /nfs/mycp/cp_datafiles.sh   

cp /u01/app/oracle/oradata/orcl/users01.dbf /nfs/mycp/users01.dbf
这一步要注意原数据库中,是否有重名的数据文件!!

8 在新库上转换数据文件
/nfs/mycp/convert_datafile.sql 
RMAN>  CONVERT DATAFILE
'/nfs/mycp/lssj_data_01.dbf',
'/nfs/mycp/zwgl_data_14.dbf'
TO PLATFORM="IBM zSeries Based Linux"
FROM PLATFORM="Linux x86 64-bit"
DB_FILE_NAME_CONVERT="/nfs/mycp/", "+DATA01/SJRKK/DATAFILE/"
;

RMAN>   CONVERT DATAFILE
'/nfs/mycp/users01.dbf'
DB_FILE_NAME_CONVERT="/nfs/mycp/", "+DATA/"
;

部分日志内容:
elapsed time: 00:02:05
如果文件多,可以在convert 时加上并行 PARALLELISM=4 .
这个转换要在cp结束后自动进行,通过远程调用10服务器上的rman脚本。 ?

ssh rac1 /home/oracle/ww_t1.sh

oracle@rac1:~> cat ww_t1.sh
chown oracle:oinstall /nfs/mycp/*

su - oracle <<eof
. /home/oracle/.bash_profile
rman target / log /home/oracle/ww_t1.log append @convert_datafile_571.cmd 
exit
EOF


这一步容易出现错误的原因:源数据库的数据文件有重复
'/nfs/mycp/RKXX_DATAe06.dbf',
'/nfs/mycp/RKXX_DATAe06.dbf',


解决方案:
  检查有多少重名的数据文件,在rman中单独convert   是否可行 ??? --》 double_datafilename.txt
select substr(name,instr(name,'/',-1)+1,length(name)) as filename,count(1)
  from v$datafile
  group by  substr(name,instr(name,'/',-1)+1,length(name)) 
  having count(1)>1


9 在新库上添加目录,
# chown -R oracle:oinstall /nfs/mycp

sqlplus / as sysdba
CREATE OR REPLACE DIRECTORY mycp AS '/nfs/mycp';
GRANT READ,WRITE ON DIRECTORY mycp TO system;

10 在新库上,导入表空间
cat /nfs/mycp/imp.par 
impdp system/system parfile=imp.par

DUMPFILE=expdat.dmp
DIRECTORY=mycp
TRANSPORT_DATAFILES=
'+DATA/users01.dbf'

根据需要定制数据文件所在目录。

11 在新库上,将表空间改为读写模式
/nfs/mycp/tbs_readwrite.sql 
ALTER TABLESPACE USERS read write;

其他:
恢复业务用户的默认表空间
alter user ww default tablespace users;
select default_tablespace from dba_users where username='WW';
------------------------------------------

</eof<>

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/271063/viewspace-1974779/ ,如需转载,请注明出处,否则将追究法律责任。

下一篇: Linux locale issue
请登录后发表评论 登录
全部评论

注册时间:2008-04-08

  • 博文量
    398
  • 访问量
    3716789