Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1244585
  • 博文数量: 350
  • 博客积分: 10
  • 博客等级: 民兵
  • 技术积分: 5668
  • 用 户 组: 普通用户
  • 注册时间: 2011-03-23 17:53
文章分类

全部博文(350)

文章存档

2013年(350)

分类: Oracle

2013-04-24 16:24:11

之前在测试传输表空间时感受了一下跨平台的移值,当时只测试了通过传输表空间的特性复制某个指定表空间,或者是通过RMAN中的CONVERT或TTS复制数据库,测试结束之后,感觉ORACLE10G之后对不同平台(相同字节顺序)的数据文件相互兼容性方面得到大大提升,下意识认为不通过传输表空间直接复制数据文件应该也可以,今天在本地测试了一下,确实相当好使,通过这种方式使得跨平台的移植更加高效,也易于管理和操作,下面记录的为操作过程。

注意:源平台与目标平台的字节顺序(endian format)需要相同。更多概念可以参考我的笔记"使用可传输表空间的特性复制数据"



源平台:linux AS4U2(32bit)+oracle 10.2.0.3

目标平台:Windows2003sp1(32bit)+oracle10.2.0.3


1、生成客户端初始化参数文件---linux操作

SQL> create pfile from spfile;


文件已创建。


2、生成重建控制文件脚本---linux操作

SQL> alter database backup controlfile to trace;


数据库已更改。


3、复制文件----linux操作

为创建一致性复制,首先关闭源数据库。

SQL> shutdown immediate

数据库已经关闭。

已经卸载数据库。

ORACLE 例程已经关闭。


复制所有数据文件、重做日志文件、归档文件、控制文件创建脚本、客户端初始化参数文件、listener.ora,tnsnames.ora等到目标平台(控制文件需要重建,可以不用复制了)。

方式多样,过程就不演示了。


注:以下步骤均在windows平台操作,(Linux先生您辛苦了,放心吧人民不会忘记你的,等完成windows的复制我就把你格了~~~~)。


4、新建OracleService

E:ora10g>oradim -new -sid jsstts

实例已创建。

注意SID要与linux服务器中的相同。


5、修改初始化参数文件

注意修改初始化参数文件中路径,比如*_dest的参数。例如:

*.audit_file_dest='E:ora10gproduct10.2.0adminjssttsadump'

*.background_dump_dest='E:ora10gproduct10.2.0adminjssttsbdump'

*.compatible='10.2.0.1.0'

*.control_files='E:ora10goradatajssttscontrol01.ctl','E:ora10goradatajssttscontrol02.ctl','E:ora10goradatajssttscontrol03.ctl'

*.core_dump_dest='E:ora10gproduct10.2.0adminjssttscdump'

*.db_name='jsstts'

....

....

*.user_dump_dest='E:ora10gproduct10.2.0adminjssttsudump'



6、创建spfile

SQL> create spfile from pfile='E:ora10goradatajssttsinitjsstts.ora';


文件已创建。



7、重建控制文件(也别忘了更改文件路径)

由于是完全备份,因此我们选择noresetlogs方式重建(如果你的复制并非建立数据文件一致性的基础上,那你只能选择resetlogs方式重建)。

SQL> CREATE CONTROLFILE REUSE DATABASE "jsstts" NORESETLOGS NOARCHIVELOG

2 MAXLOGFILES 16

3 MAXLOGMEMBERS 3

4 MAXDATAFILES 100

5 MAXINSTANCES 8

6 MAXLOGHISTORY 292

7 LOGFILE

8 GROUP 1 'E:ora10goradatajssttsredoA01.log' SIZE 20M,

9 GROUP 2 'E:ora10goradatajssttsredoA02.log' SIZE 20M,

10 GROUP 3 'E:ora10goradatajssttsredoA03.log' SIZE 20M

11 -- STANDBY LOGFILE

12 DATAFILE

13 'E:ora10goradatajssttssystem01.dbf',

14 'E:ora10goradatajssttsundotbs01.dbf',

15 'E:ora10goradatajssttssysaux01.dbf',

16 'E:ora10goradatajssttsusers01.dbf',

17 'E:ora10goradatajssttsjssweb.dbf'

18 CHARACTER SET ZHS16GBK

19 ;


控制文件已创建。


--由于之前使用正常关闭,数据文件处于一致性状态,不需要恢复,直接打开即可。


SQL> ALTER DATABASE OPEN;


数据库已更改。


--临时表空间,如果前面没复制,这里就得重新创建一个


SQL> ALTER TABLESPACE TEMP ADD TEMPFILE 'E:ora10goradatajssttstemp01.dbf'

2 SIZE 20971520 REUSE AUTOEXTEND ON NEXT 655360 MAXSIZE 32767M;


表空间已更改。




8、测试一下

SQL> select tablespace_name from dba_tablespaces;


TABLESPACE_NAME

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

SYSTEM

UNDOTBS1

SYSAUX

TEMP

USERS

JSSWEB


已选择6行。



打扫一下战场,比如重配一下listener及tnsnames,重建密码文件等等,复制完成。


阅读(670) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~