ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 从linux平台移值数据库到windows平台

从linux平台移值数据库到windows平台

原创 Linux操作系统 作者:junsansi 时间:2007-12-10 00:00:00 0 删除 编辑

之前在测试传输表空间时感受了一下跨平台的移值,当时只测试了通过传输表空间的特性复制某个指定表空间,或者是通过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,重建密码文件等等,复制完成。

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

请登录后发表评论 登录
全部评论
暂无介绍

注册时间:2007-12-21

  • 博文量
    640
  • 访问量
    4126258