如何进行oracle数据库的全库移植?我本机上建立了一个oracle,现在想把公司的一个测试库移植过来。如何进行?
解决方案 »
- 如何对数据库中的某个字段进行加密(插入时加密,提取时解密)
- Oracle IO 异常
- 各位大虾好,帮小弟写个sql哈!
- oracle 应用开发高手请进,那是一个急啊。。。
- 键压缩索引!
- referencing new as n for each row 表示什么意思??
- 第一次运行SQLPLUS时,提示错误监听器错误,请问是怎么回事
- 谁能告诉我<<SQL Reference Release 9.2>>的下载地址啊??(我要HTML的,不要PDF的)
- 我做了一个视图,只关联两个表,用管理工具打开浏览时需要十几分钟的时间,这是为什么?(两个表分别有11万条数据)
- 什么是Instance?Instance Manager它怎么管理?我是初学者,好不多东西不懂,以
- 求一语句:横向显示数据
- 关于一个存储过程问题
把
D:\oracle\product\10.2.0\oradata\orcl
下的文件拷过来就可以了
2.在你的机器上安装库文件(弄清楚测试库的 sid,字符集,密码,都设成一样的)
3.把测试库的文件exp出来(根据你测试库下的用户)
4.在你的机器上建立同样的用户,把测试库的用户数据imp进来。exp,imp
参照下面做
SQL code
scott用户的emp和dept表是在users表空间的.d:\>exp scott/tiger file=test1.dmp tables=(emp,dept)Export: Release 10.2.0.4.0 - Production on 星期二 3月 24 21:13:17 2009Copyright (c) 1982, 2007, Oracle. All rights reserved.
连接到: Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
已导出 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集即将导出指定的表通过常规路径...
. . 正在导出表 EMP导出了 13 行
. . 正在导出表 DEPT导出了 4 行
成功终止导出, 没有出现警告。
d:\>sqlplus /nologSQL*Plus: Release 10.2.0.4.0 - Production on 星期二 3月 24 21:13:26 2009Copyright (c) 1982, 2007, Oracle. All Rights Reserved.idle> conn / as sysdba
已连接。
sys@TEST> create user xx identified by xx default tablespace test;用户已创建。sys@TEST> grant create session ,create table to xx;授权成功。sys@TEST> alter user xx quota unlimited on test;用户已更改。sys@TEST> exit
从 Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options 断开
d:\>imp system/sys file=test1.dmp fromuser=scott touser=xxImport: Release 10.2.0.4.0 - Production on 星期二 3月 24 21:16:21 2009Copyright (c) 1982, 2007, Oracle. All rights reserved.
连接到: Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options经由常规路径由 EXPORT:V10.02.01 创建的导出文件警告: 这些对象由 SCOTT 导出, 而不是当前用户已经完成 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集中的导入
. 正在将 SCOTT 的对象导入到 XX
. . 正在导入表 "EMP"导入了 13 行
. . 正在导入表 "DEPT"导入了 4 行
即将启用约束条件...
成功终止导入, 没有出现警告。d:\>sqlplus /nologSQL*Plus: Release 10.2.0.4.0 - Production on 星期二 3月 24 21:17:14 2009Copyright (c) 1982, 2007, Oracle. All Rights Reserved.idle> conn / as sysdba
已连接。
sys@TEST> SELECT OWNER, TABLE_NAME, TABLESPACE_NAME
2 FROM DBA_TABLES S
3 WHERE S.TABLE_NAME IN ('EMP', 'DEPT') AND owner='XX';OWNER TABLE_NAME TABLESPACE_NAME
------------------------------ ------------------------------ ------------------------------
XX EMP TEST
XX DEPT TESTsys@TEST> exit
从 Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options 断开导入后,用户xx的emp和dept在test表空间[scott用户的emp和dept在users表空间]
假设新建库为DBD,要导的库位DBS
1. 根据DBS的用户和表空间,在DBD建立同DBS相同的用户和表空间,用户权限等设置相同。表空间分配足够大小
2. exp导出DBS数据结构和数据
3. imp导入
orpwd 创建密码文件.然后就打开用吧.
优点
导出/导入的升级方法,这种方法可以用于不同版本数据库之间的升级,
甚至是高版本的数据库向低版本的数据库的升级,同时也可以改变数据库的物理参数,另外这种方法还可以用于数据库的备份和恢复。 缺点
当然这种方法的致命缺点是升级时间与数据量的大小成正比, 数据量越大, 则时间越长。
作步骤如下:
1)在11g的服务器上,手动创建和8i相同的表領域和ユーザー
2)用SI Object Browser 9(エクスポート)工具将8i的数据库Dmp(指定用户名)
或者,用命令行进行数据库的导出,exp 8i指定的用户名/8i指定的密码 full=y file=Dmp文件路径 log=Dmp.log
3)在11g的数据库上,用命令行进行数据库的导入,结束后检查日志,看是否有影响的错误。
cmd>imp system(区分大小写:默认为大写)/password(区分大小写:默认为大写)@DBName full=y file= his_full.dmp log= his_full_imp.log
4)将原有8i服务器SYS用户下创建的相关对象手工导入到11g服务器上,对比两者数据库对象是否相同。
5)进行测试,如测试通过,迁移成功
除了特殊情况(Create Sessionなど),以上手順はOKです。