Oracle数据库迁移方案

所属分类: 数据库 / oracle 阅读数: 1524
收藏 0 赞 0 分享

1 在数据迁移时,用户首先有权限修改数据库,并且进行表空间创建、删除等权利

例如:

select * from dba_tab_privs where grantee='SCOT'; ---查看SCOTT权限(sys用户登录)

显示结果为:

select * from dba_role_privs where grantee='SCOT'; --查看SCOTT角色

显示结果为:

(1) 如果用户被锁定通过以下语句来解锁表

alter user scott account unlock; --解锁表

(2) 授予用户权限

grant connect to scott; --连接数据库权限
grant resource to scott; --授予创建表等基本权限
grant dba to scott; --授予DBA权限

2 建立表空间

严格意义上在先执行如下命令而不是直接开始建立表空间

drop tablespace 表空间名称;

然后开始创建表空间

create tablespace xx_bp;
datafile 'F:\app\xx_bp.ora' --表空间的本地位置
size 50M
autoextend on next 1M;

附:datafile 为表空间对应的数据文件,后面跟随数据文件的路径及数据文件名

size 为数据文件的初始大小

autoextend on 表示数据随着数据量的增加自动扩大
一般在创建表的时候会创建多个表空间用来存放各种数据,比如我们一般会创建历史表空间(HS)、索引表空间等。另外先建立表空间,然后建立用户时指向此表空间,否则oracle会默认将用户指向sys表空间

3 创建用户

create user 用户名 indentified by 密码 tablespace xx_bp,xx_hs,xx_indx;

附: identified by 为创建用户密码的关键字,后面跟随的是用户密码

4 对数据库的用户进行授权

grant connect,resource to 用户名

将connect 和resource 角色授予用户

查看当前用户有哪些角色

select * from user_role_privs;

5 建立数据结构、存储过程、视图、序列

(1)创建表

create table XX.BP_OPER_DETAIL_TB
(
task_id VARCHAR2(50) not null,
flow_id NUMBER(19) not null,
task_no VARCHAR2(50) not null,
flow_node VARCHAR2(4) not null,
workitemid NUMBER(19) not null,
trans_id VARCHAR2(10) not null,
trans_no CHAR(6) not null,
vouch_group VARCHAR2(10) not null,
teller_no VARCHAR2(15) default '',
user_no VARCHAR2(15) not null,
organ_no VARCHAR2(10) not null,
areacode VARCHAR2(5) default '',
create_time CHAR(14) not null,
checkout_time CHAR(14) not null,
checkin_time CHAR(14) default '',
suspend_time CHAR(14) default '',
resume_time CHAR(14) default '',
trans_time INTEGER default 0,
release_time INTEGER default 0,
state INTEGER not null,
result VARCHAR2(10) default '',
reason VARCHAR2(512) default ''
)
tablespace XX_BP pctfree 10 initrans 1 maxtrans 255 storage
(
initial 64K next 8K minextents 1 maxextents unlimited
);

创建索引约束调节等

alter table XX.BP_OPER_DETAIL_TB add constraint BP_OPER_DETAIL_PK primary key
(
TASK_ID, WORKITEMID, FLOW_NODE
)
using index tablespace XX_BP pctfree 10 initrans 2 maxtrans 255 storage
(
initial 64K next 1M minextents 1 maxextents unlimited
);

6 导入数据

insert into SM_FIELD_PARENT_TB (field_id, parent_field, last_modi_date)
values ('VH0007', 'VH0000', '20160420074707');
insert into SM_FIELD_PARENT_TB (field_id, parent_field, last_modi_date)
values ('VH0008', 'VH0000', '20160420074729');
insert into SM_FIELD_PARENT_TB (field_id, parent_field, last_modi_date)
values ('VH0010', 'VH0000', '20160420074818');
insert into SM_FIELD_PARENT_TB (field_id, parent_field, last_modi_date)
values ('VH0012', 'VH0000', '20160420074914');
insert into SM_FIELD_PARENT_TB (field_id, parent_field, last_modi_date)
values ('VH0016', 'VH0000', '20160420075055');
insert into SM_FIELD_PARENT_TB (field_id, parent_field, last_modi_date)
values ('VH0017', 'VH0000', '20160420075129');
insert into SM_FIELD_PARENT_TB (field_id, parent_field, last_modi_date)
values ('VH0021', 'VH0000', '20160420075305');
commit;

最后重新登陆数据库,验证新增的迁移数据库

更多精彩内容其他人还在看

oracle存储过程中return和exit区别概述及测试

至于return和exit在oracle存储过程中的应用,有些新手朋友们还是比较容易混淆的,本文将针对这两个关键字进行详细对比下,感兴趣的你可以参考下,希望可以帮助到你
收藏 0 赞 0 分享

oracle查看当前日期是第几个星期的方法

oracle查看当前日期是第几个星期方法的代码段,需要的朋友可以参考一下
收藏 0 赞 0 分享

oracle删除已存在的表的实例

查询系统表,判断表是否存在,存在则直接删除
收藏 0 赞 0 分享

oracle中文乱码解决的办法

oracle中文乱码解决的办法,需要的朋友可以参考一下
收藏 0 赞 0 分享

Oracle中在pl/sql developer修改表的2种方法

Oracle中在pl/sql developer修改表的2种方法,需要的朋友可以参考一下
收藏 0 赞 0 分享

oracle 创建表空间步骤代码

oracle 创建表空间步骤代码,需要的朋友可以参考一下
收藏 0 赞 0 分享

Oracle 查看表空间的大小及使用情况sql语句

表空间使用情况包括:查看表空间的名称及大小/查看表空间物理文件的名称及大小/查看回滚段名称及大小等等感兴趣的你可以参考下本文
收藏 0 赞 0 分享

Oracle Form中COMMIT的概述及使用技巧

针对form上面的数据变动提交到后台数据库,同时数据库提交数据,接下来将详细介绍下Form中COMMIT的使用,感兴趣的你可以参考下本文
收藏 0 赞 0 分享

Oracle跨数据库查询并插入实现原理及代码

需要从一个数据库中的表GIS_WEICHAI_DATA_1S中的数据导入到另个一数据库的表GIS_WEICHAI_DATA_1S中,接下来为你讲解跨数据库查询并插入需要的朋友可以参考下
收藏 0 赞 0 分享

Oracle 存储过程发送邮件实例学习

接下来将介绍下如何使用存储过程发送邮件这一案例实现,感兴趣的你可以参考下本文或许对你有所帮助
收藏 0 赞 0 分享
查看更多