欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Oracle数据库Schema快速从测试环境迁移到生产环境的方法

程序员文章站 2022-05-23 18:15:07
背景: 生产环境上线,需要将测试环境数据库的Schema1,Schema2,Schema3,Schema4,Schema5五个Schema迁移到生产环境,手上并没有测试环境和生产...

背景:

生产环境上线,需要将测试环境数据库的Schema1,Schema2,Schema3,Schema4,Schema5五个Schema迁移到生产环境,手上并没有测试环境和生产环境的数据库服务器的操作权限,但是有数据库对应TNS信息 ,可以在本地使用pl/sql连接上数据库,最终目标是需要将测试环境的Schema1,Schema2等5个Schema中的表,视图,Package,序列,同义词等数据库对象一起迁移到生产环境,并删除对应业务表的数据,保证生产环境的接口正常运行,下面是详细的迁移步骤

迁移步骤

1、如果没有新建表空间,执行如下语句,新建表空间,在目标数据库(sys登录目标数据库),有多少个Schema就需要新建多个表空间,表空间大小视情况而定

create tablespace Schema1_DATA

datafile '+DATA_PORTAL/PORTALPROD/Schema1_DATA.dbf' --path/file_name

size 50m

autoextend on next 500m maxsize 20480m;

2、新建Scheam并授权,新建之前先删除(sys登录目标数据库)

drop user Schema1 cascade;

create user Schema1 identified by "Schema1pwd"

default tablespace Schema1_DATA

temporary tablespace TEMP

profile DEFAULT;

grant create sequence to Schema1;

grant create session to Schema1;

grant create table to Schema1;

grant create type to Schema1;

grant create view to Schema1;

grant debug any procedure to Schema1;

grant debug connect session to Schema1;

grant drop any table to Schema1;

grant insert any table to Schema1;

grant select any sequence to Schema1;

grant unlimited tablespace to Schema1;

grant update any table to Schema1;

3、本地执行cmd命令,打开dos窗口,执行命令导出Schema对应的dmp文件,如果遇到sqlplus不是内部命令的错误,请检查环境变量,在Path中加入如下配置:C:\OralceXE\app\oracle\product\11.2.0\server\bin

Oracle数据库Schema快速从测试环境迁移到生产环境的方法

4、在dos窗口中执行导出命令,将源数据库Schema导出到本地,其他4个Schema用同样方式导出

expschema1/测试环境密码@xx.xx.xx.xx/测试环境sid rows=y file =C:\DB\schema1.dmp log=C:\DB\schema1_exp.log;

5、在dos窗口中执行如下导入命令,将第四步导出的dmp文件导入到生产环境

imp schema1/生产环境密码@file=xx.xx.xx.xx/生产环境sidC:\DB\schema1.dmp fromuser=schema1 touser=schema1 ignore=Y log=C:\DB\schema1_imp.log

6、执行删除脚本,删除业务表数据

7、检查每个Schema的package、view、table、synonym 是否能正常编译